Changeset - b203399526f1
[Not reviewed]
0 1 0
Sergey Pashinin - 13 years ago 2013-05-06 18:54:18
sergey@pashinin.com
restore Magit only if dir exists
1 file changed with 2 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/workgroups-specialbufs.el
Show inline comments
 
@@ -37,97 +37,98 @@ See `wg-serialize-help-buffer'."
 
        (apply (car item) (cdr item))
 
      (error (message "%s" err)))
 
    (wg-awhen (get-buffer "*Help*")
 
      (set-buffer it)
 
      (wg-when-boundp (help-xref-stack help-xref-forward-stack)
 
        (setq help-xref-stack stack
 
              help-xref-forward-stack forward-stack))
 
      (current-buffer))))
 

	
 
(defun wg-serialize-help-buffer (buffer)
 
  "Serialize a help buffer.
 
Since `help-mode' is used by many buffers that aren't actually
 
*Help* buffers (e.g. *Process List*), we also check that
 
`help-xref-stack-item' has a local binding."
 
  (with-current-buffer buffer
 
    (when (and (eq major-mode 'help-mode)
 
               (local-variable-p 'help-xref-stack-item)
 
               (boundp 'help-xref-stack-item)
 
               (boundp 'help-xref-stack)
 
               (boundp 'help-xref-forward-stack))
 
      (list 'wg-deserialize-help-buffer
 
            (wg-take-until-unreadable help-xref-stack-item)
 
            (mapcar 'wg-take-until-unreadable help-xref-stack)
 
            (mapcar 'wg-take-until-unreadable help-xref-forward-stack)))))
 

	
 

	
 
;; ielm buffer serdes
 

	
 
(defun wg-deserialize-ielm-buffer (buf)
 
  "Deserialize an `inferior-emacs-lisp-mode' buffer."
 
  (ielm)
 
  (current-buffer))
 

	
 
(defun wg-serialize-ielm-buffer (buffer)
 
  "Serialize an `inferior-emacs-lisp-mode' buffer."
 
  (with-current-buffer buffer
 
    (when (eq major-mode 'inferior-emacs-lisp-mode)
 
      (list 'wg-deserialize-ielm-buffer))))
 

	
 

	
 
;; Magit buffers
 

	
 
(defun wg-deserialize-magit-buffer (buf)
 
  ""
 
  (require 'magit)
 
  (if (boundp 'magit-status-mode-map)
 
      (wg-dbind (this-function dir) (wg-buf-special-data buf)
 
        (let ((default-directory (car dir)))
 
          (magit-status default-directory)
 
          (if (file-exists-p default-directory)
 
              (magit-status default-directory))
 
          (current-buffer)
 
          ))))
 

	
 
(defun wg-serialize-magit-buffer (buffer)
 
  ""
 
  (if (boundp 'magit-status-mode-map)
 
      (with-current-buffer buffer
 
        (when (eq major-mode 'magit-status-mode)
 
          (list 'wg-deserialize-magit-buffer
 
                (wg-take-until-unreadable (list (or (buffer-file-name) default-directory)))
 
                )))))
 

	
 

	
 
;; shell buffer serdes
 

	
 
(defun wg-deserialize-shell-buffer (buf)
 
  "Deserialize a `shell-mode' buffer.
 
Run shell with last working dir"
 
  (wg-dbind (this-function dir) (wg-buf-special-data buf)
 
    (let ((default-directory (car dir)))
 
      (shell (wg-buf-name buf))
 
      (current-buffer)
 
      )))
 

	
 
(defun wg-serialize-shell-buffer (buffer)
 
  "Serialize a `shell-mode' buffer.
 
Save shell directory"
 
  (with-current-buffer buffer
 
    (when (eq major-mode 'shell-mode)
 
      (list 'wg-deserialize-shell-buffer
 
            (wg-take-until-unreadable (list (or (buffer-file-name) default-directory)))
 
            ))))
 

	
 

	
 
;; org-agenda buffer serdes
 

	
 
(defun wg-get-org-agenda-view-commands ()
 
  "Get commands by which the current state of Agenda buffer can
 
be restored using \"(eval commands)\"."
 
  (interactive)
 
  (if (get-buffer org-agenda-buffer-name)
 
      (with-current-buffer org-agenda-buffer-name
 
        (let* ((p (or (and (looking-at "\\'") (1- (point))) (point)))
 
               (series-redo-cmd (get-text-property p 'org-series-redo-cmd)))
 
          (if series-redo-cmd
 
              (get-text-property p 'org-series-redo-cmd)
 
            (get-text-property p 'org-redo-cmd))))))
 

	
0 comments (0 inline, 0 general)