GNU bug report logs - #62841
CC Mode 5.35.2 (Group); Template indentation problems

Previous Next

Package: cc-mode;

Reported by: Michael Welsh Duggan <mwd <at> md5i.com>

Date: Fri, 14 Apr 2023 18:19:01 UTC

Severity: normal

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 62841 in the body.
You can then email your comments to 62841 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-cc-mode <at> gnu.org:
bug#62841; Package cc-mode. (Fri, 14 Apr 2023 18:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Michael Welsh Duggan <mwd <at> md5i.com>:
New bug report received and forwarded. Copy sent to bug-cc-mode <at> gnu.org. (Fri, 14 Apr 2023 18:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michael Welsh Duggan <mwd <at> md5i.com>
To: bug-gnu-emacs <at> gnu.org
Subject: CC Mode 5.35.2 (Group); Template indentation problems 
Date: Fri, 14 Apr 2023 14:18:16 -0400
[Message part 1 (text/plain, inline)]
Package: cc-mode

Package: cc-mode

Load the included file, bar.cpp:

[bar.cpp (text/x-c\+\+src, attachment)]
[Message part 3 (text/plain, inline)]
For example:

emacs -Q /tmp/bar.cpp

Type:
C-x h C-M-\

First, note that std::variant is not indented with respect to std::pair.

Next, delete and re-insert the final angle bracket on the line that
reads:

    std::pair<ipfix::InfoElementID,std::vector<T>>,

Note the re-indention.

template <typename T>
using value_variant=3D
  std::pair<
  std::variant<
    ipfix::octetArray_t,
    ipfix::unsigned8_t,
    ipfix::unsigned16_t,
    ipfix::unsigned32_t,
    ipfix::unsigned64_t,
    ipfix::signed8_t,
    ipfix::signed16_t,
    ipfix::signed32_t,
    ipfix::signed64_t,
    ipfix::float32_t,
    ipfix::float64_t,
    ipfix::boolean_t,
    ipfix::macAddress_t,
    ipfix::string_t,
    ipfix::dateTimeSeconds_t,
    ipfix::dateTimeMilliseconds_t,
    ipfix::dateTimeMicroseconds_t,
    ipfix::dateTimeNanoseconds_t,
    ipfix::ipv4Address_t,
    ipfix::ipv6Address_t,
  std::pair<ipfix::InfoElementID,std::vector<T>>,
    std::pair<ipfix::TemplateID,std::vector<std::vector<T>>>,
    std::pair<std::vector<
                std::pair<
                  ipfix::TemplateID,
                  std::vector<std::vector<T>>>>>>,
  ipfix::length_t>;


Then, try C-x h C-M-\ again.  Note another reindentation.

template <typename T>
using value_variant=3D
  std::pair<
  std::variant<
    ipfix::octetArray_t,
    ipfix::unsigned8_t,
    ipfix::unsigned16_t,
    ipfix::unsigned32_t,
    ipfix::unsigned64_t,
    ipfix::signed8_t,
    ipfix::signed16_t,
    ipfix::signed32_t,
    ipfix::signed64_t,
    ipfix::float32_t,
    ipfix::float64_t,
    ipfix::boolean_t,
    ipfix::macAddress_t,
    ipfix::string_t,
    ipfix::dateTimeSeconds_t,
    ipfix::dateTimeMilliseconds_t,
    ipfix::dateTimeMicroseconds_t,
    ipfix::dateTimeNanoseconds_t,
    ipfix::ipv4Address_t,
    ipfix::ipv6Address_t,
    std::pair<ipfix::InfoElementID,std::vector<T>>,
  std::pair<ipfix::TemplateID,std::vector<std::vector<T>>>,
  std::pair<std::vector<
	      std::pair<
		ipfix::TemplateID,
		std::vector<std::vector<T>>>>>>,
  ipfix::length_t>;


Type C-x h C-M-\ again.  Another re-indentation.  This
one is stable, but incorrect.

template <typename T>
using value_variant=3D
  std::pair<
  std::variant<
  ipfix::octetArray_t,
    ipfix::unsigned8_t,
    ipfix::unsigned16_t,
    ipfix::unsigned32_t,
    ipfix::unsigned64_t,
    ipfix::signed8_t,
    ipfix::signed16_t,
    ipfix::signed32_t,
    ipfix::signed64_t,
    ipfix::float32_t,
    ipfix::float64_t,
    ipfix::boolean_t,
    ipfix::macAddress_t,
    ipfix::string_t,
    ipfix::dateTimeSeconds_t,
    ipfix::dateTimeMilliseconds_t,
    ipfix::dateTimeMicroseconds_t,
    ipfix::dateTimeNanoseconds_t,
    ipfix::ipv4Address_t,
    ipfix::ipv6Address_t,
    std::pair<ipfix::InfoElementID,std::vector<T>>,
    std::pair<ipfix::TemplateID,std::vector<std::vector<T>>>,
  std::pair<std::vector<
	      std::pair<
		ipfix::TemplateID,
		std::vector<std::vector<T>>>>>>,
  ipfix::length_t>;


Emacs  : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo =
version 1.16.0)
 of 2023-04-14
