diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2019-04-04 13:46:30 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2019-04-04 13:46:30 -0400 |
commit | 81f64da220b7a8b46f64212724cb2be6c99a0cac (patch) | |
tree | d10e7519a316a637048678422ce3bd34483d5375 /lisp/desktop.el | |
parent | 18c02f7e078ae574d03ec67939c4755ce3554fb2 (diff) | |
download | emacs-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.el | 13 |
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 |