From c82f64de3f319e15b3cc8e08cd3bfa69e69aa4eb Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 16 Jul 2011 21:38:25 +0200 Subject: 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). --- lisp/ChangeLog | 3 +++ lisp/doc-view.el | 29 +++++++++++++++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6ac0dd3d0b1..48f61a55552 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-07-16 Lars Magne Ingebrigtsen + * doc-view.el (doc-view-make-safe-dir): Rewrite the error message + to clarify what the problem is (bug#4291). + * simple.el (current-kill): Clarify what `interprogram-paste-function' does (bug#7500). (auto-fill-mode): Document `auto-fill-function' in relation to diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 666c6a8b034..872b2172c7e 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -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. -- cgit v1.2.3