From: ceriel Date: Thu, 17 Jan 1991 17:49:27 +0000 (+0000) Subject: Changed implementation of dependency generator X-Git-Tag: release-5-5~1286 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=81e80b2cd879e6a0db71147f5524ee1aa20879a1;p=ack.git Changed implementation of dependency generator --- diff --git a/lang/cem/cemcom.ansi/idf.str b/lang/cem/cemcom.ansi/idf.str index e5fcdcda0..b1f956ee4 100644 --- a/lang/cem/cemcom.ansi/idf.str +++ b/lang/cem/cemcom.ansi/idf.str @@ -32,6 +32,15 @@ struct idf { /* ALLOCDEF "idf" 50 */ +#ifndef NOPP +struct dependency { + struct dependency *next; + struct idf *dep_idf; +}; + +/* ALLOCDEF "dependency" 10 */ +#endif /* NOPP */ + extern struct idf *str2idf(), *idf_hashed(); extern int level; diff --git a/lang/cem/cemcom.ansi/main.c b/lang/cem/cemcom.ansi/main.c index 7e42daead..32414bd9c 100644 --- a/lang/cem/cemcom.ansi/main.c +++ b/lang/cem/cemcom.ansi/main.c @@ -138,13 +138,13 @@ main(argc, argv) #ifndef NOPP -struct idf *file_head; +struct dependency *file_head; extern char *strrindex(); list_dependencies(source) char *source; { - register struct idf *p = file_head; + register struct dependency *p = file_head; if (source) { register char *s = strrindex(source, '.'); @@ -167,9 +167,8 @@ char *source; fatal("could not open %s", dep_file); } while (p) { - ASSERT(p->id_resmac == K_FILE); - dependency(p->id_text, source); - p = (struct idf *) (p->id_file); + dependency(p->dep_idf->id_text, source); + p = p->next; } } @@ -179,9 +178,12 @@ char *s; register struct idf *p = str2idf(s); if (! p->id_resmac) { + register struct dependency *q = new_dependency(); + p->id_resmac = K_FILE; - p->id_file = (char *) file_head; - file_head = p; + q->dep_idf = p; + q->next = file_head; + file_head = q; } }