The routine findpath did not work. It used the same static buffer for
authorceriel <none@none>
Tue, 9 Oct 1984 11:43:19 +0000 (11:43 +0000)
committerceriel <none@none>
Tue, 9 Oct 1984 11:43:19 +0000 (11:43 +0000)
several calls. Now it uses alloc.

util/LLgen/src/machdep.c

index 409d04f..6ca3745 100644 (file)
@@ -59,11 +59,16 @@ string
 libpath(s) string s; {
        /* Must deliver a full pathname to the library file "s" */
 
-       static char buf[100];
+       register string p;
+       register length;
+       p_mem alloc();
        string strcpy(), strcat();
+       static string subdir = "/lib/LLgen/";
 
-       strcpy(buf,EM_DIR);
-       strcat(buf,"/lib/LLgen/");
-       strcat(buf,s);
-       return buf;
+       length = strlen(EM_DIR) + strlen(subdir) + strlen(s) + 1;
+       p = (string) alloc((unsigned) length);
+       strcpy(p,EM_DIR);
+       strcat(p,subdir);
+       strcat(p,s);
+       return p;
 }