Source-Changes-HG archive

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

[src/trunk]: src/usr.bin/make make(1): add pp_skip_hspace to skip horizontal ...



details:   https://anonhg.NetBSD.org/src/rev/ca3aecea5989
branches:  trunk
changeset: 956748:ca3aecea5989
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sat Nov 07 10:44:53 2020 +0000

description:
make(1): add pp_skip_hspace to skip horizontal whitespace during parsing

diffstat:

 usr.bin/make/job.c   |   8 +++-----
 usr.bin/make/make.h  |   9 ++++++++-
 usr.bin/make/parse.c |  16 ++++++----------
 usr.bin/make/str.c   |   9 ++++-----
 usr.bin/make/suff.c  |  14 ++++++--------
 5 files changed, 27 insertions(+), 29 deletions(-)

diffs (181 lines):

diff -r db13ed53649e -r ca3aecea5989 usr.bin/make/job.c
--- a/usr.bin/make/job.c        Sat Nov 07 10:43:47 2020 +0000
+++ b/usr.bin/make/job.c        Sat Nov 07 10:44:53 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: job.c,v 1.306 2020/11/07 10:16:18 rillig Exp $ */
+/*     $NetBSD: job.c,v 1.307 2020/11/07 10:44:53 rillig Exp $ */
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -143,7 +143,7 @@
 #include "trace.h"
 
 /*     "@(#)job.c      8.2 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: job.c,v 1.306 2020/11/07 10:16:18 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.307 2020/11/07 10:44:53 rillig Exp $");
 
 /* A shell defines how the commands are run.  All commands for a target are
  * written into a single file, which is then given to the shell to execute
@@ -1703,9 +1703,7 @@
                 * command....
                 */
                cp++;
-               while (*cp == ' ' || *cp == '\t' || *cp == '\n') {
-                   cp++;
-               }
+               pp_skip_whitespace(&cp);
            } else {
                return cp;
            }
diff -r db13ed53649e -r ca3aecea5989 usr.bin/make/make.h
--- a/usr.bin/make/make.h       Sat Nov 07 10:43:47 2020 +0000
+++ b/usr.bin/make/make.h       Sat Nov 07 10:44:53 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: make.h,v 1.196 2020/11/06 22:39:10 rillig Exp $        */
+/*     $NetBSD: make.h,v 1.197 2020/11/07 10:44:53 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -742,6 +742,13 @@
        (*pp)++;
 }
 
+static inline MAKE_ATTR_UNUSED void
+pp_skip_hspace(char **pp)
+{
+    while (**pp == ' ' || **pp == '\t')
+       (*pp)++;
+}
+
 #ifdef MAKE_NATIVE
 #  include <sys/cdefs.h>
 #  ifndef lint
diff -r db13ed53649e -r ca3aecea5989 usr.bin/make/parse.c
--- a/usr.bin/make/parse.c      Sat Nov 07 10:43:47 2020 +0000
+++ b/usr.bin/make/parse.c      Sat Nov 07 10:44:53 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: parse.c,v 1.428 2020/11/07 10:16:19 rillig Exp $       */
+/*     $NetBSD: parse.c,v 1.429 2020/11/07 10:44:53 rillig Exp $       */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -117,7 +117,7 @@
 #include "pathnames.h"
 
 /*     "@(#)parse.c    8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: parse.c,v 1.428 2020/11/07 10:16:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.429 2020/11/07 10:44:53 rillig Exp $");
 
 /* types and constants */
 
@@ -1834,9 +1834,7 @@
     const char *firstSpace = NULL;
     int level = 0;
 
-    /* Skip to variable name */
-    while (*p == ' ' || *p == '\t')
-       p++;
+    cpp_skip_hspace(&p);       /* Skip to variable name */
 
     /* During parsing, the '+' of the '+=' operator is initially parsed
      * as part of the variable name.  It is later corrected, as is the ':sh'
@@ -2246,8 +2244,7 @@
     char *file = line + (silent ? 8 : 7);
 
     /* Skip to delimiter character so we know where to look */
