summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2009-03-14 03:03:25 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2009-03-14 03:03:25 +0000
commit3ba41ce473f6c9f61e9f131fd086fc535b78ec9e (patch)
treeab1931c5cb642811296bf6b4e15d4898d06167ba /lisp
parent405ee48db358592c2d18ab16266180f6d952ac33 (diff)
downloademacs-3ba41ce473f6c9f61e9f131fd086fc535b78ec9e.tar.gz
(tar-extract): Setup the buffer's name, undo-list, and
modified status before running the major-mode.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/tar-mode.el14
2 files changed, 7 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 38886bb0e18..e056053641f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -5,6 +5,9 @@
2009-03-14 Stefan Monnier <monnier@iro.umontreal.ca>
+ * tar-mode.el (tar-extract): Setup the buffer's name, undo-list, and
+ modified status before running the major-mode.
+
* simple.el (undo): Don't loop when encountering empty undo records.
2009-03-13 Tassilo Horn <tassilo@member.fsf.org>
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 07d1a54d87b..5da38db052b 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -622,10 +622,6 @@ inside of a tar archive without extracting it and re-archiving it.
See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
\\{tar-mode-map}"
- ;; this is not interactive because you shouldn't be turning this
- ;; mode on and off. You can corrupt things that way.
- ;; rms: with permanent locals, it should now be possible to make this work
- ;; interactively in some reasonable fashion.
(make-local-variable 'tar-parse-info)
(set (make-local-variable 'require-final-newline) nil) ; binary data, dude...
(set (make-local-variable 'local-enable-local-variables) nil)
@@ -839,15 +835,13 @@ appear on disk when you save the tar-file's buffer."
(setq default-directory
(with-current-buffer tar-buffer
default-directory))
- (normal-mode) ; pick a mode.
(rename-buffer bufname)
- (make-local-variable 'tar-superior-buffer)
- (make-local-variable 'tar-superior-descriptor)
- (setq tar-superior-buffer tar-buffer)
- (setq tar-superior-descriptor descriptor)
- (setq buffer-read-only read-only-p)
(set-buffer-modified-p nil)
(setq buffer-undo-list undo-list)
+ (normal-mode) ; pick a mode.
+ (set (make-local-variable 'tar-superior-buffer) tar-buffer)
+ (set (make-local-variable 'tar-superior-descriptor) descriptor)
+ (setq buffer-read-only read-only-p)
(tar-subfile-mode 1)))
(if view-p
(view-buffer