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
commit8dc33e1146326862a2ba5afdc091389a0ad623b1 (patch)
tree2b93f220c12737fd678c888012cd7da7e0825322
parentb528110c6ce9bf2b9c1ba5b8ff2e272dfb3749c8 (diff)
downloademacs-8dc33e1146326862a2ba5afdc091389a0ad623b1.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)