comparison lisp/tar-mode.el @ 108220:0b37f86b040e

Use define-minor-mode where applicable. * mh-show.el (mh-showing-mode): Move function to mh-e.el. * mh-e.el (mh-showing-mode): * url-dired.el (url-dired-minor-mode): * org-table.el (orgtbl-mode): * view.el (view-mode): * type-break.el (type-break-query-mode) (type-break-mode-line-message-mode): * textmodes/reftex.el (reftex-mode): * term/vt100.el (vt100-wide-mode): * tar-mode.el (tar-subfile-mode): * savehist.el (savehist-mode): * ibuf-ext.el (ibuffer-auto-mode): * composite.el (auto-composition-mode): * progmodes/vhdl-mode.el (vhdl-electric-mode, vhdl-stutter-mode): Use define-minor-mode. (vhdl-mode): Use static mode-line format. (vhdl-mode-line-update): Delete. (vhdl-create-mode-menu, vhdl-activate-customizations) (vhdl-hs-minor-mode): Don't bother calling it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 02 May 2010 22:29:46 -0400
parents 1721e4658521
children 6a7fb61524be
comparison
equal deleted inserted replaced
108219:252a60daa4fb 108220:0b37f86b040e
135 :group 'tar) 135 :group 'tar)
136 136
137 (defvar tar-parse-info nil) 137 (defvar tar-parse-info nil)
138 (defvar tar-superior-buffer nil) 138 (defvar tar-superior-buffer nil)
139 (defvar tar-superior-descriptor nil) 139 (defvar tar-superior-descriptor nil)
140 (defvar tar-subfile-mode nil)
141 (defvar tar-file-name-coding-system nil) 140 (defvar tar-file-name-coding-system nil)
142 141
143 (put 'tar-superior-buffer 'permanent-local t) 142 (put 'tar-superior-buffer 'permanent-local t)
144 (put 'tar-superior-descriptor 'permanent-local t) 143 (put 'tar-superior-descriptor 'permanent-local t)
145 144
670 ;; revert to fundamental-mode. 669 ;; revert to fundamental-mode.
671 (fundamental-mode) 670 (fundamental-mode)
672 (signal (car err) (cdr err))))) 671 (signal (car err) (cdr err)))))
673 672
674 673
675 (defun tar-subfile-mode (p) 674 (define-minor-mode tar-subfile-mode
676 "Minor mode for editing an element of a tar-file. 675 "Minor mode for editing an element of a tar-file.
677 This mode arranges for \"saving\" this buffer to write the data 676 This mode arranges for \"saving\" this buffer to write the data
678 into the tar-file buffer that it came from. The changes will actually 677 into the tar-file buffer that it came from. The changes will actually
679 appear on disk when you save the tar-file's buffer." 678 appear on disk when you save the tar-file's buffer."
680 (interactive "P") 679 ;; Don't do this, because it is redundant and wastes mode line space.
680 ;; :lighter " TarFile"
681 nil nil nil
681 (or (and (boundp 'tar-superior-buffer) tar-superior-buffer) 682 (or (and (boundp 'tar-superior-buffer) tar-superior-buffer)
682 (error "This buffer is not an element of a tar file")) 683 (error "This buffer is not an element of a tar file"))
683 ;; Don't do this, because it is redundant and wastes mode line space.
684 ;; (or (assq 'tar-subfile-mode minor-mode-alist)
685 ;; (setq minor-mode-alist (append minor-mode-alist
686 ;; (list '(tar-subfile-mode " TarFile")))))
687 (make-local-variable 'tar-subfile-mode)
688 (setq tar-subfile-mode
689 (if (null p)
690 (not tar-subfile-mode)
691 (> (prefix-numeric-value p) 0)))
692 (cond (tar-subfile-mode 684 (cond (tar-subfile-mode
693 (add-hook 'write-file-functions 'tar-subfile-save-buffer nil t) 685 (add-hook 'write-file-functions 'tar-subfile-save-buffer nil t)
694 ;; turn off auto-save. 686 ;; turn off auto-save.
695 (auto-save-mode -1) 687 (auto-save-mode -1)
696 (setq buffer-auto-save-file-name nil) 688 (setq buffer-auto-save-file-name nil))
697 (run-hooks 'tar-subfile-mode-hook))
698 (t 689 (t
699 (remove-hook 'write-file-functions 'tar-subfile-save-buffer t)))) 690 (remove-hook 'write-file-functions 'tar-subfile-save-buffer t))))
700 691
701 692
702 ;; Revert the buffer and recompute the dired-like listing. 693 ;; Revert the buffer and recompute the dired-like listing.