(read_escape): Interpret \s as a SPACE character, except
for \s-X in a character constant which still is the super modifier. (read1): Signal an `invalid read syntax' error if a character constant is immediately followed by a digit or symbol character.
This commit is contained in:
parent
c794a94d9a
commit
37cd423857
2 changed files with 21 additions and 2 deletions
|
@ -1,5 +1,10 @@
|
|||
2003-02-13 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* lread.c (read_escape): Interpret \s as a SPACE character, except
|
||||
for \s-X in a character constant which still is the super modifier.
|
||||
(read1): Signal an `invalid read syntax' error if a character
|
||||
constant is immediately followed by a digit or symbol character.
|
||||
|
||||
* search.c (Fmatch_data): Doc fix. Explicitly state that
|
||||
match-data is undefined if last search failed.
|
||||
|
||||
|
|
18
src/lread.c
18
src/lread.c
|
@ -1697,9 +1697,13 @@ read_escape (readcharfun, stringp, byterep)
|
|||
return c | alt_modifier;
|
||||
|
||||
case 's':
|
||||
if (stringp)
|
||||
return ' ';
|
||||
c = READCHAR;
|
||||
if (c != '-')
|
||||
error ("Invalid escape character syntax");
|
||||
if (c != '-') {
|
||||
UNREAD (c);
|
||||
return ' ';
|
||||
}
|
||||
c = READCHAR;
|
||||
if (c == '\\')
|
||||
c = read_escape (readcharfun, 0, byterep);
|
||||
|
@ -2247,6 +2251,7 @@ read1 (readcharfun, pch, first_in_list)
|
|||
case '?':
|
||||
{
|
||||
int discard;
|
||||
int nextc;
|
||||
|
||||
c = READCHAR;
|
||||
if (c < 0)
|
||||
|
@ -2257,6 +2262,15 @@ read1 (readcharfun, pch, first_in_list)
|
|||
else if (BASE_LEADING_CODE_P (c))
|
||||
c = read_multibyte (c, readcharfun);
|
||||
|
||||
nextc = READCHAR;
|
||||
UNREAD (nextc);
|
||||
if (nextc > 040
|
||||
&& !(nextc == '?'
|
||||
|| nextc == '\"' || nextc == '\'' || nextc == ';'
|
||||
|| nextc == '(' || nextc == ')'
|
||||
|| nextc == '[' || nextc == ']' || nextc == '#'))
|
||||
Fsignal (Qinvalid_read_syntax, Fcons (make_string ("?", 1), Qnil));
|
||||
|
||||
return make_number (c);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue