Subject: desktop.el saves unusable register data in register-alist

From: Juanma Barranquero <[email-masked]>
Date: Mon, 24 Mar 2014 21:31:30 +0100

Package: Emacs
Severity: minor

emacs -Q -f desktop-save-mode
C-x r w a
C-x C-x
y <RET>
emacs -Q -f desktop-read
C-x r j

=> a: rectangle starting with Unprintable entity

and similarly, when using
C-x r f a

restoring and then C-x r j  brings

Error running timer: (invalid function "Unprintable entity")

register-alist is in desktop-globals-to-save by default, so it should
work out of the box. but any fix is going to be ugly.

Possibilities:

- Cleaning register-alist from desktop-save-hook. Not a good idea
because the session does not necessarily end on desktop-saving (and
even less now, with timer-based saving).

- Modify desktop-outvar to skip anything whose serialization matches
"Unprintable entity".

- Modify desktop-outvar with register-alist specific knowledge, so it
filters out only some entries when serializing.

- Design a more generic mechanism to allow variables to have cleaning
specific functions.

The first three options are horribly hackish, and the last one is a
bit overkill if we only want to avoid the register-alist issue (the
mechanism would be generally useful, but no one has ever asked for
it...)

Ideas?