Mail Archives: cygwin-developers/1998/10/07/13:39:51
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 -