From fbf86e8a788c8716daa741c4ff0f3d9c043bedd5 Mon Sep 17 00:00:00 2001 From: keie Date: Fri, 25 Jan 1985 11:04:18 +0000 Subject: [PATCH] The program name is used to set the name 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 | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lang/basic/src.old/initialize.c b/lang/basic/src.old/initialize.c index 9a6e4851..12a79912 100644 --- a/lang/basic/src.old/initialize.c +++ b/lang/basic/src.old/initialize.c @@ -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");