]> git.eshelyaron.com Git - emacs.git/commitdiff
(scan_lists, Fforward_comment): When moving backward over
authorRichard M. Stallman <rms@gnu.org>
Fri, 24 Jun 1994 21:52:16 +0000 (21:52 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 24 Jun 1994 21:52:16 +0000 (21:52 +0000)
a comment, ignore a comment-starter that overlaps the comment-ender.

src/syntax.c

index d3a37f9dd4f90cd8af14ee446299eb1503122518..9108f727cc48e9385a300e6a93cee83a49eb5bce 100644 (file)
@@ -746,6 +746,7 @@ between them, return t; otherwise return nil.")
                int comment_end = from;
                int comstart_pos = 0;
                int comstart_parity = 0;
+               int scanstart = from - 1;
 
                /* At beginning of range to scan, we're outside of strings;
                   that determines quote parity to the comment-end.  */
@@ -764,15 +765,15 @@ between them, return t; otherwise return nil.")
                      {
                        code = Sendcomment;
                        from--;
+                       c = FETCH_CHAR (from);
                      }
                        
-                   else if (from > stop && SYNTAX_COMSTART_SECOND (c)
-                            && SYNTAX_COMSTART_FIRST (FETCH_CHAR (from - 1))
-                            && comstyle == SYNTAX_COMMENT_STYLE (c))
-                     {
-                       code = Scomment;
-                       from--;
-                     }
+                   /* If this char starts a 2-char comment start sequence,
+                      treat it like a 1-char comment starter.  */
+                   if (from < scanstart && SYNTAX_COMSTART_FIRST (c)
+                       && SYNTAX_COMSTART_SECOND (FETCH_CHAR (from + 1))
+                       && comstyle == SYNTAX_COMMENT_STYLE (FETCH_CHAR (from + 1)))
+                     code = Scomment;
 
                    /* Ignore escaped characters.  */
                    if (char_quoted (from))
@@ -1150,6 +1151,7 @@ scan_lists (from, count, depth, sexpflag)
                int comment_end = from;
                int comstart_pos = 0;
                int comstart_parity = 0;
+               int scanstart = from - 1;
 
                /* At beginning of range to scan, we're outside of strings;
                   that determines quote parity to the comment-end.  */
@@ -1168,15 +1170,15 @@ scan_lists (from, count, depth, sexpflag)
                      {
                        code = Sendcomment;
                        from--;
+                       c = FETCH_CHAR (from);
                      }
                        
-                   else if (from > stop && SYNTAX_COMSTART_SECOND (c)
-                            && SYNTAX_COMSTART_FIRST (FETCH_CHAR (from - 1))
-                            && comstyle == SYNTAX_COMMENT_STYLE (c))
-                     {
-                       code = Scomment;
-                       from--;
-                     }
+                   /* If this char starts a 2-char comment start sequence,
+                      treat it like a 1-char comment starter.  */
+                   if (from < scanstart && SYNTAX_COMSTART_FIRST (c)
+                       && SYNTAX_COMSTART_SECOND (FETCH_CHAR (from + 1))
+                       && comstyle == SYNTAX_COMMENT_STYLE (FETCH_CHAR (from + 1)))
+                     code = Scomment;
 
                    /* Ignore escaped characters.  */
                    if (char_quoted (from))