Subject: c-context-line-break incorrect after comments: cache issue?

From: "Daniel Colascione" <[email-masked]>
Date: Thu, 11 Jun 2020 09:09:17 -0700

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))'