The program name is used to set the name
authorkeie <none@none>
Fri, 25 Jan 1985 11:04:18 +0000 (11:04 +0000)
committerkeie <none@none>
Fri, 25 Jan 1985 11:04:18 +0000 (11:04 +0000)
of the file were the contents of data statements are written.
The filename is extracted from the path and the suffix (if present)
is replaced by .d.

lang/basic/src.old/initialize.c

index 9a6e485..12a7991 100644 (file)
@@ -13,8 +13,25 @@ FILE *datfile;
 
 initialize()
 {
+       register char *cindex, *cptr ;
+
        sprintf(tmpfname,"%s/abc%d",TMP_DIR,getpid());
-       strcpy(datfname,program);
+       /* Find the basename */
+       /* Strip leading directories */
+       cindex= (char *)0 ;
+       for ( cptr=program ; *cptr ; cptr++ ) if ( *cptr=='/' ) cindex=cptr ;
+       if ( !cindex ) cindex= program ;
+       else {
+               cindex++ ;
+               if ( !*cindex ) {
+                       warning("Null program name, assuming \"basic\"") ;
+                       cindex= "basic" ;
+               }
+       }
+       cptr=datfname ;
+       while ( *cptr++ = *cindex++ ) ;
+       /* Strip trailing suffix */
+       if ( cptr>datfname+3 && cptr[-3]=='.' ) cptr[-3]=0 ;
        strcat(datfname,".d");
        yyin= fopen(inpfile,"r");
        emfile= fopen(outfile,"w");