Problem with color in nested shells

Mar 14, 2018
2
0
Using color /f in tcstart.bat seems to cause a problem if you then nest shells. It appears to mess with the number of lines in the shell.

How to reproduce:
- Create a simple color.ini file (I've attached mine) where tcstart.bat can find it.
- Create a simple tcstart.bat with the following line: "color /f color.ini"
- Run the following: echo %_ROWS & "%COMSPEC" /c echo hello & echo %_ROWS

If you do the above from Take Command, you should see that the _ROWS value decreases. If you run it from TCC.exe, it actually shrinks the window size!!

Workaround:
Change the line in tcstart.bat to "if %_SHELL eq 0 color /r color.ini"

While the workaround works fine, this behavior seems really weird.
 

Attachments

rconn

Administrator
Staff member
May 14, 2008
11,894
133
Confirmed - but it's a Windows API bug (SetConsoleScreenBufferInfoEx), not TCC. Windows is decreasing the window size by 1 when setting the palette (and ignoring the explicit window size requested).

I'll need to think of a workaround that won't break if Microsoft gets around to fixing it.