Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
From: jhdxr@php.net Date: Wed, 10 Aug 2016 11:34:57 +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-203149@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: jhdxr@php.net
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:
It's a good news that Windows finally supports this feature. If we add this flag to cli, I
think we'd better add a constant indicating if this feature is enabled or not so userland can
have their own choice.
Previous Comments:
------------------------------------------------------------------------
[2016-08-08 06:29:28] mlocati at gmail dot com
Please note that the ENABLE_VIRTUAL_TERMINAL_PROCESSING flag does not affect the output of php.exe,
but just the way the console interprets it.
For instance, if we assume that the sample c program mentioned in this #72768 is compiled as
"test.exe", the contents of the file "test.txt" created with "test.exe
>test.txt 2>&1" is
<ESC>[101;93m Yellow text on red background <ESC>[0m
<ESC>[101;93m Yellow text on red background <ESC>[0m
(where <ESC> is the character with ascii code \033 (octal))
------------------------------------------------------------------------
[2016-08-05 22:19:59] kalle@php.net
It makes sense for me to add this flag to CLI, what do you think Anatol?
------------------------------------------------------------------------
[2016-08-05 16:38:07] mlocati at gmail dot com
Description:
------------
The standard console of newer versions of Windows 10 add support to ANSI control codes.
BTW, every console executable should explicitly tell to use that new feature with the flag
ENABLE_VIRTUAL_TERMINAL_PROCESSING.
For instance, at http://imgur.com/a/heYHm you see the the
output of the application compiled from the code at the bottom.
What about adding this flag to php.exe?
#include <windows.h>
#include <stdio.h>
#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
#endif
int main(void) {
const char* sampleText = "\033[101;93m Yellow text on red background \033[0m\n";
HANDLE hStdout;
DWORD handleMode;
printf(sampleText);
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleMode(hStdout, &handleMode);
handleMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(hStdout, handleMode);
printf(sampleText);
return 0;
}
------------------------------------------------------------------------
--
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 (#203149) | next » |
|---|