Changed implementation of dependency generator
authorceriel <none@none>
Thu, 17 Jan 1991 17:49:27 +0000 (17:49 +0000)
committerceriel <none@none>
Thu, 17 Jan 1991 17:49:27 +0000 (17:49 +0000)
lang/cem/cemcom.ansi/idf.str
lang/cem/cemcom.ansi/main.c

index e5fcdcd..b1f956e 100644 (file)
@@ -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;
index 7e42dae..32414bd 100644 (file)
@@ -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;
     }
 }