zsh-workers
 help / color / mirror / code / Atom feed
From: Zoltan Hidvegi <hzoli@cs.elte.hu>
To: schaefer@nbn.com
Cc: zsh-workers@math.gatech.edu, pws@ifh.de
Subject: Re: Bug Report: Env Vars and shell functions
Date: Fri, 12 Jul 1996 19:43:30 +0200 (MET DST)	[thread overview]
Message-ID: <199607121743.TAA10268@bolyai.cs.elte.hu> (raw)
In-Reply-To: <960712101804.ZM15374@candle.brasslantern.com> from Bart Schaefer at "Jul 12, 96 10:18:00 am"

> } And it also says that shell functions should be handled similarily to
> } special builtins (which means that recent patches from Peter and me make
> } zsh less conformant).
> 
> But more intuitive.  I suspect POSIX was merely codifying existing sh/ksh
> behavior there.

I agree.

> } Zsh currently treats a builtin this way
> 
> Clarity:  Zsh treats a builtin the way it treats a shell function ...

Not, the question is wether FOO=bar builtin should affect the shell
environment or not.

> } only if the BINF_MAGICEQUALS flag
> } is set for the builtin.  These builtins are: alias, declare, hash, integer,
> } local, readonly and typeset.

[...]

> } Also note that command arguments are evaluated before variable assignments
> } so the above example will never work.
> 
> Has this always been the case?  (Peter?)  Is this correct according to
> POSIX?  Of what use is the BINF_MAGICEQUALS behavior if the args are
> evaluated before the variable gets assigned?

I think it has.  Substitution is always done in the current shell
environment while FOO=bar something type assignments are done after fork()
(that's why they are local).  Of course fork() is not called for builtins
and functions but the behaviour should be similar (in the future some new
builtins may be added as a builtin replacement for external commands and
that change sould be transparent).

> Hmm.  So `command typeset foo=bar ; echo $foo' has what effect in POSIX?

The command prefix makes special builtins behave like external commands.
So command typeset foo=bar is probably a no-op in POSIX.  It is a no-op in
pdksh but not in bash and ksh93.  But what I really meant is that in POSIX
(and in zsh too)

FOO=bar export FOO

exports foo but

FOO=bar command export FOO

is just a no-op.  Bash does not know that but ksh93 and pdksh do.

> } I'm writing these because these differences between zsh and POSIX are
> } probably the most important ones.
> 
> Perhaps that means they should be recorded somewhere, maybe Etc/BUGS or
> a new file?  (Where's the wish-list/ToDo-list nowadays?)

I'd like to add a COMPATIBILITY section to the manual where these things
will be documented.  Unfortunately at the moment I'm quite busyly fixing
the zsh code which I consider more important.

Zoltan



      reply	other threads:[~1996-07-12 17:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-07-08  3:49 Peter Bray
1996-07-08  8:58 ` Bart Schaefer
1996-07-08 12:49   ` Peter Stephenson
1996-07-10  2:33     ` Zoltan Hidvegi
1996-07-10 12:19       ` Vinnie Shelton
1996-07-10 13:45         ` Zoltan Hidvegi
1996-07-11 22:11           ` Anthony Heading
1996-07-12 12:17             ` Peter Stephenson
1996-07-12 15:27             ` Zoltan Hidvegi
1996-07-12 16:01               ` Anthony Heading
1996-07-12 17:18               ` Bart Schaefer
1996-07-12 17:43                 ` Zoltan Hidvegi [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=199607121743.TAA10268@bolyai.cs.elte.hu \
    --to=hzoli@cs.elte.hu \
    --cc=pws@ifh.de \
    --cc=schaefer@nbn.com \
    --cc=zsh-workers@math.gatech.edu \
    /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).