Module Name: src Committed By: rillig Date: Sat Nov 7 10:44:53 UTC 2020
Modified Files: src/usr.bin/make: job.c make.h parse.c str.c suff.c Log Message: make(1): add pp_skip_hspace to skip horizontal whitespace during parsing To generate a diff of this commit: cvs rdiff -u -r1.306 -r1.307 src/usr.bin/make/job.c cvs rdiff -u -r1.196 -r1.197 src/usr.bin/make/make.h cvs rdiff -u -r1.428 -r1.429 src/usr.bin/make/parse.c cvs rdiff -u -r1.71 -r1.72 src/usr.bin/make/str.c cvs rdiff -u -r1.231 -r1.232 src/usr.bin/make/suff.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/job.c diff -u src/usr.bin/make/job.c:1.306 src/usr.bin/make/job.c:1.307 --- src/usr.bin/make/job.c:1.306 Sat Nov 7 10:16:18 2020 +++ src/usr.bin/make/job.c Sat Nov 7 10:44:53 2020 @@ -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 @@ JobOutput(Job *job, char *cp, char *endp * command.... */ cp++; - while (*cp == ' ' || *cp == '\t' || *cp == '\n') { - cp++; - } + pp_skip_whitespace(&cp); } else { return cp; } Index: src/usr.bin/make/make.h diff -u src/usr.bin/make/make.h:1.196 src/usr.bin/make/make.h:1.197 --- src/usr.bin/make/make.h:1.196 Fri Nov 6 22:39:10 2020 +++ src/usr.bin/make/make.h Sat Nov 7 10:44:53 2020 @@ -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_skip_whitespace(char **pp) (*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 Index: src/usr.bin/make/parse.c diff -u src/usr.bin/make/parse.c:1.428 src/usr.bin/make/parse.c:1.429 --- src/usr.bin/make/parse.c:1.428 Sat Nov 7 10:16:19 2020 +++ src/usr.bin/make/parse.c Sat Nov 7 10:44:53 2020 @@ -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 @@ Parse_IsVar(const char *p, VarAssign *ou 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 @@ ParseDoInclude(char *line) 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 @@ ParseGetLine(int flags) 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 = ' '; } Index: src/usr.bin/make/str.c diff -u src/usr.bin/make/str.c:1.71 src/usr.bin/make/str.c:1.72 --- src/usr.bin/make/str.c:1.71 Sat Nov 7 10:16:19 2020 +++ src/usr.bin/make/str.c Sat Nov 7 10:44:53 2020 @@ -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 @@ Str_Words(const char *str, Boolean expan 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); Index: src/usr.bin/make/suff.c diff -u src/usr.bin/make/suff.c:1.231 src/usr.bin/make/suff.c:1.232 --- src/usr.bin/make/suff.c:1.231 Thu Nov 5 17:27:16 2020 +++ src/usr.bin/make/suff.c Sat Nov 7 10:44:53 2020 @@ -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 @@ SuffExpandChildren(GNodeListNode *cln, G /* * 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 @@ SuffExpandChildren(GNodeListNode *cln, G *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 == '$') { /*