With this change, users who have their editor misconfigured when writing Makefiles without using 8 spaces for one TAB character will also get a friendly error message.
I used the following 3 test cases: echo -e "foo:\n echo bar" > broken.make echo -e "foo:\n echo bar" > broken.8.make echo -e "foo:\n--echo bar" > broken.else.make Before this commit, running make on these files results in: $ make -f broken.make broken.make:2: *** missing separator. Stop. $ make -f broken.8.make broken.8.make:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop. $ make -f broken.else.make broken.else.make:2: *** missing separator. Stop. After this commit, running make on these files results in: $ /tmp/make/make -f broken.make broken.make:2: *** missing separator (expected TAB, found SPACE). Stop. $ /tmp/make/make -f broken.8.make broken.8.make:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop. $ /tmp/make/make -f broken.else.make broken.else.make:2: *** missing separator. Stop. --- read.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/read.c b/read.c index b870aa8..3c67e55 100644 --- a/read.c +++ b/read.c @@ -1122,6 +1122,8 @@ eval (struct ebuffer *ebuf, int set_default) one of the most common bugs found in makefiles... */ if (cmd_prefix == '\t' && strneq (line, " ", 8)) O (fatal, fstart, _("missing separator (did you mean TAB instead of 8 spaces?)")); + else if (cmd_prefix == '\t' && strneq (line, " ", 1)) + O (fatal, fstart, _("missing separator (expected TAB, found SPACE)")); else O (fatal, fstart, _("missing separator")); } -- 2.9.3 _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make