summary refs log tree commit diff
diff options
context:
space:
mode:
authorWayne Davison <wayned@users.sourceforge.net>2003-09-10 19:02:51 +0000
committerWayne Davison <wayned@users.sourceforge.net>2003-09-10 19:02:51 +0000
commitcd084812df8f940a8598c9f8c8b7ffac1f568542 (patch)
treef203921875bcd12c2289eea040fcf1275ddf746d
parentb26ec00df5054a9cef4b62ee48c351bbb0cf18f4 (diff)
downloadzsh-cd084812df8f940a8598c9f8c8b7ffac1f568542.tar.gz
zsh-cd084812df8f940a8598c9f8c8b7ffac1f568542.tar.xz
zsh-cd084812df8f940a8598c9f8c8b7ffac1f568542.zip
Improved the comments to no longer suggest that setting PATH here is
a safe thing to do (though I do provide a safe way to do that if the
user really insists on it).
-rw-r--r--StartupFiles/zshenv35
1 files changed, 23 insertions, 12 deletions
diff --git a/StartupFiles/zshenv b/StartupFiles/zshenv
index 0f7bb7c3b..23363a433 100644
--- a/StartupFiles/zshenv
+++ b/StartupFiles/zshenv
@@ -1,20 +1,31 @@
 #
-# Generic .zshenv file for zsh 2.7
+# Generic .zshenv file for zsh
 #
-# .zshenv is sourced on all invocations of the
-# shell, unless the -f option is set.  It should
-# contain commands to set the command search path,
-# plus other important environment variables.
-# .zshenv should not contain commands that product
-# output or assume the shell is attached to a tty.
+# .zshenv is sourced on ALL invocations of the shell, unless the -f option is
+# set.  It should NOT normally contain commands to set the command search path,
+# or other common environment variables unless you really know what you're
+# doing.  E.g. running "PATH=/custom/path gdb program" sources this file (when
+# gdb runs the program via $SHELL), so you want to be sure not to override a
+# custom environment in such cases.  Note also that .zshenv should not contain
+# commands that produce output or assume the shell is attached to a tty.
 #
 
 # THIS FILE IS NOT INTENDED TO BE USED AS /etc/zshenv, NOR WITHOUT EDITING
 return 0	# Remove this line after editing this file as appropriate
 
-export X11HOME=/usr/X11
+# This kludge can be used to override some installations that put aliases for
+# rm, mv, etc. into the system profiles.  Just be sure to put "unalias alias"
+# in your own rc file(s) if you use this.
+alias alias=:
 
-path=($X11HOME/bin)
-path=($path /usr/ucb /usr/bin /usr/etc)
-path=($path /usr/local/bin)
-path=($path ~ .)
+# Some people insist on setting their PATH here to affect things like ssh.
+# Those that do should probably use $SHLVL to ensure that this only happens
+# the first time the shell is started (to avoid overriding a customized
+# environment).  Also, the various profile/rc/login files all get sourced
+# *after* this file, so they will override this value.  One solution is to
+# put your path-setting code into a file named .zpath, and source it from
+# both here (if we're not a login shell) and from the .zprofile file (which
+# is only sourced if we are a login shell).
+if [[ $SHLVL == 1 && ! -o LOGIN ]]; then
+    source ~/.zpath
+fi