GNU bug report logs - #74245
30.0.92; CPerl subroutine signatures are left open when last param is $

Previous Next

Package: emacs;

Reported by: Peter Oliver <p.d.oliver <at> mavit.org.uk>

Date: Thu, 7 Nov 2024 19:20:02 UTC

Severity: normal

Found in version 30.0.92

Fixed in version 30.0

Done: Harald Jörg <haj <at> posteo.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Harald Jörg <haj <at> posteo.de>
To: Stefan Kangas <stefankangas <at> gmail.com>
Cc: Peter Oliver <p.d.oliver <at> mavit.org.uk>, 74245 <at> debbugs.gnu.org
Subject: bug#74245: 30.0.92; CPerl subroutine signatures are left open when last param is $
Date: Sun, 12 Jan 2025 00:34:57 +0000
Stefan Kangas <stefankangas <at> gmail.com> writes:

> Peter Oliver <p.d.oliver <at> mavit.org.uk> writes:
>
>> Perl subroutine signatures can include a variable with no name, just
>> a bare $, to indicate that a parameter should be ignored.  If this
>> happens in the last place, CPerl mode in Emacs 30.0.92 mishandles
>> it, and is unable to see the closing ).  Consequently, it matches
>> parentheses incorrectly, and misindents subsequent blocks.
>>
>> I have a test that I will send in as a patch, once I have a bug number.
>>
>> This issue is not present in Emacs 29.4.
>
> Harald, could you please take a look at this?

I apologize, for some reason this bug report slipped by me.  I'll have a
look next week.  I can reproduce the bug.

On first glance, there's a workaround: Add a trailing comma to the
parameter list.  Ugly, but prevents the indentation from being messed up:

    sub ignore ($first, $,) {}

-- 
Cheers,
haj





This bug report was last modified 125 days ago.

Previous Next


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