Subject: bug#33114: 25.2; Emacs hangs on closing a perenthesis in a regexp in cperl mode

From: Vincent Lefevre <[email-masked]>
Date: Thu, 25 Oct 2018 13:21:17 +0200

On 2018-10-23 18:19:59 +0300, Eli Zaretskii wrote:
> > # -*- mode: cperl -*-
> > s/./(/e;
> > 
> > 1. Open it with "emacs -Q".
> > 2. Put the cursor just after the opening parenthesis.
> > 3. Type ')' (closing parenthesis).
> > 
> > This makes Emacs hang. A C-g alone has no effect. Several C-g in a row
> > may give the control back to the user.
> 
> Does the patch below produce good results?  (I don't use CPerl mode,
> so I don't know if the highlighting after the change is correct.)

Thanks, this solves the hang problem, and the highlighting still
seems to be correct.

Note that there is still a bug: I get an error

  End of ‘s/ ... // ... /’ string/RE not found: (scan-error Unbalanced parentheses 26 29)

but I already got this error without the patch under conditions
with which Emacs did not hang, e.g. with:

  s/./(/;

(i.e. without the 'e').

-- 
Vincent Lefèvre <[email-masked]> - 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)