[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#11982: 24.1.50; (Contains ERT Test) show-paren-mode doesn't work in
From: |
Alan Mackenzie |
Subject: |
bug#11982: 24.1.50; (Contains ERT Test) show-paren-mode doesn't work in C comments if there's a quote between the parenthesis (affects c-mode and modes derived from it) |
Date: |
25 Aug 2019 14:10:58 -0000 |
User-agent: |
tin/2.4.2-20171224 ("Lochhead") (UNIX) (FreeBSD/11.2-RELEASE-p9 (amd64)) |
Hello, Vincent and Noam.
In article <mailman.72.1566487266.1922.bug-gnu-emacs@gnu.org> you wrote:
> On 2019-08-22 11:05:04 -0400, Noam Postavsky wrote:
>> I can reproduce up to 25.3, but it seems to be fixed in 26.1.
> No, not fixed in 26.1, where this depends on some context.
This "context" is a syntax-table text property on the apostrophe which
"neutralises" it's normal string syntax. Without this text property,
the apostrophe, a string opener, breaks the association of the two
parentheses.
The code which applies and removes these syntax-table text properties is
somewhat involved. I believe it is working correctly in the master
branch, but wasn't in Emacs-26.
> This is rather random, but here's a way to reproduce the
> bug in Debian:
> 1. emacs-gtk -Q foo.c
> (where foo.c does not exist)
> 2. Paste "// Comments are good (aren't they?)"
For some value of "paste". Inserting the text on a Linux tty with the GPM
mouse utility (in 26.1) causes the text property to be correctly set.
Killing the entire line with C-k, followed by yanking it with C-y leaves
the text property unset (again in 26.1).
> 3. Type C-M-p
> I get an error:
> forward-list: Scan error: "Unbalanced parentheses", 35, 1
> This problem does not occur without the apostrophe.
No. The apostrophe is a "string opener", see above. It's normal use is
to delimit character constants, as:
char foo = 'F';
> --
> Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
--
Alan Mackenzie (Nuremberg, Germany).