aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1994-05-14 09:18:02 +0000
committerRichard M. Stallman1994-05-14 09:18:02 +0000
commit975907373774ef30bbb30f8beceb7907b45ed64f (patch)
treeb733fa7e700b048087889074b960404122ba0b3b
parenta1094fc9d02dc21d39f49d340d09c3ae83fb981b (diff)
downloademacs-975907373774ef30bbb30f8beceb7907b45ed64f.tar.gz
emacs-975907373774ef30bbb30f8beceb7907b45ed64f.zip
(tar-extract): Put tar name into subfile visited name.
(tar-subfile-save-buffer): When updating the desc line, insert new text after, then delete.
-rw-r--r--lisp/tar-mode.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 74054bea483..f7e982b8188 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -683,7 +683,8 @@ save your changes to disk."
683 (set-buffer buffer) 683 (set-buffer buffer)
684 (insert-buffer-substring tar-buffer start end) 684 (insert-buffer-substring tar-buffer start end)
685 (goto-char 0) 685 (goto-char 0)
686 (set-visited-file-name name) ; give it a name to decide mode. 686 ;; Give it a name for lit-buffers and to decide mode.
687 (set-visited-file-name (concat tarname ":" name))
687 (normal-mode) ; pick a mode. 688 (normal-mode) ; pick a mode.
688;;; Without a file name, save-buffer doesn't work. 689;;; Without a file name, save-buffer doesn't work.
689;;; (set-visited-file-name nil) ; nuke the name - not meaningful. 690;;; (set-visited-file-name nil) ; nuke the name - not meaningful.
@@ -1078,10 +1079,14 @@ to make your changes permanent."
1078 (next-line position) 1079 (next-line position)
1079 (beginning-of-line) 1080 (beginning-of-line)
1080 (let ((p (point)) 1081 (let ((p (point))
1082 after
1081 (m (set-marker (make-marker) tar-header-offset))) 1083 (m (set-marker (make-marker) tar-header-offset)))
1082 (forward-line 1) 1084 (forward-line 1)
1083 (delete-region p (point)) 1085 (setq after (point))
1086 ;; Insert the new text after the old, before deleting,
1087 ;; to preserve the window start.
1084 (insert-before-markers (summarize-tar-header-block tokens t) "\n") 1088 (insert-before-markers (summarize-tar-header-block tokens t) "\n")
1089 (delete-region p after)
1085 (setq tar-header-offset (marker-position m))) 1090 (setq tar-header-offset (marker-position m)))
1086 ))) 1091 )))
1087 ;; after doing the insertion, add any final padding that may be necessary. 1092 ;; after doing the insertion, add any final padding that may be necessary.
@@ -1090,7 +1095,7 @@ to make your changes permanent."
1090 (set-buffer-modified-p t) ; mark the tar file as modified 1095 (set-buffer-modified-p t) ; mark the tar file as modified
1091 (set-buffer subfile) 1096 (set-buffer subfile)
1092 (set-buffer-modified-p nil) ; mark the tar subfile as unmodified 1097 (set-buffer-modified-p nil) ; mark the tar subfile as unmodified
1093 (message "saved into tar-buffer \"%s\" - remember to save that buffer!" 1098 (message "saved into tar-buffer `%s' -- remember to save that buffer!"
1094 (buffer-name tar-superior-buffer)) 1099 (buffer-name tar-superior-buffer))
1095 ;; Prevent ordinary saving from happening. 1100 ;; Prevent ordinary saving from happening.
1096 t))) 1101 t)))