@@ -380,16 +380,19 @@ char **argv;
380380 _warn = TRUE;
381381
382382 /* If -r was not given find and parse startup-makefile. */
383- if ( Rules ) {
384- char * fname ;
385-
386- /* Search_file() also checks the environment variable. */
387- if ( (mkfil = Search_file ("MAKESTARTUP" , & fname )) != NIL (FILE ) ) {
388- Parse (mkfil );
389- Def_macro ( "MAKESTARTUP" , fname , M_EXPANDED |M_MULTI |M_FORCE );
390- }
391- else
392- Fatal ( "Configuration file `%s' not found" , fname );
383+ if ( Rules )
384+ {
385+ char * fname = NIL (char );
386+
387+ /* Search_file() also checks the environment variable. */
388+ if ( (mkfil = Search_file ("MAKESTARTUP" , & fname )) != NIL (FILE ) )
389+ {
390+ Parse (mkfil );
391+ Def_macro ( "MAKESTARTUP" , fname , M_EXPANDED |M_MULTI |M_FORCE );
392+ }
393+ else
394+ Fatal ( "Configuration file `%s' not found" , fname );
395+ if ( fname != NIL (char )) { FREE ( fname ); fname = NIL (char ); }
393396 }
394397
395398 /* Define the targets set on the command line now. */
@@ -428,8 +431,7 @@ char **argv;
428431 char * p ;
429432
430433 if ( strcmp (f , "stdin" ) == 0 ) f = "-" ;
431- p = DmStrAdd ( "-f" , f , FALSE );
432- Def_macro ( "MAKEFILE" , p , M_PRECIOUS |M_NOEXPORT );
434+ Def_macro ( "MAKEFILE" , p = DmStrAdd ( "-f" , f , FALSE ), M_PRECIOUS |M_NOEXPORT ); FREE (p );
433435 Parse ( mkfil );
434436 }
435437 else if ( !Rules )
@@ -663,23 +665,25 @@ char **rname;
663665 */
664666
665667 if ( (hp = GET_MACRO (macname )) != NIL (HASH ) ) {
666- /* Only expand if needed. */
667- if ( hp -> ht_flag & M_EXPANDED ) {
668- ename = fname = DmStrDup (hp -> ht_value );
669- } else {
670- ename = fname = Expand (hp -> ht_value );
671- }
672-
673- if ( hp -> ht_flag & M_PRECIOUS ) fil = Openfile (fname , FALSE, FALSE);
668+ /* Only expand if needed. */
669+ if ( hp -> ht_flag & M_EXPANDED ) {
670+ ename = fname = DmStrDup (hp -> ht_value );
671+ } else {
672+ ename = fname = Expand (hp -> ht_value );
673+ }
674+
675+ if ( hp -> ht_flag & M_PRECIOUS ) fil = Openfile (fname , FALSE, FALSE);
674676 }
675677
676678 if ( fil == NIL (FILE ) ) {
677- fname = Expand (Read_env_string (macname ));
678- if ( (fil = Openfile (fname , FALSE, FALSE)) != NIL (FILE ) ) FREE (ename );
679+ fname = Expand (Read_env_string (macname ));
680+ if ( (fil = Openfile (fname , FALSE, FALSE)) != NIL (FILE ) ) FREE (ename );
679681 }
680682
681- if ( fil == NIL (FILE ) && hp != NIL (HASH ) )
682- fil = Openfile (fname = ename , FALSE, FALSE);
683+ if ( fil == NIL (FILE ) && hp != NIL (HASH ) ) {
684+ if ( fname != NIL (char ) ) { FREE (fname ); fname = NIL (char ); }
685+ fil = Openfile (fname = ename , FALSE, FALSE);
686+ }
683687
684688 if ( rname ) * rname = fname ;
685689
0 commit comments