Req #72768 [Com]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe

From: Date: Tue, 10 Nov 2020 15:58:27 +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-230254@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:         infoanilps at gmail dot com
 Reported by:        mlocati at gmail dot com
 Summary:            Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for
                     php.exe
 Status:             Closed
 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:

I think it has something to do with the ENABLE_VIRTUAL_TERMINAL_PROCESSING flag which came to
php.exe in release 7.2.0: https://www.bismatrimony.com/
Implemented FR #72768 (Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe).
(from http://php.net/ChangeLog-7.php)


Previous Comments:
------------------------------------------------------------------------
[2016-10-28 18:53:11] ab@php.net

The PR is merged into master.

Thanks.

------------------------------------------------------------------------
[2016-08-30 08:24:23] mlocati at gmail dot com

Here's the PR on GitHub: https://github.com/php/php-src/pull/2103

------------------------------------------------------------------------
[2016-08-29 14:55:57] ab@php.net

@mlocati, thanks for all the work so far.

I made a quick look over your latest patch so far, a couple of comments already.

Please check the coding style doc for function naming conventions, etc.
http://git.php.net/?p=php-src.git;a=blob;f=CODING_STANDARDS;h=5cf70c92b5f5ab06977629ba6fff87255cc80116;hb=HEAD
. Particularly, in most casse the internal APIs should be prefixed with php_*, and Windows specific
with php_win32_*. Also the underscore is used for separation, etc. Please see other sources there.

Also the following regarding the code:

- the Unicode APIs have to be used, where it matters in 7.1+. Fe GetFinalPathNameByHandleW. Please
check the corresponding helper routines in win32/ioutil.h.
- usually we don't use the driver routines, Rtl*, etc. Regarding getting the version,
there's quite some functionality already in the core, please check EG(windows_version_info). It
should suffice as till now the only case is the usage after MINIT is bypassed.
- please don't use static vars in functions, until it's thread safe
- for the streams, particularly main/streams/plain_wrapper.c were relevant for STDIO. Taking some
stream and stepping through it in the debugger might help for better understanding. Basically, a
stream resource needs to be passed, as the fd might be duped but still point to a vt100 term.
- tests are required :)

Indeed, it might be handier to discuss the patch in a github PR, which you already can attach to
this ticket.

Thanks.

------------------------------------------------------------------------
[2016-08-28 18:12:04] mlocati at gmail dot com

What about continuing this discussion on a new pull request at https://github.com/php/php-src ?

------------------------------------------------------------------------
[2016-08-26 16:38:48] mlocati at gmail dot com

I changed the stream_vt100_support function to accept strings ('php://stdout',
'php://stderr') instead of stream objects.

This is a bit a workaround, but I really don't know how to determine the standard stream
(stdin/stdout/stderr) from stream objects.

See patch 0001-Start-adding-VT100-support-for-Windows-v3

------------------------------------------------------------------------


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)

« previous php.bugs (#230254) next »