This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Patch for problems with profile script in Win9x [Attn: base-files maintainer]
On Sun, Mar 07, 2004 at 03:39:30PM -0500, Igor Pechtchanski wrote:
>On Sun, 7 Mar 2004, Paul Galbraith wrote:
>
>> It seems that the default profile script checks what shell the user is
>> running and sets appropriate defaults based on the shell. Unfortunately, on
>> all Win9x installs that I've done recently, I've noticed that the profile
>> isn't correctly identifying that bash is my shell (which it indeed is). The
>> problem seems to be that $0 is set to 'BASH', whereas the script is testing
>> for 'bash'. The following changes to /etc/profile fix things up for me.
>>
>> I know that /etc/profile comes from the base-files package, but I don't know
>> where the source is located for that package...perhaps someone more
>> knowledgeable than I can submit this patch to the appropriate place?
>> Thanks!
>>
>> Paul
>
>Paul,
>
>base-files is a source-only package. Also, this is the appropriate place
>for patches. I'm sure the base-files maintainer reads this list.
>
>> --- /etc/profile.orig 2004-03-07 10:03:26.000000000 -0500
>> +++ /etc/profile 2004-03-07 10:24:12.000000000 -0500
>> @@ -78,7 +78,11 @@
>> # export CVSROOT
>>
>> # Shell dependent settings
>> -case "$0" in
>> +SHELLNAME_TMP1=`mktemp`
>> +SHELLNAME_TMP2=`mktemp`
>> +echo $0 > $SHELLNAME_TMP1
>> +tr [:upper:] [:lower:] < $SHELLNAME_TMP1 > $SHELLNAME_TMP2
>> +case `cat $SHELLNAME_TMP2` in
>> bash | -bash | */bash | \
>> bash.exe | -bash.exe | */bash.exe )
>> # Set a HOSTNAME variable
>> @@ -122,6 +126,8 @@
>> PS1='$ '
>> ;;
>> esac
>> +rm $SHELLNAME_TMP1
>> +rm $SHELLNAME_TMP2
>>
>> export PS1
>
>FWIW, this problem has been reported before. One of the solutions
>previously proposed for this problem was adding the various
>capitalizations of "bash" to the case, i.e.,
>
>case "$0" in
>[Bb][Aa][Ss][Hh] | -[Bb][Aa][Ss][Hh] | */[Bb][Aa][Ss][Hh] | \
>[Bb][Aa][Ss][Hh].[Ee][Xx][Ee] | -[Bb][Aa][Ss][Hh].[Ee][Xx][Ee] | */[Bb][Aa][Ss][Hh].[Ee][Xx][Ee] )
> # Set a HOSTNAME variable
FWIW, this solution should be faster than one that involves echo, tr,
and two pipes.
cgf
>Your solution looks cleaner, although, as Karl pointed out, it can be
>shortened to the following (also made space-in-filename friendly):
>
>case "`echo "$0" | tr [:upper:] [:lower:]`" in
>bash | -bash | */bash | \
>bash.exe | -bash.exe | */bash.exe )
> # Set a HOSTNAME variable
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/