summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2011-07-16 21:38:25 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2011-07-16 21:38:25 +0200
commitc82f64de3f319e15b3cc8e08cd3bfa69e69aa4eb (patch)
tree99289454566483126b36d7f6ca369b28bf723ee7
parentca425c7c87bc939777a1dceea7fbe1fe563bc3ca (diff)
downloademacs-c82f64de3f319e15b3cc8e08cd3bfa69e69aa4eb.tar.gz
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).
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/doc-view.el29
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 <larsi@gnus.org>
+ * 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.