GNU bug report logs -
#63535
Master branch: Error in forw_comment (syntax.c) handling of escaped LFs
Previous Next
Reported by: Alan Mackenzie <acm <at> muc.de>
Date: Tue, 16 May 2023 10:58:02 UTC
Severity: normal
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
Full log
Message #20 received at 63535 <at> debbugs.gnu.org (full text, mbox):
Hello, Eli.
On Tue, May 16, 2023 at 19:29:26 +0300, Eli Zaretskii wrote:
> > Date: Tue, 16 May 2023 16:15:24 +0000
> > Cc: 63535 <at> debbugs.gnu.org
> > From: Alan Mackenzie <acm <at> muc.de>
> > > > && !(comment_end_can_be_escaped && char_quoted (from, from_byte))
> > > > .. Checking char_quoted is wrong. Instead the function should check the
> > > > current parse state.
> > > Why not both? IOW, please explain why char_quoted is not TRT here.
> > Because parse-partial-sexp is not scanning the backslash. The scan
> > starts one character after the backslash, and the syntactic effect of
> > that backslash is not in the OLDSTATE argument to parse-partial-sexp.
> Sorry, I still don't follow: char_quoted doesn't call
> parse-partial-sexp, AFAICT.
parse-partial-sexp calls forw_comment which (wrongly) calls char_quoted.
> So why does it matter what parse-partial-sexp does when we are
> discussing why char_quoted is not TRT?
parse-partial-sexp is the context in which the bug becomes evident. If,
in the C++ line comment with escaped NL, you start parse-partial-sexp at
the NL, it behaves as though the scan started at the backslash. This is
the bug.
The cause of the bug is the use of char_quoted at line 42 of
forw_comment.
--
Alan Mackenzie (Nuremberg, Germany).
This bug report was last modified 2 years and 83 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.