summaryrefslogtreecommitdiffhomepage
path: root/lexer.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2020-11-30 19:23:01 +0100
committerJo-Philipp Wich <jo@mein.io>2020-11-30 19:23:01 +0100
commit7caf3331ba7d8f0dd91659e4001c9d8256bf4558 (patch)
treeba6a32a3eb675fca44f0fc50d280037f1e70a4df /lexer.c
parentb94c01f29408600721c7e3302392e9015fc7bafd (diff)
syntax: fix quirks when parsing octal sequences
- Eliminate dead code left after regex literal parsing changes - Properly handle short octal sequences at end of string Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'lexer.c')
-rw-r--r--lexer.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/lexer.c b/lexer.c
index 5e2e7e8..a9c9d29 100644
--- a/lexer.c
+++ b/lexer.c
@@ -414,21 +414,8 @@ parse_string(struct uc_state *s)
case '5':
case '6':
case '7':
- case '8':
- case '9':
- /* likely octal */
- if (*ptr < '8') {
- s->lex.esc[s->lex.esclen++] = 'o';
- s->lex.esc[s->lex.esclen++] = *ptr;
- }
-
- /* non-octal char, add verbatim */
- else {
- s->lex.is_escape = false;
- lookbehind_append(s, ptr, 1);
- buf_consume(s, (ptr + 1) - s->lex.bufstart);
- }
-
+ s->lex.esc[s->lex.esclen++] = 'o';
+ s->lex.esc[s->lex.esclen++] = *ptr;
break;
default:
@@ -549,7 +536,7 @@ parse_string(struct uc_state *s)
}
s->lex.esclen = 4;
- buf_consume(s, ptr - s->lex.bufstart);
+ buf_consume(s, ptr-- - s->lex.bufstart);
}
/* append */