From abef340a0c5304054a2a5e6d95e1d825501f0e7a Mon Sep 17 00:00:00 2001 From: Sam Steingold Date: Tue, 1 Feb 2011 16:22:21 -0500 Subject: * lisp/simple.el (special-mode-map): Bind "h" to `describe-mode'; bind "z" to `kill-this-buffer'. (completion-list-mode-map): Bind "z" to `kill-this-buffer'. * lisp/apropos.el (apropos-mode-map): Inherit from `special-mode-map'. (apropos-mode): Inherit from `special-mode'. * lisp/arc-mode.el (archive-mode-map): Inherit from `special-mode-map'. * lisp/bookmark.el (bookmark-bmenu-mode): Define using `define-derived-mode' inheriting from `special-mode'. * lisp/dired.el (dired-mode-map): Inherit from `special-mode-map'. * lisp/image-mode.el (image-mode-map): Ditto. * lisp/replace.el (occur-mode): Define using `define-derived-mode' inheriting from `special-mode'. * lisp/tar-mode.el (tar-mode): Inherit from `special-mode'. * lisp/calendar/diary-lib.el (diary-fancy-display-mode): Inherit from `special-mode-map'. * lisp/emacs-lisp/ert.el (ert-simple-view-mode, ert-results-mode): Inherit from `special-mode'. * lisp/emacs-lisp/package.el (package-menu-mode-map): Copy from `special-mode-map'. (package-menu-mode): Define using `define-derived-mode' inheriting from `special-mode'. * erc/erc-list.el (erc-list-menu-mode): Inherit from `special-mode'. * lisp/net/xesam.el (xesam-mode): Inherit from `special-mode'. (xesam-mode-map): Define separately. * lisp/play/solitaire.el (solitaire-mode): Inherit from `special-mode'. * lisp/progmodes/compile.el (compilation-minor-mode-map) (compilation-mode-map): Inherit from `special-mode-map'. * lisp/vc/diff-mode.el (diff-mode-shared-map): Inherit from `special-mode-map'. * lisp/vc/log-view.el (log-view-mode-map): Add a comment. --- lisp/tar-mode.el | 160 ++++++++++++++++++++++++++----------------------------- 1 file changed, 76 insertions(+), 84 deletions(-) (limited to 'lisp/tar-mode.el') diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index fdac245c53b..10ea1ac23c4 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -220,7 +220,7 @@ Preserve the modified states of the buffers and set `buffer-swapped-with'." (defun tar-roundup-512 (s) "Round S up to the next multiple of 512." (ash (ash (+ s 511) -9) 9)) - + (defun tar-header-block-tokenize (pos coding) "Return a `tar-header' structure. This is a list of name, mode, uid, gid, size, @@ -283,7 +283,7 @@ write-date, checksum, link-type, and link-name." (let* ((size (tar-parse-octal-integer string tar-size-offset tar-time-offset)) ;; -1 so as to strip the terminating 0 byte. - (name (decode-coding-string + (name (decode-coding-string (buffer-substring pos (+ pos size -1)) coding)) (descriptor (tar-header-block-tokenize (+ pos (tar-roundup-512 size)) @@ -298,7 +298,7 @@ write-date, checksum, link-type, and link-name." (setf (tar-header-header-start descriptor) (copy-marker (- pos 512) t)) descriptor) - + (make-tar-header (copy-marker pos nil) name @@ -501,7 +501,7 @@ MODE should be an integer which is a file mode value." ;;(tar-header-block-check-checksum ;; hblock (tar-header-block-checksum hblock) ;; (tar-header-name descriptor)) - + (push descriptor result) (setq pos (tar-header-data-end descriptor)) (progress-reporter-update progress-reporter pos))) @@ -520,86 +520,7 @@ MODE should be an integer which is a file mode value." (goto-char (point-min)) (restore-buffer-modified-p modified))) -(defvar tar-mode-map - (let ((map (make-keymap))) - (suppress-keymap map) - (define-key map " " 'tar-next-line) - (define-key map "C" 'tar-copy) - (define-key map "d" 'tar-flag-deleted) - (define-key map "\^D" 'tar-flag-deleted) - (define-key map "e" 'tar-extract) - (define-key map "f" 'tar-extract) - (define-key map "\C-m" 'tar-extract) - (define-key map [mouse-2] 'tar-mouse-extract) - (define-key map "g" 'revert-buffer) - (define-key map "h" 'describe-mode) - (define-key map "n" 'tar-next-line) - (define-key map "\^N" 'tar-next-line) - (define-key map [down] 'tar-next-line) - (define-key map "o" 'tar-extract-other-window) - (define-key map "p" 'tar-previous-line) - (define-key map "q" 'quit-window) - (define-key map "\^P" 'tar-previous-line) - (define-key map [up] 'tar-previous-line) - (define-key map "R" 'tar-rename-entry) - (define-key map "u" 'tar-unflag) - (define-key map "v" 'tar-view) - (define-key map "x" 'tar-expunge) - (define-key map "\177" 'tar-unflag-backwards) - (define-key map "E" 'tar-extract-other-window) - (define-key map "M" 'tar-chmod-entry) - (define-key map "G" 'tar-chgrp-entry) - (define-key map "O" 'tar-chown-entry) - ;; Let mouse-1 follow the link. - (define-key map [follow-link] 'mouse-face) - - ;; Make menu bar items. - - ;; Get rid of the Edit menu bar item to save space. - (define-key map [menu-bar edit] 'undefined) - - (define-key map [menu-bar immediate] - (cons "Immediate" (make-sparse-keymap "Immediate"))) - - (define-key map [menu-bar immediate view] - '("View This File" . tar-view)) - (define-key map [menu-bar immediate display] - '("Display in Other Window" . tar-display-other-window)) - (define-key map [menu-bar immediate find-file-other-window] - '("Find in Other Window" . tar-extract-other-window)) - (define-key map [menu-bar immediate find-file] - '("Find This File" . tar-extract)) - - (define-key map [menu-bar mark] - (cons "Mark" (make-sparse-keymap "Mark"))) - - (define-key map [menu-bar mark unmark-all] - '("Unmark All" . tar-clear-modification-flags)) - (define-key map [menu-bar mark deletion] - '("Flag" . tar-flag-deleted)) - (define-key map [menu-bar mark unmark] - '("Unflag" . tar-unflag)) - - (define-key map [menu-bar operate] - (cons "Operate" (make-sparse-keymap "Operate"))) - - (define-key map [menu-bar operate chown] - '("Change Owner..." . tar-chown-entry)) - (define-key map [menu-bar operate chgrp] - '("Change Group..." . tar-chgrp-entry)) - (define-key map [menu-bar operate chmod] - '("Change Mode..." . tar-chmod-entry)) - (define-key map [menu-bar operate rename] - '("Rename to..." . tar-rename-entry)) - (define-key map [menu-bar operate copy] - '("Copy to..." . tar-copy)) - (define-key map [menu-bar operate expunge] - '("Expunge Marked Files" . tar-expunge)) - - map) - "Local keymap for Tar mode listings.") - ;; tar mode is suitable only for specially formatted data. (put 'tar-mode 'mode-class 'special) (put 'tar-subfile-mode 'mode-class 'special) @@ -614,7 +535,7 @@ MODE should be an integer which is a file mode value." (if (buffer-live-p tar-data-buffer) (kill-buffer tar-data-buffer))) ;;;###autoload -(define-derived-mode tar-mode nil "Tar" +(define-derived-mode tar-mode special-mode "Tar" "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. Letters no longer insert themselves. @@ -669,6 +590,77 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. (fundamental-mode) (signal (car err) (cdr err))))) +(define-key tar-mode-map " " 'tar-next-line) +(define-key tar-mode-map "C" 'tar-copy) +(define-key tar-mode-map "d" 'tar-flag-deleted) +(define-key tar-mode-map "\^D" 'tar-flag-deleted) +(define-key tar-mode-map "e" 'tar-extract) +(define-key tar-mode-map "f" 'tar-extract) +(define-key tar-mode-map "\C-m" 'tar-extract) +(define-key tar-mode-map [mouse-2] 'tar-mouse-extract) +(define-key tar-mode-map "g" 'revert-buffer) +(define-key tar-mode-map "h" 'describe-mode) +(define-key tar-mode-map "n" 'tar-next-line) +(define-key tar-mode-map "\^N" 'tar-next-line) +(define-key tar-mode-map [down] 'tar-next-line) +(define-key tar-mode-map "o" 'tar-extract-other-window) +(define-key tar-mode-map "p" 'tar-previous-line) +(define-key tar-mode-map "\^P" 'tar-previous-line) +(define-key tar-mode-map [up] 'tar-previous-line) +(define-key tar-mode-map "R" 'tar-rename-entry) +(define-key tar-mode-map "u" 'tar-unflag) +(define-key tar-mode-map "v" 'tar-view) +(define-key tar-mode-map "x" 'tar-expunge) +(define-key tar-mode-map "\177" 'tar-unflag-backwards) +(define-key tar-mode-map "E" 'tar-extract-other-window) +(define-key tar-mode-map "M" 'tar-chmod-entry) +(define-key tar-mode-map "G" 'tar-chgrp-entry) +(define-key tar-mode-map "O" 'tar-chown-entry) +;; Let mouse-1 follow the link. +(define-key tar-mode-map [follow-link] 'mouse-face) + +;; Make menu bar items. + +;; Get rid of the Edit menu bar item to save space. +(define-key tar-mode-map [menu-bar edit] 'undefined) + +(define-key tar-mode-map [menu-bar immediate] + (cons "Immediate" (make-sparse-keymap "Immediate"))) + +(define-key tar-mode-map [menu-bar immediate view] + '("View This File" . tar-view)) +(define-key tar-mode-map [menu-bar immediate display] + '("Display in Other Window" . tar-display-other-window)) +(define-key tar-mode-map [menu-bar immediate find-file-other-window] + '("Find in Other Window" . tar-extract-other-window)) +(define-key tar-mode-map [menu-bar immediate find-file] + '("Find This File" . tar-extract)) + +(define-key tar-mode-map [menu-bar mark] + (cons "Mark" (make-sparse-keymap "Mark"))) + +(define-key tar-mode-map [menu-bar mark unmark-all] + '("Unmark All" . tar-clear-modification-flags)) +(define-key tar-mode-map [menu-bar mark deletion] + '("Flag" . tar-flag-deleted)) +(define-key tar-mode-map [menu-bar mark unmark] + '("Unflag" . tar-unflag)) + +(define-key tar-mode-map [menu-bar operate] + (cons "Operate" (make-sparse-keymap "Operate"))) + +(define-key tar-mode-map [menu-bar operate chown] + '("Change Owner..." . tar-chown-entry)) +(define-key tar-mode-map [menu-bar operate chgrp] + '("Change Group..." . tar-chgrp-entry)) +(define-key tar-mode-map [menu-bar operate chmod] + '("Change Mode..." . tar-chmod-entry)) +(define-key tar-mode-map [menu-bar operate rename] + '("Rename to..." . tar-rename-entry)) +(define-key tar-mode-map [menu-bar operate copy] + '("Copy to..." . tar-copy)) +(define-key tar-mode-map [menu-bar operate expunge] + '("Expunge Marked Files" . tar-expunge)) (define-minor-mode tar-subfile-mode "Minor mode for editing an element of a tar-file. -- cgit v1.2.1