Date:        Wed, 4 Jun 2025 00:57:15 +0900
    From:        Koichi Murase <myoga.mur...@gmail.com>
    Message-ID:  
<caflrlk_1i3mmgf71+bdop2en5sfc+4ezp1gwo_w97tdvvnr...@mail.gmail.com>

  | > xx. <( and >( can now be used in function names.
  |
  | What is the background of this change?

I think I agree with the point here -- while I strongly believe that
almost anything should be possible as a character in a function
name (the one real exception is / as the rules for when functions
are found mean that one containing a / will never be found, and
of course \0 for all the obvious reasons).

However, operators, white space, ... are still (and should remain)
magic sequences in any shell, and not become part of a word (unless
embedded in a command substitution or other expansion) - unless they
are quoted.

A function name should remain a shell "word" - including being possibly
partly or fully a quoted word, after all, if it contains operator chars,
white space, or quoting chars, then it will need to be quoted to be
invoked, it seems eminently sensible to require such a thing to be
quoted when defined as well.   Quote removal should be applied to it
when it is being defined (just as it is applied to the command name
in a simple command, before that is looked up - as a function, built-in,
or filesystem command).

kre


Reply via email to