Function: desktop-restore-file-buffer
desktop-restore-file-buffer is a byte-compiled function defined in
desktop.el.gz.
Signature
(desktop-restore-file-buffer BUFFER-FILENAME BUFFER-NAME BUFFER-MISC)
Documentation
Restore a file buffer.
Source Code
;; Defined in /usr/src/emacs/lisp/desktop.el.gz
(defvar auto-insert) ; from autoinsert.el
;; ----------------------------------------------------------------------------
(defun desktop-restore-file-buffer (buffer-filename
_buffer-name
_buffer-misc)
"Restore a file buffer."
(when buffer-filename
(if (or (file-exists-p buffer-filename)
(let ((msg (format "Desktop: File \"%s\" no longer exists."
buffer-filename)))
(if desktop-missing-file-warning
(y-or-n-p (concat msg " Re-create buffer? "))
(message "%s" msg)
nil)))
(let* ((auto-insert nil) ; Disable auto insertion
(coding-system-for-read
(or coding-system-for-read
(cdr (assq 'buffer-file-coding-system
desktop-buffer-locals))))
(buf (find-file-noselect buffer-filename :nowarn)))
(condition-case nil
(switch-to-buffer buf)
(error (pop-to-buffer buf)))
(and (not (eq major-mode desktop-buffer-major-mode))
(functionp desktop-buffer-major-mode)
(funcall desktop-buffer-major-mode))
buf)
nil)))