STYN6QCIAVRFWNOUBGZXNW2ABLUC2GNTFTQLEPSTC4MJEPWG5O5AC } else if(match(input, /^(\\[^"]|[^\\"])*[^\\]"/)) { # stuff"
} else if(match(input, /^(\\.|[^\\"])*"/)) { # stuff"# sense of regex: zero or more of either (1) a# backslash-escaped character, don't care what, could# be a double quote; or (2) a character which is# neither a backslash nor a doublequote; followed by a# doublequote. if that sounds obvious, good; but in# previous revisions, this regex failed to recognize# the end of a string under certain conditions.
# input: double-quote, backslash, newline, backslash, letter n,# double-quote. expected behavior: the double-quote begins a string.# the backslash escapes the following real newline. we continue# parsing, still inside the string, on the next input line. there is a# backslash and letter n, denoting a newline character; and a# double-quote, denoting the end of the string. the result of parsing# is a string containing a single newline character. actual behavior:# the double-quote after the backslash and letter n seems to somehow# get escaped. the tokenizer thinks it is still inside a string# literal.lisp_eval_should_be_tricky_tricky 'IlwKXG4iCg==' 'IlxuIgo=' 'backslash-n-endquote at beginning of string continuation line'
** Bugs fixed*** Backslash escapes on a continuation line ending a stringA bug in a regular expression in the tokenizer made it fail torecognize the end of a string literal if there were backslash-escapedcharacters on that line, particularly right before the endingdouble-quote character. This is now tested for and fixed, and the codeand tests are commented.