summaryrefslogtreecommitdiffstats
path: root/newlib/libc/string/wcscpy.c
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2017-01-31 15:36:24 +0100
committerCorinna Vinschen <corinna@vinschen.de>2017-01-31 15:36:24 +0100
commit095cac4b8df4a6d8e5cce37e8fef227aab43bf82 (patch)
tree2b83d4d078bc925a3fd3f914e00cc6a8b9f92fc9 /newlib/libc/string/wcscpy.c
parentcd5e7e2d8271d8d4b976eaa42c69770d94c67a74 (diff)
downloadcygnal-095cac4b8df4a6d8e5cce37e8fef227aab43bf82.tar.gz
cygnal-095cac4b8df4a6d8e5cce37e8fef227aab43bf82.tar.bz2
cygnal-095cac4b8df4a6d8e5cce37e8fef227aab43bf82.zip
Cygwin: Add IUTF8 termios iflag
The termios code doesn't handle erasing of multibyte characters in canonical mode, it always erases a single byte. When entering a multibyte character and then pressing VERASE, the input ends up with an invalid character. Following Linux we introduce the IUTF8 input flag now, set by default. When this flag is set, VERASE or VWERASE will check if the just erased input byte is a UTF-8 continuation byte. If so, it erases another byte and checks again until the entire UTF-8 character has been removed from the input buffer. Note that this (just as on Linux) does NOT work with arbitrary multibyte codesets. This only works with UTF-8. For a discussion what happens, see https://cygwin.com/ml/cygwin/2017-01/msg00299.html Sidenote: The eat_readahead function is now member of fhandler_termios, not fhandler_base. That's necessary to get access to the terminal's termios flags. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'newlib/libc/string/wcscpy.c')
0 files changed, 0 insertions, 0 deletions