diff options
| author | Richard M. Stallman | 1994-05-14 09:18:02 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-05-14 09:18:02 +0000 |
| commit | 975907373774ef30bbb30f8beceb7907b45ed64f (patch) | |
| tree | b733fa7e700b048087889074b960404122ba0b3b | |
| parent | a1094fc9d02dc21d39f49d340d09c3ae83fb981b (diff) | |
| download | emacs-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.el | 11 |
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))) |