Subject: bug#53477: 28.0.50; what-cursor-position

From: Eli Zaretskii <[email-masked]>
Date: Sun, 23 Jan 2022 18:43:17 +0200

> Date: Sun, 23 Jan 2022 11:08:12 -0500
> From: Devon Sean McCullough <[email-masked]>
> 
> (let ((debug-on-error t))
>    (pop-to-buffer "bad-char")
>    (save-excursion
>      (insert #x1F62D))
>    (what-cursor-position t))
> 
> ; often bombs instead - as does c-U c-X = but not c-X =
> 
> Debugger entered--Lisp error: (cl-assertion-failed ((not (multibyte-string-p str)) nil))
>    cl--assertion-failed((not (multibyte-string-p str)))
>    encoded-string-description(#("😭" 0 1 (charset unicode)) nil)
>    describe-char(1)
>    what-cursor-position(t)
>    (let ((debug-on-error t)) (pop-to-buffer "bad-char") (save-excursion (insert 128557)) (what-cursor-position t))
>    eval((let ((debug-on-error t)) (pop-to-buffer "bad-char") (save-excursion (insert 128557)) (what-cursor-position t)) nil)
>    elisp--eval-last-sexp(nil)
>    eval-last-sexp(nil)
>    funcall-interactively(eval-last-sexp nil)
>    call-interactively(eval-last-sexp nil nil)
>    command-execute(eval-last-sexp)

I cannot reproduce this, and I don't see how this would be possible,
since encoded-string-description is only ever called for the result of
encode-coding-string, which must be a unibyte string.

> In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G95))
>   of 2021-06-20 built on builder10-14.porkrind.org

This seems to be a very old build of a development version; do you
still see this in the current code?