--- Begin Message ---
Subject: |
c-context-line-break incorrect after comments: cache issue? |
Date: |
Thu, 11 Jun 2020 09:09:17 -0700 |
User-agent: |
SquirrelMail/1.4.23 [SVN] |
c-context-line-break sometimes incorrectly extends a comment when invoked
immediately after the end of a comment. To repro:
emacs -Q --eval '(progn (c-mode) (insert "/*foo*/") (backward-char)
(c-context-line-break) (delete-char -2) (end-of-line)
(c-context-line-break))'
The second c-context-line-break occurs when point is *after* the comment,
so the /*foo*/ comment shouldn't be extended --- yet it is. The problem
appears to be some kind of cc-mode cache corruption. This recipe behaves
correctly:
$ emacs -Q --eval '(progn (c-mode) (insert "/*foo*/") (backward-char)
(c-context-line-break) (delete-char -2) (end-of-line) (c-before-change
(point-min) (point-max)) (c-after-change (point-min) (point-max) (1-
(point-max))) (c-context-line-break))'
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#41809: c-context-line-break incorrect after comments: cache issue? |
Date: |
Thu, 25 Jun 2020 17:12:29 +0000 |
Hello, Daniel.
On Thu, Jun 11, 2020 at 18:38:29 -0000, Alan Mackenzie wrote:
> In article <mailman.1663.1591891807.2541.bug-gnu-emacs@gnu.org> you wrote:
> > c-context-line-break sometimes incorrectly extends a comment when invoked
> > immediately after the end of a comment. To repro:
> > emacs -Q --eval '(progn (c-mode) (insert "/*foo*/") (backward-char)
> > (c-context-line-break) (delete-char -2) (end-of-line)
> > (c-context-line-break))'
> > The second c-context-line-break occurs when point is *after* the comment,
> > so the /*foo*/ comment shouldn't be extended --- yet it is. The problem
> > appears to be some kind of cc-mode cache corruption. This recipe behaves
> > correctly:
> > $ emacs -Q --eval '(progn (c-mode) (insert "/*foo*/") (backward-char)
> > (c-context-line-break) (delete-char -2) (end-of-line) (c-before-change
> > (point-min) (point-max)) (c-after-change (point-min) (point-max) (1-
> > (point-max))) (c-context-line-break))'
> Thanks for the report.
> After a quick bit of edebugging, it seems to be an off-by-one error in
> some cache handling. It shouldn't be too difficult to sort out.
It wasn't. I've committed a simple patch for this, and I'm closing the
bug.
> --
> Alan Mackenzie (Nuremberg, Germany).
--- End Message ---