Ping.
Sören Tempel <[email protected]> wrote:
> 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;