Disappearing rxvt Windows -- can anyone else duplicate this problem?

Jason Tishler jason@tishler.net
Tue Aug 28 12:03:00 GMT 2001


Chris,

On Tue, Aug 28, 2001 at 01:10:21AM -0400, Christopher Faylor wrote:
> On Mon, Aug 27, 2001 at 09:20:04PM -0400, Jason Tishler wrote:
> >Earnie,
> >
> >On Mon, Aug 27, 2001 at 05:13:48PM -0400, Earnie Boyd wrote:
> >> You know about the -tn switch to rxvt don't you?
> >
> >Yes, but you are missing the point which is the following bash construct:
> >
> >    term=$(cat $TERMFILE)
> >
> >causes problems for Cygwin -- not how I choose to set my TERM variable.
> 
> I'm sorry to say that I can't duplicate this.
> 
> I put the above, and nothing but the above in my .bash_profile and rxvt
> still operates properly.

Unfortunately, this problem is a more insidious (and less straight
forward) then I last thought.  My latest hypothesis is that many command
substitutions and not specifically the above instance of one is the
cause of the problem.

The following shows that my bash startup actually invokes approximately 15
different command substitutions:

    $ fgrep '$(' $(lprof althea) /etc/profile | fgrep -v '$(('
    .bash_profile:export HOSTNAME=${HOSTNAME:-$(uname -n)}
    .bash_profile:HOSTNAME=$(echo ${HOSTNAME%%.*} | tr 'A-Z' 'a-z')
    .bash_profile-althea:SystemRoot=$(cygpath -u $SYSTEMROOT)
    .bash_profile-althea:SystemDrive=$(cygpath -u $SYSTEMDRIVE)
    .bash_profile-althea:ProgramFile=$(cygpath -u "$SYSTEMDRIVE/Program Files")
    .bash_profile-althea:export TEMP=$(cygpath -u ${TEMP:-$SYSTEMDRIVE\\TEMP})
    .bash_profile-althea:export TMP=$(cygpath -u ${TMP:-$SYSTEMDRIVE\\tmp})
    .bash_setterm:	# term=$(cat $TERMFILE)
    .bashrc:	if [[ $(uname -s) = SunOS ]]
    .bashrc:		words="$(ls -1 ${CEPATH//:/ } 2>/dev/null | fgrep -v /)"
    .bashrc:		words="$(find ${CEPATH//:/ } -maxdepth 1 -name '[^.]*' \( -type f -o -type l \) -printf '%f\n' 2>/dev/null)"
    /etc/profile:if [[ $(uname -s) = CYGWIN_NT* ]]
    /etc/profile:	SystemRoot=$(cygpath -u $SYSTEMROOT)
    /etc/profile:	WinDir=$(cygpath -u $WINDIR)
    /etc/profile:	export LOGNAME=${USER:-${USERNAME:-$(whoami)}}

If I disable some of them, then the above mentioned command substitution
works fine.

Is it possible that executing many command substitutions causes the
wrong file descriptor to get closed confusing bash into thinking that
it saw EOF?

I'm still trying to reproduce this problem with a single shell script,
but so far I haven't had any luck.  I will keep banging my head...

BTW, I concur with Earnie that we can remove rxvt from the picture.  I
have been testing by just executing "bash --login" from cmd.

Thanks,
Jason



More information about the Cygwin-developers mailing list