diff --git a/main.c b/main.c index 25a628ba..c06f56af 100644 --- a/main.c +++ b/main.c @@ -1165,6 +1165,15 @@ arg_assign(char *arg, bool initing) fatal(_("cannot use function `%s' as variable name"), arg); } + /* Assignment operands in which the right-hand side + * contains a literal newline are not permitted. + * Specified in IEEE Std 1003.1, implemented in BWK awk. + */ + if (do_traditional) + for (cp2 = cp; *cp2; cp2++) + if (*cp2 == '\n') + fatal(_("newline in string `%s' not permitted in compatibility mode"), cp); + /* * BWK awk expands escapes inside assignments. * This makes sense, so we do it too.