Subject: bug#6978: closed (Re: bug#6978: show-paren-mode doesn't match when scope "::" operator is used : emacs 32.1.97)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 11 Oct 2019 19:33:02 +0000

Your bug report

#6978: show-paren-mode doesn't match when scope "::" operator is used : emacs 32.1.97

which was filed against the emacs,cc-mode package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6978: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6978
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6978: show-paren-mode doesn't match when scope "::" operator is used : emacs 32.1.97
From: Alan Mackenzie <[email-masked]>
To: Stefan Kangas <[email-masked]>
Cc: Richard Copley <[email-masked]>, [email-masked]
Date: Fri, 11 Oct 2019 19:32:48 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Stefan.

On Sun, Oct 06, 2019 at 22:21:39 +0200, Stefan Kangas wrote:
> Hi Alan,

> Alan Mackenzie <[email-masked]> writes:

> > The following seems to fix the bug:

> I can verify that applying your patch to current master fixes the bug
> for me.  I think you can push and close this bug.  Thanks for fixing
> it.

I've actually developed a longer, more rigorous patch, which I've
committed.  The C++ standard says that although <:: should be recognised
as a template opener, <::>, and <::: should not be.  The committed patch
follows this.

I'm closing the bug with this post.

> Best regards,
> Stefan Kangas

-- 
Alan Mackenzie (Nuremberg, Germany).

Subject: show-paren-mode doesn't match when scope "::" operator is used : emacs 32.1.97
From: "Bob" <[email-masked]>
To: <[email-masked]>
Date: Fri, 3 Sep 2010 09:05:11 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Emacs 23.1.97:

When using the C++ scope operator "::", show-paren-mode gets confused:

------  Foo.cpp ------------------------------------

struct Foo1 {};

namespace X

{

  struct Foo2 {};

  template<class _Y>

  struct Bar;

  template<>

  struct Bar<::Foo1>         // "(show-paren-mode)" does not match `>` to
`<`

  {

  };

  template<>

  struct Bar<Foo2>           // "(show-paren-mode)" correctly matches `>` to
`<` 

  {

  };

}

---------------------------------------------