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: 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/


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