* bug#35131: 27.0.50; desktop-save no longer saves register containing frameset
@ 2019-04-03 22:15 Tadeus Prastowo
2019-04-03 22:31 ` Drew Adams
0 siblings, 1 reply; 3+ messages in thread
From: Tadeus Prastowo @ 2019-04-03 22:15 UTC (permalink / raw)
To: 35131; +Cc: Stefan Monnier, emacs-devel
$ emacs -Q
C-x C-f x.txt
Hello world!
C-x C-s
C-x 3
C-x 2
C-x r f =
C-x 1
M-x desktop-save RET RET yes RET
C-x C-c
$ emacs -Q
M-x desktop-read RET
C-x r j =
The echo area says: Register doesn’t contain a buffer position or configuration
Compare this with Emacs 26.1 that has the correct behavior:
$ emacs-26.1 -Q
C-x C-f x.txt
Another hello world!
C-x C-s
C-x 3
C-x 2
C-x r f =
C-x 1
M-x desktop-save RET RET yes RET
C-x C-c
$ emacs-26.1 -Q
M-x desktop-read RET
C-x r j =
I get the saved frameset back, which contains three windows.
The problem can be traced to the following commit (the committer is CC-ed):
-- 8< -----------------------------
commit cd1d9e79f74f137511d49eb9b0ae7ba750ba6c3c
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Mon Dec 25 22:51:23 2017 -0500
* lisp/register.el: Use cl-generic
(registerv): Make it a "normal"struct.
(registerv-make): Declare obsolete.
(register-val-jump-to, register-val-describe, register-val-insert):
New generic functions.
(jump-to-register, describe-register-1, insert-register): Use them.
* lisp/emacs-lisp/cl-generic.el: Prefill a combination of struct+typeof.
(cl--generic-prefill-dispatchers): Allow a list of specializers.
-- 8< -----------------------------
The offending diff is shown below:
-- 8< -----------------------------
diff --git a/lisp/register.el b/lisp/register.el
index 23eefd0..0fdcd51 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -39,9 +39,7 @@
(registerv (:constructor nil)
(:constructor registerv--make (&optional data print-func
jump-func insert-func))
- (:copier nil)
- (:type vector)
- :named)
+ (:copier nil))
(data nil :read-only t)
(print-func nil :read-only t)
(jump-func nil :read-only t)
-- 8< -----------------------------
Specifically, because type vector is dropped, frameset.el in its using
of registerv-make to save a frameset results in register-alist item
that is no longer a vector (C-h v register-alist shows `(61 .
#s(registerv :data [[frameset 1...' in 27.0.50, not `(61 . [registerv
[[frameset 1...' that is shown in Emacs 26.1). Since it is no longer
a vector, desktop.el upon desktop-save does not serialize the item in
a format that can be recognized by register.el after desktop-read.
Since the offending commit deprecates the use of registerv-make, this
bug can be easily be killed by making frameset.el define function
`register-val-insert' that saves a frameset as a vector, modifying
function `frameset-to-register' accordingly.
@Stefan: could you do that, please? Thank you.
--
Best regards,
Tadeus
^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: 27.0.50; desktop-save no longer saves register containing frameset
2019-04-03 22:15 bug#35131: 27.0.50; desktop-save no longer saves register containing frameset Tadeus Prastowo
@ 2019-04-03 22:31 ` Drew Adams
2019-04-03 22:33 ` Tadeus Prastowo
0 siblings, 1 reply; 3+ messages in thread
From: Drew Adams @ 2019-04-03 22:31 UTC (permalink / raw)
To: Tadeus Prastowo, bug-gnu-emacs; +Cc: Stefan Monnier, emacs-devel
Please do not send this to both the bug list and emacs-devel.
Choose one.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 27.0.50; desktop-save no longer saves register containing frameset
2019-04-03 22:31 ` Drew Adams
@ 2019-04-03 22:33 ` Tadeus Prastowo
0 siblings, 0 replies; 3+ messages in thread
From: Tadeus Prastowo @ 2019-04-03 22:33 UTC (permalink / raw)
To: Drew Adams; +Cc: Stefan Monnier, emacs-devel
On Thu, Apr 4, 2019 at 12:32 AM Drew Adams <drew.adams@oracle.com> wrote:
>
> Please do not send this to both the bug list and emacs-devel.
> Choose one.
Roger that.
--
Best regards,
Tadeus
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-04-03 22:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-03 22:15 bug#35131: 27.0.50; desktop-save no longer saves register containing frameset Tadeus Prastowo
2019-04-03 22:31 ` Drew Adams
2019-04-03 22:33 ` Tadeus Prastowo
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).