Subject: bug#73827: [ELPA] [PATCH] register-list fails on "Unprintable entity" registers

From: Alex Bochannek <[email-masked]>
Date: Tue, 26 Nov 2024 17:39:22 -0800

Philip Kaludercic <[email-masked]> writes:

> Alex Bochannek <[email-masked]> writes:
>
>> --- /Users/awb/.emacs.d/elpa/register-list-0.1/register-list.el.~1~	2023-01-10 19:36:23
>> +++ /Users/awb/.emacs.d/elpa/register-list-0.1/register-list.el	2024-10-15 15:49:37
>> @@ -483,8 +483,8 @@
>>  	    (t "error"))
>>      (cond ((window-configuration-p (car key)) "W")
>>  	  ((frame-configuration-p (car key)) "F")
>> -	  ((stringp (car key)) "R")
>>  	  ((string= "Unprintable entity" (car key)) "?")
>
> The change confuses me, are we sure that (car key) must be a string at
> this point?  If not, should be prefer `equal' over `string='?
>
>> +	  ((stringp (car key)) "R")

The change simply swaps the stringp and string= predicates in the cond.
If there is a register with "Unprintable entity" (which desktop.el
produces), it would not show up correctly as a "?" (assuming "?" has
been added to register-list-default-type).

Looking at register-alist in my .emacs.desktop, it is always the string
"Unprintable entity" and never a symbol. Whether it's string= or equal
shouldn't matter, because the difference in error handling between the
two isn't relevant here.

Unrelated, I looked into how to get frameset support in register-list
and the way framesets are stored in register-alist is very different.
I'll submit another patch for that, although it isn't particularly
elegant.

> You can try out
>
>   M-x package-vc-install register-list RET
>
> that should give you a checkout.  You can then make your changes as
> usual and then prepare a patch using vc-prepare-patch or git-format-patch(1).

Perfect, thank you! Didn't know about package-vc-install.

-- 
Alex.