1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Make docview error message clearer

* doc-view.el (doc-view-make-safe-dir): Rewrite the error message
to clarify what the problem is (bug#4291).
This commit is contained in:
Lars Magne Ingebrigtsen 2011-07-16 21:38:25 +02:00
parent ca425c7c87
commit c82f64de3f
2 changed files with 20 additions and 12 deletions

View file

@ -569,18 +569,18 @@ at the top edge of the page moves to the previous page."
(defun doc-view-make-safe-dir (dir)
(condition-case nil
(let ((umask (default-file-modes)))
(unwind-protect
(progn
;; Create temp files with strict access rights. It's easy to
;; loosen them later, whereas it's impossible to close the
;; time-window of loose permissions otherwise.
(set-default-file-modes #o0700)
(make-directory dir))
;; Reset the umask.
(set-default-file-modes umask)))
(unwind-protect
(progn
;; Create temp files with strict access rights. It's easy to
;; loosen them later, whereas it's impossible to close the
;; time-window of loose permissions otherwise.
(set-default-file-modes #o0700)
(make-directory dir))
;; Reset the umask.
(set-default-file-modes umask)))
(file-already-exists
(if (file-symlink-p dir)
(error "Danger: %s points to a symbolic link" dir))
(when (file-symlink-p dir)
(error "Danger: %s points to a symbolic link" dir))
;; In case it was created earlier with looser rights.
;; We could check the mode info returned by file-attributes, but it's
;; a pain to parse and it may not tell you what we want under
@ -589,7 +589,12 @@ at the top edge of the page moves to the previous page."
;; This also ends up checking a bunch of useful conditions: it makes
;; sure we have write-access to the directory and that we own it, thus
;; closing a bunch of security holes.
(set-file-modes dir #o0700))))
(condition-case error
(set-file-modes dir #o0700)
(file-error
(error
(format "Unable to use temporary directory %s: %s"
dir (mapconcat 'identity (cdr error) " "))))))))
(defun doc-view-current-cache-dir ()
"Return the directory where the png files of the current doc should be saved.