delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2001/08/28/15:03:33

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-developers-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com
Date: Tue, 28 Aug 2001 15:04:05 -0400
From: Jason Tishler <jason AT tishler DOT net>
To: cygwin-developers AT Cygwin DOT Com
Subject: Re: Disappearing rxvt Windows -- can anyone else duplicate this problem?
Message-ID: <20010828150405.P808@dothill.com>
Mail-Followup-To: cygwin-developers AT Cygwin DOT Com
Mime-Version: 1.0
In-Reply-To: <20010828011021.A22330@redhat.com>
User-Agent: Mutt/1.3.18i

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019