Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: zsh startup files
- X-seq: zsh-users 2236
- From: Doug Morris <doug@xxxxxxxx>
- To: monnier@xxxxxxxxxxxxxxxxxxx, zsh-users@xxxxxxxxxxxxxx
- Subject: Re: zsh startup files
- Date: Thu, 25 Mar 1999 12:17:31 +0100
- In-reply-to: Your message of "Thu, 25 Mar 1999 00:53:32 EST." <19990325005332.B5194@xxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxxxxxx; run by ezmlm
- Sender: doug@xxxxxxxxxxxxx
I can vaguely see a reason for this. The files are sourced
differently depending on the type of the shell being started. ie:
Always sourced
/etc/zshenv ~/.zshenv
Sourced for non-interactive login shells
/etc/zshenv ~/.zshenv /etc/zprofile ~/.zprofile /etc/zlogin ~/.zlogin
Sourced for interactive login shells
/etc/zshenv ~/.zshenv /etc/zprofile ~/.zprofile /etc/zshrc ~/.zshrc
/etc/zlogin ~/.zlogin
So it almost makes sense. You don't want the ~/.z* files waiting for
all the /etc/z* files to be sourced first. Still, this doesn't seem
like it would be too difficult to correct. The thing to do, though,
would be to change the order to:
Non-interactive Login shell
/etc/zshenv /etc/zprofile /etc/zlogin ~/.zprofile ~/.zshenv ~/.zlogin
Interactive Login Shell
/etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin ~/.zshenv ~/.zprofile
~/.zshrc ~/.zlogin
I believe the diff below of init.c from zsh-3.0.5 will produce this
behavior. It appears to apply to zsh-3.1.5 as well, though I haven't
tried building it to make sure.
Since writing the above, I've received the list message from Peter
Stephenson <pws@xxxxxxxxxxxxxxxxx> saying there may be a good reason
for leaving things alone. I guess this diff may or may not be useful.
However, I'd argue that, if you're going to make it a switchable
option. It should use this order by default, and the switch should
enable the old source order. Maintaining backward compatibility is a
worthy plan, but I think correcting this odd order is better in the
long run and should be the default. The option should be provided to
allow people who need time to migrate their environment a temporary
workaround.
-Doug Morris
"You don't have to deceive programmers to make them think that hours
of painstaking, often frustrating work is fun... they do it to
themselves."
Noel Giffin, The Stone Soup Story
*** init.c.orig Thu Mar 25 09:35:12 1999
--- init.c Thu Mar 25 10:03:47 1999
***************
*** 744,770 ****
source(GLOBAL_ZSHENV);
#endif
if (isset(RCS)) {
- if (unset(PRIVILEGED))
- sourcehome(".zshenv");
- if (islogin) {
#ifdef GLOBAL_ZPROFILE
source(GLOBAL_ZPROFILE);
#endif
- if (unset(PRIVILEGED))
- sourcehome(".zprofile");
- }
- if (interact) {
#ifdef GLOBAL_ZSHRC
source(GLOBAL_ZSHRC);
#endif
- if (unset(PRIVILEGED))
- sourcehome(".zshrc");
- }
- if (islogin) {
#ifdef GLOBAL_ZLOGIN
source(GLOBAL_ZLOGIN);
#endif
! if (unset(PRIVILEGED))
sourcehome(".zlogin");
}
}
--- 744,768 ----
source(GLOBAL_ZSHENV);
#endif
if (isset(RCS)) {
#ifdef GLOBAL_ZPROFILE
+ if (islogin)
source(GLOBAL_ZPROFILE);
#endif
#ifdef GLOBAL_ZSHRC
+ if (interact)
source(GLOBAL_ZSHRC);
#endif
#ifdef GLOBAL_ZLOGIN
+ if (islogin)
source(GLOBAL_ZLOGIN);
#endif
! if (unset(PRIVILEGED)) {
! sourcehome(".zshenv");
! if (islogin)
! sourcehome(".zprofile");
! if (interact)
! sourcehome(".zshrc");
! if (islogin)
sourcehome(".zlogin");
}
}
Messages sorted by:
Reverse Date,
Date,
Thread,
Author