GNU bug report logs -
#36802
CC Mode 5.34 (C/*l); Spurious indentation in line after open #include
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Fri, 2 Aug 2019 13:44:14 +0000
with message-id <20190802134414.GB11966 <at> ACM>
and subject line Re: bug#36802: CC Mode 5.34 (C/*l); Spurious indentation in line after open #include
has caused the debbugs.gnu.org bug report #36802,
regarding CC Mode 5.34 (C/*l); Spurious indentation in line after open #include
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
36802: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36802
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Package: cc-mode
(From "emacs -Q".) In an empty C++ buffer, type [#include SPC <ab> C-p
BACKSPACE C-e RET], or (for a more realistic example), correct
"#include <asio/asio.hpp>" to "#include <asio.hpp>" like this:
...asio.hpp ;; self-insert-command
> ;; c-electric-lt-gt
M-b ;; backward-word
M-b ;; backward-word
<C-backspace> ;; backward-kill-word
M-> ;; end-of-buffer
<return> ;; newline
The new line is indented one level (expected zero levels). This
corrects itself after doing M-x normal mode.
Reproduced below is the story so far, which comes after a discussion
of unrelated matters at bug#36397.
On Tue, 23 Jul 2019 at 14:10, Alan Mackenzie <acm <at> muc.de> wrote:
On Mon, Jul 22, 2019 at 20:47:22 +0100, Richard Copley wrote:
[ .... ]
This was an error in the macro cache handling. After the deletion
of the >, the cache failed to adjust its upper bound downwards by
one. Thus the cache was still representing that the beginning of
the new line was inside the macro bounds.
The following patch should fix this. Would you please do the
usual with it.
Just as a matter of interest, how on earth did you manage to
stumble across the key sequence (above) which triggers this bug?
(The patch, by Alan, is elided by Richard in this email opening the bug
report.)
Emacs : GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32)
of 2019-07-23
Package: CC Mode 5.34 (C/*l)
Buffer Style: gnu
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes
gen-string-delim gen-comment-delim syntax-properties 1-bit)
current state:
==============
(setq
c-basic-offset 2
c-comment-only-line-offset '(0 . 0)
c-indent-comment-alist '((anchored-comment column . 0) (end-block space .
1)
(cpp-end-block space . 2))
c-indent-comments-syntactically-p nil
c-block-comment-prefix ""
c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+")
(other . "//+\\|\\**"))
c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc)
(c-mode . gtkdoc) (c++-mode . gtkdoc))
c-cleanup-list '(scope-operator)
c-hanging-braces-alist '((substatement-open before after)
(arglist-cont-nonempty))
c-hanging-colons-alist nil
c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
c-backslash-column 48
c-backslash-max-column 72
c-special-indent-hook '(c-gnu-impose-minimum)
c-label-minimum-indentation 1
c-offsets-alist '((inexpr-class . +)
(inexpr-statement . +)
(lambda-intro-cont . +)
(inlambda . 0)
(template-args-cont c-lineup-template-args +)
(incomposition . +)
(inmodule . +)
(innamespace . +)
(inextern-lang . +)
(composition-close . 0)
(module-close . 0)
(namespace-close . 0)
(extern-lang-close . 0)
(composition-open . 0)
(module-open . 0)
(namespace-open . 0)
(extern-lang-open . 0)
(objc-method-call-cont
c-lineup-ObjC-method-call-colons
c-lineup-ObjC-method-call
+
)
(objc-method-args-cont . c-lineup-ObjC-method-args)
(objc-method-intro . [0])
(friend . 0)
(cpp-define-intro c-lineup-cpp-define +)
(cpp-macro-cont . +)
(cpp-macro . [0])
(inclass . +)
(stream-op . c-lineup-streamop)
(arglist-cont-nonempty
c-lineup-gcc-asm-reg
c-lineup-arglist
)
(arglist-cont c-lineup-gcc-asm-reg 0)
(comment-intro
c-lineup-knr-region-comment
c-lineup-comment
)
(catch-clause . 0)
(else-clause . 0)
(do-while-closure . 0)
(access-label . -)
(case-label . 0)
(substatement . +)
(statement-case-intro . +)
(statement . 0)
(brace-entry-open . 0)
(brace-list-entry . 0)
(brace-list-close . 0)
(block-close . 0)
(block-open . 0)
(inher-cont . c-lineup-multi-inher)
(inher-intro . +)
(member-init-cont . c-lineup-multi-inher)
(member-init-intro . +)
(annotation-var-cont . +)
(annotation-top-cont . 0)
(topmost-intro . 0)
(knr-argdecl . 0)
(func-decl-cont . +)
(inline-close . 0)
(class-close . 0)
(class-open . 0)
(defun-block-intro . +)
(defun-close . 0)
(defun-open . 0)
(c . c-lineup-C-comments)
(string . c-lineup-dont-change)
(topmost-intro-cont
first
c-lineup-topmost-intro-cont
c-lineup-gnu-DEFUN-intro-cont
)
(brace-list-intro
first
c-lineup-2nd-brace-entry-in-arglist
c-lineup-class-decl-init-+
+
)
(brace-list-open . +)
(inline-open . 0)
(arglist-close . c-lineup-arglist)
(arglist-intro . c-lineup-arglist-intro-after-paren)
(statement-cont . +)
(statement-case-open . +)
(label . 0)
(substatement-label . 0)
(substatement-open . +)
(knr-argdecl-intro . 5)
(statement-block-intro . +)
)
c-buffer-is-cc-mode 'c-mode
c-tab-always-indent t
c-syntactic-indentation t
c-syntactic-indentation-in-macros t
c-ignore-auto-fill '(string cpp code)
c-auto-align-backslashes t
c-backspace-function 'backward-delete-char-untabify
c-delete-function 'delete-char
c-electric-pound-behavior nil
c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "gnu"))
c-enable-xemacs-performance-kludge-p nil
c-old-style-variable-behavior nil
defun-prompt-regexp nil
tab-width 8
comment-column 32
parse-sexp-ignore-comments t
parse-sexp-lookup-properties t
auto-fill-function nil
comment-multi-line t
comment-start-skip "\\(//+\\|/\\*+\\)\\s *"
fill-prefix nil
fill-column 70
paragraph-start "[ ]*\\(//+\\|\\**\\)[ ]*$\\|^\f"
adaptive-fill-mode t
adaptive-fill-regexp "[ ]*\\(//+\\|\\**\\)[ ]*\\([ ]*\\([-–!|#%;>*·•‣⁃◦]+[
]*\\)*\\)"
)
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
Hello, Richard.
On Wed, Jul 24, 2019 at 21:04:03 +0100, Richard Copley wrote:
> Package: cc-mode
> (From "emacs -Q".) In an empty C++ buffer, type [#include SPC <ab> C-p
> BACKSPACE C-e RET], or (for a more realistic example), correct
> "#include <asio/asio.hpp>" to "#include <asio.hpp>" like this:
> ...asio.hpp ;; self-insert-command
> > ;; c-electric-lt-gt
> M-b ;; backward-word
> M-b ;; backward-word
> <C-backspace> ;; backward-kill-word
> M-> ;; end-of-buffer
> <return> ;; newline
> The new line is indented one level (expected zero levels). This
> corrects itself after doing M-x normal mode.
I've committed the patch we were discussing, and I'm closing this bug.
--
Alan Mackenzie (Nuremberg, Germany).
This bug report was last modified 6 years and 22 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.