From: Hiltjo Posthuma Date: Sat, 9 May 2020 11:56:28 +0000 (+0200) Subject: fix for incorrect (partial) written sequences when libc wcwidth() == -1 X-Git-Url: https://git.xinqibao.xyz/st.git/commitdiff_plain/8211e36d281990a39db1853bcd454ac59e53d521?ds=sidebyside;hp=8211e36d281990a39db1853bcd454ac59e53d521 fix for incorrect (partial) written sequences when libc wcwidth() == -1 Fix an issue with incorrect (partial) written sequences when libc wcwidth() == -1. The sequence is updated to on wcwidth(u) == -1: c = "\357\277\275" but len isn't. A way to reproduce in practise: * st -o dump.txt * In the terminal: printf '\xcd\xb8' - This is codepoint 888, on OpenBSD it reports wcwidth() == -1. - Quit the terminal. - Look in dump.txt (partial written sequence of "UTF_INVALID"). This was introduced in: " commit 11625c7166b7e4dad414606227acec2de1c36464 Author: czarkoff@gmail.com Date: Tue Oct 28 12:55:28 2014 +0100 Replace character with U+FFFD if wcwidth() is -1 Helpful when new Unicode codepoints are not recognized by libc." Change: Remove setting the sequence. If this happens to break something, another solution could be setting len = 3 for the sequence. ---