GNU bug report logs - #17090
desktop.el saves unusable register data in register-alist

Previous Next

Package: emacs;

Reported by: Juanma Barranquero <lekktu <at> gmail.com>

Date: Mon, 24 Mar 2014 20:33:02 UTC

Severity: minor

Merged with 27422

Found in version 25.2

To reply to this bug, email your comments to 17090 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Mon, 24 Mar 2014 20:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Juanma Barranquero <lekktu <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 24 Mar 2014 20:33:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Juanma Barranquero <lekktu <at> gmail.com>
To: Bug-Gnu-Emacs <bug-gnu-emacs <at> gnu.org>
Subject: desktop.el saves unusable register data in register-alist
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?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Sun, 29 Sep 2019 14:43:02 GMT) Full text and rfc822 format available.

Message #8 received at 17090 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juanma Barranquero <lekktu <at> gmail.com>
Cc: 17090 <at> debbugs.gnu.org
Subject: Re: bug#17090: desktop.el saves unusable register data in
 register-alist
Date: Sun, 29 Sep 2019 16:42:32 +0200
Juanma Barranquero <lekktu <at> gmail.com> writes:

> 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")

I'm unable to reproduce this bug in Emacs 27 (and I also vaguely
remember something being fixed in this area a few months ago).

Instead of the error, I get:

Desktop: 1 frame, 0 buffers restored.

and then 

Register doesn’t contain a buffer position or configuration

when trying to C-x r j a-ing.

Are you still seeing this problem in Emacs 27?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 29 Sep 2019 14:43:02 GMT) Full text and rfc822 format available.

Forcibly Merged 17090 27422. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 29 Sep 2019 14:49:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Sun, 29 Sep 2019 15:01:01 GMT) Full text and rfc822 format available.

Message #15 received at 17090 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juanma Barranquero <lekktu <at> gmail.com>
Cc: 17090 <at> debbugs.gnu.org
Subject: Re: bug#17090: desktop.el saves unusable register data in
 register-alist
Date: Sun, 29 Sep 2019 16:59:59 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> I'm unable to reproduce this bug in Emacs 27 (and I also vaguely
> remember something being fixed in this area a few months ago).

Hm, I think I was wrong here -- I'm not getting exactly the same errors
as in earlier versions of Emacs, but the data that's saved still isn't
usable.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Removed tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 29 Sep 2019 15:01:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Sun, 29 Sep 2019 16:19:01 GMT) Full text and rfc822 format available.

Message #20 received at 17090 <at> debbugs.gnu.org (full text, mbox):

From: Juanma Barranquero <lekktu <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 17090 <at> debbugs.gnu.org
Subject: Re: bug#17090: desktop.el saves unusable register data in
 register-alist
Date: Sun, 29 Sep 2019 18:17:24 +0200
[Message part 1 (text/plain, inline)]
Curious that my original recipe (fixing the C-x C-x to C-x C-c, as I
suppose I intended) doesn't work now because

  emacs -Q -f desktop-read

does not read the desktop file from the current directory ('.' is no longer
in desktop-path).

But anyway, back to the issue:

> Hm, I think I was wrong here -- I'm not getting exactly the same errors
> as in earlier versions of Emacs, but the data that's saved still isn't
> usable.

Correct.

But, I suppose it is perhaps not worth fixing now, because after that we
implemented framesets, and you can do

C-x r f a

and the frameset in register a is saved and correctly reloaded afterwards.
It's a bit of an overkill, of course.

If we want to fix it, perhaps we could trick our way, by using framesets to
save a one-frame frameset with some special info to mark that it is really
intended to be just a window-configuration, and then, when reloading the
desktop, restoring somehow the window configuration into the register, from
the frameset data. No idea if it is worth the effort, but I think it would
be doable.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Mon, 30 Sep 2019 04:41:02 GMT) Full text and rfc822 format available.

Message #23 received at 17090 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Juanma Barranquero <lekktu <at> gmail.com>
Cc: 17090 <at> debbugs.gnu.org
Subject: Re: bug#17090: desktop.el saves unusable register data in
 register-alist
Date: Mon, 30 Sep 2019 06:40:19 +0200
Juanma Barranquero <lekktu <at> gmail.com> writes:

> But, I suppose it is perhaps not worth fixing now, because after that
> we implemented framesets, and you can do
>
> C-x r f a
>
> and the frameset in register a is saved and correctly reloaded
> afterwards. It's a bit of an overkill, of course.
>
> If we want to fix it, perhaps we could trick our way, by using
> framesets to save a one-frame frameset with some special info to mark
> that it is really intended to be just a window-configuration, and
> then, when reloading the desktop, restoring somehow the window
> configuration into the register, from the frameset data. No idea if it
> is worth the effort, but I think it would be doable.

It sounds like we should perhaps refer users to the C-x r f a command
instead...  But in any case, desktop.el probably shouldn't be saving
these useless window configuration registers.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Mon, 30 Sep 2019 08:12:01 GMT) Full text and rfc822 format available.

Message #26 received at 17090 <at> debbugs.gnu.org (full text, mbox):

From: Juanma Barranquero <lekktu <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 17090 <at> debbugs.gnu.org
Subject: Re: bug#17090: desktop.el saves unusable register data in
 register-alist
Date: Mon, 30 Sep 2019 10:10:30 +0200
[Message part 1 (text/plain, inline)]
On Mon, Sep 30, 2019 at 6:40 AM Lars Ingebrigtsen <larsi <at> gnus.org> wrote:

> It sounds like we should perhaps refer users to the C-x r f a command
> instead...

Currently, the function assigned to the C-x r map to save a frameset saves
all the frames, so in some uses, saving and restoring the window
configuration (which affects just one frame) is faster and cleaner. Also,
restoring a frameset not only restores the window configuration, but also
position on the screen.

Of course, it would be possible to add another command, or a prefix
parameter, to frameset-to-register, to save just the selected frame, and to
restore the frameset without moving the frame.

> But in any case, desktop.el probably shouldn't be saving
> these useless window configuration registers.

Definitely. It's wasted space and time, and does not serve any useful
purpose.

FWIW, I agree. Documenting the issue and filtering out the
window-configurations on desktop save seems like the easier answer right
now. Don't think it's really a very urgent or frequent issue.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17090; Package emacs. (Mon, 07 Oct 2019 19:03:01 GMT) Full text and rfc822 format available.

Message #29 received at 17090 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Juanma Barranquero <lekktu <at> gmail.com>
Cc: 17090 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi <at> gnus.org>
Subject: Re: bug#17090: desktop.el saves unusable register data in
 register-alist
Date: Mon, 07 Oct 2019 21:28:50 +0300
> If we want to fix it, perhaps we could trick our way, by using framesets to
> save a one-frame frameset with some special info to mark that it is really
> intended to be just a window-configuration, and then, when reloading the
> desktop, restoring somehow the window configuration into the register, from
> the frameset data. No idea if it is worth the effort, but I think it would
> be doable.

I invite you to look at the solution that Martin helped to develop
that restores tabs with window-configurations from the desktop file
using framesets, see the comment in tab-bar.el (just search
for “window-configuration”).




This bug report was last modified 5 years and 252 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.