aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2018-08-02 18:20:53 +0300
committerArnold D. Robbins <arnold@skeeve.com>2018-08-02 18:20:53 +0300
commit23356c2d522bf17b4acb314f7aa6503a62db2765 (patch)
tree12e82b306c973dfd1b361ca87de47967424d3ddf
parentc1f670b26671cc8d60d967bbcb42cb8deb3baf2b (diff)
downloadegawk-23356c2d522bf17b4acb314f7aa6503a62db2765.tar.gz
egawk-23356c2d522bf17b4acb314f7aa6503a62db2765.tar.bz2
egawk-23356c2d522bf17b4acb314f7aa6503a62db2765.zip
Add lint warning for escaped newlines.
-rw-r--r--ChangeLog6
-rw-r--r--awkgram.c2
-rw-r--r--awkgram.y2
-rw-r--r--node.c2
4 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 68210057..1ce666c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-08-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (yylex): Add lint warning upon encountering escaped
+ physical newlines in a string.
+ * node.c (make_str_node): Ditto.
+
2018-07-31 Arnold D. Robbins <arnold@skeeve.com>
* interpret.h (unfield): Add a call to force_string() on
diff --git a/awkgram.c b/awkgram.c
index 10c55fa4..3abb2e16 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -6274,6 +6274,8 @@ retry:
if (c == '\n') {
if (do_posix)
fatal(_("POSIX does not allow physical newlines in string values"));
+ else if (do_lint)
+ lintwarn(_("backslash string continuation is not portable"));
sourceline++;
continue;
}
diff --git a/awkgram.y b/awkgram.y
index f3d3b38b..995b8bda 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -3854,6 +3854,8 @@ retry:
if (c == '\n') {
if (do_posix)
fatal(_("POSIX does not allow physical newlines in string values"));
+ else if (do_lint)
+ lintwarn(_("backslash string continuation is not portable"));
sourceline++;
continue;
}
diff --git a/node.c b/node.c
index 4ad41ef1..2f9e6d4c 100644
--- a/node.c
+++ b/node.c
@@ -450,7 +450,7 @@ make_str_node(const char *s, size_t len, int flags)
c = parse_escape(&pf);
if (c < 0) {
if (do_lint)
- lintwarn(_("backslash at end of string"));
+ lintwarn(_("backslash string continuation is not portable"));
if ((flags & ELIDE_BACK_NL) != 0)
continue;
c = '\\';