From: "mame (Yusuke Endoh)" Date: 2022-06-17T09:35:52+00:00 Subject: [ruby-core:108975] [Ruby master Bug#9208] Win32 ANSI color no longer works since revision 43331 Issue #9208 has been updated by mame (Yusuke Endoh). Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN) Status changed from Assigned to Feedback @nobu thinks it should be improved in ConEmu side. We need to check if this issue is still active in ConEmu. ---------------------------------------- Bug #9208: Win32 ANSI color no longer works since revision 43331 https://bugs.ruby-lang.org/issues/9208#change-98078 * Author: snaury (Alexey Borzenkov) * Status: Feedback * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * ruby -v: ruby 2.1.0dev (2013-12-03 trunk 43983) [i386-mingw32] ---------------------------------------- In revision 43331 in file win32/win32.c function console_emulator_p was added, which supposedly checked for patched WriteConsoleW. However, since WriteConsoleW points to a stub (which does jmp [import]), the allocation base address is always 0x400000 (i.e. ruby.exe), which is never equal to kernel32.dll. Because of this colors on ruby trunk never work on Windows anymore. Attached patch fixes the problem and still detects conemu (i.e. whether WriteConsoleW is patched or not). P.S. I don't understand why ruby needs to detect conemu? Console attributes and colors work in conemu as is, i.e. console_emulator_p could just always return FALSE, and everything seems to work correctly. However when conemu is detected and ruby tries to output ansi codes colors actually don't work on my Win7 x64 for some weird reason. Seems like this emulator detection does more harm than good. ---Files-------------------------------- 001-win32-console.patch (690 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: