Mercurial > emacs
comparison src/lread.c @ 49856:04bdf9a77388
(read1): Fix last change; "`" is not always special.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Tue, 18 Feb 2003 16:11:17 +0000 |
parents | 3df99c93b6a4 |
children | 38c14af619da |
comparison
equal
deleted
inserted
replaced
49855:07648d747d7d | 49856:04bdf9a77388 |
---|---|
2269 /* Only a dotted-pair dot is valid after a char constant. */ | 2269 /* Only a dotted-pair dot is valid after a char constant. */ |
2270 int next_next_char = READCHAR; | 2270 int next_next_char = READCHAR; |
2271 UNREAD (next_next_char); | 2271 UNREAD (next_next_char); |
2272 | 2272 |
2273 ok = (next_next_char <= 040 | 2273 ok = (next_next_char <= 040 |
2274 || index ("\"'`;([#?", next_next_char) | 2274 || index ("\"';([#?", next_next_char) |
2275 || (!first_in_list && next_next_char == '`') | |
2275 || (new_backquote_flag && next_next_char == ',')); | 2276 || (new_backquote_flag && next_next_char == ',')); |
2276 } | 2277 } |
2277 else | 2278 else |
2278 { | 2279 { |
2279 ok = (next_char <= 040 | 2280 ok = (next_char <= 040 |
2280 || index ("\"'`;()[]#", next_char) | 2281 || index ("\"';()[]#", next_char) |
2282 || (!first_in_list && next_char == '`') | |
2281 || (new_backquote_flag && next_char == ',')); | 2283 || (new_backquote_flag && next_char == ',')); |
2282 } | 2284 } |
2283 UNREAD (next_char); | 2285 UNREAD (next_char); |
2284 if (!ok) | 2286 if (!ok) |
2285 Fsignal (Qinvalid_read_syntax, Fcons (make_string ("?", 1), Qnil)); | 2287 Fsignal (Qinvalid_read_syntax, Fcons (make_string ("?", 1), Qnil)); |
2434 { | 2436 { |
2435 int next_char = READCHAR; | 2437 int next_char = READCHAR; |
2436 UNREAD (next_char); | 2438 UNREAD (next_char); |
2437 | 2439 |
2438 if (next_char <= 040 | 2440 if (next_char <= 040 |
2439 || index ("\"'`;([#?", next_char) | 2441 || index ("\"';([#?", next_char) |
2442 || (!first_in_list && next_char == '`') | |
2440 || (new_backquote_flag && next_char == ',')) | 2443 || (new_backquote_flag && next_char == ',')) |
2441 { | 2444 { |
2442 *pch = c; | 2445 *pch = c; |
2443 return Qnil; | 2446 return Qnil; |
2444 } | 2447 } |
2456 | 2459 |
2457 { | 2460 { |
2458 char *end = read_buffer + read_buffer_size; | 2461 char *end = read_buffer + read_buffer_size; |
2459 | 2462 |
2460 while (c > 040 | 2463 while (c > 040 |
2461 && !index ("\"'`;()[]#", c) | 2464 && !index ("\"';()[]#", c) |
2465 && !(!first_in_list && c == '`') | |
2462 && !(new_backquote_flag && c == ',')) | 2466 && !(new_backquote_flag && c == ',')) |
2463 { | 2467 { |
2464 if (end - p < MAX_MULTIBYTE_LENGTH) | 2468 if (end - p < MAX_MULTIBYTE_LENGTH) |
2465 { | 2469 { |
2466 int offset = p - read_buffer; | 2470 int offset = p - read_buffer; |