Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/usr.bin/make/var.c,v rcsdiff: /ftp/cvs/cvsroot/src/usr.bin/make/var.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.434 retrieving revision 1.435 diff -u -p -r1.434 -r1.435 --- src/usr.bin/make/var.c 2020/08/08 19:13:39 1.434 +++ src/usr.bin/make/var.c 2020/08/09 02:53:21 1.435 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $ */ +/* $NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $"); +__RCSID("$NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $"); #endif #endif /* not lint */ #endif @@ -2979,6 +2979,7 @@ ApplyModifier_SysV(const char **pp, Appl #endif /* Apply any modifiers (such as :Mpattern or :@var@loop@ or :Q or ::=value). */ + static char * ApplyModifiers( const char **pp, /* the parsing position, updated upon return */ @@ -2991,9 +2992,18 @@ ApplyModifiers( void ** const freePtr /* free this after using the return value */ ) { ApplyModifiersState st = { - startc, endc, v, ctxt, eflags, - val, NULL, '\0', ' ', FALSE - }; + .startc = startc, + .endc = endc, + .v = v, + .ctxt = ctxt, + .eflags = eflags, + .val = val, + .newVal = NULL, + .missing_delim = '\0', + .sep = ' ', + .oneBigWord = FALSE + } + ; const char *p; const char *mod; ApplyModifierResult res; @@ -3054,8 +3064,8 @@ ApplyModifiers( mod = p; if (DEBUG(VAR)) { - char vflags_str[VarFlags_ToStringSize]; - char eflags_str[VarEvalFlags_ToStringSize]; + char vflags_str[2048]; + char eflags_str[2048]; Boolean is_single_char = mod[0] != '\0' && (mod[1] == endc || mod[1] == ':'); @@ -3201,8 +3211,8 @@ ApplyModifiers( goto bad_modifier; if (DEBUG(VAR)) { - char eflags_str[VarEvalFlags_ToStringSize]; - char vflags_str[VarFlags_ToStringSize]; + char eflags_str[2048]; + char vflags_str[2048]; const char *q = st.newVal == var_Error ? "" : "\""; const char *newVal = st.newVal == var_Error ? "error" : st.newVal; @@ -3338,7 +3348,7 @@ Var_Parse(const char * const str, GNode const char *extramodifiers; Var *v; char *nstr; - char eflags_str[VarEvalFlags_ToStringSize]; + char eflags_str[2048]; VAR_DEBUG("%s: %s with %s\n", __func__, str, Enum_ToString(eflags_str, sizeof eflags_str, eflags,