GNU bug report logs - #21477
24.4; Imenu - improper parse of shell function names

Previous Next

Package: emacs;

Reported by: Matthew Persico <mpersico5 <at> bloomberg.net>

Date: Mon, 14 Sep 2015 15:29:02 UTC

Severity: normal

Merged with 52319, 52928, 54265, 56003, 57255, 58554

Found in version 24.4

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: "Matthew Persico (BLOOMBERG/ 919 3RD A)" <mpersico5 <at> bloomberg.net>
To: schwab <at> linux-m68k.org
Cc: 21477 <at> debbugs.gnu.org, stefan <at> marxist.se
Subject: bug#21477: 24.4; Imenu - improper parse of shell function names
Date: Wed, 12 Aug 2020 15:57:12 -0000
[Message part 1 (text/plain, inline)]
I asked on bug-bash:

The bash-20191127 snapshot updated the manpage documentation for a
function definition (to align with reality). It is now defined as:

function fname [()] compound-command [redirection]

and includes the description:

When in posix mode, fname must be a valid shell name and may not be the
name of one of the POSIX special builtins. In default mode, a function
name can be any unquoted shell word that does not contain $.

For context:

word  -  A sequence of characters considered as a single unit by the
shell. Also known as a token.

name  -  A word consisting only of alphanumeric characters and
underscores, and beginning with an alphabetic character or an
underscore. Also referred to as an identifier.

--
Eli Schwartz
Bug Wrangler and Trusted User

I guess you could go full-on and change the function name match pattern to be a "word" or just add the '-' to it for now to be safe.


From: schwab <at> linux-m68k.org At: 08/12/20 10:54:40To:  Matthew Persico (BLOOMBERG/ 919 3RD A ) 
Cc:  stefan <at> marxist.se,  21477 <at> debbugs.gnu.org
Subject: Re: bug#21477: 24.4; Imenu - improper parse of shell function names

On Aug 12 2020, Matthew Persico (BLOOMBERG/ 919 3RD A) wrote:

> I can reproduce this behaviour, but is it really a bug?  Aren't the
> names with '-' invalid?

It's a POSIX extension, enforced in POSIX mode:

  13. Function names must be valid shell 'name's.  That is, they may not
     contain characters other than letters, digits, and underscores, and
     may not start with a digit.  Declaring a function with an invalid
     name causes a fatal syntax error in non-interactive shells.

Andreas.

-- 
Andreas Schwab, schwab <at> linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."


[Message part 2 (text/html, inline)]

This bug report was last modified 224 days ago.

Previous Next


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