Fix Windows output for non-BMP unicode characters
This commit is contained in:
		| @@ -923,6 +923,9 @@ def _windows_write_string(s, out): | ||||
|         2: -12, | ||||
|     } | ||||
|  | ||||
|     def ucs2_len(s): | ||||
|         return sum((2 if ord(c) > 0xffff else 1) for c in s) | ||||
|  | ||||
|     fileno = out.fileno() | ||||
|     if fileno not in WIN_OUTPUT_IDS: | ||||
|         return False | ||||
| @@ -956,10 +959,10 @@ def _windows_write_string(s, out): | ||||
|     if not_a_console(h): | ||||
|         return False | ||||
|  | ||||
|     remaining = len(s) | ||||
|     remaining = ucs2_len(s) | ||||
|     while remaining > 0: | ||||
|         ret = WriteConsoleW( | ||||
|             h, s, min(len(s), 1024), ctypes.byref(written), None) | ||||
|             h, s, min(remaining, 1024), ctypes.byref(written), None) | ||||
|         if ret == 0: | ||||
|             raise OSError('Failed to write string') | ||||
|         remaining -= written.value | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister