freebsd-dev/usr.bin/make
Marcel Moolenaar 7da1dd01e6 Change the handling of non-anchored global substitutions of the empty
string from a silent implicit non-global substitution to a non-silent
explicit fatal error. Archored substitutions are those containing '^'
or '$'.
The problem with changing the substitution to prevent an infinite
number of matches is that it doesn't provide the necessary feedback
to the user that there's a bug in the/a makefile. Reporting the bug
without making the condition fatal makes the feedback mostly useless
due to the way that make fails to prefix the error with program name,
makefile file name and line number information.
Note that global substitutions of the empty string anchored with '^'
(start of string) or '$' (end of string) do not cause an infinite
number of matches and are therefore not reported and hence are non-
fatal.

Suggested by: bde
Tested with: buildworld
2003-01-15 22:36:15 +00:00
..
lst.lib Use __FBSDID in the lst.lib files, to match to main make(1) files. It is 2002-10-09 02:00:22 +00:00
PSD.doc bsd.doc.mk changes: 2002-10-29 14:56:09 +00:00
arch.c Remove efree(), it isn't used consistently enough to even pretend that it 2002-10-23 23:16:43 +00:00
buf.c Convert make(1) to use ANSI style function declarations. Variable 2002-10-09 03:42:10 +00:00
buf.h #define<space> -> #define<tab> 2002-09-17 21:29:06 +00:00
compat.c Remove efree(), it isn't used consistently enough to even pretend that it 2002-10-23 23:16:43 +00:00
cond.c Remove efree(), it isn't used consistently enough to even pretend that it 2002-10-23 23:16:43 +00:00
config.h #define<space> -> #define<tab> 2002-09-17 21:29:06 +00:00
dir.c Convert make(1) to use ANSI style function declarations. Variable 2002-10-09 03:42:10 +00:00
dir.h Fix copyrights, and undo SCS ID damage. 2002-04-13 10:57:56 +00:00
for.c Convert make(1) to use ANSI style function declarations. Variable 2002-10-09 03:42:10 +00:00
hash.c Convert make(1) to use ANSI style function declarations. Variable 2002-10-09 03:42:10 +00:00
hash.h #define<space> -> #define<tab> 2002-09-17 21:29:06 +00:00
job.c Bootstrapping aid from pre-kqueue(2) systems, e.g. 4.0-RELEASE. 2002-12-01 13:38:25 +00:00
job.h Remove extern declarations from functions and source files where they would 2002-10-09 01:56:02 +00:00
list.h #define<space> -> #define<tab> 2002-09-17 21:29:06 +00:00
lst.h #define<space> -> #define<tab> 2002-09-17 21:29:06 +00:00
main.c Check the return status of chdir() when using the -C option. 2002-12-17 04:26:22 +00:00
make.1 Fixed the abuses of .Ql visible on stderr in troff mode. 2002-12-23 16:04:51 +00:00
make.c Remove efree(), it isn't used consistently enough to even pretend that it 2002-10-23 23:16:43 +00:00
make.h Move utilitarian routines to util.c, which isn't the same as the old 2002-10-10 19:27:48 +00:00
Makefile Split var.c into var.c and var_modify.c and move all the modification funcs 2002-10-28 23:33:57 +00:00
Makefile.dist
nonints.h Split var.c into var.c and var_modify.c and move all the modification funcs 2002-10-28 23:33:57 +00:00
parse.c Finish the fix in revision 1.39 -- make(1)'s behavior is now 2002-11-28 12:47:56 +00:00
pathnames.h Back out the ``run shell from $PATH'' change; this was an overkill 2002-05-24 15:51:27 +00:00
sprite.h #define<space> -> #define<tab> 2002-09-17 21:29:06 +00:00
str.c Split var.c into var.c and var_modify.c and move all the modification funcs 2002-10-28 23:33:57 +00:00
suff.c Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/ 2002-12-30 21:18:15 +00:00
targ.c Remove efree(), it isn't used consistently enough to even pretend that it 2002-10-23 23:16:43 +00:00
util.c Move utilitarian routines to util.c, which isn't the same as the old 2002-10-10 19:27:48 +00:00
var_modify.c In VarHead(), look into the correct (modified) string. 2002-10-29 12:11:56 +00:00
var.c Change the handling of non-anchored global substitutions of the empty 2003-01-15 22:36:15 +00:00
var.h Split var.c into var.c and var_modify.c and move all the modification funcs 2002-10-28 23:33:57 +00:00