zsh-workers
 help / color / mirror / code / Atom feed
* Bug? ignorebraces and autoloaded functions
@ 2023-09-13  4:24 Bart Schaefer
  0 siblings, 0 replies; only message in thread
From: Bart Schaefer @ 2023-09-13  4:24 UTC (permalink / raw)
  To: Zsh hackers list

On Tue, Sep 12, 2023 at 8:41 PM Bart Schaefer <schaefer@brasslantern.com> wrote:
>
> You have to setopt ignorebraces before you define the
> function.  Otherwise the internals of the function have already been
> parsed and the behavior doesn't change.

This means that a bunch of functions in the default zsh $fpath will
not load if ignorebraces is set.  As an example, try

autoload -Uz zed
setopt ignorebraces
zed

Adding noignorebraces to the local options in the function isn't soon enough.

In the case of zed, there are two brace-enclosed
current-shell-commands on line 147.  To make it impervious to
ignorebraces, it's necessary to precede each closing brace with a
command terminator (semicolon or newline).

There are not many of these under Functions/ (and it appears the
majority of them are functions that I contributed) but there are quite
a few under Completion/.

Is this something that autoload should take care of?  Could it be
imposed by the -z option, or less intuitively the -U option, or would
a new option be needed?  A workaround is to use emulate:

emulate zsh -f -c 'autoload -U zed'

That's a bit clumsy, though.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-09-13  4:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-13  4:24 Bug? ignorebraces and autoloaded functions Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).