-    while (*file == ' ' || *file == '\t')
-       file++;
+    pp_skip_hspace(&file);
 
     if (*file != '"' && *file != '<') {
        Parse_Error(PARSE_FATAL,
@@ -2783,9 +2780,8 @@
            continue;
        }
 
-       /* Escaped '\n' replace following whitespace with a single ' ' */
-       while (ptr[0] == ' ' || ptr[0] == '\t')
-           ptr++;
+       /* Escaped '\n' -- replace following whitespace with a single ' '. */
+       pp_skip_hspace(&ptr);
        ch = ' ';
     }
 
diff -r db13ed53649e -r ca3aecea5989 usr.bin/make/str.c
--- a/usr.bin/make/str.c        Sat Nov 07 10:43:47 2020 +0000
+++ b/usr.bin/make/str.c        Sat Nov 07 10:44:53 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: str.c,v 1.71 2020/11/07 10:16:19 rillig Exp $  */
+/*     $NetBSD: str.c,v 1.72 2020/11/07 10:44:53 rillig Exp $  */
 
 /*-
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -71,7 +71,7 @@
 #include "make.h"
 
 /*     "@(#)str.c      5.8 (Berkeley) 6/1/90"  */
-MAKE_RCSID("$NetBSD: str.c,v 1.71 2020/11/07 10:16:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: str.c,v 1.72 2020/11/07 10:44:53 rillig Exp $");
 
 /* Return the concatenation of s1 and s2, freshly allocated. */
 char *
@@ -139,9 +139,8 @@
        char *word_end;
        const char *str_p;
 
-       /* skip leading space chars. */
-       for (; *str == ' ' || *str == '\t'; ++str)
-               continue;
+       /* XXX: why only hspace, not whitespace? */
+       cpp_skip_hspace(&str);  /* skip leading space chars. */
 
        /* words_buf holds the words, separated by '\0'. */
        str_len = strlen(str);
diff -r db13ed53649e -r ca3aecea5989 usr.bin/make/suff.c
--- a/usr.bin/make/suff.c       Sat Nov 07 10:43:47 2020 +0000
+++ b/usr.bin/make/suff.c       Sat Nov 07 10:44:53 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: suff.c,v 1.231 2020/11/05 17:27:16 rillig Exp $        */
+/*     $NetBSD: suff.c,v 1.232 2020/11/07 10:44:53 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -129,7 +129,7 @@
 #include "dir.h"
 
 /*     "@(#)suff.c     8.4 (Berkeley) 3/21/94" */
-MAKE_RCSID("$NetBSD: suff.c,v 1.231 2020/11/05 17:27:16 rillig Exp $");
+MAKE_RCSID("$NetBSD: suff.c,v 1.232 2020/11/07 10:44:53 rillig Exp $");
 
 #define SUFF_DEBUG0(text) DEBUG0(SUFF, text)
 #define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1)
@@ -1166,15 +1166,15 @@
            /*
             * Break the result into a vector of strings whose nodes
             * we can find, then add those nodes to the members list.
-            * Unfortunately, we can't use brk_string b/c it
+            * Unfortunately, we can't use brk_string because it
             * doesn't understand about variable specifications with
             * spaces in them...
             */
            char            *start;
            char            *initcp = cp;   /* For freeing... */
 
-           for (start = cp; *start == ' ' || *start == '\t'; start++)
-               continue;
+           start = cp;
+           pp_skip_hspace(&start);
            cp = start;
            while (*cp != '\0') {
                if (*cp == ' ' || *cp == '\t') {
@@ -1185,9 +1185,7 @@
                    *cp++ = '\0';
                    gn = Targ_GetNode(start);
                    Lst_Append(members, gn);
-                   while (*cp == ' ' || *cp == '\t') {
-                       cp++;
-                   }
+                   pp_skip_hspace(&cp);
                    start = cp;         /* Continue at the next non-space. */
                } else if (*cp == '$') {
                    /*



Home | Main Index | Thread Index | Old Index