Module Name: src
Committed By: rillig
Date: Sun Dec 13 01:07:54 UTC 2020
Modified Files:
src/usr.bin/make: parse.c
src/usr.bin/make/unit-tests: directive-error.mk directive-export-env.mk
directive-export-literal.mk directive-export.exp
directive-export.mk directive-info.exp directive-info.mk
directive-misspellings.exp directive-misspellings.mk
directive-undef.exp directive-undef.mk directive-unexport.exp
directive-unexport.mk directive-warning.exp directive-warning.mk
Log Message:
make(1): error out on misspelled directives
Before, make accepted misspellings like .warnings, .export-literally and
a few others, all of which are unlikely to occur in practice. See the
test directive-misspellings.mk for further details.
To generate a diff of this commit:
cvs rdiff -u -r1.474 -r1.475 src/usr.bin/make/parse.c
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/directive-error.mk \
src/usr.bin/make/unit-tests/directive-undef.exp \
src/usr.bin/make/unit-tests/directive-warning.exp
cvs rdiff -u -r1.3 -r1.4 src/usr.bin/make/unit-tests/directive-export-env.mk \
src/usr.bin/make/unit-tests/directive-export.exp \
src/usr.bin/make/unit-tests/directive-info.exp \
src/usr.bin/make/unit-tests/directive-warning.mk
cvs rdiff -u -r1.6 -r1.7 \
src/usr.bin/make/unit-tests/directive-export-literal.mk \
src/usr.bin/make/unit-tests/directive-unexport.mk
cvs rdiff -u -r1.5 -r1.6 src/usr.bin/make/unit-tests/directive-export.mk \
src/usr.bin/make/unit-tests/directive-undef.mk \
src/usr.bin/make/unit-tests/directive-unexport.exp
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/unit-tests/directive-info.mk
cvs rdiff -u -r1.1 -r1.2 \
src/usr.bin/make/unit-tests/directive-misspellings.exp \
src/usr.bin/make/unit-tests/directive-misspellings.mk
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/parse.c
diff -u src/usr.bin/make/parse.c:1.474 src/usr.bin/make/parse.c:1.475
--- src/usr.bin/make/parse.c:1.474 Sat Dec 12 21:35:21 2020
+++ src/usr.bin/make/parse.c Sun Dec 13 01:07:54 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.474 2020/12/12 21:35:21 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.475 2020/12/13 01:07:54 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.474 2020/12/12 21:35:21 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.475 2020/12/13 01:07:54 rillig Exp $");
/* types and constants */
@@ -726,26 +726,20 @@ Parse_Error(ParseErrorLevel type, const
/* Parse and handle a .info, .warning or .error directive.
* For an .error directive, immediately exit. */
static Boolean
-ParseMessage(const char *directive)
+ParseMessage(ParseErrorLevel level, const char *umsg)
{
- const char *p = directive;
- ParseErrorLevel mtype = *p == 'i' ? PARSE_INFO :
- *p == 'w' ? PARSE_WARNING : PARSE_FATAL;
- char *arg;
+ char *xmsg;
- while (ch_isalpha(*p))
- p++;
- if (!ch_isspace(*p))
+ if (umsg[0] == '\0')
return FALSE; /* missing argument */
- cpp_skip_whitespace(&p);
- (void)Var_Subst(p, VAR_CMDLINE, VARE_WANTRES, &arg);
+ (void)Var_Subst(umsg, VAR_CMDLINE, VARE_WANTRES, &xmsg);
/* TODO: handle errors */
- Parse_Error(mtype, "%s", arg);
- free(arg);
+ Parse_Error(level, "%s", xmsg);
+ free(xmsg);
- if (mtype == PARSE_FATAL) {
+ if (level == PARSE_FATAL) {
PrintOnError(NULL, NULL);
exit(1);
}
@@ -2949,6 +2943,12 @@ ParseLine_ShellCommand(const char *p)
}
}
+MAKE_INLINE Boolean
+IsDirective(const char *dir, size_t dirlen, const char *name)
+{
+ return dirlen == strlen(name) && memcmp(dir, name, dirlen) == 0;
+}
+
/*
* Lines that begin with '.' can be pretty much anything:
* - directives like '.include' or '.if',
@@ -2960,6 +2960,8 @@ static Boolean
ParseDirective(char *line)
{
char *cp = line + 1;
+ const char *dir, *arg;
+ size_t dirlen;
pp_skip_whitespace(&cp);
if (IsInclude(cp, FALSE)) {
@@ -2967,30 +2969,42 @@ ParseDirective(char *line)
return TRUE;
}
- if (strncmp(cp, "undef", 5) == 0) {
- const char *varname;
- cp += 5;
- pp_skip_whitespace(&cp);
- varname = cp;
+ dir = cp;
+ while (ch_isalpha(*cp) || *cp == '-')
+ cp++;
+ dirlen = (size_t)(cp - dir);
+
+ if (*cp != '\0' && !ch_isspace(*cp))
+ return FALSE;
+
+ pp_skip_whitespace(&cp);
+ arg = cp;
+
+ if (IsDirective(dir, dirlen, "undef")) {
for (; !ch_isspace(*cp) && *cp != '\0'; cp++)
continue;
*cp = '\0';
- Var_Delete(varname, VAR_GLOBAL);
+ Var_Delete(arg, 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);
+ } else if (IsDirective(dir, dirlen, "export") ||
+ IsDirective(dir, dirlen, "export-env") ||
+ IsDirective(dir, dirlen, "export-literal")) {
+ Var_Export(dir + strlen("export"));
return TRUE;
- } else if (strncmp(cp, "unexport", 8) == 0) {
- Var_UnExport(cp);
+ } else if (IsDirective(dir, dirlen, "unexport") ||
+ IsDirective(dir, dirlen, "unexport-env")) {
+ Var_UnExport(dir);
return TRUE;
- } else if (strncmp(cp, "info", 4) == 0 ||
- strncmp(cp, "error", 5) == 0 ||
- strncmp(cp, "warning", 7) == 0) {
- if (ParseMessage(cp))
+ } else if (IsDirective(dir, dirlen, "info")) {
+ if (ParseMessage(PARSE_INFO, arg))
+ return TRUE;
+ } else if (IsDirective(dir, dirlen, "warning")) {
+ if (ParseMessage(PARSE_WARNING, arg))
+ return TRUE;
+ } else if (IsDirective(dir, dirlen, "error")) {
+ if (ParseMessage(PARSE_FATAL, arg))
return TRUE;
}
return FALSE;
Index: src/usr.bin/make/unit-tests/directive-error.mk
diff -u src/usr.bin/make/unit-tests/directive-error.mk:1.2 src/usr.bin/make/unit-tests/directive-error.mk:1.3
--- src/usr.bin/make/unit-tests/directive-error.mk:1.2 Sun Aug 16 14:25:16 2020
+++ src/usr.bin/make/unit-tests/directive-error.mk Sun Dec 13 01:07:54 2020
@@ -1,6 +1,8 @@
-# $NetBSD: directive-error.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: directive-error.mk,v 1.3 2020/12/13 01:07:54 rillig Exp $
#
-# Tests for the .error directive.
+# Tests for the .error directive, which prints an error message and exits
+# immediately, unlike other "fatal" parse errors, which continue to parse
+# until the end of the current top-level makefile.
# TODO: Implementation
Index: src/usr.bin/make/unit-tests/directive-undef.exp
diff -u src/usr.bin/make/unit-tests/directive-undef.exp:1.2 src/usr.bin/make/unit-tests/directive-undef.exp:1.3
--- src/usr.bin/make/unit-tests/directive-undef.exp:1.2 Tue Nov 3 17:17:31 2020
+++ src/usr.bin/make/unit-tests/directive-undef.exp Sun Dec 13 01:07:54 2020
@@ -1,4 +1 @@
-make: "directive-undef.mk" line 16: Unknown directive "unde"
-make: Fatal errors encountered -- cannot continue
-make: stopped in unit-tests
-exit status 1
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-warning.exp
diff -u src/usr.bin/make/unit-tests/directive-warning.exp:1.2 src/usr.bin/make/unit-tests/directive-warning.exp:1.3
--- src/usr.bin/make/unit-tests/directive-warning.exp:1.2 Tue Nov 3 17:17:31 2020
+++ src/usr.bin/make/unit-tests/directive-warning.exp Sun Dec 13 01:07:54 2020
@@ -5,7 +5,7 @@ make: "directive-warning.mk" line 10: Un
make: "directive-warning.mk" line 11: Unknown directive "warning"
make: "directive-warning.mk" line 12: warning: message
make: "directive-warning.mk" line 13: Unknown directive "warnings"
-make: "directive-warning.mk" line 14: warning: messages
+make: "directive-warning.mk" line 14: Unknown directive "warnings"
make: Fatal errors encountered -- cannot continue
make: stopped in unit-tests
exit status 1
Index: src/usr.bin/make/unit-tests/directive-export-env.mk
diff -u src/usr.bin/make/unit-tests/directive-export-env.mk:1.3 src/usr.bin/make/unit-tests/directive-export-env.mk:1.4
--- src/usr.bin/make/unit-tests/directive-export-env.mk:1.3 Tue Nov 3 17:17:31 2020
+++ src/usr.bin/make/unit-tests/directive-export-env.mk Sun Dec 13 01:07:54 2020
@@ -1,12 +1,10 @@
-# $NetBSD: directive-export-env.mk,v 1.3 2020/11/03 17:17:31 rillig Exp $
+# $NetBSD: directive-export-env.mk,v 1.4 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .export-env directive.
# TODO: Implementation
-.export-en # oops: misspelled
.export-env
-.export-environment # oops: misspelled
all:
@:;
Index: src/usr.bin/make/unit-tests/directive-export.exp
diff -u src/usr.bin/make/unit-tests/directive-export.exp:1.3 src/usr.bin/make/unit-tests/directive-export.exp:1.4
--- src/usr.bin/make/unit-tests/directive-export.exp:1.3 Sat Dec 12 19:31:18 2020
+++ src/usr.bin/make/unit-tests/directive-export.exp Sun Dec 13 01:07:54 2020
@@ -1,4 +1 @@
-make: "directive-export.mk" line 29: Unknown directive "expor"
-make: Fatal errors encountered -- cannot continue
-make: stopped in unit-tests
-exit status 1
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-info.exp
diff -u src/usr.bin/make/unit-tests/directive-info.exp:1.3 src/usr.bin/make/unit-tests/directive-info.exp:1.4
--- src/usr.bin/make/unit-tests/directive-info.exp:1.3 Sun Nov 15 11:57:00 2020
+++ src/usr.bin/make/unit-tests/directive-info.exp Sun Dec 13 01:07:54 2020
@@ -4,7 +4,7 @@ make: "directive-info.mk" line 9: Unknow
make: "directive-info.mk" line 10: message
make: "directive-info.mk" line 11: indented message
make: "directive-info.mk" line 12: Unknown directive "information"
-make: "directive-info.mk" line 13: message
+make: "directive-info.mk" line 13: Unknown directive "information"
make: "directive-info.mk" line 18: Unknown directive "info"
make: "directive-info.mk" line 19: Unknown directive "info"
make: "directive-info.mk" line 22: Unknown directive "info-message"
Index: src/usr.bin/make/unit-tests/directive-warning.mk
diff -u src/usr.bin/make/unit-tests/directive-warning.mk:1.3 src/usr.bin/make/unit-tests/directive-warning.mk:1.4
--- src/usr.bin/make/unit-tests/directive-warning.mk:1.3 Tue Nov 3 17:17:31 2020
+++ src/usr.bin/make/unit-tests/directive-warning.mk Sun Dec 13 01:07:54 2020
@@ -1,4 +1,4 @@
-# $NetBSD: directive-warning.mk,v 1.3 2020/11/03 17:17:31 rillig Exp $
+# $NetBSD: directive-warning.mk,v 1.4 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .warning directive.
@@ -11,7 +11,7 @@
.warning # oops: should be "missing argument"
.warning message # ok
.warnings # misspelled
-.warnings messages # oops
+.warnings messages # Accepted before 2020-12-13 01:??:??.
all:
@:;
Index: src/usr.bin/make/unit-tests/directive-export-literal.mk
diff -u src/usr.bin/make/unit-tests/directive-export-literal.mk:1.6 src/usr.bin/make/unit-tests/directive-export-literal.mk:1.7
--- src/usr.bin/make/unit-tests/directive-export-literal.mk:1.6 Tue Nov 3 17:17:31 2020
+++ src/usr.bin/make/unit-tests/directive-export-literal.mk Sun Dec 13 01:07:54 2020
@@ -1,4 +1,4 @@
-# $NetBSD: directive-export-literal.mk,v 1.6 2020/11/03 17:17:31 rillig Exp $
+# $NetBSD: directive-export-literal.mk,v 1.7 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .export-literal directive, which exports a variable value
# without expanding it.
@@ -7,9 +7,7 @@ UT_VAR= value with ${UNEXPANDED} expres
.export-literal UT_VAR
-.export-litera # oops: misspelled
.export-literal # oops: missing argument
-.export-literally # oops: misspelled
all:
@echo "$$UT_VAR"
Index: src/usr.bin/make/unit-tests/directive-unexport.mk
diff -u src/usr.bin/make/unit-tests/directive-unexport.mk:1.6 src/usr.bin/make/unit-tests/directive-unexport.mk:1.7
--- src/usr.bin/make/unit-tests/directive-unexport.mk:1.6 Sat Dec 12 18:11:42 2020
+++ src/usr.bin/make/unit-tests/directive-unexport.mk Sun Dec 13 01:07:54 2020
@@ -1,9 +1,12 @@
-# $NetBSD: directive-unexport.mk,v 1.6 2020/12/12 18:11:42 rillig Exp $
+# $NetBSD: directive-unexport.mk,v 1.7 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .unexport directive.
#
# Before 2020-12-13, misspelled directives like ".unexporting" or
# ".unexport-en" had not been detected properly.
+#
+# See also:
+# directive-misspellings.mk
# First, export 3 variables.
UT_A= a
@@ -24,9 +27,7 @@ UT_C= c
.info ${:!env|sort|grep '^UT_'!}
.info ${.MAKE.EXPORTED}
-.unexpor # misspelled
.unexport # oops: missing argument
-.unexporting works # misspelled
all:
@:;
Index: src/usr.bin/make/unit-tests/directive-export.mk
diff -u src/usr.bin/make/unit-tests/directive-export.mk:1.5 src/usr.bin/make/unit-tests/directive-export.mk:1.6
--- src/usr.bin/make/unit-tests/directive-export.mk:1.5 Sat Dec 12 19:31:18 2020
+++ src/usr.bin/make/unit-tests/directive-export.mk Sun Dec 13 01:07:54 2020
@@ -1,6 +1,9 @@
-# $NetBSD: directive-export.mk,v 1.5 2020/12/12 19:31:18 rillig Exp $
+# $NetBSD: directive-export.mk,v 1.6 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .export directive.
+#
+# See also:
+# directive-misspellings.mk
# TODO: Implementation
@@ -25,11 +28,8 @@ VAR= value $$ ${INDIRECT}
. error
.endif
-# Tests for parsing the .export directive.
-.expor # misspelled
-.export # oops: missing argument
-.export VARNAME
-.exporting works # oops: misspelled
+# No argument means to export all variables.
+.export
all:
@:;
Index: src/usr.bin/make/unit-tests/directive-undef.mk
diff -u src/usr.bin/make/unit-tests/directive-undef.mk:1.5 src/usr.bin/make/unit-tests/directive-undef.mk:1.6
--- src/usr.bin/make/unit-tests/directive-undef.mk:1.5 Tue Nov 3 17:17:31 2020
+++ src/usr.bin/make/unit-tests/directive-undef.mk Sun Dec 13 01:07:54 2020
@@ -1,6 +1,9 @@
-# $NetBSD: directive-undef.mk,v 1.5 2020/11/03 17:17:31 rillig Exp $
+# $NetBSD: directive-undef.mk,v 1.6 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .undef directive.
+#
+# See also:
+# directive-misspellings.mk
# As of 2020-07-28, .undef only undefines the first variable.
# All further variable names are silently ignored.
@@ -13,9 +16,7 @@
. warning $1$2$3
.endif
-.unde # misspelled
.undef # oops: missing argument
-.undefined # oops: misspelled
all:
@:;
Index: src/usr.bin/make/unit-tests/directive-unexport.exp
diff -u src/usr.bin/make/unit-tests/directive-unexport.exp:1.5 src/usr.bin/make/unit-tests/directive-unexport.exp:1.6
--- src/usr.bin/make/unit-tests/directive-unexport.exp:1.5 Sat Dec 12 18:11:42 2020
+++ src/usr.bin/make/unit-tests/directive-unexport.exp Sun Dec 13 01:07:54 2020
@@ -1,9 +1,5 @@
-make: "directive-unexport.mk" line 15: UT_A=a UT_B=b UT_C=c
-make: "directive-unexport.mk" line 16: UT_A UT_B UT_C
-make: "directive-unexport.mk" line 24: UT_A=a UT_B=b UT_C=c
-make: "directive-unexport.mk" line 25:
-make: "directive-unexport.mk" line 27: Unknown directive "unexpor"
-make: "directive-unexport.mk" line 29: Unknown directive "unexporting works"
-make: Fatal errors encountered -- cannot continue
-make: stopped in unit-tests
-exit status 1
+make: "directive-unexport.mk" line 18: UT_A=a UT_B=b UT_C=c
+make: "directive-unexport.mk" line 19: UT_A UT_B UT_C
+make: "directive-unexport.mk" line 27: UT_A=a UT_B=b UT_C=c
+make: "directive-unexport.mk" line 28:
+exit status 0
Index: src/usr.bin/make/unit-tests/directive-info.mk
diff -u src/usr.bin/make/unit-tests/directive-info.mk:1.4 src/usr.bin/make/unit-tests/directive-info.mk:1.5
--- src/usr.bin/make/unit-tests/directive-info.mk:1.4 Sun Nov 15 11:57:00 2020
+++ src/usr.bin/make/unit-tests/directive-info.mk Sun Dec 13 01:07:54 2020
@@ -1,4 +1,4 @@
-# $NetBSD: directive-info.mk,v 1.4 2020/11/15 11:57:00 rillig Exp $
+# $NetBSD: directive-info.mk,v 1.5 2020/12/13 01:07:54 rillig Exp $
#
# Tests for the .info directive.
@@ -10,7 +10,7 @@
.info message
.info indented message
.information
-.information message # oops: misspelled
+.information message # Accepted before 2020-12-13 01:??:??.
.info.man: # not a message, but possibly a suffix rule
# Even if lines would have trailing whitespace, this would be trimmed by
Index: src/usr.bin/make/unit-tests/directive-misspellings.exp
diff -u src/usr.bin/make/unit-tests/directive-misspellings.exp:1.1 src/usr.bin/make/unit-tests/directive-misspellings.exp:1.2
--- src/usr.bin/make/unit-tests/directive-misspellings.exp:1.1 Sun Dec 13 00:46:25 2020
+++ src/usr.bin/make/unit-tests/directive-misspellings.exp Sun Dec 13 01:07:54 2020
@@ -5,6 +5,12 @@ make: "directive-misspellings.mk" line 1
make: "directive-misspellings.mk" line 18: Unknown directive "errox"
make: "directive-misspellings.mk" line 22: Unknown directive "expor"
make: "directive-misspellings.mk" line 24: Unknown directive "exporx"
+make: "directive-misspellings.mk" line 25: Unknown directive "exports"
+make: "directive-misspellings.mk" line 27: Unknown directive "export-en"
+make: "directive-misspellings.mk" line 30: Unknown directive "export-environment"
+make: "directive-misspellings.mk" line 32: Unknown directive "export-litera"
+make: "directive-misspellings.mk" line 34: Unknown directive "export-literax"
+make: "directive-misspellings.mk" line 35: Unknown directive "export-literally"
make: "directive-misspellings.mk" line 37: Unknown directive "-includ"
make: "directive-misspellings.mk" line 39: Unknown directive "-includx"
make: "directive-misspellings.mk" line 40: .include filename must be delimited by '"' or '<'
@@ -15,15 +21,16 @@ make: "directive-misspellings.mk" line 4
make: "directive-misspellings.mk" line 47: Unknown directive "inf"
make: "directive-misspellings.mk" line 48: msg
make: "directive-misspellings.mk" line 49: Unknown directive "infx"
-make: "directive-misspellings.mk" line 50: msg
+make: "directive-misspellings.mk" line 50: Unknown directive "infos"
make: "directive-misspellings.mk" line 52: Unknown directive "sinclud"
make: "directive-misspellings.mk" line 54: Unknown directive "sincludx"
make: "directive-misspellings.mk" line 55: .include filename must be delimited by '"' or '<'
make: "directive-misspellings.mk" line 57: Unknown directive "unde"
make: "directive-misspellings.mk" line 59: Unknown directive "undex"
+make: "directive-misspellings.mk" line 60: Unknown directive "undefs"
make: "directive-misspellings.mk" line 62: Unknown directive "unexpor"
make: "directive-misspellings.mk" line 64: Unknown directive "unexporx"
-make: "directive-misspellings.mk" line 65: Unknown directive "unexports varname"
+make: "directive-misspellings.mk" line 65: Unknown directive "unexports"
make: "directive-misspellings.mk" line 67: Unknown directive "unexport-en"
make: "directive-misspellings.mk" line 69: The directive .unexport-env does not take arguments
make: "directive-misspellings.mk" line 70: Unknown directive "unexport-enx"
@@ -32,7 +39,7 @@ make: "directive-misspellings.mk" line 7
make: "directive-misspellings.mk" line 74: Unknown directive "warnin"
make: "directive-misspellings.mk" line 75: warning: msg
make: "directive-misspellings.mk" line 76: Unknown directive "warninx"
-make: "directive-misspellings.mk" line 77: warning: msg
+make: "directive-misspellings.mk" line 77: Unknown directive "warnings"
make: Fatal errors encountered -- cannot continue
make: stopped in unit-tests
exit status 1
Index: src/usr.bin/make/unit-tests/directive-misspellings.mk
diff -u src/usr.bin/make/unit-tests/directive-misspellings.mk:1.1 src/usr.bin/make/unit-tests/directive-misspellings.mk:1.2
--- src/usr.bin/make/unit-tests/directive-misspellings.mk:1.1 Sun Dec 13 00:46:25 2020
+++ src/usr.bin/make/unit-tests/directive-misspellings.mk Sun Dec 13 01:07:54 2020
@@ -1,4 +1,4 @@
-# $NetBSD: directive-misspellings.mk,v 1.1 2020/12/13 00:46:25 rillig Exp $
+# $NetBSD: directive-misspellings.mk,v 1.2 2020/12/13 01:07:54 rillig Exp $
#
# Tests for misspelled directives.
#
@@ -22,24 +22,24 @@
.expor varname
.export varname
.exporx varname
-.exports varname # XXX: undetected misspelling
+.exports varname # Accepted before 2020-12-13 01:??:??.
-.export-en # XXX: undetected misspelling
+.export-en # Accepted before 2020-12-13 01:??:??.
.export-env
.export-env extra argument # XXX: undetected extra argument
-.export-environment # XXX: undetected misspelling
+.export-environment # Accepted before 2020-12-13 01:??:??.
-.export-litera varname # XXX: undetected misspelling
-.export-literal varname
-.export-literax varname # XXX: undetected misspelling
-.export-literally varname # XXX: undetected misspelling
+.export-litera varname # Accepted before 2020-12-13 01:??:??.
+.export-literal varname
+.export-literax varname # Accepted before 2020-12-13 01:??:??.
+.export-literally varname # Accepted before 2020-12-13 01:??:??.
.-includ "file"
.-include "file"
.-includx "file"
.-includes "file" # XXX: the 's' is not meant to be a filename
-.includ "file"
+.includ "file"
.include "file"
.includx "file"
.includex "file" # XXX: the 's' is not meant to be a filename
@@ -47,7 +47,7 @@
.inf msg
.info msg
.infx msg
-.infos msg # XXX: undetected misspelling
+.infos msg # Accepted before 2020-12-13 01:??:??.
.sinclud "file"
.sinclude "file"
@@ -57,7 +57,7 @@
.unde varname
.undef varname
.undex varname
-.undefs varname # XXX: undetected misspelling
+.undefs varname # Accepted before 2020-12-13 01:??:??.
.unexpor varname
.unexport varname
@@ -74,6 +74,6 @@
.warnin msg
.warning msg
.warninx msg
-.warnings msg # XXX: undetected misspelling
+.warnings msg # Accepted before 2020-12-13 01:??:??.
all: