summaryrefslogtreecommitdiff
path: root/src/syntax.c
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2020-09-23 08:50:11 +0000
committerAlan Mackenzie <acm@muc.de>2020-09-23 08:52:34 +0000
commite4831151c2b746564319018105a17fbde4b553c6 (patch)
treee0a2e3d05d444e11890f842a4602528d78dcf144 /src/syntax.c
parent80b0a69b606c9beb738fe797a13d23ca28c4f09d (diff)
downloademacs-e4831151c2b746564319018105a17fbde4b553c6.tar.gz
emacs-e4831151c2b746564319018105a17fbde4b553c6.tar.bz2
emacs-e4831151c2b746564319018105a17fbde4b553c6.zip
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.
Diffstat (limited to 'src/syntax.c')
-rw-r--r--src/syntax.c7
1 files changed, 7 insertions, 0 deletions
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);