Hello, Currently, ksh does not correctly calculate the length of 4 byte UTF-8 sequences in emacs input mode. For demonstration purposes try inputting an emoji (e.g. U+1F421) at your shell prompt. These 4 byte sequences can be identified by checking if the first four bits are set and the fifth bit isn't. The current check for identifying these 4 byte sequences is incorrect.
The patch below fixes this, thereby allowing users to enter emojis (and other 4 byte UTF-8 sequences) at their shell prompt in emacs mode: Greetings, Sören diff --git bin/ksh/emacs.c bin/ksh/emacs.c index 694c402ff..970a0989d 100644 --- bin/ksh/emacs.c +++ bin/ksh/emacs.c @@ -1851,7 +1851,7 @@ x_e_getu8(char *buf, int off) return -1; buf[off++] = c; - if (c == 0xf4) + if ((c & 0xf8) == 0xf0) len = 4; else if ((c & 0xf0) == 0xe0) len = 3;