summaryrefslogtreecommitdiff
path: root/src/syntax.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2000-06-20 22:49:34 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2000-06-20 22:49:34 +0000
commitd355bd8ae6a26c50277d2fb24aba38a0b657dcbb (patch)
tree51434413c89c4309ea34de5fea6e92e7ba869d44 /src/syntax.c
parente6365855ebf0afae2ced986eb705aa515b62fa2a (diff)
downloademacs-d355bd8ae6a26c50277d2fb24aba38a0b657dcbb.tar.gz
(scan_sexps_forward):
Check the comstyle of single-char comment-starters. Clarify control-flow around the Scomment case.
Diffstat (limited to 'src/syntax.c')
-rw-r--r--src/syntax.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/syntax.c b/src/syntax.c
index eedec27d549..656d567b1a5 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -2567,6 +2567,7 @@ do { prev_from = from; \
if (code == Scomment)
{
+ state.comstyle = SYNTAX_FLAGS_COMMENT_STYLE (prev_from_syntax);
state.incomment = (SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax) ?
1 : -1);
state.comstr_start = prev_from;
@@ -2642,22 +2643,13 @@ do { prev_from = from; \
curlevel->prev = curlevel->last;
break;
- startincomment:
- if (commentstop == 1)
- goto done;
- goto commentloop;
-
case Scomment:
- if (! state.incomment)
- abort ();
if (commentstop || boundary_stop) goto done;
- commentloop:
- /* The (from == BEGV) test is to enter the loop in the middle so
+ startincomment:
+ /* The (from == BEGV) test was to enter the loop in the middle so
that we find a 2-char comment ender even if we start in the
middle of it. We don't want to do that if we're just at the
- beginning of the comment (think of (*) ... (*)).
- Actually, the current code still doesn't handle such cases right
- when the comment style allows nesting. */
+ beginning of the comment (think of (*) ... (*)). */
found = forw_comment (from, from_byte, end,
state.incomment, state.comstyle,
(from == BEGV || from < state.comstr_start + 3)
@@ -2668,7 +2660,7 @@ do { prev_from = from; \
Luckily, the `done' doesn't use them and the INC_FROM
sets them to a sane value without looking at them. */
if (!found) goto done;
- INC_FROM;
+ INC_FROM;
state.incomment = 0;
state.comstyle = 0; /* reset the comment style */
if (boundary_stop) goto done;