Package: CC Mode 5.35.2 (C++//l)
Buffer Style: gnu
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-st=
ring-delim gen-comment-delim syntax-properties category-properties 1-bit)

current state:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
(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)
		   (constraint-cont . +)
		   (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 "[ 	]*\\(//+\\|\\**\\)[ 	]*\\([ 	]*\\([-=E2=80=93!|#%=
;>*=C2=B7=E2=80=A2=E2=80=A3=E2=81=83=E2=97=A6]+[ 	]*\\)*\\)"
 )

-- 
Michael Welsh Duggan
(md5i <at> md5i.com)

Information forwarded to bug-cc-mode <at> gnu.org:
bug#62841; Package cc-mode. (Sun, 23 Apr 2023 13:45:01 GMT) Full text and rfc822 format available.

Message #8 received at 62841 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Michael Welsh Duggan <mwd <at> md5i.com>
Cc: acm <at> muc.de, 62841 <at> debbugs.gnu.org
Subject: Re: bug#62841: CC Mode 5.35.2 (Group); Template indentation problems
Date: Sun, 23 Apr 2023 13:44:29 +0000
Hello, Michael.

Thanks for the bug report.

On Fri, Apr 14, 2023 at 14:18:16 -0400, Michael Welsh Duggan wrote:
> Package: cc-mode

> Package: cc-mode

> Load the included file, bar.cpp:


> template <typename T>
> using value_variant=
>   std::pair<
>   std::variant<
>     ipfix::octetArray_t,
>     ipfix::unsigned8_t,
>     ipfix::unsigned16_t,
>     ipfix::unsigned32_t,
>     ipfix::unsigned64_t,
>     ipfix::signed8_t,
>     ipfix::signed16_t,
>     ipfix::signed32_t,
>     ipfix::signed64_t,
>     ipfix::float32_t,
>     ipfix::float64_t,
>     ipfix::boolean_t,
>     ipfix::macAddress_t,
>     ipfix::string_t,
>     ipfix::dateTimeSeconds_t,
>     ipfix::dateTimeMilliseconds_t,
>     ipfix::dateTimeMicroseconds_t,
>     ipfix::dateTimeNanoseconds_t,
>     ipfix::ipv4Address_t,
>     ipfix::ipv6Address_t,
>     std::pair<ipfix::InfoElementID,std::vector<T>>,
>     std::pair<ipfix::TemplateID,std::vector<std::vector<T>>>,
>     std::pair<std::vector<
>                 std::pair<
>                   ipfix::TemplateID,
>                   std::vector<std::vector<T>>>>>>,
>   ipfix::length_t>;


> For example:

> emacs -Q /tmp/bar.cpp

> Type:
> C-x h C-M-\

