summaryrefslogtreecommitdiff
path: root/lisp/desktop.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2019-04-04 13:46:30 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2019-04-04 13:46:30 -0400
commit81f64da220b7a8b46f64212724cb2be6c99a0cac (patch)
treed10e7519a316a637048678422ce3bd34483d5375 /lisp/desktop.el
parent18c02f7e078ae574d03ec67939c4755ce3554fb2 (diff)
downloademacs-81f64da220b7a8b46f64212724cb2be6c99a0cac.tar.gz
* lisp/desktop.el (desktop--v2s): Add case for defstructs (bug#35131)
Diffstat (limited to 'lisp/desktop.el')
-rw-r--r--lisp/desktop.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el
index acabde5eb2f..97c057e2013 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -856,6 +856,19 @@ QUOTE may be `may' (value may be quoted),
`',(cdr el) (cdr el)))
pass1)))
(cons 'may `[,@(mapcar #'cdr pass1)]))))
+ ((and (recordp value) (symbolp (aref value 0)))
+ (let* ((pass1 (let ((res ()))
+ (dotimes (i (length value))
+ (push (desktop--v2s (aref value i)) res))
+ (nreverse res)))
+ (special (assq nil pass1)))
+ (if special
+ (cons nil `(record
+ ,@(mapcar (lambda (el)
+ (if (eq (car el) 'must)
+ `',(cdr el) (cdr el)))
+ pass1)))
+ (cons 'may (apply #'record (mapcar #'cdr pass1))))))
((consp value)
(let ((p value)
newlist