diff --git a/src/workgroups-specialbufs.el b/src/workgroups-specialbufs.el index 83a0a5246af76c420fff4adc5b2fe7f95473c469..8c4cd1f3c2577801518d5930394122a1e6ee5257 100644 --- a/src/workgroups-specialbufs.el +++ b/src/workgroups-specialbufs.el @@ -5,6 +5,25 @@ ;; (require 'dflet) +(require 'workgroups-misc) + +;; Dired + +(defun wg-deserialize-dired-buffer (buf) + "Deserialize Dired buffer." + (wg-dbind (this-function params) (wg-buf-special-data buf) + (let ((dir (car params))) + (if (file-exists-p dir) + (dired dir)) + (current-buffer)))) + +(defun wg-serialize-dired-buffer (buffer) + "Serialize Dired buffer." + (with-current-buffer buffer + (when (eq major-mode 'dired-mode) + (list 'wg-deserialize-dired-buffer + (wg-take-until-unreadable (list (or (buffer-file-name) default-directory))) + )))) ;; Info buffer serdes