> First, note that std::variant is not indented with respect to std::pair.

There are actually two distinct bugs in play, here.  Up till now I've
been concentrating on the second one ....

> Next, delete and re-insert the final angle bracket on the line that
> reads:

>     std::pair<ipfix::InfoElementID,std::vector<T>>,

> Note the re-indention.

[ .... ]

> Then, try C-x h C-M-\ again.  Note another reindentation.

[ .... ]


> Type C-x h C-M-\ again.  Another re-indentation.  This
> one is stable, but incorrect.

[ .... ]

At the base of these errors is a failure to apply the syntax-table text
properties consistently to the <s and >s.  I'm quite some way through
fixing this, but it will be a few days yet before I'll have a working
fix.

Just as a matter of interest, the sort of thing which I'm looking at is
things like an open string such as:

        "            std::vector<std::vector<T>>>>>>,

, which then gets terminated, such as:

        "    "        std::vector<std::vector<T>>>>>>,

..  The angle brackets which were in a string no longer are, so need to
have the properties applied to them and their partners.  But this is
some way distant from the buffer change region.

> Emacs  : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo =
> version 1.16.0)
>  of 2023-04-14
> Package: CC Mode 5.35.2 (C++//l)
> Buffer Style: gnu
> c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-st=
> ring-delim gen-comment-delim syntax-properties category-properties 1-bit)

[ .... ]

> -- 
> Michael Welsh Duggan
> (md5i <at> md5i.com)

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-cc-mode <at> gnu.org:
bug#62841; Package cc-mode. (Wed, 17 May 2023 16:15:01 GMT) Full text and rfc822 format available.

Message #11 received at 62841 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Michael Welsh Duggan <mwd <at> md5i.com>
Cc: 62841 <at> debbugs.gnu.org
Subject: Re: bug#62841: CC Mode 5.35.2 (Group); Template indentation problems
Date: Wed, 17 May 2023 16:14:39 +0000
[Message part 1 (text/plain, inline)]
Hello, Michael.

On Sun, Apr 23, 2023 at 13:44:29 +0000, Alan Mackenzie wrote:
> Thanks for the bug report.

> On Fri, Apr 14, 2023 at 14:18:16 -0400, Michael Welsh Duggan wrote:
> > Package: cc-mode

> > Package: cc-mode

> > Load the included file, bar.cpp:


> > template <typename T>
> > using value_variant=
> >   std::pair<
> >   std::variant<
> >     ipfix::octetArray_t,
> >     ipfix::unsigned8_t,
> >     ipfix::unsigned16_t,
> >     ipfix::unsigned32_t,
> >     ipfix::unsigned64_t,
> >     ipfix::signed8_t,
> >     ipfix::signed16_t,
> >     ipfix::signed32_t,
> >     ipfix::signed64_t,
> >     ipfix::float32_t,
> >     ipfix::float64_t,
> >     ipfix::boolean_t,
> >     ipfix::macAddress_t,
> >     ipfix::string_t,
> >     ipfix::dateTimeSeconds_t,
> >     ipfix::dateTimeMilliseconds_t,
> >     ipfix::dateTimeMicroseconds_t,
> >     ipfix::dateTimeNanoseconds_t,
> >     ipfix::ipv4Address_t,
> >     ipfix::ipv6Address_t,
> >     std::pair<ipfix::InfoElementID,std::vector<T>>,
> >     std::pair<ipfix::TemplateID,std::vector<std::vector<T>>>,
> >     std::pair<std::vector<
> >                 std::pair<
> >                   ipfix::TemplateID,
> >                   std::vector<std::vector<T>>>>>>,
> >   ipfix::length_t>;


> > For example:

> > emacs -Q /tmp/bar.cpp

> > Type:
> > C-x h C-M-\

> > First, note that std::variant is not indented with respect to std::pair.

I have amended the indentation logic, by introducing a new line-up
function, so this should be fixed, now.

