Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

TCMD output invisible on Win10

May
12,834
163
For Tabs\Colors, I have all "Default. But output in TCMD is invisible (as if BLA on BLA). If I detach the console, the output is there (but in BRI WHI on BLA, not the usual and default WHI on BLA).

There is apparently a bug in Windows build 18298 wherein if you visit the console's properties and press OK (having done nothing) the app in the console will change from WHI on BLA to BLA on BLA and the corresponding HKCU\Console\...\ScreenColors will change from 0x7 to 0x0. I don't know if that's at play here; as I said the detached console has visible output (and I figure TCMD can scrape the console buffer even if the output is invisible).
 
[had to go to the other computer] Here's what I see in TCMD.
1544983532908.png

and here's what in the detached console.
1544983609745.png
 
TCMD uses the attribute in the console buffer to determine the screen colors.

But if you're using the Win 10 ANSI, all bets are off. I have seen black on black issues with ANSI in the last couple of Win 10 preview builds when ANSI is enabled.
I don't get it. Consoles are OK. TCMD can get and display the prompt and the command line. And apparently, the output is in the console screen buffer and visible (at least in the detached console) ... but TCMD can't get it! I'm not saying TCMD's at fault ... I just don't get it!
 
I'm getting more lost here! Does TCMD use ReadConsoleOutput()?

Once something makes it into the console screen buffer, ANSI (whoever's) has done its job and is out of the picture ... right?

While TCMD wasn't showing output I used an old plugin (which uses ReadConsoleOutput()) to get a snapshot of the (hidden) console, attributes and all. When I looked at the snapshot file with a hex editor, I could see that the attributes were correct. The output that TCMD wasn't showing all had attributes 0x07, WHI ON BLA. How can TCMD could fail to show it correctly?
 
Here's another look at it ... what I see in TCMD.
1545008041684.png

and what's in the screen buffer, including my bri gre on bla (0A) prompt, bri yel on bla (0E) command line, and the expected whi on bla (07) output.
1545008341684.png


Funny thing ... I can do this (same thing?) and see the output in TCMD
1545009100220.png

and the screen buffer looks the same!
1545009152192.png
 
This problem persists with Windows 10 build 18305.

Rex, does a fast track insider also get release builds?
 
This persists in build 30. In a half-hour or so I'll find out if the latest insider preview of Windows 10 helps.
 
I cannot reproduce this (and apparently nobody else is seeing it).
Well do you have any ideas? My consoles are OK. The text is there but TCMD is rendering it black on black. My default console colors are 0x00000007 (whi on bla). All TCCs use the defaults. TCMD is set to default foreground and background. The attribute words in the console screen buffer are correct.

1546664811340.png
 
It happens in TCC with or without TCMD's OPTION ANSI box checked. It happens in CMD when that box is checked. When that box is not set and CMD is started in a new tab it starts bad and then gets better.
1546707766117.png


It doesn't happen with no INI file but then TCC has no ANSI
1546708174036.png


I have these for TCC.
1546708585754.png
 
It happens in TCC with or without TCMD's OPTION ANSI box checked. It happens in CMD when that box is checked. When that box is not set and CMD is started in a new tab it starts bad and then gets better.

The ANSI option in TCMD does not do anything in the latest Windows 10 builds. ANSI in TCC (both TCMD tab windows and stand-alone console windows) is controlled solely by the ANSI option in TCC.
 
The ANSI option in TCMD does not do anything in the latest Windows 10 builds.

I'm running 18309.rs_prerelease.181220-1256. The ANSI setting for TCMD has a big effect on how CMD.EXE runs when started via Tab\Run.
 
I guess it's not too different. With TCMD's ANSI unchecked, CMD started via Tab\Run ... after the bad prompt and foo echoed, I recalled the command (a no-show) and executed it again (also a no-show).

1546721944512.png


When that option is checked, CMD first prompt looks better but the no-show problem is there right from the get-go. Below, I typed "echo foo" and executed it; neither command nor output showed.

1546722283463.png
 
This is definitely a Windows 10 ANSI feature / bug, not TCMD. It only happens if you specify an ^e[0m (which you are doing at the end of your PROMPT). In that case, the Win 10 ANSI will write 0's to the console attribute memory. (Verified with ReadConsoleOutputAttributes.)

If you replace the ^e[0m with a sequence like ^e[37;40m, you'll see your text.

You'll have to ask Microsoft as to whether this comprises a feature.
 
This is definitely a Windows 10 ANSI feature / bug, not TCMD. It only happens if you specify an ^e[0m (which you are doing at the end of your PROMPT). In that case, the Win 10 ANSI will write 0's to the console attribute memory. (Verified with ReadConsoleOutputAttributes.)

If you replace the ^e[0m with a sequence like ^e[37;40m, you'll see your text.

You'll have to ask Microsoft as to whether this comprises a feature.
Yup, you're right. I now have output in TCMD. Hmmm! The ^e[0m works OK in consoles. IMHO it's the most fundamental of the "m" sequences. If that's a feature, I'd like to know how to capitalize on it.
 
If you replace the ^e[0m with a sequence like ^e[37;40m, you'll see your text.
I should have noticed this earlier. That works, but it fails to turn off the BRIGHT attribute in the console. If I use ^e[37;40;0m I'm back to the invisible text problem in TCMD.
 

Similar threads

Back
Top