diff options
| author | Kenichi Handa | 2003-04-09 07:12:51 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2003-04-09 07:12:51 +0000 |
| commit | e613ea97b60a95fc13a3a883e672140717274432 (patch) | |
| tree | 416887e06ceaaa5dbd17f4ab56b6efec5c2321b2 | |
| parent | cb98871c49f706ec0a2ac9e290d5b7750112021b (diff) | |
| download | emacs-e613ea97b60a95fc13a3a883e672140717274432.tar.gz emacs-e613ea97b60a95fc13a3a883e672140717274432.zip | |
(read1): Before calling index, check if the 2nd
arguemnt is in ASCII range.
| -rw-r--r-- | src/lread.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/lread.c b/src/lread.c index e4663e0eb89..73345d30001 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -2278,16 +2278,18 @@ read1 (readcharfun, pch, first_in_list) | |||
| 2278 | UNREAD (next_next_char); | 2278 | UNREAD (next_next_char); |
| 2279 | 2279 | ||
| 2280 | ok = (next_next_char <= 040 | 2280 | ok = (next_next_char <= 040 |
| 2281 | || index ("\"';([#?", next_next_char) | 2281 | || (next_next_char < 0200 |
| 2282 | || (!first_in_list && next_next_char == '`') | 2282 | && (index ("\"';([#?", next_next_char) |
| 2283 | || (new_backquote_flag && next_next_char == ',')); | 2283 | || (!first_in_list && next_next_char == '`') |
| 2284 | || (new_backquote_flag && next_next_char == ',')))); | ||
| 2284 | } | 2285 | } |
| 2285 | else | 2286 | else |
| 2286 | { | 2287 | { |
| 2287 | ok = (next_char <= 040 | 2288 | ok = (next_char <= 040 |
| 2288 | || index ("\"';()[]#?", next_char) | 2289 | || (next_char < 0200 |
| 2289 | || (!first_in_list && next_char == '`') | 2290 | && (index ("\"';()[]#?", next_char) |
| 2290 | || (new_backquote_flag && next_char == ',')); | 2291 | || (!first_in_list && next_char == '`') |
| 2292 | || (new_backquote_flag && next_char == ',')))); | ||
| 2291 | } | 2293 | } |
| 2292 | UNREAD (next_char); | 2294 | UNREAD (next_char); |
| 2293 | if (!ok) | 2295 | if (!ok) |
| @@ -2445,9 +2447,10 @@ read1 (readcharfun, pch, first_in_list) | |||
| 2445 | UNREAD (next_char); | 2447 | UNREAD (next_char); |
| 2446 | 2448 | ||
| 2447 | if (next_char <= 040 | 2449 | if (next_char <= 040 |
| 2448 | || index ("\"';([#?", next_char) | 2450 | || (next_char < 0200 |
| 2449 | || (!first_in_list && next_char == '`') | 2451 | && index ("\"';([#?", next_char) |
| 2450 | || (new_backquote_flag && next_char == ',')) | 2452 | || (!first_in_list && next_char == '`') |
| 2453 | || (new_backquote_flag && next_char == ','))) | ||
| 2451 | { | 2454 | { |
| 2452 | *pch = c; | 2455 | *pch = c; |
| 2453 | return Qnil; | 2456 | return Qnil; |
| @@ -2468,9 +2471,10 @@ read1 (readcharfun, pch, first_in_list) | |||
| 2468 | char *end = read_buffer + read_buffer_size; | 2471 | char *end = read_buffer + read_buffer_size; |
| 2469 | 2472 | ||
| 2470 | while (c > 040 | 2473 | while (c > 040 |
| 2471 | && !index ("\"';()[]#", c) | 2474 | && (c >= 0200 |
| 2472 | && !(!first_in_list && c == '`') | 2475 | || (!index ("\"';()[]#", c) |
| 2473 | && !(new_backquote_flag && c == ',')) | 2476 | && !(!first_in_list && c == '`') |
| 2477 | && !(new_backquote_flag && c == ',')))) | ||
| 2474 | { | 2478 | { |
| 2475 | if (end - p < MAX_MULTIBYTE_LENGTH) | 2479 | if (end - p < MAX_MULTIBYTE_LENGTH) |
| 2476 | { | 2480 | { |