diff options
| author | Stefan Monnier | 2008-07-22 17:09:24 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-07-22 17:09:24 +0000 |
| commit | 02d8b017d882331b7ae40b1c869fe04d84e0c235 (patch) | |
| tree | d6a650c02475503258fad72234e1dda7b3ce6db2 /src/syntax.c | |
| parent | cc98b6a06aa7505a2c5c08c3851f48bfabd5ccf0 (diff) | |
| download | emacs-02d8b017d882331b7ae40b1c869fe04d84e0c235.tar.gz emacs-02d8b017d882331b7ae40b1c869fe04d84e0c235.zip | |
(char_quoted): Check "charpos > beg" before decrementing.
Diffstat (limited to 'src/syntax.c')
| -rw-r--r-- | src/syntax.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/syntax.c b/src/syntax.c index 2e9313fd6b1..87cf2da2e39 100644 --- a/src/syntax.c +++ b/src/syntax.c | |||
| @@ -298,23 +298,10 @@ char_quoted (charpos, bytepos) | |||
| 298 | register int quoted = 0; | 298 | register int quoted = 0; |
| 299 | int orig = charpos; | 299 | int orig = charpos; |
| 300 | 300 | ||
| 301 | #ifdef HAVE_NS | 301 | while (charpos > beg) |
| 302 | /* For some reason keeps getting called w/both 1, then segfaulting | ||
| 303 | due to the definitions of DEC_BOTH and DEC_POS in character.h, | ||
| 304 | which lead to decrementing below initial address and then examining | ||
| 305 | character there. Need to investigate further.. */ | ||
| 306 | if (charpos < 2 || bytepos < 2) | ||
| 307 | { | ||
| 308 | //fprintf(stderr,"Returning because charpos = %d, bytepos = %d\n",charpos, bytepos); | ||
| 309 | return 0; | ||
| 310 | } | ||
| 311 | #endif | ||
| 312 | |||
| 313 | DEC_BOTH (charpos, bytepos); | ||
| 314 | |||
| 315 | while (charpos >= beg) | ||
| 316 | { | 302 | { |
| 317 | int c; | 303 | int c; |
| 304 | DEC_BOTH (charpos, bytepos); | ||
| 318 | 305 | ||
| 319 | UPDATE_SYNTAX_TABLE_BACKWARD (charpos); | 306 | UPDATE_SYNTAX_TABLE_BACKWARD (charpos); |
| 320 | c = FETCH_CHAR_AS_MULTIBYTE (bytepos); | 307 | c = FETCH_CHAR_AS_MULTIBYTE (bytepos); |
| @@ -322,7 +309,6 @@ char_quoted (charpos, bytepos) | |||
| 322 | if (! (code == Scharquote || code == Sescape)) | 309 | if (! (code == Scharquote || code == Sescape)) |
| 323 | break; | 310 | break; |
| 324 | 311 | ||
| 325 | DEC_BOTH (charpos, bytepos); | ||
| 326 | quoted = !quoted; | 312 | quoted = !quoted; |
| 327 | } | 313 | } |
| 328 | 314 | ||