emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#53605: closed (CC Mode 5.35.1 (C++//l); C++11 string literal operato


From: GNU bug Tracking System
Subject: bug#53605: closed (CC Mode 5.35.1 (C++//l); C++11 string literal operator mishighlighted)
Date: Mon, 31 Jan 2022 17:51:01 +0000

Your message dated Mon, 31 Jan 2022 17:50:44 +0000
with message-id <YfghdKx7FC3+3wyF@ACM>
and subject line Re: bug#53605: CC Mode 5.35.1 (C++//l); C++11 string literal 
operator mishighlighted
has caused the debbugs.gnu.org bug report #53605,
regarding CC Mode 5.35.1 (C++//l); C++11 string literal operator mishighlighted
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
53605: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=53605
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: CC Mode 5.35.1 (C++//l); C++11 string literal operator mishighlighted Date: Fri, 28 Jan 2022 14:53:20 +0000
Package: cc-mode
Hi Alan,

The code below (which is valid since C++11) is mishighlighted,
with the open-paren after "_opcode" in font-lock-warning face
and the subsequent characters in font-lock-string-face. This is
unstable: inserting and deleting a character before the open-
paren fixes the highlighting, and [M-x normal-mode RET] breaks
it again.

<<END
#include <cstddef>
int operator""_opcode(const char *p, std::size_t size) {
  return 0;
}
END

Emacs  : GNU Emacs 29.0.50 (build 3, x86_64-w64-mingw32)
 of 2022-01-28 (on master)
Package: CC Mode 5.35.1 (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 '(t 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 "[     ]*\\(//+\\|\\**\\)[     ]*\\([
]*\\([-–!|#%;>*·•‣⁃◦]+[     ]*\\)*\\)"
 )



--- End Message ---
--- Begin Message --- Subject: Re: bug#53605: CC Mode 5.35.1 (C++//l); C++11 string literal operator mishighlighted Date: Mon, 31 Jan 2022 17:50:44 +0000
Hello, Richard.

On Mon, Jan 31, 2022 at 14:37:12 +0000, Richard Copley wrote:
> Hi Alan,

> On Sun, 30 Jan 2022 at 15:42, Alan Mackenzie <acm@muc.de> wrote:

> > Yes.  Please try out the following patch, and confirm that it has
> > fixed the problem (or let me know what is still not right).  It's
> > actually a small patch, just binding `case-fold-search' to nil in a
> > function, but reindenting the entire function.

> Works for me. Thank you!

Thanks for the quick response!  I've committed the fix to CC Mode and
the Emacs master branch at savannah, and I'm closing the bug with this
post.

-- 
Alan Mackenzie (Nuremberg, Germany).


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]