summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y15
1 files changed, 3 insertions, 12 deletions
diff --git a/parse.y b/parse.y
index b94f1c0c61..c09fa4102e 100644
--- a/parse.y
+++ b/parse.y
@@ -2324,20 +2324,11 @@ read_escape()
case '0': case '1': case '2': case '3': /* octal constant */
case '4': case '5': case '6': case '7':
{
- char buf[3];
- int i;
+ int numlen;
pushback(c);
- for (i=0; i<3; i++) {
- c = nextc();
- if (c == -1) goto eof;
- if (c < '0' || '7' < c) {
- pushback(c);
- break;
- }
- buf[i] = c;
- }
- c = scan_oct(buf, i, &i);
+ c = scan_oct(lex_p, 3, &numlen);
+ lex_p += numlen;
}
return c;