> There are actually two distinct bugs in play, here.  Up till now I've
> been concentrating on the second one ....

> > Next, delete and re-insert the final angle bracket on the line that
> > reads:

> >     std::pair<ipfix::InfoElementID,std::vector<T>>,

> > Note the re-indention.

This, together with the other indentation problems, I hope are fixed,
too.

[ .... ]

Would you please test the enclosed patch, which should apply cleanly to
the Emacs master branch.  And then let me know whether there are any
problems with it.  Thanks!

Just, there might be unfound interactions between the template markers
and raw strings, but I hope not.

> > Emacs  : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo =
> > version 1.16.0)
> >  of 2023-04-14
> > Package: CC Mode 5.35.2 (C++//l)
> > Buffer Style: gnu
> > c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-st=
> > ring-delim gen-comment-delim syntax-properties category-properties 1-bit)

> > -- 
> > Michael Welsh Duggan
> > (md5i <at> md5i.com)

-- 
Alan Mackenzie (Nuremberg, Germany).

[diff.20230517.diff (text/plain, attachment)]

Information forwarded to bug-cc-mode <at> gnu.org:
bug#62841; Package cc-mode. (Thu, 08 Jun 2023 17:40:02 GMT) Full text and rfc822 format available.

Message #14 received at 62841 <at> debbugs.gnu.org (full text, mbox):

From: Michael Welsh Duggan <mwd <at> md5i.com>
To: Alan Mackenzie <acm <at> muc.de>
Cc: Michael Welsh Duggan <mwd <at> md5i.com>, 62841 <at> debbugs.gnu.org
Subject: Re: bug#62841: CC Mode 5.35.2 (Group); Template indentation problems
Date: Thu, 08 Jun 2023 13:39:41 -0400
Alan Mackenzie <acm <at> muc.de> writes:

> Hello, Michael.
>
> On Sun, Apr 23, 2023 at 13:44:29 +0000, Alan Mackenzie wrote:
>> Thanks for the bug report.
>
>> On Fri, Apr 14, 2023 at 14:18:16 -0400, Michael Welsh Duggan wrote:
>> > Package: cc-mode
>
>> > Package: cc-mode
>
>> > Load the included file, bar.cpp:
>
>
>> > template <typename T>
>> > using value_variant=
>> >   std::pair<
>> >   std::variant<
>> >     ipfix::octetArray_t,
>> >     ipfix::unsigned8_t,
>> >     ipfix::unsigned16_t,
>> >     ipfix::unsigned32_t,
>> >     ipfix::unsigned64_t,
>> >     ipfix::signed8_t,
>> >     ipfix::signed16_t,
>> >     ipfix::signed32_t,
>> >     ipfix::signed64_t,
>> >     ipfix::float32_t,
>> >     ipfix::float64_t,
>> >     ipfix::boolean_t,
>> >     ipfix::macAddress_t,
>> >     ipfix::string_t,
>> >     ipfix::dateTimeSeconds_t,
>> >     ipfix::dateTimeMilliseconds_t,
>> >     ipfix::dateTimeMicroseconds_t,
>> >     ipfix::dateTimeNanoseconds_t,
>> >     ipfix::ipv4Address_t,
>> >     ipfix::ipv6Address_t,
>> >     std::pair<ipfix::InfoElementID,std::vector<T>>,
>> >     std::pair<ipfix::TemplateID,std::vector<std::vector<T>>>,
>> >     std::pair<std::vector<
>> >                 std::pair<
>> >                   ipfix::TemplateID,
>> >                   std::vector<std::vector<T>>>>>>,
>> >   ipfix::length_t>;
>
>
>> > For example:
>
>> > emacs -Q /tmp/bar.cpp
>
>> > Type:
>> > C-x h C-M-\
>
>> > First, note that std::variant is not indented with respect to std::pair.
>
> I have amended the indentation logic, by introducing a new line-up
> function, so this should be fixed, now.
>
>> There are actually two distinct bugs in play, here.  Up till now I've
>> been concentrating on the second one ....
>
>> > Next, delete and re-insert the final angle bracket on the line that
>> > reads:
>
>> >     std::pair<ipfix::InfoElementID,std::vector<T>>,
>
>> > Note the re-indention.
>
> This, together with the other indentation problems, I hope are fixed,
> too.
>
> [ .... ]
>
> Would you please test the enclosed patch, which should apply cleanly to
> the Emacs master branch.  And then let me know whether there are any
> problems with it.  Thanks!
>
> Just, there might be unfound interactions between the template markers
> and raw strings, but I hope not.
>
>> > Emacs  : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo =
>> > version 1.16.0)
>> >  of 2023-04-14
>> > Package: CC Mode 5.35.2 (C++//l)
>> > Buffer Style: gnu
>> > c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-st=
>> > ring-delim gen-comment-delim syntax-properties category-properties 1-bit)

