mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2025-01-30 16:41:44 +00:00
Delay caching of the file name in eval_makefile() until after all the
expansions and searches are complete. This fixes an assertion in a situation where the MAKEFILES variable contains a file path that contains tilde.
This commit is contained in:
parent
b34438bee8
commit
15a79d723d
2 changed files with 14 additions and 6 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2011-04-29 Boris Kolpackov <boris@codesynthesis.com>
|
||||||
|
|
||||||
|
* read.c (eval_makefile): Delay caching of the file name until after
|
||||||
|
all the expansions and searches.
|
||||||
|
|
||||||
2011-04-17 David A. Wheeler <dwheeler@dwheeler.com>
|
2011-04-17 David A. Wheeler <dwheeler@dwheeler.com>
|
||||||
|
|
||||||
* doc/make.texi (Reading Makefiles): Document "!=".
|
* doc/make.texi (Reading Makefiles): Document "!=".
|
||||||
|
|
15
read.c
15
read.c
|
@ -324,8 +324,7 @@ eval_makefile (const char *filename, int flags)
|
||||||
char *expanded = 0;
|
char *expanded = 0;
|
||||||
int makefile_errno;
|
int makefile_errno;
|
||||||
|
|
||||||
filename = strcache_add (filename);
|
ebuf.floc.filenm = filename; /* Use the original file name. */
|
||||||
ebuf.floc.filenm = filename;
|
|
||||||
ebuf.floc.lineno = 1;
|
ebuf.floc.lineno = 1;
|
||||||
|
|
||||||
if (ISDB (DB_VERBOSE))
|
if (ISDB (DB_VERBOSE))
|
||||||
|
@ -369,13 +368,17 @@ eval_makefile (const char *filename, int flags)
|
||||||
"/", filename);
|
"/", filename);
|
||||||
ebuf.fp = fopen (included, "r");
|
ebuf.fp = fopen (included, "r");
|
||||||
if (ebuf.fp)
|
if (ebuf.fp)
|
||||||
{
|
{
|
||||||
filename = strcache_add (included);
|
filename = included;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Now we have the final name for this makefile. Enter it into
|
||||||
|
the cache. */
|
||||||
|
filename = strcache_add (filename);
|
||||||
|
|
||||||
/* Add FILENAME to the chain of read makefiles. */
|
/* Add FILENAME to the chain of read makefiles. */
|
||||||
deps = alloc_dep ();
|
deps = alloc_dep ();
|
||||||
deps->next = read_makefiles;
|
deps->next = read_makefiles;
|
||||||
|
|
Loading…
Reference in a new issue