zsh-workers
 help / color / mirror / code / Atom feed
From: Peter Stephenson <p.stephenson@samsung.com>
To: Zsh hackers list <zsh-workers@zsh.org>
Subject: Re: How should empty aliases work?
Date: Wed, 03 Jan 2018 11:47:25 +0000	[thread overview]
Message-ID: <20180103114725.1330ba49@pwslap01u.europe.root.pri> (raw)
In-Reply-To: <CAH+w=7bB+FugYxHnw-6WWLYU3DoCxv_FangQiDcRWN=LR+Hvig@mail.gmail.com>

On Fri, 29 Dec 2017 17:14:38 -0800
Bart Schaefer <schaefer@brasslantern.com> wrote:
> On Fri, Dec 29, 2017 at 12:30 AM, Bart Schaefer
> <schaefer@brasslantern.com> wrote:
> >
> > % alias empty=''
> > % alias output='empty echo'
> > % alias echo='print -r bar'
> > % output foo
> >
> > What actually happens is that "echo" expands and "print -r bar foo" is
> > executed.  If that's correct, can someone explain why?
> 
> I think the answer is that being a word in command position has
> precedence over being a word preceded by an alias replacement.  Words
> in command position are always alias-replaceable; words not in command
> position are alias-replaceable if preceded by an alias replacement
> that ended with a space.
> 
> So when "empty" disappears, it leaves "echo" in command position and
> the first clause applies even though the second clause does not.

Yes, when we get to "echo" we have no remaining knowledge that we've
expanded an alias.  The documentation simply refers to an alias being
expanded "if it is in command position [or a global alias]", with no
reference to preceding aliases.  So I think everything is as it should
be.

Consider also

alias foo="echo alias expanded;"

% foo foo
alias expanded
alias expanded

which is just following the same rules.

pws


      reply	other threads:[~2018-01-03 11:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-29  8:30 Bart Schaefer
2017-12-30  1:14 ` Bart Schaefer
2018-01-03 11:47   ` Peter Stephenson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180103114725.1330ba49@pwslap01u.europe.root.pri \
    --to=p.stephenson@samsung.com \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).