bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Improve “missing separator” error when reading spaces


From: Michael Stapelberg
Subject: [PATCH] Improve “missing separator” error when reading spaces
Date: Sat, 19 Nov 2016 18:49:38 +0100

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]