Edit report at https://bugs.php.net/bug.php?id=61827&edit=1
ID: 61827 Updated by: paj...@php.net Reported by: a...@php.net Summary: incorrect \e processing on Windows -Status: Closed +Status: Assigned Type: Bug Package: Scripting Engine problem Operating System: windows PHP Version: 5.4.0 -Assigned To: pajoye +Assigned To: felipe Block user comment: N Private report: N New Comment: hi Felipe! Please use VK_ESCAPE instead. Thanks! Previous Comments: ------------------------------------------------------------------------ [2012-04-29 22:38:38] fel...@php.net This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. For Windows: http://windows.php.net/snapshots/ Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2012-04-29 22:37:42] fel...@php.net Automatic comment on behalf of felipe...@gmail.com Revision: http://git.php.net/?p=php-src.git;a=commit;h=cc5b995c78038b92317b38356c9009ff80850d8b Log: - Fixed bug #61827 (incorrect \e processing on Windows) patch by: a...@php.net ------------------------------------------------------------------------ [2012-04-26 14:56:44] a...@php.net As a variation VK_ESCAPE or 0x1b could be used to represent \e on windows, which is equivalent to (char)27 ------------------------------------------------------------------------ [2012-04-23 16:35:08] a...@php.net Btw. compiling that snippet on windows there is an interesting line in the compiler out: >cl esc.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. esc.c esc.c(5) : warning C4129: 'e' : unrecognized character escape sequence Microsoft (R) Incremental Linker Version 10.00.40219.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:esc.exe esc.obj ------------------------------------------------------------------------ [2012-04-23 15:35:13] a...@php.net Description: ------------ Zend\tests\bug60350.phpt fails on windows. Simple reproduce case > Debug_TS\php -r "$str = \"\e\"; var_dump(ord($str));" int(101) where it should be 27 The implementation in bug 60350 seems to be not compatible with windows, consider the following snippet ========================================== #include <stdio.h> int main(void) { printf("'%d' '%c' '%d'\n", (int)'\e', (char)27, (int)(char)27); return 0; } ========================================== compiled on linux it gives '27' ' '27' compiled on windows '101' 'â' '27' The current implementation uses '\e' for escaping, which should be (char)27 on windows. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=61827&edit=1