]> granicus.if.org Git - re2c/commit
Forbid newline in strings and character classes.
authorUlya Trofimovich <skvadrik@gmail.com>
Thu, 20 Aug 2015 12:05:07 +0000 (13:05 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Thu, 20 Aug 2015 12:05:07 +0000 (13:05 +0100)
commite8abc1ef0595acd0f80e042f3cbd5e69f0f01d93
treef7ffa337fd8981931135ffe8f50e4cbfbfff8c46
parent59dc472c81d96da64fe862f921840f83b1a2e696
Forbid newline in strings and character classes.

Like C language, re2c allows all characters of current charset excapt for
newline and backslash to apper unescaped in string and class literals.

Added tests:
    - all possible characters in strings and classes (omitting
      newline, escaping backslash and quotes/closing bracket)
      with different encodings (re2c up to 0.14.x would segfault
      on this test with '-u' and '-w')
    - string with newline
    - string with unescaped backslash followed by newline (so that
      it won't stick to next character)
20 files changed:
re2c/bootstrap/src/parse/scanner_lex.cc
re2c/src/parse/scanner_lex.re
re2c/src/parse/unescape.cc
re2c/src/parse/unescape.h
re2c/test/code_points.8.c [new file with mode: 0644]
re2c/test/code_points.8.re [new file with mode: 0644]
re2c/test/code_points.c [new file with mode: 0644]
re2c/test/code_points.e.c [new file with mode: 0644]
re2c/test/code_points.e.re [new file with mode: 0644]
re2c/test/code_points.re [new file with mode: 0644]
re2c/test/code_points.u.c [new file with mode: 0644]
re2c/test/code_points.u.re [new file with mode: 0644]
re2c/test/code_points.w.c [new file with mode: 0644]
re2c/test/code_points.w.re [new file with mode: 0644]
re2c/test/code_points.x.c [new file with mode: 0644]
re2c/test/code_points.x.re [new file with mode: 0644]
re2c/test/code_points_error_esc.c [new file with mode: 0644]
re2c/test/code_points_error_esc.re [new file with mode: 0644]
re2c/test/code_points_error_lf.c [new file with mode: 0644]
re2c/test/code_points_error_lf.re [new file with mode: 0644]