summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1998-07-17 03:21:14 +0000
committerRichard M. Stallman <rms@gnu.org>1998-07-17 03:21:14 +0000
commit48bb31fe696458b3c4875039e459a652452e789d (patch)
treeed943b3db1aa039b31473c7de87bd20e1ac30c97
parent041fdfeead094860cf2e0440a4f7f9158aa42538 (diff)
downloademacs-48bb31fe696458b3c4875039e459a652452e789d.tar.gz
(archive-extract): If the extractor signals an
error, trap it, so that the buffer created for a member is killed.
-rw-r--r--lisp/arc-mode.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index e786a33944c..27425e47323 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -876,9 +876,14 @@ using `make-temp-name', and the generated name is returned."
(setq archive-subfile-mode descr)
(if (and
(null
- (if (fboundp extractor)
- (funcall extractor archive ename)
- (archive-*-extract archive ename (symbol-value extractor))))
+ (condition-case err
+ (if (fboundp extractor)
+ (funcall extractor archive ename)
+ (archive-*-extract archive ename
+ (symbol-value extractor)))
+ (error
+ (ding (message "%s" (error-message-string err)))
+ nil)))
just-created)
(progn
(set-buffer-modified-p nil)