delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/10/07/13:39:51

From: corinna DOT vinschen AT cityweb DOT de (Corinna Vinschen)
Subject: Re: color problem when not using bash
7 Oct 1998 13:39:51 -0700 :
Message-ID: <361BCEA4.C7444135.cygnus.cygwin32.developers@cityweb.de>
References: <3 DOT 0 DOT 5 DOT 32 DOT 19981007092324 DOT 00a3f100 AT pop DOT ma DOT ultranet DOT com>
Mime-Version: 1.0
To: Larry Hall <lhall AT rfk DOT com>, cygwin32-developers AT cygnus DOT com

Hi Larry,

Larry Hall wrote:
> If you are right about the call to fillin_info(), then I would suggest
> removing the line to set the default_color completely.  It would just be
> misleading and also unnecessary then.  However, you should be sure this is
> the case since, if its not, your change will change the user's foreground
> color to white, regardless of what its been set to by the user.  This may
> not be an obvious problem on 9x, where the DOS box has no way to alter the
> default colors but it is an issue on NT (or perhaps with 4DOS either place.)

Don't ask me about 9X (sounds like a insect-powder :-) ), but while
searching for the reason of the effect, I have inserted debug_printf's
into the code of fillin_info(). There are many calls to fillin_info(),
when starting tcsh. and the first 80% are with output_handle_ = NULL.

Another interesting info (I hope):
I have done the same on an older version of winsup (980812, I think,
anyway, the fhandler_console code is the older one), which doesn't
have the color problem, and I could see, that the count of calls to
fillin_info() with output_handle_ == NULL are much less, than with
the newer version! It seems, that the constructor is called twice
the times in the new version, but I havn't count it.

> [...]
> I merely used the preexisting code as a guide to where I should
> change things.  As a result, it is possible that the call to fillin_info()
> in the constructor is unnecessary.  But, as I said, if this is really the
> case, then any setting for default_color is too.

I agree.
I'm sure, it's unnecessary, because output_handle_ will be
set at method open(), which already calls fillin_info().
If you comment out the calls in constructor, not one call to
fillin_info() with output_handle_ == NULL is to be seen in the
debugging output and the count of calls to fillin_info() with
output_handle_ != NULL remains the same. I didn't want to be pert,
but IMHO, the call only kills time and unnecessery code confuses,
if one looks at it. I first thought, this NULL calls are the
problem.

Unfortunately, they are not the problem and I don't realize the
difference in color processing between the old and the new version
of class fhandler_console. The relevant code for this seems to be
nearly identical. This is valid for the term=linux/ansi problem, too.

The big difference between bash and tcsh seems to be, that bash uses
the readline lib and tcsh only uses ncurses.

I don't understand it... Sigh (once more)!

Bye,
Corinna

P.S.: You don't want to have tcsh for testing, do you?

- Raw text -


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