From: Alan Mackenzie Date: Wed, 23 Sep 2020 08:50:11 +0000 (+0000) Subject: Handle escaped comment enders correctly in syntax.c, fixing bug #43558 X-Git-Tag: emacs-28.0.90~5926 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e4831151c2b746564319018105a17fbde4b553c6;p=emacs.git Handle escaped comment enders correctly in syntax.c, fixing bug #43558 This fixes forward-comment, scan-lists, and parse-partial-sexp. * src/syntax.c (forw_comment): Detect and skip an escaped comment ender (e.g. \*/ in C) when comment-end-can-be-escaped is non-nil. --- diff --git a/src/syntax.c b/src/syntax.c index e6af8a377bb..066972e6d88 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -2354,6 +2354,13 @@ forw_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop, /* We have encountered a nested comment of the same style as the comment sequence which began this comment section. */ nesting++; + if (comment_end_can_be_escaped + && (code == Sescape || code == Scharquote)) + { + inc_both (&from, &from_byte); + UPDATE_SYNTAX_TABLE_FORWARD (from); + if (from == stop) continue; /* Failure */ + } inc_both (&from, &from_byte); UPDATE_SYNTAX_TABLE_FORWARD (from);