Commit a91c76d6 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(tar-mode): Use define-derived-mode.

parent c4d9b0d9
...@@ -528,7 +528,7 @@ is visible (and the real data of the buffer is hidden)." ...@@ -528,7 +528,7 @@ is visible (and the real data of the buffer is hidden)."
(put 'tar-subfile-mode 'mode-class 'special) (put 'tar-subfile-mode 'mode-class 'special)
;;;###autoload ;;;###autoload
(defun tar-mode () (define-derived-mode tar-mode nil "Tar"
"Major mode for viewing a tar file as a dired-like listing of its contents. "Major mode for viewing a tar file as a dired-like listing of its contents.
You can move around using the usual cursor motion commands. You can move around using the usual cursor motion commands.
Letters no longer insert themselves. Letters no longer insert themselves.
...@@ -547,33 +547,21 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ...@@ -547,33 +547,21 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
;; mode on and off. You can corrupt things that way. ;; mode on and off. You can corrupt things that way.
;; rms: with permanent locals, it should now be possible to make this work ;; rms: with permanent locals, it should now be possible to make this work
;; interactively in some reasonable fashion. ;; interactively in some reasonable fashion.
(kill-all-local-variables)
(make-local-variable 'tar-header-offset) (make-local-variable 'tar-header-offset)
(make-local-variable 'tar-parse-info) (make-local-variable 'tar-parse-info)
(make-local-variable 'require-final-newline) (set (make-local-variable 'require-final-newline) nil) ; binary data, dude...
(setq require-final-newline nil) ; binary data, dude... (set (make-local-variable 'revert-buffer-function) 'tar-mode-revert)
(make-local-variable 'revert-buffer-function) (set (make-local-variable 'local-enable-local-variables) nil)
(setq revert-buffer-function 'tar-mode-revert) (set (make-local-variable 'next-line-add-newlines) nil)
(make-local-variable 'local-enable-local-variables)
(setq local-enable-local-variables nil)
(make-local-variable 'next-line-add-newlines)
(setq next-line-add-newlines nil)
;; Prevent loss of data when saving the file. ;; Prevent loss of data when saving the file.
(make-local-variable 'file-precious-flag) (set (make-local-variable 'file-precious-flag) t)
(setq file-precious-flag t)
(setq major-mode 'tar-mode)
(setq mode-name "Tar")
(use-local-map tar-mode-map)
(auto-save-mode 0) (auto-save-mode 0)
(make-local-variable 'write-contents-hooks) (set (make-local-variable 'write-contents-hooks) '(tar-mode-write-file))
(setq write-contents-hooks '(tar-mode-write-file))
(widen) (widen)
(if (and (boundp 'tar-header-offset) tar-header-offset) (if (and (boundp 'tar-header-offset) tar-header-offset)
(narrow-to-region 1 (byte-to-position tar-header-offset)) (narrow-to-region 1 (byte-to-position tar-header-offset))
(tar-summarize-buffer) (tar-summarize-buffer)
(tar-next-line 0)) (tar-next-line 0)))
(run-hooks 'tar-mode-hook)
)
(defun tar-subfile-mode (p) (defun tar-subfile-mode (p)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment