Commit 945e1965 authored by Richard M. Stallman's avatar Richard M. Stallman

(recover-file): It's ok if the visited file doesn't exist.

(recover-session-finish): Compute "file name" from autosave file
if no visited file.
parent 199afd29
......@@ -2079,7 +2079,9 @@ beginning and `after-revert-hook' at the end."
(error "%s is an auto-save file" file))
(let ((file-name (let ((buffer-file-name file))
(cond ((not (file-newer-than-file-p file-name file))
(cond ((if (file-exists-p file)
(not (file-newer-than-file-p file-name file))
(not (file-exists-p file-name)))
(error "Auto-save file %s not current" file-name))
(if (not (eq system-type 'vax-vms))
......@@ -2129,14 +2131,41 @@ This command is used in the special Dired buffer created by
(set-buffer buffer)
(insert-file-contents file)
;; The file contains a pair of line for each auto-saved buffer.
;; The first line of the pair contains the visited file name
;; or is empty if the buffer was not visiting a file.
;; The second line is the auto-save file name.
(map-y-or-n-p "Recover %s? "
(lambda (file) (save-excursion (recover-file file)))
(lambda ()
(if (eobp)
(point) (progn (end-of-line) (point)))
(if (eolp)
;; If the first line of the pair is empty,
;; it means this was a non-file buffer
;; that was autosaved.
;; Make a file name from
;; the auto-save file name.
(let ((autofile
(forward-line 1)
(forward-line 1)
(concat "temp"
(file-name-nondirectory autofile)
1 -1))
(file-name-directory autofile)))
;; This pair of lines is a file-visiting
;; buffer. Use the visited file name.
(point) (progn (end-of-line) (point))))
(while (and (eolp) (not (eobp)))
(forward-line 2)))))
'("file" "files" "recover")))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment