Module Name: src Committed By: rillig Date: Sun Mar 14 15:19:15 UTC 2021
Modified Files: src/usr.bin/make: var.c Log Message: make: separate parsing and evaluating for modifiers ':Q' and ':q' No functional change. To generate a diff of this commit: cvs rdiff -u -r1.860 -r1.861 src/usr.bin/make/var.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/var.c diff -u src/usr.bin/make/var.c:1.860 src/usr.bin/make/var.c:1.861 --- src/usr.bin/make/var.c:1.860 Sun Mar 14 15:15:28 2021 +++ src/usr.bin/make/var.c Sun Mar 14 15:19:15 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.860 2021/03/14 15:15:28 rillig Exp $ */ +/* $NetBSD: var.c,v 1.861 2021/03/14 15:19:15 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -140,7 +140,7 @@ #include "metachar.h" /* "@(#)var.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: var.c,v 1.860 2021/03/14 15:15:28 rillig Exp $"); +MAKE_RCSID("$NetBSD: var.c,v 1.861 2021/03/14 15:19:15 rillig Exp $"); typedef enum VarFlags { VFL_NONE = 0, @@ -2924,13 +2924,14 @@ ApplyModifier_Regex(const char **pp, App static ApplyModifierResult ApplyModifier_Quote(const char **pp, ApplyModifiersState *st) { - if (IsDelimiter((*pp)[1], st)) { - Expr_SetValueOwn(st->expr, - VarQuote(st->expr->value.str, **pp == 'q')); - (*pp)++; - return AMR_OK; - } else + Boolean quoteDollar = **pp == 'q'; + if (!IsDelimiter((*pp)[1], st)) return AMR_UNKNOWN; + (*pp)++; + + Expr_SetValueOwn(st->expr, VarQuote(st->expr->value.str, quoteDollar)); + + return AMR_OK; } /*ARGSUSED*/