aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--awkgram.c2
-rw-r--r--awkgram.y2
3 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index cedd63fe..d92e23af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (check_for_bad): Bitwise-and the bad character with 0xFF
+ to avoid sign extension into a large integer.
+
2014-09-23 Arnold D. Robbins <arnold@skeeve.com>
* awkgram.y (yylex): Don't check for junk characters inside
diff --git a/awkgram.c b/awkgram.c
index 06279861..63439b36 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -5154,7 +5154,7 @@ check_bad_char(int c)
}
if (iscntrl(c) && ! isspace(c))
- fatal(_("PEBKAC error: invalid character '\\%03o' in source code"), c);
+ fatal(_("PEBKAC error: invalid character '\\%03o' in source code"), c & 0xFF);
}
/* nextc --- get the next input character */
diff --git a/awkgram.y b/awkgram.y
index 57d97098..c59547eb 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -2815,7 +2815,7 @@ check_bad_char(int c)
}
if (iscntrl(c) && ! isspace(c))
- fatal(_("PEBKAC error: invalid character '\\%03o' in source code"), c);
+ fatal(_("PEBKAC error: invalid character '\\%03o' in source code"), c & 0xFF);
}
/* nextc --- get the next input character */