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): compute escaping flags for .for values...
details: https://anonhg.NetBSD.org/src/rev/d38c36d94571
branches: trunk
changeset: 956276:d38c36d94571
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Oct 25 14:58:23 2020 +0000
description:
make(1): compute escaping flags for .for values when needed
Before, they were computed when parsing the .for line, which was
unnecessarily early.
diffstat:
usr.bin/make/for.c | 16 ++++++----------
1 files changed, 6 insertions(+), 10 deletions(-)
diffs (65 lines):
diff -r 968433dd30a7 -r d38c36d94571 usr.bin/make/for.c
--- a/usr.bin/make/for.c Sun Oct 25 14:55:23 2020 +0000
+++ b/usr.bin/make/for.c Sun Oct 25 14:58:23 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: for.c,v 1.99 2020/10/25 14:29:13 rillig Exp $ */
+/* $NetBSD: for.c,v 1.100 2020/10/25 14:58:23 rillig Exp $ */
/*
* Copyright (c) 1992, The Regents of the University of California.
@@ -60,7 +60,7 @@
#include "make.h"
/* "@(#)for.c 8.1 (Berkeley) 6/6/93" */
-MAKE_RCSID("$NetBSD: for.c,v 1.99 2020/10/25 14:29:13 rillig Exp $");
+MAKE_RCSID("$NetBSD: for.c,v 1.100 2020/10/25 14:58:23 rillig Exp $");
typedef enum ForEscapes {
FOR_SUB_ESCAPE_CHAR = 0x0001,
@@ -78,8 +78,7 @@
/* One of the items to the right of the "in" in a .for loop. */
typedef struct ForItem {
- char *value; /* unexpanded */
- ForEscapes escapes;
+ char *value;
} ForItem;
/*
@@ -114,11 +113,10 @@
}
static void
-ForAddItem(For *f, const char *value, ForEscapes escapes)
+ForAddItem(For *f, const char *value)
{
ForItem *item = Vector_Push(&f->items);
item->value = bmake_strdup(value);
- item->escapes = escapes;
}
static void
@@ -270,13 +268,11 @@
for (i = 0; i < words.len; i++) {
const char *word = words.words[i];
- ForEscapes escapes;
if (word[0] == '\0')
continue; /* .for var in ${:U} */
- escapes = GetEscapes(word);
- ForAddItem(new_for, word, escapes);
+ ForAddItem(new_for, word);
}
}
@@ -370,7 +366,7 @@
for_substitute(Buffer *cmds, ForItem *forItem, char ech)
{
const char *item = forItem->value;
- ForEscapes escapes = forItem->escapes;
+ ForEscapes escapes = GetEscapes(item);
char ch;
/* If there were no escapes, or the only escape is the other variable
Home |
Main Index |
Thread Index |
Old Index