summaryrefslogtreecommitdiff
path: root/src/syntax.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-07-22 17:09:24 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-07-22 17:09:24 +0000
commit02d8b017d882331b7ae40b1c869fe04d84e0c235 (patch)
treed6a650c02475503258fad72234e1dda7b3ce6db2 /src/syntax.c
parentcc98b6a06aa7505a2c5c08c3851f48bfabd5ccf0 (diff)
downloademacs-02d8b017d882331b7ae40b1c869fe04d84e0c235.tar.gz
(char_quoted): Check "charpos > beg" before decrementing.
Diffstat (limited to 'src/syntax.c')
-rw-r--r--src/syntax.c18
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)
register int quoted = 0;
int orig = charpos;
-#ifdef HAVE_NS
- /* For some reason keeps getting called w/both 1, then segfaulting
- due to the definitions of DEC_BOTH and DEC_POS in character.h,
- which lead to decrementing below initial address and then examining
- character there. Need to investigate further.. */
- if (charpos < 2 || bytepos < 2)
- {
- //fprintf(stderr,"Returning because charpos = %d, bytepos = %d\n",charpos, bytepos);
- return 0;
- }
-#endif
-
- DEC_BOTH (charpos, bytepos);
-
- while (charpos >= beg)
+ while (charpos > beg)
{
int c;
+ DEC_BOTH (charpos, bytepos);
UPDATE_SYNTAX_TABLE_BACKWARD (charpos);
c = FETCH_CHAR_AS_MULTIBYTE (bytepos);
@@ -322,7 +309,6 @@ char_quoted (charpos, bytepos)
if (! (code == Scharquote || code == Sescape))
break;
- DEC_BOTH (charpos, bytepos);
quoted = !quoted;
}