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): reduce indentation of ParseDirective
details: https://anonhg.NetBSD.org/src/rev/3546ff31a745
branches: trunk
changeset: 957849:3546ff31a745
user: rillig <rillig%NetBSD.org@localhost>
date: Sat Dec 12 21:35:21 2020 +0000
description:
make(1): reduce indentation of ParseDirective
diffstat:
usr.bin/make/parse.c | 84 +++++++++++++++++++++++++--------------------------
1 files changed, 41 insertions(+), 43 deletions(-)
diffs (117 lines):
diff -r 04d865891c97 -r 3546ff31a745 usr.bin/make/parse.c
--- a/usr.bin/make/parse.c Sat Dec 12 21:20:30 2020 +0000
+++ b/usr.bin/make/parse.c Sat Dec 12 21:35:21 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.473 2020/12/12 21:20:30 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.474 2020/12/12 21:35:21 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.473 2020/12/12 21:20:30 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.474 2020/12/12 21:35:21 rillig Exp $");
/* types and constants */
@@ -2949,51 +2949,49 @@
}
}
+/*
+ * Lines that begin with '.' can be pretty much anything:
+ * - directives like '.include' or '.if',
+ * - suffix rules like '.c.o:',
+ * - dependencies for filenames that start with '.',
+ * - variable assignments like '.tmp=value'.
+ */
static Boolean
ParseDirective(char *line)
{
- char *cp;
-
- if (*line == '.') {
- /*
- * Lines that begin with '.' can be pretty much anything:
- * - directives like '.include' or '.if',
- * - suffix rules like '.c.o:',
- * - dependencies for filenames that start with '.',
- * - variable assignments like '.tmp=value'.
- */
- cp = line + 1;
+ char *cp = line + 1;
+
+ pp_skip_whitespace(&cp);
+ if (IsInclude(cp, FALSE)) {
+ ParseDoInclude(cp);
+ return TRUE;
+ }
+
+ if (strncmp(cp, "undef", 5) == 0) {
+ const char *varname;
+ cp += 5;
pp_skip_whitespace(&cp);
- if (IsInclude(cp, FALSE)) {
- ParseDoInclude(cp);
+ varname = cp;
+ for (; !ch_isspace(*cp) && *cp != '\0'; cp++)
+ continue;
+ *cp = '\0';
+ Var_Delete(varname, VAR_GLOBAL);
+ /* TODO: undefine all variables, not only the first */
+ /* TODO: use Str_Words, like everywhere else */
+ return TRUE;
+ } else if (strncmp(cp, "export", 6) == 0) {
+ cp += 6;
+ pp_skip_whitespace(&cp);
+ Var_Export(cp);
+ return TRUE;
+ } else if (strncmp(cp, "unexport", 8) == 0) {
+ Var_UnExport(cp);
+ return TRUE;
+ } else if (strncmp(cp, "info", 4) == 0 ||
+ strncmp(cp, "error", 5) == 0 ||
+ strncmp(cp, "warning", 7) == 0) {
+ if (ParseMessage(cp))
return TRUE;
- }
- if (strncmp(cp, "undef", 5) == 0) {
- const char *varname;
- cp += 5;
- pp_skip_whitespace(&cp);
- varname = cp;
- for (; !ch_isspace(*cp) && *cp != '\0'; cp++)
- continue;
- *cp = '\0';
- Var_Delete(varname, VAR_GLOBAL);
- /* TODO: undefine all variables, not only the first */
- /* TODO: use Str_Words, like everywhere else */
- return TRUE;
- } else if (strncmp(cp, "export", 6) == 0) {
- cp += 6;
- pp_skip_whitespace(&cp);
- Var_Export(cp);
- return TRUE;
- } else if (strncmp(cp, "unexport", 8) == 0) {
- Var_UnExport(cp);
- return TRUE;
- } else if (strncmp(cp, "info", 4) == 0 ||
- strncmp(cp, "error", 5) == 0 ||
- strncmp(cp, "warning", 7) == 0) {
- if (ParseMessage(cp))
- return TRUE;
- }
}
return FALSE;
}
@@ -3105,7 +3103,7 @@
static void
ParseLine(char *line)
{
- if (ParseDirective(line))
+ if (line[0] == '.' && ParseDirective(line))
return;
if (*line == '\t') {
Home |
Main Index |
Thread Index |
Old Index