Sorry it took me so long to get around to testing this.  This is *much*
better.  I haven't run into any problems so far; you can be sure I will
report again if I do.  Thanks!

-- 
Michael Welsh Duggan
(md5i <at> md5i.com)




Reply sent to Alan Mackenzie <acm <at> muc.de>:
You have taken responsibility. (Wed, 21 Jun 2023 15:50:02 GMT) Full text and rfc822 format available.

Notification sent to Michael Welsh Duggan <mwd <at> md5i.com>:
bug acknowledged by developer. (Wed, 21 Jun 2023 15:50:02 GMT) Full text and rfc822 format available.

Message #19 received at 62841-done <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Michael Welsh Duggan <mwd <at> md5i.com>
Cc: acm <at> muc.de, 62841-done <at> debbugs.gnu.org
Subject: Re: bug#62841: CC Mode 5.35.2 (Group); Template indentation problems
Date: Wed, 21 Jun 2023 15:49:01 +0000
Hello, Michael.

On Thu, Jun 08, 2023 at 13:39:41 -0400, Michael Welsh Duggan wrote:
> Alan Mackenzie <acm <at> muc.de> writes:

[ .... ]

> Sorry it took me so long to get around to testing this.  This is *much*
> better.  I haven't run into any problems so far; you can be sure I will
> report again if I do.  Thanks!

Thank you!

And for my part, sorry it's taken me so long to commit it - it's been a
busy fortnight.  But I have now committed the fix to CC Mode and the
Emacs master branch.

I'm closing the bug with this post.  

> -- 
> Michael Welsh Duggan
> (md5i <at> md5i.com)

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-cc-mode <at> gnu.org:
bug#62841; Package cc-mode. (Sun, 25 Jun 2023 15:16:02 GMT) Full text and rfc822 format available.

Message #22 received at 62841 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Michael Welsh Duggan <mwd <at> md5i.com>
Cc: 62841 <at> debbugs.gnu.org
Subject: Re: bug#62841: CC Mode 5.35.2 (Group); Template indentation problems
Date: Sun, 25 Jun 2023 15:15:28 +0000
Hello, Michael.

On Wed, Jun 21, 2023 at 15:49:01 +0000, Alan Mackenzie wrote:
> On Thu, Jun 08, 2023 at 13:39:41 -0400, Michael Welsh Duggan wrote:
> > Alan Mackenzie <acm <at> muc.de> writes:

[ .... ]

> I'm closing the bug with this post.  

I found a further problem with this bug.  If on the second last line of
your test file (the one ending with ">>>>>>,", you comment out the last
three >s with a block comment, by typing in /, *, *, / one character at
a time, this leaves the > on the last line unmarked as a template
closer.

This was caused by wrongly scanning text starting between the two
characters of the comment delimiters.

I've just committed a fix to the Emacs master branch which should fix
this.

> > -- 
> > Michael Welsh Duggan
> > (md5i <at> md5i.com)

-- 
Alan Mackenzie (Nuremberg, Germany).




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 24 Jul 2023 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 270 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.