# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: address@hidden # 946nk06x5bq8glq3 # target_branch: http://bzr.savannah.gnu.org/r/emacs/trunk # testament_sha1: ae60fb4dc86c7121984c9f2cbb1b030c3bb2cd8f # timestamp: 2010-08-29 16:09:19 +0100 # source_branch: ../define-derived-mode/ # base_revision_id: address@hidden # # Begin patch === modified file 'lisp/arc-mode.el' --- lisp/arc-mode.el 2010-07-10 18:52:53 +0000 +++ lisp/arc-mode.el 2010-08-28 22:08:54 +0000 @@ -341,7 +341,6 @@ (defvar archive-mode-map (let ((map (make-keymap))) (suppress-keymap map) - (define-key map " " 'archive-next-line) (define-key map "a" 'archive-alternate-display) ;;(define-key map "c" 'archive-copy) (define-key map "d" 'archive-flag-deleted) @@ -349,15 +348,12 @@ (define-key map "e" 'archive-extract) (define-key map "f" 'archive-extract) (define-key map "\C-m" 'archive-extract) - (define-key map "g" 'revert-buffer) - (define-key map "h" 'describe-mode) (define-key map "m" 'archive-mark) (define-key map "n" 'archive-next-line) (define-key map "\C-n" 'archive-next-line) (define-key map [down] 'archive-next-line) (define-key map "o" 'archive-extract-other-window) (define-key map "p" 'archive-previous-line) - (define-key map "q" 'quit-window) (define-key map "\C-p" 'archive-previous-line) (define-key map [up] 'archive-previous-line) (define-key map "r" 'archive-rename-entry) @@ -632,24 +628,10 @@ (error "Entry is not a regular member of the archive")))) (if (not noerror) (error "Line does not describe a member of the archive"))))) -;; ------------------------------------------------------------------------- -;;; Section: the mode definition - -;;;###autoload -(defun archive-mode (&optional force) - "Major mode for viewing an archive file in a dired-like way. -You can move around using the usual cursor motion commands. -Letters no longer insert themselves. -Type `e' to pull a file out of the archive and into its own buffer; -or click mouse-2 on the file's line in the archive mode buffer. - -If you edit a sub-file of this archive (as with the `e' command) and -save it, the contents of that buffer will be saved back into the -archive. - -\\{archive-mode-map}" - ;; This is not interactive because you shouldn't be turning this - ;; mode on and off. You can corrupt things that way. + +(defun archive-setup-mode (&optional force) + "Wrap all the mode setup code into separate function callable from +the package code." (if (zerop (buffer-size)) ;; At present we cannot create archives from scratch (funcall (or (default-value 'major-mode) 'fundamental-mode)) @@ -717,6 +699,30 @@ (archive-summarize nil) (setq buffer-read-only t)))) +;; ------------------------------------------------------------------------- +;;; Section: the mode definition + +;;;###autoload +(define-derived-mode archive-mode special-mode "Archive mode" + "Major mode for viewing an archive file in a dired-like way. +You can move around using the usual cursor motion commands. +Letters no longer insert themselves. +Type `e' to pull a file out of the archive and into its own buffer; +or click mouse-2 on the file's line in the archive mode buffer. + +If you edit a sub-file of this archive (as with the `e' command) and +save it, the contents of that buffer will be saved back into the +archive. + +\\{archive-mode-map}" + ;; This is not interactive because you shouldn't be turning this + ;; mode on and off. You can corrupt things that way. + ;; + ;; Now it's derived mode, so therefore it is interactive. + ;; + (archive-setup-mode)) + + ;; Archive mode is suitable only for specially formatted data. (put 'archive-mode 'mode-class 'special) @@ -888,7 +894,7 @@ (setq archive-files nil) (erase-buffer) (insert-file-contents name) - (archive-mode t) + (archive-setup-mode t) (goto-char archive-file-list-start) (archive-next-line lno)) (archive-delete-local name) @@ -1396,7 +1402,7 @@ (let ((revert-buffer-function nil) (coding-system-for-read 'no-conversion)) (revert-buffer t t)) - (archive-mode) + (archive-setup-mode) (goto-char archive-file-list-start) (archive-next-line no))) === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2010-07-14 19:09:28 +0000 +++ lisp/bookmark.el 2010-08-28 17:45:38 +0000 @@ -1499,7 +1499,6 @@ (defvar bookmark-bmenu-mode-map (let ((map (make-keymap))) (suppress-keymap map t) - (define-key map "q" 'quit-window) (define-key map "v" 'bookmark-bmenu-select) (define-key map "w" 'bookmark-bmenu-locate) (define-key map "2" 'bookmark-bmenu-2-window) @@ -1515,11 +1514,9 @@ (define-key map "\C-d" 'bookmark-bmenu-delete-backwards) (define-key map "x" 'bookmark-bmenu-execute-deletions) (define-key map "d" 'bookmark-bmenu-delete) - (define-key map " " 'next-line) (define-key map "n" 'next-line) (define-key map "p" 'previous-line) (define-key map "\177" 'bookmark-bmenu-backup-unmark) - (define-key map "?" 'describe-mode) (define-key map "u" 'bookmark-bmenu-unmark) (define-key map "m" 'bookmark-bmenu-mark) (define-key map "l" 'bookmark-bmenu-load) @@ -1609,7 +1606,7 @@ -(defun bookmark-bmenu-mode () +(define-derived-mode bookmark-bmenu-mode special-mode "Bookmark Menu" "Major mode for editing a list of bookmarks. Each line describes one of the bookmarks in Emacs. Letters do not insert themselves; instead, they are commands. @@ -1645,9 +1642,6 @@ (kill-all-local-variables) (use-local-map bookmark-bmenu-mode-map) (setq truncate-lines t) - (setq buffer-read-only t) - (setq major-mode 'bookmark-bmenu-mode) - (setq mode-name "Bookmark Menu") (run-mode-hooks 'bookmark-bmenu-mode-hook)) === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2010-07-14 15:57:54 +0000 +++ lisp/doc-view.el 2010-08-29 15:08:39 +0000 @@ -333,7 +333,6 @@ (define-key map (kbd "C-c C-t") 'doc-view-open-text) ;; Reconvert the current document. Don't just use revert-buffer ;; because that resets the scale factor, the page number, ... - (define-key map (kbd "g") 'doc-view-revert-buffer) (define-key map (kbd "r") 'doc-view-revert-buffer) map) "Keymap used by `doc-view-mode' when displaying a doc as a set of images.") @@ -1207,7 +1206,7 @@ l)) ;;;###autoload -(defun doc-view-mode () +(define-derived-mode doc-view-mode special-mode "Doc" "Major mode in DocView buffers. DocView Mode is an Emacs document viewer. It displays PDF, PS @@ -1216,7 +1215,6 @@ You can use \\\\[doc-view-toggle-display] to toggle between displaying the document or editing it as text. \\{doc-view-mode-map}" - (interactive) (if (= (point-min) (point-max)) ;; The doc is empty or doesn't exist at all, so fallback to @@ -1311,15 +1309,14 @@ (set (make-local-variable 'after-revert-hook) 'doc-view-reconvert-doc) (set (make-local-variable 'bookmark-make-record-function) 'doc-view-bookmark-make-record) - (setq mode-name "DocView" - buffer-read-only t - major-mode 'doc-view-mode) + (setq buffer-read-only t) (doc-view-initiate-display) ;; Switch off view-mode explicitly, because doc-view-mode is the ;; canonical view mode for PDF/PS/DVI files. This could be ;; switched on automatically depending on the value of ;; `view-read-only'. (set (make-local-variable 'view-read-only) nil) + (set (make-local-variable 'revert-buffer-function) 'doc-view-revert-buffer) (run-mode-hooks 'doc-view-mode-hook))) ;;;###autoload === modified file 'lisp/image-mode.el' --- lisp/image-mode.el 2010-08-17 21:19:11 +0000 +++ lisp/image-mode.el 2010-08-28 20:21:22 +0000 @@ -314,9 +314,7 @@ (defvar image-mode-map (let ((map (make-sparse-keymap))) (suppress-keymap map) - (define-key map "q" 'quit-window) (define-key map "\C-c\C-c" 'image-toggle-display) - (define-key map (kbd "SPC") 'image-scroll-up) (define-key map (kbd "DEL") 'image-scroll-down) (define-key map [remap forward-char] 'image-forward-hscroll) (define-key map [remap backward-char] 'image-backward-hscroll) @@ -346,18 +344,16 @@ (put 'image-mode 'mode-class 'special) ;;;###autoload -(defun image-mode () +(define-derived-mode image-mode special-mode "Image" "Major mode for image files. You can use \\\\[image-toggle-display] to toggle between display as an image and display as text." - (interactive) (condition-case err (progn (unless (display-images-p) (error "Display does not support images")) (kill-all-local-variables) - (setq major-mode 'image-mode) (if (not (image-get-display-property)) (progn === modified file 'lisp/replace.el' --- lisp/replace.el 2010-08-08 21:12:29 +0000 +++ lisp/replace.el 2010-08-28 20:21:22 +0000 @@ -766,8 +766,6 @@ (define-key map "\M-p" 'occur-prev) (define-key map "r" 'occur-rename-buffer) (define-key map "c" 'clone-buffer) - (define-key map "g" 'revert-buffer) - (define-key map "q" 'quit-window) (define-key map "z" 'kill-this-buffer) (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) (define-key map [menu-bar] (make-sparse-keymap)) @@ -834,18 +832,15 @@ :group 'matching) (put 'occur-mode 'mode-class 'special) -(defun occur-mode () +(define-derived-mode occur-mode special-mode "Occur" "Major mode for output from \\[occur]. \\Move point to one of the items in this buffer, then use \\[occur-mode-goto-occurrence] to go to the occurrence that the item refers to. Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it. \\{occur-mode-map}" - (interactive) (kill-all-local-variables) (use-local-map occur-mode-map) - (setq major-mode 'occur-mode) - (setq mode-name "Occur") (set (make-local-variable 'revert-buffer-function) 'occur-revert-function) (make-local-variable 'occur-revert-arguments) (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) === modified file 'lisp/tar-mode.el' --- lisp/tar-mode.el 2010-05-03 02:29:46 +0000 +++ lisp/tar-mode.el 2010-08-28 17:55:47 +0000 @@ -524,7 +524,6 @@ (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) @@ -532,14 +531,12 @@ (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) @@ -615,7 +612,7 @@ (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. # Begin bundle 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