Req #72768 [Ana->Csd]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe

From: Date: Fri, 28 Oct 2016 18:53:11 +0000
Subject: Req #72768 [Ana->Csd]: Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-205056@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
 Updated by:         ab@php.net
 Reported by:        mlocati at gmail dot com
 Summary:            Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for
                     php.exe
-Status:             Analyzed
+Status:             Closed
 Type:               Feature/Change Request
 Package:            Output Control
 Operating System:   Windows 10
 PHP Version:        Irrelevant
-Assigned To:        
+Assigned To:        ab
 Block user comment: N
 Private report:     N

 New Comment:

The PR is merged into master.

Thanks.


Previous Comments:
------------------------------------------------------------------------
[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

------------------------------------------------------------------------
[2016-08-26 14:14:45] mlocati at gmail dot com

I finally managed to compile php (basically an include of php.h was missing) - see attached patch
0001-Start-adding-VT100-support-for-Windows-v2.

Just one thing remains to be done: how to get the standard Windows handle (eg
STD_INPUT_HANDLE/STD_OUTPUT_HANDLE/STD_ERROR_HANDLE) starting from a php_stream?
I thought it was possible by inspecting stream->orig_path, but it's not the case.

Any hint?

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


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 (#205056) next »