syntaxes: avoid coloring "this\" as if it were a valid string

A backslash should not be allowed inside a quoted string unless
it is used to escape another character.

This fixes https://savannah.gnu.org/bugs/?61389.

Bug existed since each of these syntaxes was introduced.

(Awk and Fortran do not know include files with names between
angled brackets, so those regexes are dropped in the bargain.)
master
Benno Schulenberg 2021-10-26 14:08:35 +02:00
parent 485eb18d83
commit 7bd68365ec
15 changed files with 18 additions and 18 deletions

View File

@ -12,7 +12,7 @@ color brightred "^[[:blank:]]*[.0-9A-Za-z_]*:"
color brightcyan "^[[:blank:]]*#[[:blank:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
# Strings.
color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
color brightyellow "<[^= ]*>|"(\\.|[^"\])*""
# Comments.
color brightblue "//.*"

View File

@ -29,7 +29,7 @@ color magenta "\<(and|compl|lshift|or|rshift|xor)\>"
color magenta "\<(bindtextdomain|dcgettext|dcngettext)\>"
# Strings.
color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
color brightyellow ""(\\.|[^"\])*""
# Comments.
color brightblue "(^|[[:blank:]])#.*"

View File

@ -28,6 +28,6 @@ color brightred "\<(t|nil)\>"
color blue ":(\w|[?-])+"
# Strings
color yellow start="^[[:blank:]]+"" end="[^\]""
color yellow ""(\\.|[^"])*""
color yellow ""(\\.|[^"\])*""
# Comments
color cyan "(^|[[:blank:]]);.*"

View File

@ -34,7 +34,7 @@ icolor yellow "\<(.or.|repeat|select case|then|where|while)\>"
icolor magenta "\<(continue|cycle|exit|go?to|result|return)\>"
# Strings.
color yellow "<[^= ]*>" ""(\\.|[^"])*""
color yellow ""(\\.|[^"\])*""
# Comments.
color blue "!.*"

View File

@ -41,7 +41,7 @@ color blue "\<(awk|cat|cd|chmod|chown|cp|echo|env|find|e?grep|ln|make|mkdir|mv|p
## Comments (doesn't work that well):
color yellow "(^|[[:space:]])#.*"
## Strings (doesn't work that well):
color brightyellow ""(\\.|[^\"])*"|'(\\.|[^'])*'"
color brightyellow ""(\\.|[^"\])*"|'(\\.|[^'\])*'"
## Trailing space is bad!
color ,green "[[:space:]]+$"
## Mixed whitespace is also bad.

View File

@ -28,9 +28,9 @@ color magenta "\<(Bounded|Data|Enum|Eq|Floating|Fractional|Functor|Integral|Mona
color brightred "undefined"
# Strings
color yellow ""([^\"]|\\.)*""
color yellow ""([^"\]|\\.)*""
# Characters
color brightyellow "'([^\']|\\.)'"
color brightyellow "'([^'\]|\\.)'"
# Comments
color green "--.*"

View File

@ -34,8 +34,8 @@ color red "\<[0-9]+i\>"
# Strings and characters; slightly fuzzy.
color red "\<(true|false|nil|iota|_)\>"
color red ""(\\.|[^"])*"|'(\\.|[^'])+'"
color red start=""(\\.|[^"])*\\[[:blank:]]*$" end="^(\\.|[^"])*""
color red ""(\\.|[^"\])*"|'(\\.|[^'\])+'"
color red start=""(\\.|[^"\])*\\[[:blank:]]*$" end="^(\\.|[^"\])*""
# Comments.
color brightblue "//.*"

View File

@ -19,6 +19,6 @@ color brightred "(#t|#f)\>"
color blue "#?:(\w|[?-])+"
# Strings
color yellow start="^[[:blank:]]+"" end="[^\]""
color yellow ""(\\.|[^"])*""
color yellow ""(\\.|[^"\])*""
# Comments
color cyan "(^|[[:blank:]]);.*"

View File

@ -25,7 +25,7 @@ color red "\<(rows(pan)?|rules|scheme|scope|scrolling|selected|shape|size|span|s
color red "\<(tabindex|target|text|title|type|usemap|valign|value(type)?|vlink|vspace|width|xmlns|xml:space)="
# Strings:
color green ""(\\.|[^"])*""
color green ""(\\.|[^"\])*""
# Comments:
color yellow start="<!--" end="-->"

View File

@ -17,7 +17,7 @@ color cyan "\<([0-9]+|0x[0-9A-Fa-f]+)\>"
color cyan "\<(true|false|null|undefined)\>"
# Strings.
color brightmagenta ""(\\.|[^"])*"|'(\\.|[^'])*'|`(\\.|[^`])*`"
color brightmagenta ""(\\.|[^"\])*"|'(\\.|[^'\])*'|`(\\.|[^`\])*`"
# Comments.
color brightblue "(^|[[:blank:]])//.*"
color brightblue start="/\*" end="\*/"

View File

@ -26,7 +26,7 @@ color cyan "(^|[[:blank:]])#.*"
color ,green "[[:space:]]+$"
# Strings and others
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color yellow ""(\\.|[^"\])*"|'(\\.|[^'\])*'"
color green "[][{}():;|`$<>!=&\]"
# Basic variable names

View File

@ -25,8 +25,8 @@ color white "\[[^][:blank:]]*\]"
# Strings.
color brightblack "'([^'\]|(\\["'abfnrtv\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
color brightblack "<[^= ]*>" ""(\\.|[^"])*""
color brightblue "@"(\\.|[^"])*""
color brightblack "<[^= ]*>|"(\\.|[^"\])*""
color brightblue "@"(\\.|[^"\])*""
# Preprocessor commands.
color brightblue "^[[:blank:]]*#[[:blank:]]*(define|include|import|(un|ifn?)def|endif|el(if|se)|if|warning|error)"

View File

@ -25,7 +25,7 @@ color brightcyan "\<(and|or|xor)\>"
color magenta "\<(break|continue|goto|return)\>"
# Strings.
color brightyellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow ""(\\.|[^"\])*"|'(\\.|[^'\])*'"
# Comments.
color brightblue "(^|[[:blank:]]+)//.*"

View File

@ -33,7 +33,7 @@ color brightred "\$\{[#!]?([-@*#?$!]|[0-9]+|[[:alpha:]_][[:alnum:]_]*)(\[([[:bla
color cyan "(^|[[:blank:]])#.*"
# Strings.
color brightyellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow ""(\\.|[^"\])*"|'(\\.|[^'\])*'"
# Trailing whitespace.
color ,green "[[:space:]]+$"

View File

@ -17,7 +17,7 @@ color green "\<(alarm|auto_load_pkg|bsearch|catclose|catgets|catopen|ccollate|cc
# Syntax:
color brightblue "\<proc[[:blank:]]|\{|\}"
color green "\(|\)|\;|`|\\|\$|<|>|!|=|&|\|"
color brightyellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow ""(\\.|[^"\])*"|'(\\.|[^'\])*'"
color brightred "\$\{?[0-9A-Za-z_!@#$*?-]+\}?"
# Trailing whitespace: