This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: /etc/profile


Achim Gratz writes:
[...]
Hit send too soon... here's the patch set again without the typos.

>From 8a930eb8adc4d9364ea0d6c8f63be448c539b448 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sat, 25 Aug 2012 08:19:12 +0200
Subject: [PATCH 1/3] Protect ORIGINAL_PATH and control behaviour by
 CYGWIN_NOWINPATH

* etc/defaults/etc/profile: Protect an existing ORIGINAL_PATH
  variable.  Strip windows PATH only from Cygwin path if variable
  CYGWIN_NOWINPATH is set.
---
 etc/defaults/etc/profile | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 etc/defaults/etc/profile

diff --git a/etc/defaults/etc/profile b/etc/defaults/etc/profile
old mode 100644
new mode 100755
index b5a803d..5458446
--- a/etc/defaults/etc/profile
+++ b/etc/defaults/etc/profile
@@ -29,8 +29,14 @@
 # software to override 'system' software.
 # Modifying these default path settings can be done in different ways.
 # To learn more about startup files, refer to your shell's man page.
-ORIGINAL_PATH="${PATH}"
-PATH="/usr/local/bin:/usr/bin"
+if [ "${ORIGINAL_PATH-null}" = "null" ]; then
+  ORIGINAL_PATH="${PATH}"
+fi
+if [ "${CYGWIN_NOWINPATH-null}" = "null" ];then
+  PATH="/usr/local/bin:/usr/bin:${PATH}"
+else
+  PATH="/usr/local/bin:/usr/bin"
+fi
 MANPATH="/usr/local/man:/usr/share/man:/usr/man:${MANPATH}"
 INFOPATH="/usr/local/info:/usr/share/info:/usr/info:${INFOPATH}"
 
-- 
1.7.11.5

>From c3a3b56e8402f373507585bbeee5509e0df22412 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sat, 25 Aug 2012 08:21:08 +0200
Subject: [PATCH 2/3] Do not set LC_ALL unconditionally

* etc/defaults/etc/profile: Avoid setting LC_ALL if it wasn't set to begin with.
---
 etc/defaults/etc/profile | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/etc/defaults/etc/profile b/etc/defaults/etc/profile
index 5458446..c3d9c47 100755
--- a/etc/defaults/etc/profile
+++ b/etc/defaults/etc/profile
@@ -107,12 +107,19 @@ fi
 # Shell dependent settings
 profile_d ()
 {
-  _LC_SAVE_="{LC_ALL}"
+  _LC_SAVE_="${LC_ALL-null}"
   LC_ALL=C
-  for file in /etc/profile.d/*.$1); do
-    [ -e "${file}" ] && LC_ALL="${_LC_SAVE_}" . "${file}"
-  done
-  LC_ALL="{_LC_SAVE_}"
+  if [ "${_LC_SAVE_}" = "null" ]; then
+    for file in /etc/profile.d/*.$1; do
+      [ -e "${file}" ] && . "${file}"
+    done
+    unset LC_ALL
+  else
+    for file in /etc/profile.d/*.$1; do
+      [ -e "${file}" ] && LC_ALL="${_LC_SAVE_}" . "${file}"
+    done
+    LC_ALL="${_LC_SAVE_}"
+  fi
   unset file
   unset _LC_SAVE_
 }
-- 
1.7.11.5

>From f03f4ab0b47312959dd9d57a520af3f4a4c50011 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sat, 25 Aug 2012 08:35:02 +0200
Subject: [PATCH 3/3] Do not set PS1 for non-interactive shells

* etc/defaults/etc/profile: Do not set PS1 for non-interactive shells.
  Zsh is in sh compatibility mode when it sources /etc/profile, so
  don't use zsh extensions.  Posh should also run profile_d.
---
 etc/defaults/etc/profile | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/etc/defaults/etc/profile b/etc/defaults/etc/profile
index c3d9c47..1e63c32 100755
--- a/etc/defaults/etc/profile
+++ b/etc/defaults/etc/profile
@@ -124,25 +124,20 @@ profile_d ()
   unset _LC_SAVE_
 }
 
+HOSTNAME="$(/usr/bin/hostname)"
+profile_d sh
 if [ ! "x${BASH_VERSION}" = "x"  ]; then
-  HOSTNAME="$(/usr/bin/hostname)"
-  profile_d sh
   [ -f "/etc/bash.bashrc" ] && . "/etc/bash.bashrc"
 elif [ ! "x${KSH_VERSION}" = "x" ]; then
   typeset -l HOSTNAME="$(/usr/bin/hostname)"
-  profile_d sh
-  PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n$ ')
+  [ "${PS1-null}" = "null" ] || PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n$ ')
 elif [ ! "x${ZSH_VERSION}" = "x" ]; then
-  HOSTNAME="$(/usr/bin/hostname)"
+  # zsh is in shell compatibility mode here, so we probably shouldn't do this
   profile_d zsh
-  PS1='(%n@%m)[%h] %~ %% '
 elif [ ! "x${POSH_VERSION}" = "x" ]; then
-  HOSTNAME="$(/usr/bin/hostname)"
-  PS1="$ "
+  {}; #[ "${PS1-null}" = "null" ] || PS1="$ "
 else 
-  HOSTNAME="$(/usr/bin/hostname)"
-  profile_d sh
-  PS1="$ "
+  {}; #[ "${PS1-null}" = "null" ] || PS1="$ "
 fi
 
 export PATH MANPATH INFOPATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL tmp temp
-- 
1.7.11.5


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]