Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
From: mlocati at gmail dot com Date: Wed, 10 Aug 2016 14:44:12 +0000 Subject: Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe References: 1 Groups: php.bugs Request: Send a blank email to php-bugs+get-203169@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=72768&edit=1
ID: 72768
Comment by: mlocati at gmail dot com
Reported by: mlocati at gmail dot com
Summary: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for
php.exe
Status: Assigned
Type: Feature/Change Request
Package: Output Control
Operating System: Windows 10
PHP Version: Irrelevant
Assigned To: ab
Block user comment: N
Private report: N
New Comment:
Yes, before the Anniversary Update, console apps didn't require that flag.
But with Windows 10.0.14393 we need to set ENABLE_VIRTUAL_TERMINAL_PROCESSING.
Previous Comments:
------------------------------------------------------------------------
[2016-08-10 14:30:11] cmb@php.net
Yes, you're right; that's not a Windows issue, but rather the ESC
seems to be substituted by the bug tracker.
However, I just tried your command line, and I already get the
colored output (Windows 10.0.10586 cmd.exe). :-/ (I haven't
noticed that before, because I usually run ansicon, where that
happens anyway).
------------------------------------------------------------------------
[2016-08-10 14:06:53] mlocati at gmail dot com
In the Windows console it's represented by a left arrow as represented here: http://imgur.com/a/heYHm (at least with my codepage)
By the way, pasting that string in the browser caused that char to be suppressed, that's why I
wrote "?"
------------------------------------------------------------------------
[2016-08-10 13:50:08] cmb@php.net
> (where ? is \033)
The ESC character is likely being suppressed by Windows.
------------------------------------------------------------------------
[2016-08-10 13:38:50] mlocati at gmail dot com
Whoops, the link I mentioned is where I added my test code, the instructions I followed to compile
php.exe are at https://wiki.php.net/internals/windows/stepbystepbuild
------------------------------------------------------------------------
[2016-08-10 13:35:58] mlocati at gmail dot com
I just recompiled php.exe using the instructions described at http://git.php.net/?p=php-src.git;a=blob;f=sapi/cli/php_cli.c;h=dc92045ae7402ad16566a9024453820a26c69da8;hb=HEAD#l1174
(using the version tagged php-7.0.9)
With the current code, the output of
Release_TS\php.exe -r "echo ""\033[101;93m TEST \033[0m\n"";"
is
?[101;93m TEST ?[0m
(where ? is \033)
Adding the SetConsoleMode-related stuff described in this #72768, I get
TEST
(with red background and yellow foreground)
So, I can confirm that the approach described here is valid.
Just one note: I called SetConsoleMode only for STD_OUTPUT_HANDLE, but STDERR seems to follow
STDOUT:
Release_TS\php.exe -r "fwrite(STDERR, ""\033[101;93m TEST
\033[0m\n"");"
gives the same colorized output as writing to STDOUT.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=72768
--
Edit this bug report at https://bugs.php.net/bug.php?id=72768&edit=1
Thread (38 messages)
- Req #72768 [Opn->Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Asn->Ana]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Ana]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Ana]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Ana]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Ana]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Ana->Csd]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
- Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
| « previous | php.bugs (#203169) | next » |
|---|