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): move ParseVarassignOp further up
details: https://anonhg.NetBSD.org/src/rev/1d86bc419343
branches: trunk
changeset: 977235:1d86bc419343
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Oct 18 20:07:26 2020 +0000
description:
make(1): move ParseVarassignOp further up
diffstat:
usr.bin/make/parse.c | 94 ++++++++++++++++++++++++++--------------------------
1 files changed, 47 insertions(+), 47 deletions(-)
diffs (122 lines):
diff -r 5a09d8a510bf -r 1d86bc419343 usr.bin/make/parse.c
--- a/usr.bin/make/parse.c Sun Oct 18 19:58:02 2020 +0000
+++ b/usr.bin/make/parse.c Sun Oct 18 20:07:26 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.387 2020/10/18 19:11:35 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.388 2020/10/18 20:07:26 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -131,7 +131,7 @@
#include "pathnames.h"
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: parse.c,v 1.387 2020/10/18 19:11:35 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.388 2020/10/18 20:07:26 rillig Exp $");
/* types and constants */
@@ -1753,6 +1753,51 @@
Lst_Free(curTargs);
}
+/* Determine the assignment operator and adjust the end of the variable
+ * name accordingly. */
+static void
+ParseVarassignOp(VarAssign *var)
+{
+ const char *op = var->eq;
+ const char * const name = var->nameStart;
+ VarAssignOp type;
+
+ if (op > name && op[-1] == '+') {
+ type = VAR_APPEND;
+ op--;
+
+ } else if (op > name && op[-1] == '?') {
+ op--;
+ type = VAR_DEFAULT;
+
+ } else if (op > name && op[-1] == ':') {
+ op--;
+ type = VAR_SUBST;
+
+ } else if (op > name && op[-1] == '!') {
+ op--;
+ type = VAR_SHELL;
+
+ } else {
+ type = VAR_NORMAL;
+#ifdef SUNSHCMD
+ while (op > name && ch_isspace(op[-1]))
+ op--;
+
+ if (op >= name + 3 && op[-3] == ':' && op[-2] == 's' && op[-1] == 'h') {
+ type = VAR_SHELL;
+ op -= 3;
+ }
+#endif
+ }
+
+ {
+ const char *nameEnd = var->nameEndDraft < op ? var->nameEndDraft : op;
+ var->varname = bmake_strsedup(var->nameStart, nameEnd);
+ var->op = type;
+ }
+}
+
/* Parse a variable assignment, consisting of a single-word variable name,
* optional whitespace, an assignment operator, optional whitespace and the
* variable value.
@@ -1834,51 +1879,6 @@
return FALSE;
}
-/* Determine the assignment operator and adjust the end of the variable
- * name accordingly. */
-static void
-ParseVarassignOp(VarAssign *var)
-{
- const char *op = var->eq;
- const char * const name = var->nameStart;
- VarAssignOp type;
-
- if (op > name && op[-1] == '+') {
- type = VAR_APPEND;
- op--;
-
- } else if (op > name && op[-1] == '?') {
- op--;
- type = VAR_DEFAULT;
-
- } else if (op > name && op[-1] == ':') {
- op--;
- type = VAR_SUBST;
-
- } else if (op > name && op[-1] == '!') {
- op--;
- type = VAR_SHELL;
-
- } else {
- type = VAR_NORMAL;
-#ifdef SUNSHCMD
- while (op > name && ch_isspace(op[-1]))
- op--;
-
- if (op >= name + 3 && op[-3] == ':' && op[-2] == 's' && op[-1] == 'h') {
- type = VAR_SHELL;
- op -= 3;
- }
-#endif
- }
-
- {
- const char *nameEnd = var->nameEndDraft < op ? var->nameEndDraft : op;
- var->varname = bmake_strsedup(var->nameStart, nameEnd);
- var->op = type;
- }
-}
-
static void
VarCheckSyntax(VarAssignOp type, const char *uvalue, GNode *ctxt)
{
Home |
Main Index |
Thread Index |
Old Index