From: Stefan Monnier Date: Thu, 4 Apr 2019 17:46:30 +0000 (-0400) Subject: * lisp/desktop.el (desktop--v2s): Add case for defstructs (bug#35131) X-Git-Tag: emacs-27.0.90~3261^2~107 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=81f64da220b7a8b46f64212724cb2be6c99a0cac;p=emacs.git * lisp/desktop.el (desktop--v2s): Add case for defstructs (bug#35131) --- 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