Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/ Now on revision 103224. ------------------------------------------------------------ revno: 103224 committer: Deniz Dogan branch nick: emacs-trunk timestamp: Fri 2011-02-11 07:19:34 +0100 message: * lisp/net/rcirc.el (defun-rcirc-join): Accept multiple channels. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-11 03:54:12 +0000 +++ lisp/ChangeLog 2011-02-11 06:19:34 +0000 @@ -1,3 +1,7 @@ +2011-02-11 Deniz Dogan + + * net/rcirc.el (defun-rcirc-join): Accept multiple channels. + 2011-02-11 Glenn Morris * emacs-lisp/cl-specs.el (multiple-value-bind): Fix debug spec. === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2011-02-11 00:49:28 +0000 +++ lisp/net/rcirc.el 2011-02-11 06:19:34 +0000 @@ -2098,14 +2098,18 @@ (when (not existing-buffer) (rcirc-cmd-whois nick)))) -(defun-rcirc-command join (channel) - "Join CHANNEL." - (interactive "sJoin channel: ") - (let ((buffer (rcirc-get-buffer-create process - (car (split-string channel))))) - (rcirc-send-string process (concat "JOIN " channel)) +(defun-rcirc-command join (channels) + "Join CHANNELS. +CHANNELS is a comma- or space-separated string of channel names." + (interactive "sJoin channels: ") + (let* ((split-channels (split-string channels "[ ,]" t)) + (buffers (mapcar (lambda (ch) + (rcirc-get-buffer-create process ch)) + split-channels))) + (rcirc-send-string process (concat "JOIN " channels)) (when (not (eq (selected-window) (minibuffer-window))) - (switch-to-buffer buffer)))) + (dolist (b buffers) ;; order the new channel buffers in the buffer list + (switch-to-buffer b))))) ;; TODO: /part #channel reason, or consider removing #channel altogether (defun-rcirc-command part (channel) ------------------------------------------------------------ revno: 103223 committer: Glenn Morris branch nick: trunk timestamp: Thu 2011-02-10 19:54:12 -0800 message: * lisp/emacs-lisp/cl-specs.el (multiple-value-bind): Fix debug spec. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-11 00:49:28 +0000 +++ lisp/ChangeLog 2011-02-11 03:54:12 +0000 @@ -1,3 +1,7 @@ +2011-02-11 Glenn Morris + + * emacs-lisp/cl-specs.el (multiple-value-bind): Fix debug spec. + 2011-02-11 Juanma Barranquero * net/rcirc.el (rcirc-send-ctcp): Remove spurious arg to `format'. === modified file 'lisp/emacs-lisp/cl-specs.el' --- lisp/emacs-lisp/cl-specs.el 2011-01-25 04:08:28 +0000 +++ lisp/emacs-lisp/cl-specs.el 2011-02-11 03:54:12 +0000 @@ -67,7 +67,7 @@ (def-edebug-spec multiple-value-list (form)) (def-edebug-spec multiple-value-call (function-form body)) (def-edebug-spec multiple-value-bind - ((&rest symbolp) form cl-declarations body)) + ((&rest symbolp) form body)) (def-edebug-spec multiple-value-setq ((&rest symbolp) form)) (def-edebug-spec multiple-value-prog1 (form body)) ------------------------------------------------------------ revno: 103222 committer: Glenn Morris branch nick: trunk timestamp: Thu 2011-02-10 19:43:40 -0800 message: * lib/getopt_.h: Fix typo in _GL_ARG_NONNULL license comment. diff: === modified file 'lib/getopt_.h' --- lib/getopt_.h 2011-02-07 19:15:02 +0000 +++ lib/getopt_.h 2011-02-11 03:43:40 +0000 @@ -138,7 +138,7 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ ------------------------------------------------------------ revno: 103221 committer: Glenn Morris branch nick: trunk timestamp: Thu 2011-02-10 19:41:17 -0800 message: lwlib/Makefile.in misc cleanup. * lwlib/Makefile.in (USE_X_TOOLKIT, RM, TOOLKIT_DEFINES): Remove. (ALL_CFLAGS): Remove -I. (config_h, lisp_h, src_h): New variables. (globals_h): Rename from $globals. ($(globals_h)): Check cd exit status. (lwlib.o): Remove special rule. (lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o, xlwmenu.o): Add lisp.h and config.h to prereqs. (lwlib-utils.o): Add lwlib.h to prereqs. (lwlib.o): Add lwlib-utils.h and lwlib-Xm.h to prereqs. (lwlib-Xlw.o): Add xlwmenu.h to prereqs. (xlwmenu.o): Add ../src/xterm.h to prereqs. (mostlyclean): Forget about "core" files. diff: === modified file 'lwlib/ChangeLog' --- lwlib/ChangeLog 2011-02-10 05:03:29 +0000 +++ lwlib/ChangeLog 2011-02-11 03:41:17 +0000 @@ -1,3 +1,19 @@ +2011-02-11 Glenn Morris + + * Makefile.in (USE_X_TOOLKIT, RM, TOOLKIT_DEFINES): Remove. + (ALL_CFLAGS): Remove -I. + (config_h, lisp_h, src_h): New variables. + (globals_h): Rename from $globals. + ($(globals_h)): Check cd exit status. + (lwlib.o): Remove special rule. + (lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o) + (xlwmenu.o): Add lisp.h and config.h to prereqs. + (lwlib-utils.o): Add lwlib.h to prereqs. + (lwlib.o): Add lwlib-utils.h and lwlib-Xm.h to prereqs. + (lwlib-Xlw.o): Add xlwmenu.h to prereqs. + (xlwmenu.o): Add ../src/xterm.h to prereqs. + (mostlyclean): Forget about "core" files. + 2011-02-10 Glenn Morris * lwlib-Xaw.c, lwlib-Xlw.c, lwlib-Xm.c, lwlib-utils.c, lwlib.c: === modified file 'lwlib/Makefile.in' --- lwlib/Makefile.in 2011-02-11 03:30:09 +0000 +++ lwlib/Makefile.in 2011-02-11 03:41:17 +0000 @@ -36,25 +36,26 @@ CFLAGS=@CFLAGS@ CPPFLAGS=@CPPFLAGS@ RANLIB=@RANLIB@ -# See below--@X_TOOLKIT_TYPE@ is used below. -USE_X_TOOLKIT=@X_TOOLKIT_TYPE@ AR = ar cq -RM = rm -f LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o MOTIF_OBJS = lwlib-Xm.o -TOOLKIT_DEFINES = +## LUCID_OBJS or MOTIF_OBJS. TOOLKIT_OBJS = $(@X_TOOLKIT_TYPE@_OBJS) OBJS = lwlib.o $(TOOLKIT_OBJS) lwlib-utils.o -# ../src is needed to find config.h. +## ../src is where the generated file (config.h, globals.h) are. +## $(srcdir)/../src is where the non-generated files (lisp.h) are. +## (In an out-of-tree build, these two are not the same.) +## $(srcdir) is where the lwlib sources are. +## There are no generated lwlib files, hence no need for -I. ALL_CFLAGS= $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \ $(C_SWITCH_X_SYSTEM) $(C_SWITCH_MACHINE) \ $(C_WARNINGS_SWITCH) $(PROFILING_CFLAGS) $(CFLAGS) \ - -DHAVE_CONFIG_H -Demacs -I. -I../src -I$(srcdir) -I$(srcdir)/../src + -DHAVE_CONFIG_H -Demacs -I../src -I$(srcdir) -I$(srcdir)/../src .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< @@ -62,35 +63,37 @@ all:: liblw.a liblw.a: $(OBJS) - $(RM) $@ + rm -f $@ $(AR) $@ $(OBJS) $(RANLIB) $@ +## Generated files in ../src, non-generated in $(srcdir)/../src. +config_h = ../src/config.h +lisp_h = $(srcdir)/../src/lisp.h ## lisp.h includes this. -globals = ../src/globals.h - -$(globals): - cd ../src; $(MAKE) $(MFLAGS) globals.h - -# Depend on Makefile so that we recompile if TOOLKIT_DEFINES changes. -lwlib.o: $(srcdir)/lwlib.c Makefile - $(CC) -c $(CPPFLAGS) $(TOOLKIT_DEFINES) $(ALL_CFLAGS) $(srcdir)/lwlib.c - -lwlib-utils.o: $(globals) lwlib-utils.c lwlib-utils.h -lwlib.o: $(globals) lwlib.c lwlib.h lwlib-int.h lwlib-Xaw.h lwlib-Xlw.h -lwlib-Xlw.o: $(globals) lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h -lwlib-Xaw.o: $(globals) lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h -lwlib-Xm.o: $(globals) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h -xlwmenu.o: $(globals) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h +globals_h = ../src/globals.h +src_h = $(config_h) $(lisp_h) $(globals_h) + +$(globals_h): + cd ../src && $(MAKE) $(MFLAGS) globals.h + +lwlib-utils.o: $(src_h) lwlib-utils.c lwlib-utils.h lwlib.h +lwlib.o: $(src_h) lwlib.c lwlib.h lwlib-int.h lwlib-utils.h \ + lwlib-Xlw.h lwlib-Xm.h lwlib-Xaw.h +lwlib-Xlw.o: $(src_h) lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h xlwmenu.h +lwlib-Xaw.o: $(src_h) lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h +lwlib-Xm.o: $(src_h) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h +xlwmenu.o: $(src_h) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h \ + $(srcdir)/../src/xterm.h mostlyclean: - $(RM) *.o core liblw.a \#* + rm -f *.o liblw.a \#* clean: mostlyclean distclean: clean - $(RM) Makefile + rm -f Makefile maintainer-clean: distclean - $(RM) TAGS + rm -f TAGS TAGS: ../lib-src/etags $(srcdir)/*.[ch] ------------------------------------------------------------ revno: 103220 committer: Glenn Morris branch nick: trunk timestamp: Thu 2011-02-10 19:30:09 -0800 message: * lwlib/Makefile.in: Standardize on $(), not ${}. diff: === modified file 'lwlib/Makefile.in' --- lwlib/Makefile.in 2011-02-09 03:25:07 +0000 +++ lwlib/Makefile.in 2011-02-11 03:30:09 +0000 @@ -53,11 +53,11 @@ # ../src is needed to find config.h. ALL_CFLAGS= $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \ $(C_SWITCH_X_SYSTEM) $(C_SWITCH_MACHINE) \ - ${C_WARNINGS_SWITCH} ${PROFILING_CFLAGS} $(CFLAGS) \ - -DHAVE_CONFIG_H -Demacs -I. -I../src -I${srcdir} -I${srcdir}/../src + $(C_WARNINGS_SWITCH) $(PROFILING_CFLAGS) $(CFLAGS) \ + -DHAVE_CONFIG_H -Demacs -I. -I../src -I$(srcdir) -I$(srcdir)/../src .c.o: - $(CC) -c $(CPPFLAGS) ${ALL_CFLAGS} $< + $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< all:: liblw.a ------------------------------------------------------------ revno: 103219 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2011-02-11 01:49:28 +0100 message: * net/rcirc.el (rcirc-send-ctcp): Remove spurious arg to `format'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 19:41:44 +0000 +++ lisp/ChangeLog 2011-02-11 00:49:28 +0000 @@ -1,3 +1,7 @@ +2011-02-11 Juanma Barranquero + + * net/rcirc.el (rcirc-send-ctcp): Remove spurious arg to `format'. + 2011-02-10 Stefan Monnier * server.el (server-process-filter): Use pcase. === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2011-02-10 16:56:00 +0000 +++ lisp/net/rcirc.el 2011-02-11 00:49:28 +0000 @@ -720,7 +720,7 @@ (defun rcirc-send-ctcp (process target request &optional args) (let ((args (if args (concat " " args) ""))) (rcirc-send-privmsg process target - (format "\C-a%s%s\C-a" request args "")))) + (format "\C-a%s%s\C-a" request args)))) (defun rcirc-buffer-process (&optional buffer) "Return the process associated with channel BUFFER. ------------------------------------------------------------ revno: 103218 author: Antoine Levitt committer: Katsumi Yamaoka branch nick: trunk timestamp: Thu 2011-02-10 22:43:21 +0000 message: gnus-sum.el (gnus-summary-save-parts): Use read-directory-name. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2011-02-10 19:35:35 +0000 +++ lisp/gnus/ChangeLog 2011-02-10 22:43:21 +0000 @@ -3,6 +3,10 @@ * message.el (message-bury): Don't pop up a new window when selected window is dedicated. +2011-02-10 Antoine Levitt (tiny change) + + * gnus-sum.el (gnus-summary-save-parts): Use read-directory-name. + 2011-02-09 Lars Ingebrigtsen * nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2011-02-05 00:11:16 +0000 +++ lisp/gnus/gnus-sum.el 2011-02-10 22:43:21 +0000 @@ -12087,9 +12087,9 @@ gnus-summary-save-parts-default-mime) 'gnus-summary-save-parts-type-history) (setq gnus-summary-save-parts-last-directory - (read-file-name "Save to directory: " - gnus-summary-save-parts-last-directory - nil t)) + (read-directory-name "Save to directory: " + gnus-summary-save-parts-last-directory + nil t)) current-prefix-arg)) (gnus-summary-iterate n (let ((gnus-display-mime-function nil) ------------------------------------------------------------ revno: 103217 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 14:41:44 -0500 message: * lisp/server.el (server-process-filter): Use pcase. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 19:40:17 +0000 +++ lisp/ChangeLog 2011-02-10 19:41:44 +0000 @@ -1,5 +1,7 @@ 2011-02-10 Stefan Monnier + * server.el (server-process-filter): Use pcase. + * emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two conflicting ways. (smie-indent--parent): Extend to "parent of arg". === modified file 'lisp/server.el' --- lisp/server.el 2011-01-26 08:36:39 +0000 +++ lisp/server.el 2011-02-10 19:41:44 +0000 @@ -937,126 +937,122 @@ tty-type ; string. files filepos - command-line-args-left - arg) + args-left) ;; Remove this line from STRING. (setq string (substring string (match-end 0))) - (setq command-line-args-left + (setq args-left (mapcar 'server-unquote-arg (split-string request " " t))) - (while (setq arg (pop command-line-args-left)) - (cond - ;; -version CLIENT-VERSION: obsolete at birth. - ((and (equal "-version" arg) command-line-args-left) - (pop command-line-args-left)) - - ;; -nowait: Emacsclient won't wait for a result. - ((equal "-nowait" arg) (setq nowait t)) - - ;; -current-frame: Don't create frames. - ((equal "-current-frame" arg) (setq use-current-frame t)) - - ;; -display DISPLAY: - ;; Open X frames on the given display instead of the default. - ((and (equal "-display" arg) command-line-args-left) - (setq display (pop command-line-args-left)) - (if (zerop (length display)) (setq display nil))) - - ;; -parent-id ID: - ;; Open X frame within window ID, via XEmbed. - ((and (equal "-parent-id" arg) command-line-args-left) - (setq parent-id (pop command-line-args-left)) - (if (zerop (length parent-id)) (setq parent-id nil))) - - ;; -window-system: Open a new X frame. - ((equal "-window-system" arg) - (setq dontkill t) - (setq tty-name 'window-system)) - - ;; -resume: Resume a suspended tty frame. - ((equal "-resume" arg) - (lexical-let ((terminal (process-get proc 'terminal))) - (setq dontkill t) - (push (lambda () - (when (eq (terminal-live-p terminal) t) - (resume-tty terminal))) - commands))) - - ;; -suspend: Suspend the client's frame. (In case we - ;; get out of sync, and a C-z sends a SIGTSTP to - ;; emacsclient.) - ((equal "-suspend" arg) - (lexical-let ((terminal (process-get proc 'terminal))) - (setq dontkill t) - (push (lambda () - (when (eq (terminal-live-p terminal) t) - (suspend-tty terminal))) - commands))) - - ;; -ignore COMMENT: Noop; useful for debugging emacsclient. - ;; (The given comment appears in the server log.) - ((and (equal "-ignore" arg) command-line-args-left - (setq dontkill t) - (pop command-line-args-left))) - - ;; -tty DEVICE-NAME TYPE: Open a new tty frame at the client. - ((and (equal "-tty" arg) - (cdr command-line-args-left)) - (setq tty-name (pop command-line-args-left) - tty-type (pop command-line-args-left) - dontkill (or dontkill - (not use-current-frame)))) - - ;; -position LINE[:COLUMN]: Set point to the given - ;; position in the next file. - ((and (equal "-position" arg) - command-line-args-left - (string-match "\\+\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?" - (car command-line-args-left))) - (setq arg (pop command-line-args-left)) - (setq filepos - (cons (string-to-number (match-string 1 arg)) - (string-to-number (or (match-string 2 arg) ""))))) - - ;; -file FILENAME: Load the given file. - ((and (equal "-file" arg) - command-line-args-left) - (let ((file (pop command-line-args-left))) - (if coding-system - (setq file (decode-coding-string file coding-system))) - (setq file (expand-file-name file dir)) - (push (cons file filepos) files) - (server-log (format "New file: %s %s" - file (or filepos "")) proc)) - (setq filepos nil)) - - ;; -eval EXPR: Evaluate a Lisp expression. - ((and (equal "-eval" arg) - command-line-args-left) - (if use-current-frame - (setq use-current-frame 'always)) - (lexical-let ((expr (pop command-line-args-left))) - (if coding-system - (setq expr (decode-coding-string expr coding-system))) - (push (lambda () (server-eval-and-print expr proc)) - commands) - (setq filepos nil))) - - ;; -env NAME=VALUE: An environment variable. - ((and (equal "-env" arg) command-line-args-left) - (let ((var (pop command-line-args-left))) - ;; XXX Variables should be encoded as in getenv/setenv. - (process-put proc 'env - (cons var (process-get proc 'env))))) - - ;; -dir DIRNAME: The cwd of the emacsclient process. - ((and (equal "-dir" arg) command-line-args-left) - (setq dir (pop command-line-args-left)) - (if coding-system - (setq dir (decode-coding-string dir coding-system))) - (setq dir (command-line-normalize-file-name dir))) - - ;; Unknown command. - (t (error "Unknown command: %s" arg)))) + (while args-left + (pcase (pop args-left) + ;; -version CLIENT-VERSION: obsolete at birth. + (`"-version" (pop args-left)) + + ;; -nowait: Emacsclient won't wait for a result. + (`"-nowait" (setq nowait t)) + + ;; -current-frame: Don't create frames. + (`"-current-frame" (setq use-current-frame t)) + + ;; -display DISPLAY: + ;; Open X frames on the given display instead of the default. + (`"-display" + (setq display (pop args-left)) + (if (zerop (length display)) (setq display nil))) + + ;; -parent-id ID: + ;; Open X frame within window ID, via XEmbed. + (`"-parent-id" + (setq parent-id (pop args-left)) + (if (zerop (length parent-id)) (setq parent-id nil))) + + ;; -window-system: Open a new X frame. + (`"-window-system" + (setq dontkill t) + (setq tty-name 'window-system)) + + ;; -resume: Resume a suspended tty frame. + (`"-resume" + (lexical-let ((terminal (process-get proc 'terminal))) + (setq dontkill t) + (push (lambda () + (when (eq (terminal-live-p terminal) t) + (resume-tty terminal))) + commands))) + + ;; -suspend: Suspend the client's frame. (In case we + ;; get out of sync, and a C-z sends a SIGTSTP to + ;; emacsclient.) + (`"-suspend" + (lexical-let ((terminal (process-get proc 'terminal))) + (setq dontkill t) + (push (lambda () + (when (eq (terminal-live-p terminal) t) + (suspend-tty terminal))) + commands))) + + ;; -ignore COMMENT: Noop; useful for debugging emacsclient. + ;; (The given comment appears in the server log.) + (`"-ignore" + (setq dontkill t) + (pop args-left)) + + ;; -tty DEVICE-NAME TYPE: Open a new tty frame at the client. + (`"-tty" + (setq tty-name (pop args-left) + tty-type (pop args-left) + dontkill (or dontkill + (not use-current-frame)))) + + ;; -position LINE[:COLUMN]: Set point to the given + ;; position in the next file. + (`"-position" + (if (not (string-match "\\+\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?" + (car args-left))) + (error "Invalid -position command in client args")) + (let ((arg (pop args-left))) + (setq filepos + (cons (string-to-number (match-string 1 arg)) + (string-to-number (or (match-string 2 arg) + "")))))) + + ;; -file FILENAME: Load the given file. + (`"-file" + (let ((file (pop args-left))) + (if coding-system + (setq file (decode-coding-string file coding-system))) + (setq file (expand-file-name file dir)) + (push (cons file filepos) files) + (server-log (format "New file: %s %s" + file (or filepos "")) proc)) + (setq filepos nil)) + + ;; -eval EXPR: Evaluate a Lisp expression. + (`"-eval" + (if use-current-frame + (setq use-current-frame 'always)) + (lexical-let ((expr (pop args-left))) + (if coding-system + (setq expr (decode-coding-string expr coding-system))) + (push (lambda () (server-eval-and-print expr proc)) + commands) + (setq filepos nil))) + + ;; -env NAME=VALUE: An environment variable. + (`"-env" + (let ((var (pop args-left))) + ;; XXX Variables should be encoded as in getenv/setenv. + (process-put proc 'env + (cons var (process-get proc 'env))))) + + ;; -dir DIRNAME: The cwd of the emacsclient process. + (`"-dir" + (setq dir (pop args-left)) + (if coding-system + (setq dir (decode-coding-string dir coding-system))) + (setq dir (command-line-normalize-file-name dir))) + + ;; Unknown command. + (arg (error "Unknown command: %s" arg)))) (setq frame (cond ------------------------------------------------------------ revno: 103216 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 14:40:17 -0500 message: * lisp/emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two conflicting ways. (smie-indent--parent): Extend to "parent of arg". (smie-indent-inside-string): New function. (smie-indent-functions): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 19:37:42 +0000 +++ lisp/ChangeLog 2011-02-10 19:40:17 +0000 @@ -1,5 +1,11 @@ 2011-02-10 Stefan Monnier + * emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two + conflicting ways. + (smie-indent--parent): Extend to "parent of arg". + (smie-indent-inside-string): New function. + (smie-indent-functions): Use it. + * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid bzr locking race condition. === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2011-01-25 04:08:28 +0000 +++ lisp/emacs-lisp/smie.el 2011-02-10 19:40:17 +0000 @@ -915,7 +915,7 @@ ;; anything else than this trigger char, lest we'd blink ;; both when inserting the trigger char and when ;; inserting a subsequent trigger char like SPC. - (or (eq (point) pos) + (or (eq (char-before) last-command-event) (not (memq (char-before) smie-blink-matching-triggers))) (or smie-blink-matching-inners @@ -998,7 +998,10 @@ (unless (numberp (cadr (assoc tok smie-grammar))) (goto-char pos)) (setq smie--parent - (smie-backward-sexp 'halfsexp)))))) + (or (smie-backward-sexp 'halfsexp) + (let (res) + (while (null (setq res (smie-backward-sexp)))) + (list nil (point) (nth 2 res))))))))) (defun smie-rule-parent-p (&rest parents) "Return non-nil if the current token's parent is among PARENTS. @@ -1403,6 +1406,10 @@ (and (nth 4 (syntax-ppss)) 'noindent)) +(defun smie-indent-inside-string () + (and (nth 3 (syntax-ppss)) + 'noindent)) + (defun smie-indent-after-keyword () ;; Indentation right after a special keyword. (save-excursion @@ -1476,8 +1483,9 @@ (defvar smie-indent-functions '(smie-indent-fixindent smie-indent-bob smie-indent-close - smie-indent-comment smie-indent-comment-continue smie-indent-comment-close - smie-indent-comment-inside smie-indent-keyword smie-indent-after-keyword + smie-indent-comment smie-indent-comment-continue smie-indent-comment-close + smie-indent-comment-inside smie-indent-inside-string + smie-indent-keyword smie-indent-after-keyword smie-indent-exps) "Functions to compute the indentation. Each function is called with no argument, shouldn't move point, and should ------------------------------------------------------------ revno: 103215 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 14:37:42 -0500 message: * lisp/vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid bzr locking race condition. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 19:21:07 +0000 +++ lisp/ChangeLog 2011-02-10 19:37:42 +0000 @@ -1,5 +1,8 @@ 2011-02-10 Stefan Monnier + * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid + bzr locking race condition. + * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is still valid before using it. === modified file 'lisp/vc/vc-dir.el' --- lisp/vc/vc-dir.el 2011-01-26 08:36:39 +0000 +++ lisp/vc/vc-dir.el 2011-02-10 19:37:42 +0000 @@ -1061,6 +1061,9 @@ (unless (vc-dir-fileinfo->directory info) (setf (vc-dir-fileinfo->needs-update info) t) nil)) vc-ewoc) + ;; Bzr has serious locking problems, so setup the headers first (this is + ;; synchronous) rather than doing it while dir-status is running. + (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "") (lexical-let ((buffer (current-buffer))) (with-current-buffer vc-dir-process-buffer (cd def-dir) @@ -1081,8 +1084,7 @@ (vc-dir-refresh-files (mapcar 'vc-dir-fileinfo->name remaining) 'up-to-date) - (setq mode-line-process nil))))))))) - (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "")))) + (setq mode-line-process nil)))))))))))) (defun vc-dir-show-fileentry (file) "Insert an entry for a specific file into the current *VC-dir* listing. ------------------------------------------------------------ revno: 103214 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 14:35:35 -0500 message: * lisp/gnus/message.el (message-bury): Don't pop up a new window when selected window is dedicated. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2011-02-09 22:16:29 +0000 +++ lisp/gnus/ChangeLog 2011-02-10 19:35:35 +0000 @@ -1,3 +1,8 @@ +2011-02-10 Stefan Monnier + + * message.el (message-bury): Don't pop up a new window when selected + window is dedicated. + 2011-02-09 Lars Ingebrigtsen * nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async @@ -22,7 +27,7 @@ (nnimap-update-info): Clean up slightly. (nnimap-quirk): Add quirk for Gmail IMAP which bugs out on NUL characters. - (nnimap-process-quirk): Renamed function to avoid collision. + (nnimap-process-quirk): Rename function to avoid collision. (nnimap-update-info): Fix macrology bug-out. (nnimap-update-info): Simplify split history test. @@ -43,7 +48,7 @@ * message.el (message-setup-1): Remove the read-only stuff, since it doesn't work under XEmacs, for some reason. - * gnus-sum.el (gnus-user-date): Renamed back from + * gnus-sum.el (gnus-user-date): Rename back from gnus-summary-user-date since user code refers to it. * shr.el (shr-render-td): Store the actual background colour used. @@ -228,8 +233,8 @@ 2011-01-28 Daiki Ueno - * mml2015.el (mml2015-epg-sign, mml2015-epg-encrypt): Give - mml2015-signers higher precedence over mml2015-sign-with-sender. + * mml2015.el (mml2015-epg-sign, mml2015-epg-encrypt): + Give mml2015-signers higher precedence over mml2015-sign-with-sender. 2011-01-27 Lars Ingebrigtsen === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2011-02-09 22:16:29 +0000 +++ lisp/gnus/message.el 2011-02-10 19:35:35 +0000 @@ -4011,11 +4011,11 @@ (defun message-bury (buffer) "Bury this mail BUFFER." - (let ((newbuf (other-buffer buffer))) - (bury-buffer buffer) - (if message-return-action - (apply (car message-return-action) (cdr message-return-action)) - (switch-to-buffer newbuf)))) + (if message-return-action + (progn + (bury-buffer buffer) + (apply (car message-return-action) (cdr message-return-action))) + (with-current-buffer buffer (bury-buffer)))) (defun message-send (&optional arg) "Send the message in the current buffer. ------------------------------------------------------------ revno: 103213 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 14:21:07 -0500 message: * lisp/emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is still valid before using it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 19:13:31 +0000 +++ lisp/ChangeLog 2011-02-10 19:21:07 +0000 @@ -1,5 +1,8 @@ 2011-02-10 Stefan Monnier + * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is + still valid before using it. + * progmodes/grep.el (grep-mode-font-lock-keywords): Adjust to `message' -> `compilation-message' rename (bug#8004). === modified file 'lisp/emacs-lisp/edebug.el' --- lisp/emacs-lisp/edebug.el 2011-01-25 04:08:28 +0000 +++ lisp/emacs-lisp/edebug.el 2011-02-10 19:21:07 +0000 @@ -3394,7 +3394,7 @@ ;; Return the function symbol, or nil if not instrumented. (let ((func-marker (get func 'edebug))) (cond - ((markerp func-marker) + ((and (markerp func-marker) (marker-buffer func-marker)) ;; It is uninstrumented, so instrument it. (with-current-buffer (marker-buffer func-marker) (goto-char func-marker) ------------------------------------------------------------ revno: 103212 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 14:13:31 -0500 message: * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Adjust to `message' -> `compilation-message' rename. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 16:56:00 +0000 +++ lisp/ChangeLog 2011-02-10 19:13:31 +0000 @@ -1,5 +1,8 @@ 2011-02-10 Stefan Monnier + * progmodes/grep.el (grep-mode-font-lock-keywords): Adjust to + `message' -> `compilation-message' rename (bug#8004). + Move keymap initialization into declaration. * textmodes/enriched.el (enriched-mode-map): * textmodes/bib-mode.el (bib-mode-map): === modified file 'lisp/progmodes/grep.el' --- lisp/progmodes/grep.el 2011-01-28 21:11:19 +0000 +++ lisp/progmodes/grep.el 2011-02-10 19:13:31 +0000 @@ -388,13 +388,13 @@ 1 grep-error-face) ;; remove match from grep-regexp-alist before fontifying ("^Grep[/a-zA-z]* started.*" - (0 '(face nil message nil help-echo nil mouse-face nil) t)) + (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t)) ("^Grep[/a-zA-z]* finished \\(?:(\\(matches found\\))\\|with \\(no matches found\\)\\).*" - (0 '(face nil message nil help-echo nil mouse-face nil) t) + (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t) (1 compilation-info-face nil t) (2 compilation-warning-face nil t)) ("^Grep[/a-zA-z]* \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*" - (0 '(face nil message nil help-echo nil mouse-face nil) t) + (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t) (1 grep-error-face) (2 grep-error-face nil t)) ("^.+?-[0-9]+-.*\n" (0 grep-context-face)) ------------------------------------------------------------ revno: 103211 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-02-10 11:56:00 -0500 message: Move keymap initialization into declaration. * lisp/textmodes/enriched.el (enriched-mode-map): * lisp/textmodes/bib-mode.el (bib-mode-map): * lisp/term/lk201.el (lk201-function-map): * lisp/tar-mode.el (tar-mode-map): * lisp/replace.el (occur-mode-map): * lisp/progmodes/idlwave.el (idlwave-rinfo-mouse-map, idlwave-rinfo-map): * lisp/progmodes/idlw-help.el (idlwave-help-mode-map): * lisp/progmodes/gdb-mi.el (gdb-memory-format-menu, gdb-memory-unit-menu): * lisp/play/solitaire.el (solitaire-mode-map): * lisp/play/snake.el (snake-mode-map, snake-null-map): * lisp/play/pong.el (pong-mode-map): * lisp/play/handwrite.el (menu-bar-handwrite-map): * lisp/play/gametree.el (gametree-mode-map): * lisp/net/rcirc.el (rcirc-mode-map, rcirc-browse-url-map (rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map): * lisp/net/newst-plainview.el (newsticker-menu, newsticker-mode-map) (newsticker--url-keymap): * lisp/net/net-utils.el (nslookup-mode-map, ftp-mode-map): * lisp/menu-bar.el (menu-bar-file-menu, menu-bar-i-search-menu) (menu-bar-search-menu, menu-bar-replace-menu, menu-bar-goto-menu) (menu-bar-edit-menu, menu-bar-custom-menu) (menu-bar-showhide-fringe-ind-menu, menu-bar-showhide-fringe-menu) (menu-bar-showhide-scroll-bar-menu, menu-bar-showhide-menu) (menu-bar-line-wrapping-menu, menu-bar-options-menu) (menu-bar-games-menu, menu-bar-encryption-decryption-menu) (menu-bar-tools-menu, menu-bar-describe-menu) (menu-bar-search-documentation-menu, menu-bar-manuals-menu) (menu-bar-help-menu): * lisp/mail/rmailsum.el (rmail-summary-mode-map): * lisp/kmacro.el (kmacro-step-edit-map): * lisp/ibuffer.el (ibuffer-mode-groups-popup, ibuffer-mode-map) (ibuffer-mode-operate-map): * lisp/hi-lock.el (hi-lock-menu, hi-lock-map): * lisp/emulation/vip.el (vip-mode-map): * lisp/emacs-lisp/re-builder.el (reb-lisp-mode-map): * lisp/bookmark.el (bookmark-bmenu-mode-map): * lisp/help-mode.el (help-mode-map): * lisp/erc/erc-list.el (erc-list-menu-mode-map): * lisp/org/org-remember.el (org-remember-mode-map): * lisp/org/org-src.el (org-src-mode-map): Move initialization into declaration. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 15:41:40 +0000 +++ lisp/ChangeLog 2011-02-10 16:56:00 +0000 @@ -1,3 +1,44 @@ +2011-02-10 Stefan Monnier + + Move keymap initialization into declaration. + * textmodes/enriched.el (enriched-mode-map): + * textmodes/bib-mode.el (bib-mode-map): + * term/lk201.el (lk201-function-map): + * tar-mode.el (tar-mode-map): + * replace.el (occur-mode-map): + * progmodes/idlwave.el (idlwave-rinfo-mouse-map, idlwave-rinfo-map): + * progmodes/idlw-help.el (idlwave-help-mode-map): + * progmodes/gdb-mi.el (gdb-memory-format-menu, gdb-memory-unit-menu): + * play/solitaire.el (solitaire-mode-map): + * play/snake.el (snake-mode-map, snake-null-map): + * play/pong.el (pong-mode-map): + * play/handwrite.el (menu-bar-handwrite-map): + * play/gametree.el (gametree-mode-map): + * net/rcirc.el (rcirc-mode-map, rcirc-browse-url-map + (rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map): + * net/newst-plainview.el (newsticker-menu, newsticker-mode-map) + (newsticker--url-keymap): + * net/net-utils.el (nslookup-mode-map, ftp-mode-map): + * menu-bar.el (menu-bar-file-menu, menu-bar-i-search-menu) + (menu-bar-search-menu, menu-bar-replace-menu, menu-bar-goto-menu) + (menu-bar-edit-menu, menu-bar-custom-menu) + (menu-bar-showhide-fringe-ind-menu, menu-bar-showhide-fringe-menu) + (menu-bar-showhide-scroll-bar-menu, menu-bar-showhide-menu) + (menu-bar-line-wrapping-menu, menu-bar-options-menu) + (menu-bar-games-menu, menu-bar-encryption-decryption-menu) + (menu-bar-tools-menu, menu-bar-describe-menu) + (menu-bar-search-documentation-menu, menu-bar-manuals-menu) + (menu-bar-help-menu): + * mail/rmailsum.el (rmail-summary-mode-map): + * kmacro.el (kmacro-step-edit-map): + * ibuffer.el (ibuffer-mode-groups-popup, ibuffer-mode-map) + (ibuffer-mode-operate-map): + * hi-lock.el (hi-lock-menu, hi-lock-map): + * emulation/vip.el (vip-mode-map): + * emacs-lisp/re-builder.el (reb-lisp-mode-map): + * bookmark.el (bookmark-bmenu-mode-map): + * help-mode.el (help-mode-map): Move initialization into declaration. + 2011-02-10 Deniz Dogan * net/rcirc.el: Add PRIVMSG and CTCP functions. @@ -70,8 +111,7 @@ 2011-02-07 Michael Albinus - * net/dbus.el (dbus-list-activatable-names): Add optional argument - BUS. + * net/dbus.el (dbus-list-activatable-names): Add optional argument BUS. 2011-02-07 Deniz Dogan @@ -79,21 +119,21 @@ 2011-02-06 Jay Belanger - * calc/calc.el (calc-logunits-field-reference) Renamed from + * calc/calc.el (calc-logunits-field-reference): Rename from `calc-default-field-reference-level'. - (calc-logunits-power-reference): Renamed from + (calc-logunits-power-reference): Rename from `calc-default-power-reference-level' - * calc/calc-units.el (math-logunits-quant): Renamed from + * calc/calc-units.el (math-logunits-quant): Rename from `math-logunits-level' - (math-logunits-plus): Renamed from math-logcombine. + (math-logunits-plus): Rename from math-logcombine. (calcFunc-luplus, calcFunc-luminus calc-luplus, calc-luminus): Remove. (calcFunc-lufieldadd, calcFunc-lupoweradd, calcFunc-lufieldsub) (calcFunc-lufieldsub,calc-logunits-add calc-logunits-sub): New functions. - (calcFunc-fieldquant): Renamed from `calcFunc-fieldlevel'. - (calcFunc-powerquant): Renamed from `calcFunc-powerlevel'. - (calc-logunits-quantity): Renamed from `calc-level'. + (calcFunc-fieldquant): Rename from `calcFunc-fieldlevel'. + (calcFunc-powerquant): Rename from `calcFunc-powerlevel'. + (calc-logunits-quantity): Rename from `calc-level'. (calcFunc-dbfieldlevel, calcFunc-dbpowerlevel, calcFunc-npfieldlevel) (calcFunc-nppowerlevel,calc-logunits-dblevel, calc-logunits-nplevel) (math-logunits-mul, calcFunc-lufieldmul, calcFunc-lupowermul) @@ -101,7 +141,7 @@ (calcFunc-lupowerdiv,calc-logunits-divide,math-logunits-level): New functions. - * calc/calc-help.el (calc-u-prefix-help): Removed "L" reference. + * calc/calc-help.el (calc-u-prefix-help): Remove "L" reference. (calc-ul-prefix-help): Remove. (calc-l-prefix-help): New function. (calc-full-help): Add reference to `calc-l-prefix-help'. === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2011-02-01 21:22:21 +0000 +++ lisp/bookmark.el 2011-02-10 16:56:00 +0000 @@ -1473,6 +1473,43 @@ (defvar bookmark-bmenu-hidden-bookmarks ()) +(defvar bookmark-bmenu-mode-map + (let ((map (make-keymap))) + (set-keymap-parent map special-mode-map) + (define-key map "v" 'bookmark-bmenu-select) + (define-key map "w" 'bookmark-bmenu-locate) + (define-key map "2" 'bookmark-bmenu-2-window) + (define-key map "1" 'bookmark-bmenu-1-window) + (define-key map "j" 'bookmark-bmenu-this-window) + (define-key map "\C-c\C-c" 'bookmark-bmenu-this-window) + (define-key map "f" 'bookmark-bmenu-this-window) + (define-key map "\C-m" 'bookmark-bmenu-this-window) + (define-key map "o" 'bookmark-bmenu-other-window) + (define-key map "\C-o" 'bookmark-bmenu-switch-other-window) + (define-key map "s" 'bookmark-bmenu-save) + (define-key map "k" 'bookmark-bmenu-delete) + (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 "u" 'bookmark-bmenu-unmark) + (define-key map "m" 'bookmark-bmenu-mark) + (define-key map "l" 'bookmark-bmenu-load) + (define-key map "r" 'bookmark-bmenu-rename) + (define-key map "R" 'bookmark-bmenu-relocate) + (define-key map "t" 'bookmark-bmenu-toggle-filenames) + (define-key map "a" 'bookmark-bmenu-show-annotation) + (define-key map "A" 'bookmark-bmenu-show-all-annotations) + (define-key map "e" 'bookmark-bmenu-edit-annotation) + ;; The original binding of M-g hides the M-g prefix map. + ;; If someone has a better idea than M-g s, I'm open to suggestions. + (define-key map [?\M-g ?s] 'bookmark-bmenu-search) + (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse) + map)) + ;; Bookmark Buffer Menu mode is suitable only for specially formatted ;; data. (put 'bookmark-bmenu-mode 'mode-class 'special) @@ -1583,39 +1620,6 @@ (setq truncate-lines t) (setq buffer-read-only t)) -(define-key bookmark-bmenu-mode-map "q" 'quit-window) -(define-key bookmark-bmenu-mode-map "v" 'bookmark-bmenu-select) -(define-key bookmark-bmenu-mode-map "w" 'bookmark-bmenu-locate) -(define-key bookmark-bmenu-mode-map "2" 'bookmark-bmenu-2-window) -(define-key bookmark-bmenu-mode-map "1" 'bookmark-bmenu-1-window) -(define-key bookmark-bmenu-mode-map "j" 'bookmark-bmenu-this-window) -(define-key bookmark-bmenu-mode-map "\C-c\C-c" 'bookmark-bmenu-this-window) -(define-key bookmark-bmenu-mode-map "f" 'bookmark-bmenu-this-window) -(define-key bookmark-bmenu-mode-map "\C-m" 'bookmark-bmenu-this-window) -(define-key bookmark-bmenu-mode-map "o" 'bookmark-bmenu-other-window) -(define-key bookmark-bmenu-mode-map "\C-o" 'bookmark-bmenu-switch-other-window) -(define-key bookmark-bmenu-mode-map "s" 'bookmark-bmenu-save) -(define-key bookmark-bmenu-mode-map "k" 'bookmark-bmenu-delete) -(define-key bookmark-bmenu-mode-map "\C-d" 'bookmark-bmenu-delete-backwards) -(define-key bookmark-bmenu-mode-map "x" 'bookmark-bmenu-execute-deletions) -(define-key bookmark-bmenu-mode-map "d" 'bookmark-bmenu-delete) -(define-key bookmark-bmenu-mode-map " " 'next-line) -(define-key bookmark-bmenu-mode-map "n" 'next-line) -(define-key bookmark-bmenu-mode-map "p" 'previous-line) -(define-key bookmark-bmenu-mode-map "\177" 'bookmark-bmenu-backup-unmark) -(define-key bookmark-bmenu-mode-map "?" 'describe-mode) -(define-key bookmark-bmenu-mode-map "u" 'bookmark-bmenu-unmark) -(define-key bookmark-bmenu-mode-map "m" 'bookmark-bmenu-mark) -(define-key bookmark-bmenu-mode-map "l" 'bookmark-bmenu-load) -(define-key bookmark-bmenu-mode-map "r" 'bookmark-bmenu-rename) -(define-key bookmark-bmenu-mode-map "R" 'bookmark-bmenu-relocate) -(define-key bookmark-bmenu-mode-map "t" 'bookmark-bmenu-toggle-filenames) -(define-key bookmark-bmenu-mode-map "a" 'bookmark-bmenu-show-annotation) -(define-key bookmark-bmenu-mode-map "A" 'bookmark-bmenu-show-all-annotations) -(define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation) -;; The original binding of M-g hides the M-g prefix map. -;; If someone has a better idea than M-g s, I'm open to suggestions. -(define-key bookmark-bmenu-mode-map [?\M-g ?s] 'bookmark-bmenu-search)(define-key bookmark-bmenu-mode-map [mouse-2] 'bookmark-bmenu-other-window-with-mouse) (defun bookmark-bmenu-toggle-filenames (&optional show) "Toggle whether filenames are shown in the bookmark list. === modified file 'lisp/emacs-lisp/re-builder.el' --- lisp/emacs-lisp/re-builder.el 2011-01-25 04:08:28 +0000 +++ lisp/emacs-lisp/re-builder.el 2011-02-10 16:56:00 +0000 @@ -275,6 +275,13 @@ (set (make-local-variable 'blink-matching-paren) nil) (reb-mode-common)) +(defvar reb-lisp-mode-map + (let ((map (make-sparse-keymap))) + ;; Use the same "\C-c" keymap as `reb-mode' and use font-locking from + ;; `emacs-lisp-mode' + (define-key map "\C-c" (lookup-key reb-mode-map "\C-c")) + map)) + (define-derived-mode reb-lisp-mode emacs-lisp-mode "RE Builder Lisp" "Major mode for interactively building symbolic Regular Expressions." @@ -283,11 +290,6 @@ (require 'rx))) ; require rx anyway (reb-mode-common)) -;; Use the same "\C-c" keymap as `reb-mode' and use font-locking from -;; `emacs-lisp-mode' -(define-key reb-lisp-mode-map "\C-c" - (lookup-key reb-mode-map "\C-c")) - (defvar reb-subexp-mode-map (let ((m (make-keymap))) (suppress-keymap m) === modified file 'lisp/emulation/vip.el' --- lisp/emulation/vip.el 2011-01-26 08:36:39 +0000 +++ lisp/emulation/vip.el 2011-02-10 16:56:00 +0000 @@ -164,132 +164,133 @@ ;; key bindings -(defvar vip-mode-map (make-keymap)) - -(define-key vip-mode-map "\C-a" 'beginning-of-line) -(define-key vip-mode-map "\C-b" 'vip-scroll-back) -(define-key vip-mode-map "\C-c" 'vip-ctl-c) -(define-key vip-mode-map "\C-d" 'vip-scroll-up) -(define-key vip-mode-map "\C-e" 'vip-scroll-up-one) -(define-key vip-mode-map "\C-f" 'vip-scroll) -(define-key vip-mode-map "\C-g" 'vip-keyboard-quit) -(define-key vip-mode-map "\C-h" 'help-command) -(define-key vip-mode-map "\C-m" 'vip-scroll-back) -(define-key vip-mode-map "\C-n" 'vip-other-window) -(define-key vip-mode-map "\C-o" 'vip-open-line-at-point) -(define-key vip-mode-map "\C-u" 'vip-scroll-down) -(define-key vip-mode-map "\C-x" 'vip-ctl-x) -(define-key vip-mode-map "\C-y" 'vip-scroll-down-one) -(define-key vip-mode-map "\C-z" 'vip-change-mode-to-emacs) -(define-key vip-mode-map "\e" 'vip-ESC) - -(define-key vip-mode-map " " 'vip-scroll) -(define-key vip-mode-map "!" 'vip-command-argument) -(define-key vip-mode-map "\"" 'vip-command-argument) -(define-key vip-mode-map "#" 'vip-command-argument) -(define-key vip-mode-map "$" 'vip-goto-eol) -(define-key vip-mode-map "%" 'vip-paren-match) -(define-key vip-mode-map "&" 'vip-nil) -(define-key vip-mode-map "'" 'vip-goto-mark-and-skip-white) -(define-key vip-mode-map "(" 'vip-backward-sentence) -(define-key vip-mode-map ")" 'vip-forward-sentence) -(define-key vip-mode-map "*" 'call-last-kbd-macro) -(define-key vip-mode-map "+" 'vip-next-line-at-bol) -(define-key vip-mode-map "," 'vip-repeat-find-opposite) -(define-key vip-mode-map "-" 'vip-previous-line-at-bol) -(define-key vip-mode-map "." 'vip-repeat) -(define-key vip-mode-map "/" 'vip-search-forward) - -(define-key vip-mode-map "0" 'vip-beginning-of-line) -(define-key vip-mode-map "1" 'vip-digit-argument) -(define-key vip-mode-map "2" 'vip-digit-argument) -(define-key vip-mode-map "3" 'vip-digit-argument) -(define-key vip-mode-map "4" 'vip-digit-argument) -(define-key vip-mode-map "5" 'vip-digit-argument) -(define-key vip-mode-map "6" 'vip-digit-argument) -(define-key vip-mode-map "7" 'vip-digit-argument) -(define-key vip-mode-map "8" 'vip-digit-argument) -(define-key vip-mode-map "9" 'vip-digit-argument) - -(define-key vip-mode-map ":" 'vip-ex) -(define-key vip-mode-map ";" 'vip-repeat-find) -(define-key vip-mode-map "<" 'vip-command-argument) -(define-key vip-mode-map "=" 'vip-command-argument) -(define-key vip-mode-map ">" 'vip-command-argument) -(define-key vip-mode-map "?" 'vip-search-backward) -(define-key vip-mode-map "@" 'vip-nil) - -(define-key vip-mode-map "A" 'vip-Append) -(define-key vip-mode-map "B" 'vip-backward-Word) -(define-key vip-mode-map "C" 'vip-ctl-c-equivalent) -(define-key vip-mode-map "D" 'vip-kill-line) -(define-key vip-mode-map "E" 'vip-end-of-Word) -(define-key vip-mode-map "F" 'vip-find-char-backward) -(define-key vip-mode-map "G" 'vip-goto-line) -(define-key vip-mode-map "H" 'vip-window-top) -(define-key vip-mode-map "I" 'vip-Insert) -(define-key vip-mode-map "J" 'vip-join-lines) -(define-key vip-mode-map "K" 'vip-kill-buffer) -(define-key vip-mode-map "L" 'vip-window-bottom) -(define-key vip-mode-map "M" 'vip-window-middle) -(define-key vip-mode-map "N" 'vip-search-Next) -(define-key vip-mode-map "O" 'vip-Open-line) -(define-key vip-mode-map "P" 'vip-Put-back) -(define-key vip-mode-map "Q" 'vip-query-replace) -(define-key vip-mode-map "R" 'vip-replace-string) -(define-key vip-mode-map "S" 'vip-switch-to-buffer-other-window) -(define-key vip-mode-map "T" 'vip-goto-char-backward) -(define-key vip-mode-map "U" 'vip-nil) -(define-key vip-mode-map "V" 'vip-find-file-other-window) -(define-key vip-mode-map "W" 'vip-forward-Word) -(define-key vip-mode-map "X" 'vip-ctl-x-equivalent) -(define-key vip-mode-map "Y" 'vip-yank-line) -(define-key vip-mode-map "ZZ" 'save-buffers-kill-emacs) - -(define-key vip-mode-map "[" 'vip-nil) -(define-key vip-mode-map "\\" 'vip-escape-to-emacs) -(define-key vip-mode-map "]" 'vip-nil) -(define-key vip-mode-map "^" 'vip-bol-and-skip-white) -(define-key vip-mode-map "_" 'vip-nil) -(define-key vip-mode-map "`" 'vip-goto-mark) - -(define-key vip-mode-map "a" 'vip-append) -(define-key vip-mode-map "b" 'vip-backward-word) -(define-key vip-mode-map "c" 'vip-command-argument) -(define-key vip-mode-map "d" 'vip-command-argument) -(define-key vip-mode-map "e" 'vip-end-of-word) -(define-key vip-mode-map "f" 'vip-find-char-forward) -(define-key vip-mode-map "g" 'vip-info-on-file) -(define-key vip-mode-map "h" 'vip-backward-char) -(define-key vip-mode-map "i" 'vip-insert) -(define-key vip-mode-map "j" 'vip-next-line) -(define-key vip-mode-map "k" 'vip-previous-line) -(define-key vip-mode-map "l" 'vip-forward-char) -(define-key vip-mode-map "m" 'vip-mark-point) -(define-key vip-mode-map "n" 'vip-search-next) -(define-key vip-mode-map "o" 'vip-open-line) -(define-key vip-mode-map "p" 'vip-put-back) -(define-key vip-mode-map "q" 'vip-nil) -(define-key vip-mode-map "r" 'vip-replace-char) -(define-key vip-mode-map "s" 'vip-switch-to-buffer) -(define-key vip-mode-map "t" 'vip-goto-char-forward) -(define-key vip-mode-map "u" 'vip-undo) -(define-key vip-mode-map "v" 'vip-find-file) -(define-key vip-mode-map "w" 'vip-forward-word) -(define-key vip-mode-map "x" 'vip-delete-char) -(define-key vip-mode-map "y" 'vip-command-argument) -(define-key vip-mode-map "zH" 'vip-line-to-top) -(define-key vip-mode-map "zM" 'vip-line-to-middle) -(define-key vip-mode-map "zL" 'vip-line-to-bottom) -(define-key vip-mode-map "z\C-m" 'vip-line-to-top) -(define-key vip-mode-map "z." 'vip-line-to-middle) -(define-key vip-mode-map "z-" 'vip-line-to-bottom) - -(define-key vip-mode-map "{" 'vip-backward-paragraph) -(define-key vip-mode-map "|" 'vip-goto-col) -(define-key vip-mode-map "}" 'vip-forward-paragraph) -(define-key vip-mode-map "~" 'vip-nil) -(define-key vip-mode-map "\177" 'vip-delete-backward-char) +(defvar vip-mode-map + (let ((map (make-keymap))) + (define-key map "\C-a" 'beginning-of-line) + (define-key map "\C-b" 'vip-scroll-back) + (define-key map "\C-c" 'vip-ctl-c) + (define-key map "\C-d" 'vip-scroll-up) + (define-key map "\C-e" 'vip-scroll-up-one) + (define-key map "\C-f" 'vip-scroll) + (define-key map "\C-g" 'vip-keyboard-quit) + (define-key map "\C-h" 'help-command) + (define-key map "\C-m" 'vip-scroll-back) + (define-key map "\C-n" 'vip-other-window) + (define-key map "\C-o" 'vip-open-line-at-point) + (define-key map "\C-u" 'vip-scroll-down) + (define-key map "\C-x" 'vip-ctl-x) + (define-key map "\C-y" 'vip-scroll-down-one) + (define-key map "\C-z" 'vip-change-mode-to-emacs) + (define-key map "\e" 'vip-ESC) + + (define-key map " " 'vip-scroll) + (define-key map "!" 'vip-command-argument) + (define-key map "\"" 'vip-command-argument) + (define-key map "#" 'vip-command-argument) + (define-key map "$" 'vip-goto-eol) + (define-key map "%" 'vip-paren-match) + (define-key map "&" 'vip-nil) + (define-key map "'" 'vip-goto-mark-and-skip-white) + (define-key map "(" 'vip-backward-sentence) + (define-key map ")" 'vip-forward-sentence) + (define-key map "*" 'call-last-kbd-macro) + (define-key map "+" 'vip-next-line-at-bol) + (define-key map "," 'vip-repeat-find-opposite) + (define-key map "-" 'vip-previous-line-at-bol) + (define-key map "." 'vip-repeat) + (define-key map "/" 'vip-search-forward) + + (define-key map "0" 'vip-beginning-of-line) + (define-key map "1" 'vip-digit-argument) + (define-key map "2" 'vip-digit-argument) + (define-key map "3" 'vip-digit-argument) + (define-key map "4" 'vip-digit-argument) + (define-key map "5" 'vip-digit-argument) + (define-key map "6" 'vip-digit-argument) + (define-key map "7" 'vip-digit-argument) + (define-key map "8" 'vip-digit-argument) + (define-key map "9" 'vip-digit-argument) + + (define-key map ":" 'vip-ex) + (define-key map ";" 'vip-repeat-find) + (define-key map "<" 'vip-command-argument) + (define-key map "=" 'vip-command-argument) + (define-key map ">" 'vip-command-argument) + (define-key map "?" 'vip-search-backward) + (define-key map "@" 'vip-nil) + + (define-key map "A" 'vip-Append) + (define-key map "B" 'vip-backward-Word) + (define-key map "C" 'vip-ctl-c-equivalent) + (define-key map "D" 'vip-kill-line) + (define-key map "E" 'vip-end-of-Word) + (define-key map "F" 'vip-find-char-backward) + (define-key map "G" 'vip-goto-line) + (define-key map "H" 'vip-window-top) + (define-key map "I" 'vip-Insert) + (define-key map "J" 'vip-join-lines) + (define-key map "K" 'vip-kill-buffer) + (define-key map "L" 'vip-window-bottom) + (define-key map "M" 'vip-window-middle) + (define-key map "N" 'vip-search-Next) + (define-key map "O" 'vip-Open-line) + (define-key map "P" 'vip-Put-back) + (define-key map "Q" 'vip-query-replace) + (define-key map "R" 'vip-replace-string) + (define-key map "S" 'vip-switch-to-buffer-other-window) + (define-key map "T" 'vip-goto-char-backward) + (define-key map "U" 'vip-nil) + (define-key map "V" 'vip-find-file-other-window) + (define-key map "W" 'vip-forward-Word) + (define-key map "X" 'vip-ctl-x-equivalent) + (define-key map "Y" 'vip-yank-line) + (define-key map "ZZ" 'save-buffers-kill-emacs) + + (define-key map "[" 'vip-nil) + (define-key map "\\" 'vip-escape-to-emacs) + (define-key map "]" 'vip-nil) + (define-key map "^" 'vip-bol-and-skip-white) + (define-key map "_" 'vip-nil) + (define-key map "`" 'vip-goto-mark) + + (define-key map "a" 'vip-append) + (define-key map "b" 'vip-backward-word) + (define-key map "c" 'vip-command-argument) + (define-key map "d" 'vip-command-argument) + (define-key map "e" 'vip-end-of-word) + (define-key map "f" 'vip-find-char-forward) + (define-key map "g" 'vip-info-on-file) + (define-key map "h" 'vip-backward-char) + (define-key map "i" 'vip-insert) + (define-key map "j" 'vip-next-line) + (define-key map "k" 'vip-previous-line) + (define-key map "l" 'vip-forward-char) + (define-key map "m" 'vip-mark-point) + (define-key map "n" 'vip-search-next) + (define-key map "o" 'vip-open-line) + (define-key map "p" 'vip-put-back) + (define-key map "q" 'vip-nil) + (define-key map "r" 'vip-replace-char) + (define-key map "s" 'vip-switch-to-buffer) + (define-key map "t" 'vip-goto-char-forward) + (define-key map "u" 'vip-undo) + (define-key map "v" 'vip-find-file) + (define-key map "w" 'vip-forward-word) + (define-key map "x" 'vip-delete-char) + (define-key map "y" 'vip-command-argument) + (define-key map "zH" 'vip-line-to-top) + (define-key map "zM" 'vip-line-to-middle) + (define-key map "zL" 'vip-line-to-bottom) + (define-key map "z\C-m" 'vip-line-to-top) + (define-key map "z." 'vip-line-to-middle) + (define-key map "z-" 'vip-line-to-bottom) + + (define-key map "{" 'vip-backward-paragraph) + (define-key map "|" 'vip-goto-col) + (define-key map "}" 'vip-forward-paragraph) + (define-key map "~" 'vip-nil) + (define-key map "\177" 'vip-delete-backward-char) + map)) (defun vip-version () (interactive) === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2011-02-09 04:08:25 +0000 +++ lisp/erc/ChangeLog 2011-02-10 16:56:00 +0000 @@ -1,3 +1,8 @@ +2011-02-10 Stefan Monnier + + * erc-list.el (erc-list-menu-mode-map): Move initialization + into declaration. + 2011-02-07 Julien Danjou * erc-track.el (erc-window-configuration-change): New function. === modified file 'lisp/erc/erc-list.el' --- lisp/erc/erc-list.el 2011-02-01 21:22:21 +0000 +++ lisp/erc/erc-list.el 2011-02-10 16:56:00 +0000 @@ -117,6 +117,17 @@ (sort-fields col (point-min) (point-max)) (sort-numeric-fields col (point-min) (point-max)))))) +(defvar erc-list-menu-mode-map + (let ((map (make-keymap))) + (set-keymap-parent map special-mode-map) + (define-key map "k" 'erc-list-kill) + (define-key map "j" 'erc-list-join) + (define-key map "g" 'erc-list-revert) + (define-key map "n" 'next-line) + (define-key map "p" 'previous-line) + map) + "Local keymap for `erc-list-mode' buffers.") + (defvar erc-list-menu-sort-button-map (let ((map (make-sparse-keymap))) (define-key map [header-line mouse-1] 'erc-list-menu-sort-by-column) @@ -146,12 +157,6 @@ (put 'erc-list-menu-mode 'mode-class 'special) -(define-key erc-list-menu-mode-map "k" 'erc-list-kill) -(define-key erc-list-menu-mode-map "j" 'erc-list-join) -(define-key erc-list-menu-mode-map "g" 'erc-list-revert) -(define-key erc-list-menu-mode-map "n" 'next-line) -(define-key erc-list-menu-mode-map "p" 'previous-line) - ;; Handle a "322" response. This response tells us about a single ;; channel. (defun erc-list-handle-322 (proc parsed) === modified file 'lisp/help-mode.el' --- lisp/help-mode.el 2011-01-28 21:42:11 +0000 +++ lisp/help-mode.el 2011-02-10 16:56:00 +0000 @@ -33,18 +33,19 @@ (require 'view) (eval-when-compile (require 'easymenu)) -(defvar help-mode-map (make-sparse-keymap) +(defvar help-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map button-buffer-map) + + (define-key map [mouse-2] 'help-follow-mouse) + (define-key map "\C-c\C-b" 'help-go-back) + (define-key map "\C-c\C-f" 'help-go-forward) + (define-key map "\C-c\C-c" 'help-follow-symbol) + ;; Documentation only, since we use minor-mode-overriding-map-alist. + (define-key map "\r" 'help-follow) + map) "Keymap for help mode.") -(set-keymap-parent help-mode-map button-buffer-map) - -(define-key help-mode-map [mouse-2] 'help-follow-mouse) -(define-key help-mode-map "\C-c\C-b" 'help-go-back) -(define-key help-mode-map "\C-c\C-f" 'help-go-forward) -(define-key help-mode-map "\C-c\C-c" 'help-follow-symbol) -;; Documentation only, since we use minor-mode-overriding-map-alist. -(define-key help-mode-map "\r" 'help-follow) - (easy-menu-define help-mode-menu help-mode-map "Menu for Help Mode." '("Help-Mode" === modified file 'lisp/hi-lock.el' --- lisp/hi-lock.el 2011-02-03 07:21:56 +0000 +++ lisp/hi-lock.el 2011-02-10 16:56:00 +0000 @@ -238,45 +238,47 @@ (make-variable-buffer-local 'hi-lock-file-patterns) (put 'hi-lock-file-patterns 'permanent-local t) -(defvar hi-lock-menu (make-sparse-keymap "Hi Lock") +(defvar hi-lock-menu + (let ((map (make-sparse-keymap "Hi Lock"))) + (define-key-after map [highlight-regexp] + '(menu-item "Highlight Regexp..." highlight-regexp + :help "Highlight text matching PATTERN (a regexp).")) + + (define-key-after map [highlight-phrase] + '(menu-item "Highlight Phrase..." highlight-phrase + :help "Highlight text matching PATTERN (a regexp processed to match phrases).")) + + (define-key-after map [highlight-lines-matching-regexp] + '(menu-item "Highlight Lines..." highlight-lines-matching-regexp + :help "Highlight lines containing match of PATTERN (a regexp).")) + + (define-key-after map [unhighlight-regexp] + '(menu-item "Remove Highlighting..." unhighlight-regexp + :help "Remove previously entered highlighting pattern." + :enable hi-lock-interactive-patterns)) + + (define-key-after map [hi-lock-write-interactive-patterns] + '(menu-item "Patterns to Buffer" hi-lock-write-interactive-patterns + :help "Insert interactively added REGEXPs into buffer at point." + :enable hi-lock-interactive-patterns)) + + (define-key-after map [hi-lock-find-patterns] + '(menu-item "Patterns from Buffer" hi-lock-find-patterns + :help "Use patterns (if any) near top of buffer.")) + map) "Menu for hi-lock mode.") -(define-key-after hi-lock-menu [highlight-regexp] - '(menu-item "Highlight Regexp..." highlight-regexp - :help "Highlight text matching PATTERN (a regexp).")) - -(define-key-after hi-lock-menu [highlight-phrase] - '(menu-item "Highlight Phrase..." highlight-phrase - :help "Highlight text matching PATTERN (a regexp processed to match phrases).")) - -(define-key-after hi-lock-menu [highlight-lines-matching-regexp] - '(menu-item "Highlight Lines..." highlight-lines-matching-regexp - :help "Highlight lines containing match of PATTERN (a regexp).")) - -(define-key-after hi-lock-menu [unhighlight-regexp] - '(menu-item "Remove Highlighting..." unhighlight-regexp - :help "Remove previously entered highlighting pattern." - :enable hi-lock-interactive-patterns)) - -(define-key-after hi-lock-menu [hi-lock-write-interactive-patterns] - '(menu-item "Patterns to Buffer" hi-lock-write-interactive-patterns - :help "Insert interactively added REGEXPs into buffer at point." - :enable hi-lock-interactive-patterns)) - -(define-key-after hi-lock-menu [hi-lock-find-patterns] - '(menu-item "Patterns from Buffer" hi-lock-find-patterns - :help "Use patterns (if any) near top of buffer.")) - -(defvar hi-lock-map (make-sparse-keymap "Hi Lock") +(defvar hi-lock-map + (let ((map (make-sparse-keymap "Hi Lock"))) + (define-key map "\C-xwi" 'hi-lock-find-patterns) + (define-key map "\C-xwl" 'highlight-lines-matching-regexp) + (define-key map "\C-xwp" 'highlight-phrase) + (define-key map "\C-xwh" 'highlight-regexp) + (define-key map "\C-xwr" 'unhighlight-regexp) + (define-key map "\C-xwb" 'hi-lock-write-interactive-patterns) + map) "Key map for hi-lock.") -(define-key hi-lock-map "\C-xwi" 'hi-lock-find-patterns) -(define-key hi-lock-map "\C-xwl" 'highlight-lines-matching-regexp) -(define-key hi-lock-map "\C-xwp" 'highlight-phrase) -(define-key hi-lock-map "\C-xwh" 'highlight-regexp) -(define-key hi-lock-map "\C-xwr" 'unhighlight-regexp) -(define-key hi-lock-map "\C-xwb" 'hi-lock-write-interactive-patterns) - ;; Visible Functions ;;;###autoload === modified file 'lisp/ibuffer.el' --- lisp/ibuffer.el 2011-02-08 06:54:37 +0000 +++ lisp/ibuffer.el 2011-02-10 16:56:00 +0000 @@ -384,14 +384,66 @@ (regexp :tag "To"))) :group 'ibuffer) - -(defvar ibuffer-mode-map nil) -(defvar ibuffer-mode-operate-map nil) -(defvar ibuffer-mode-groups-popup nil) -(unless ibuffer-mode-map - (let ((map (make-sparse-keymap)) - (operate-map (make-sparse-keymap "Operate")) - (groups-map (make-sparse-keymap "Filter Groups"))) +(defvar ibuffer-mode-groups-popup + (let ((groups-map (make-sparse-keymap "Filter Groups"))) + ;; Filter groups + + (define-key-after groups-map [filters-to-filter-group] + '(menu-item "Create filter group from current filters..." + ibuffer-filters-to-filter-group + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) + (define-key-after groups-map [forward-filter-group] + '(menu-item "Move point to the next filter group" + ibuffer-forward-filter-group)) + (define-key-after groups-map [backward-filter-group] + '(menu-item "Move point to the previous filter group" + ibuffer-backward-filter-group)) + (define-key-after groups-map [jump-to-filter-group] + '(menu-item "Move point to a specific filter group..." + ibuffer-jump-to-filter-group)) + (define-key-after groups-map [kill-filter-group] + '(menu-item "Kill filter group named..." + ibuffer-kill-filter-group + :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) + (define-key-after groups-map [yank-filter-group] + '(menu-item "Yank last killed filter group before..." + ibuffer-yank-filter-group + :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) + (define-key-after groups-map [pop-filter-group] + '(menu-item "Remove top filter group" + ibuffer-pop-filter-group + :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) + (define-key-after groups-map [clear-filter-groups] + '(menu-item "Remove all filter groups" + ibuffer-clear-filter-groups + :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) + (define-key-after groups-map [pop-filter-group] + '(menu-item "Decompose filter group..." + ibuffer-pop-filter-group + :help "\"Unmake\" a filter group" + :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) + (define-key-after groups-map [save-filter-groups] + '(menu-item "Save current filter groups permanently..." + ibuffer-save-filter-groups + :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups) + :help "Use a mnemnonic name to store current filter groups")) + (define-key-after groups-map [switch-to-saved-filter-groups] + '(menu-item "Restore permanently saved filters..." + ibuffer-switch-to-saved-filter-groups + :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups) + :help "Replace current filters with a saved stack")) + (define-key-after groups-map [delete-saved-filter-groups] + '(menu-item "Delete permanently saved filter groups..." + ibuffer-delete-saved-filter-groups + :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups))) + (define-key-after groups-map [set-filter-groups-by-mode] + '(menu-item "Set current filter groups to filter by mode" + ibuffer-set-filter-groups-by-mode)) + + groups-map)) + +(defvar ibuffer-mode-map + (let ((map (make-keymap))) (define-key map (kbd "0") 'digit-argument) (define-key map (kbd "1") 'digit-argument) (define-key map (kbd "2") 'digit-argument) @@ -545,10 +597,10 @@ '(menu-item "View (other frame)" ibuffer-visit-buffer-other-frame)) (define-key-after map [menu-bar view ibuffer-update] '(menu-item "Update" ibuffer-update - :help "Regenerate the list of buffers")) + :help "Regenerate the list of buffers")) (define-key-after map [menu-bar view switch-format] '(menu-item "Switch display format" ibuffer-switch-format - :help "Toggle between available values of `ibuffer-formats'")) + :help "Toggle between available values of `ibuffer-formats'")) (define-key-after map [menu-bar view dashes] '("--")) @@ -562,28 +614,29 @@ '(menu-item "Sort by buffer size" ibuffer-do-sort-by-size)) (define-key-after map [menu-bar view sort do-sort-by-alphabetic] '(menu-item "Sort lexicographically" ibuffer-do-sort-by-alphabetic - :help "Sort by the alphabetic order of buffer name")) + :help "Sort by the alphabetic order of buffer name")) (define-key-after map [menu-bar view sort do-sort-by-recency] '(menu-item "Sort by view time" ibuffer-do-sort-by-recency - :help "Sort by the last time the buffer was displayed")) + :help "Sort by the last time the buffer was displayed")) (define-key-after map [menu-bar view sort dashes] '("--")) (define-key-after map [menu-bar view sort invert-sorting] '(menu-item "Reverse sorting order" ibuffer-invert-sorting)) (define-key-after map [menu-bar view sort toggle-sorting-mode] '(menu-item "Switch sorting mode" ibuffer-toggle-sorting-mode - :help "Switch between the various sorting criteria")) + :help "Switch between the various sorting criteria")) (define-key-after map [menu-bar view filter] (cons "Filter" (make-sparse-keymap "Filter"))) (define-key-after map [menu-bar view filter filter-disable] '(menu-item "Disable all filtering" ibuffer-filter-disable - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) (define-key-after map [menu-bar view filter filter-by-mode] '(menu-item "Add filter by major mode..." ibuffer-filter-by-mode)) (define-key-after map [menu-bar view filter filter-by-mode] - '(menu-item "Add filter by major mode in use..." ibuffer-filter-by-used-mode)) + '(menu-item "Add filter by major mode in use..." + ibuffer-filter-by-used-mode)) (define-key-after map [menu-bar view filter filter-by-name] '(menu-item "Add filter by buffer name..." ibuffer-filter-by-name)) (define-key-after map [menu-bar view filter filter-by-filename] @@ -591,158 +644,112 @@ (define-key-after map [menu-bar view filter filter-by-size-lt] '(menu-item "Add filter by size less than..." ibuffer-filter-by-size-lt)) (define-key-after map [menu-bar view filter filter-by-size-gt] - '(menu-item "Add filter by size greater than..." ibuffer-filter-by-size-gt)) + '(menu-item "Add filter by size greater than..." + ibuffer-filter-by-size-gt)) (define-key-after map [menu-bar view filter filter-by-content] - '(menu-item "Add filter by content (regexp)..." ibuffer-filter-by-content)) + '(menu-item "Add filter by content (regexp)..." + ibuffer-filter-by-content)) (define-key-after map [menu-bar view filter filter-by-predicate] - '(menu-item "Add filter by Lisp predicate..." ibuffer-filter-by-predicate)) + '(menu-item "Add filter by Lisp predicate..." + ibuffer-filter-by-predicate)) (define-key-after map [menu-bar view filter pop-filter] '(menu-item "Remove top filter" ibuffer-pop-filter - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) (define-key-after map [menu-bar view filter or-filter] '(menu-item "OR top two filters" ibuffer-or-filter - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers - (cdr ibuffer-filtering-qualifiers)) - :help "Create a new filter which is the logical OR of the top two filters")) + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers + (cdr ibuffer-filtering-qualifiers)) + :help + "Create a new filter which is the logical OR of the top two filters")) (define-key-after map [menu-bar view filter negate-filter] '(menu-item "Negate top filter" ibuffer-negate-filter - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) (define-key-after map [menu-bar view filter decompose-filter] '(menu-item "Decompose top filter" ibuffer-decompose-filter - :enable (and (featurep 'ibuf-ext) (memq (car ibuffer-filtering-qualifiers) '(or saved not))) - :help "Break down a complex filter like OR or NOT")) + :enable (and (featurep 'ibuf-ext) + (memq (car ibuffer-filtering-qualifiers) '(or saved not))) + :help "Break down a complex filter like OR or NOT")) (define-key-after map [menu-bar view filter exchange-filters] '(menu-item "Swap top two filters" ibuffer-exchange-filters - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers - (cdr ibuffer-filtering-qualifiers)))) + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers + (cdr ibuffer-filtering-qualifiers)))) (define-key-after map [menu-bar view filter save-filters] '(menu-item "Save current filters permanently..." ibuffer-save-filters - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) - :help "Use a mnemnonic name to store current filter stack")) + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) + :help "Use a mnemnonic name to store current filter stack")) (define-key-after map [menu-bar view filter switch-to-saved-filters] - '(menu-item "Restore permanently saved filters..." ibuffer-switch-to-saved-filters - :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters) - :help "Replace current filters with a saved stack")) + '(menu-item "Restore permanently saved filters..." + ibuffer-switch-to-saved-filters + :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters) + :help "Replace current filters with a saved stack")) (define-key-after map [menu-bar view filter add-saved-filters] - '(menu-item "Add to permanently saved filters..." ibuffer-add-saved-filters - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) - :help "Include already saved stack with current filters")) + '(menu-item "Add to permanently saved filters..." + ibuffer-add-saved-filters + :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) + :help "Include already saved stack with current filters")) (define-key-after map [menu-bar view filter delete-saved-filters] '(menu-item "Delete permanently saved filters..." - ibuffer-delete-saved-filters - :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters))) - - ;; Filter groups - - (define-key-after groups-map [filters-to-filter-group] - '(menu-item "Create filter group from current filters..." - ibuffer-filters-to-filter-group - :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) - (define-key-after groups-map [forward-filter-group] - '(menu-item "Move point to the next filter group" - ibuffer-forward-filter-group)) - (define-key-after groups-map [backward-filter-group] - '(menu-item "Move point to the previous filter group" - ibuffer-backward-filter-group)) - (define-key-after groups-map [jump-to-filter-group] - '(menu-item "Move point to a specific filter group..." - ibuffer-jump-to-filter-group)) - (define-key-after groups-map [kill-filter-group] - '(menu-item "Kill filter group named..." - ibuffer-kill-filter-group - :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) - (define-key-after groups-map [yank-filter-group] - '(menu-item "Yank last killed filter group before..." - ibuffer-yank-filter-group - :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) - (define-key-after groups-map [pop-filter-group] - '(menu-item "Remove top filter group" - ibuffer-pop-filter-group - :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) - (define-key-after groups-map [clear-filter-groups] - '(menu-item "Remove all filter groups" - ibuffer-clear-filter-groups - :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) - (define-key-after groups-map [pop-filter-group] - '(menu-item "Decompose filter group..." - ibuffer-pop-filter-group - :help "\"Unmake\" a filter group" - :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) - (define-key-after groups-map [save-filter-groups] - '(menu-item "Save current filter groups permanently..." - ibuffer-save-filter-groups - :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups) - :help "Use a mnemnonic name to store current filter groups")) - (define-key-after groups-map [switch-to-saved-filter-groups] - '(menu-item "Restore permanently saved filters..." - ibuffer-switch-to-saved-filter-groups - :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups) - :help "Replace current filters with a saved stack")) - (define-key-after groups-map [delete-saved-filter-groups] - '(menu-item "Delete permanently saved filter groups..." - ibuffer-delete-saved-filter-groups - :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups))) - (define-key-after groups-map [set-filter-groups-by-mode] - '(menu-item "Set current filter groups to filter by mode" - ibuffer-set-filter-groups-by-mode)) + ibuffer-delete-saved-filters + :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters))) (define-key-after map [menu-bar view filter-groups] - (cons "Filter Groups" groups-map)) + (cons "Filter Groups" ibuffer-mode-groups-popup)) (define-key-after map [menu-bar view dashes2] '("--")) (define-key-after map [menu-bar view diff-with-file] '(menu-item "Diff with file" ibuffer-diff-with-file - :help "View the differences between this buffer and its file")) + :help "View the differences between this buffer and its file")) (define-key-after map [menu-bar view auto-mode] '(menu-item "Toggle Auto Mode" ibuffer-auto-mode - :help "Attempt to automatically update the Ibuffer buffer")) + :help "Attempt to automatically update the Ibuffer buffer")) (define-key-after map [menu-bar view customize] '(menu-item "Customize Ibuffer" ibuffer-customize - :help "Use Custom to customize Ibuffer")) + :help "Use Custom to customize Ibuffer")) (define-key-after map [menu-bar mark] (cons "Mark" (make-sparse-keymap "Mark"))) (define-key-after map [menu-bar mark toggle-marks] '(menu-item "Toggle marks" ibuffer-toggle-marks - :help "Unmark marked buffers, and mark unmarked buffers")) + :help "Unmark marked buffers, and mark unmarked buffers")) (define-key-after map [menu-bar mark mark-forward] '(menu-item "Mark" ibuffer-mark-forward - :help "Mark the buffer at point")) + :help "Mark the buffer at point")) (define-key-after map [menu-bar mark unmark-forward] '(menu-item "Unmark" ibuffer-unmark-forward - :help "Unmark the buffer at point")) + :help "Unmark the buffer at point")) (define-key-after map [menu-bar mark mark-by-mode] '(menu-item "Mark by mode..." ibuffer-mark-by-mode - :help "Mark all buffers in a particular major mode")) + :help "Mark all buffers in a particular major mode")) (define-key-after map [menu-bar mark mark-modified-buffers] '(menu-item "Mark modified buffers" ibuffer-mark-modified-buffers - :help "Mark all buffers which have been modified")) + :help "Mark all buffers which have been modified")) (define-key-after map [menu-bar mark mark-unsaved-buffers] '(menu-item "Mark unsaved buffers" ibuffer-mark-unsaved-buffers - :help "Mark all buffers which have a file and are modified")) + :help "Mark all buffers which have a file and are modified")) (define-key-after map [menu-bar mark mark-read-only-buffers] '(menu-item "Mark read-only buffers" ibuffer-mark-read-only-buffers - :help "Mark all buffers which are read-only")) + :help "Mark all buffers which are read-only")) (define-key-after map [menu-bar mark mark-special-buffers] '(menu-item "Mark special buffers" ibuffer-mark-special-buffers - :help "Mark all buffers whose name begins with a *")) + :help "Mark all buffers whose name begins with a *")) (define-key-after map [menu-bar mark mark-dired-buffers] '(menu-item "Mark dired buffers" ibuffer-mark-dired-buffers - :help "Mark buffers in dired-mode")) + :help "Mark buffers in dired-mode")) (define-key-after map [menu-bar mark mark-dissociated-buffers] '(menu-item "Mark dissociated buffers" ibuffer-mark-dissociated-buffers - :help "Mark buffers with a non-existent associated file")) + :help "Mark buffers with a non-existent associated file")) (define-key-after map [menu-bar mark mark-help-buffers] '(menu-item "Mark help buffers" ibuffer-mark-help-buffers - :help "Mark buffers in help-mode")) + :help "Mark buffers in help-mode")) (define-key-after map [menu-bar mark mark-compressed-file-buffers] - '(menu-item "Mark compressed file buffers" ibuffer-mark-compressed-file-buffers - :help "Mark buffers which have a file that is compressed")) + '(menu-item "Mark compressed file buffers" + ibuffer-mark-compressed-file-buffers + :help "Mark buffers which have a file that is compressed")) (define-key-after map [menu-bar mark mark-old-buffers] '(menu-item "Mark old buffers" ibuffer-mark-old-buffers - :help "Mark buffers which have not been viewed recently")) + :help "Mark buffers which have not been viewed recently")) (define-key-after map [menu-bar mark unmark-all] '(menu-item "Unmark All" ibuffer-unmark-all)) @@ -751,16 +758,19 @@ (define-key-after map [menu-bar mark mark-by-name-regexp] '(menu-item "Mark by buffer name (regexp)..." ibuffer-mark-by-name-regexp - :help "Mark buffers whose name matches a regexp")) + :help "Mark buffers whose name matches a regexp")) (define-key-after map [menu-bar mark mark-by-mode-regexp] '(menu-item "Mark by major mode (regexp)..." ibuffer-mark-by-mode-regexp - :help "Mark buffers whose major mode name matches a regexp")) + :help "Mark buffers whose major mode name matches a regexp")) (define-key-after map [menu-bar mark mark-by-file-name-regexp] - '(menu-item "Mark by file name (regexp)..." ibuffer-mark-by-file-name-regexp - :help "Mark buffers whose file name matches a regexp")) - - ;; Operate map is added later - + '(menu-item "Mark by file name (regexp)..." + ibuffer-mark-by-file-name-regexp + :help "Mark buffers whose file name matches a regexp")) + + map)) + +(defvar ibuffer-mode-operate-map + (let ((operate-map (make-sparse-keymap "Operate"))) (define-key-after operate-map [do-view] '(menu-item "View" ibuffer-do-view)) (define-key-after operate-map [do-view-other-frame] @@ -769,47 +779,45 @@ '(menu-item "Save" ibuffer-do-save)) (define-key-after operate-map [do-replace-regexp] '(menu-item "Replace (regexp)..." ibuffer-do-replace-regexp - :help "Replace text inside marked buffers")) + :help "Replace text inside marked buffers")) (define-key-after operate-map [do-query-replace] '(menu-item "Query Replace..." ibuffer-do-query-replace - :help "Replace text in marked buffers, asking each time")) + :help "Replace text in marked buffers, asking each time")) (define-key-after operate-map [do-query-replace-regexp] '(menu-item "Query Replace (regexp)..." ibuffer-do-query-replace-regexp - :help "Replace text in marked buffers by regexp, asking each time")) + :help "Replace text in marked buffers by regexp, asking each time")) (define-key-after operate-map [do-print] '(menu-item "Print" ibuffer-do-print)) (define-key-after operate-map [do-toggle-modified] '(menu-item "Toggle modification flag" ibuffer-do-toggle-modified)) (define-key-after operate-map [do-revert] '(menu-item "Revert" ibuffer-do-revert - :help "Revert marked buffers to their associated file")) + :help "Revert marked buffers to their associated file")) (define-key-after operate-map [do-rename-uniquely] '(menu-item "Rename Uniquely" ibuffer-do-rename-uniquely - :help "Rename marked buffers to a new, unique name")) + :help "Rename marked buffers to a new, unique name")) (define-key-after operate-map [do-delete] '(menu-item "Kill" ibuffer-do-delete)) (define-key-after operate-map [do-occur] '(menu-item "List lines matching..." ibuffer-do-occur - :help "View all lines in marked buffers matching a regexp")) + :help "View all lines in marked buffers matching a regexp")) (define-key-after operate-map [do-shell-command-pipe] '(menu-item "Pipe to shell command..." ibuffer-do-shell-command-pipe - :help "For each marked buffer, send its contents to a shell command")) + :help "For each marked buffer, send its contents to a shell command")) (define-key-after operate-map [do-shell-command-pipe-replace] '(menu-item "Pipe to shell command (replace)..." ibuffer-do-shell-command-pipe-replace - :help "For each marked buffer, replace its contents with output of shell command")) + :help "For each marked buffer, replace its contents with output of shell command")) (define-key-after operate-map [do-shell-command-file] '(menu-item "Shell command on buffer's file..." ibuffer-do-shell-command-file - :help "For each marked buffer, run a shell command with its file as argument")) + :help "For each marked buffer, run a shell command with its file as argument")) (define-key-after operate-map [do-eval] '(menu-item "Eval..." ibuffer-do-eval - :help "Evaluate a Lisp form in each marked buffer")) + :help "Evaluate a Lisp form in each marked buffer")) (define-key-after operate-map [do-view-and-eval] '(menu-item "Eval (viewing buffer)..." ibuffer-do-view-and-eval - :help "Evaluate a Lisp form in each marked buffer while viewing it")) + :help "Evaluate a Lisp form in each marked buffer while viewing it")) - (setq ibuffer-mode-map map - ibuffer-mode-operate-map operate-map - ibuffer-mode-groups-popup (copy-keymap groups-map)))) + operate-map)) (define-key ibuffer-mode-groups-popup [kill-filter-group] '(menu-item "Kill filter group" @@ -1559,9 +1567,8 @@ from-end-p)) (setq strlen (length str)) (setq str - ,(ibuffer-compile-make-eliding-form 'str - elide - from-end-p))))) + ,(ibuffer-compile-make-eliding-form + 'str elide from-end-p))))) ;; Now, put these forms together with the rest of the code. (let ((callform ;; Is this an "inline" column? This means we have @@ -1575,16 +1582,18 @@ ;; You're not expected to understand this. Hell, I ;; don't even understand it, and I wrote it five ;; minutes ago. - (insertgenfn (ibuffer-aif (get sym 'ibuffer-column-summarizer) - ;; I really, really wish Emacs Lisp had closures. - (lambda (arg sym) - `(insert - (let ((ret ,arg)) - (put ',sym 'ibuffer-column-summary - (cons ret (get ',sym 'ibuffer-column-summary))) - ret))) - (lambda (arg sym) - `(insert ,arg)))) + (insertgenfn + (ibuffer-aif (get sym 'ibuffer-column-summarizer) + ;; I really, really wish Emacs Lisp had closures. + (lambda (arg sym) + `(insert + (let ((ret ,arg)) + (put ',sym 'ibuffer-column-summary + (cons ret (get ',sym + 'ibuffer-column-summary))) + ret))) + (lambda (arg sym) + `(insert ,arg)))) (mincompform `(< strlen ,(if (integerp min) min 'min))) @@ -1617,7 +1626,8 @@ `(strlen (length str)))) outforms) (setq outforms - (append outforms (list (funcall insertgenfn 'str sym))))) + (append outforms + (list (funcall insertgenfn 'str sym))))) ;; The simple case; just insert the string. (push (funcall insertgenfn callform sym) outforms)) ;; Finally, return a `let' form which binds the === modified file 'lisp/kmacro.el' --- lisp/kmacro.el 2011-01-26 08:36:39 +0000 +++ lisp/kmacro.el 2011-02-10 16:56:00 +0000 @@ -916,34 +916,35 @@ (defvar kmacro-step-edit-help) ;; kmacro step edit help enabled (defvar kmacro-step-edit-num-input-keys) ;; to ignore duplicate pre-command hook -(defvar kmacro-step-edit-map (make-sparse-keymap) +(defvar kmacro-step-edit-map + (let ((map (make-sparse-keymap))) + ;; query-replace-map answers include: `act', `skip', `act-and-show', + ;; `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', + ;; `automatic', `backup', `exit-prefix', and `help'.") + ;; Also: `quit', `edit-replacement' + + (set-keymap-parent map query-replace-map) + + (define-key map "\t" 'act-repeat) + (define-key map [tab] 'act-repeat) + (define-key map "\C-k" 'skip-rest) + (define-key map "c" 'automatic) + (define-key map "f" 'skip-keep) + (define-key map "q" 'quit) + (define-key map "d" 'skip) + (define-key map "\C-d" 'skip) + (define-key map "i" 'insert) + (define-key map "I" 'insert-1) + (define-key map "r" 'replace) + (define-key map "R" 'replace-1) + (define-key map "a" 'append) + (define-key map "A" 'append-end) + map) "Keymap that defines the responses to questions in `kmacro-step-edit-macro'. This keymap is an extension to the `query-replace-map', allowing the following additional answers: `insert', `insert-1', `replace', `replace-1', `append', `append-end', `act-repeat', `skip-end', `skip-keep'.") -;; query-replace-map answers include: `act', `skip', `act-and-show', -;; `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', -;; `automatic', `backup', `exit-prefix', and `help'.") -;; Also: `quit', `edit-replacement' - -(set-keymap-parent kmacro-step-edit-map query-replace-map) - -(define-key kmacro-step-edit-map "\t" 'act-repeat) -(define-key kmacro-step-edit-map [tab] 'act-repeat) -(define-key kmacro-step-edit-map "\C-k" 'skip-rest) -(define-key kmacro-step-edit-map "c" 'automatic) -(define-key kmacro-step-edit-map "f" 'skip-keep) -(define-key kmacro-step-edit-map "q" 'quit) -(define-key kmacro-step-edit-map "d" 'skip) -(define-key kmacro-step-edit-map "\C-d" 'skip) -(define-key kmacro-step-edit-map "i" 'insert) -(define-key kmacro-step-edit-map "I" 'insert-1) -(define-key kmacro-step-edit-map "r" 'replace) -(define-key kmacro-step-edit-map "R" 'replace-1) -(define-key kmacro-step-edit-map "a" 'append) -(define-key kmacro-step-edit-map "A" 'append-end) - (defvar kmacro-step-edit-prefix-commands '(universal-argument universal-argument-more universal-argument-minus digit-argument negative-argument) === modified file 'lisp/mail/rmail.el' --- lisp/mail/rmail.el 2011-01-28 16:58:04 +0000 +++ lisp/mail/rmail.el 2011-02-10 16:56:00 +0000 @@ -4418,7 +4418,7 @@ ;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic ;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels -;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "76a7ae570a4fa96a9233d0276f52f515") +;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "adad96c9eb13cae4bae0769f731d8784") ;;; Generated autoloads from rmailsum.el (autoload 'rmail-summary "rmailsum" "\ === modified file 'lisp/mail/rmailsum.el' --- lisp/mail/rmailsum.el 2011-01-25 04:08:28 +0000 +++ lisp/mail/rmailsum.el 2011-02-10 16:56:00 +0000 @@ -64,7 +64,196 @@ "Overlay used to highlight the current message in the Rmail summary.") (put 'rmail-summary-overlay 'permanent-local t) -(defvar rmail-summary-mode-map nil +(defvar rmail-summary-mode-map + (let ((map (make-keymap))) + (suppress-keymap map) + (define-key map [mouse-2] 'rmail-summary-mouse-goto-message) + (define-key map "a" 'rmail-summary-add-label) + (define-key map "b" 'rmail-summary-bury) + (define-key map "c" 'rmail-summary-continue) + (define-key map "d" 'rmail-summary-delete-forward) + (define-key map "\C-d" 'rmail-summary-delete-backward) + (define-key map "e" 'rmail-summary-edit-current-message) + (define-key map "f" 'rmail-summary-forward) + (define-key map "g" 'rmail-summary-get-new-mail) + (define-key map "h" 'rmail-summary) + (define-key map "i" 'rmail-summary-input) + (define-key map "j" 'rmail-summary-goto-msg) + (define-key map "\C-m" 'rmail-summary-goto-msg) + (define-key map "k" 'rmail-summary-kill-label) + (define-key map "l" 'rmail-summary-by-labels) + (define-key map "\e\C-h" 'rmail-summary) + (define-key map "\e\C-l" 'rmail-summary-by-labels) + (define-key map "\e\C-r" 'rmail-summary-by-recipients) + (define-key map "\e\C-s" 'rmail-summary-by-regexp) + ;; `f' for "from". + (define-key map "\e\C-f" 'rmail-summary-by-senders) + (define-key map "\e\C-t" 'rmail-summary-by-topic) + (define-key map "m" 'rmail-summary-mail) + (define-key map "\M-m" 'rmail-summary-retry-failure) + (define-key map "n" 'rmail-summary-next-msg) + (define-key map "\en" 'rmail-summary-next-all) + (define-key map "\e\C-n" 'rmail-summary-next-labeled-message) + (define-key map "o" 'rmail-summary-output) + (define-key map "\C-o" 'rmail-summary-output-as-seen) + (define-key map "p" 'rmail-summary-previous-msg) + (define-key map "\ep" 'rmail-summary-previous-all) + (define-key map "\e\C-p" 'rmail-summary-previous-labeled-message) + (define-key map "q" 'rmail-summary-quit) + (define-key map "Q" 'rmail-summary-wipe) + (define-key map "r" 'rmail-summary-reply) + (define-key map "s" 'rmail-summary-expunge-and-save) + ;; See rms's comment in rmail.el + ;; (define-key map "\er" 'rmail-summary-search-backward) + (define-key map "\es" 'rmail-summary-search) + (define-key map "t" 'rmail-summary-toggle-header) + (define-key map "u" 'rmail-summary-undelete) + (define-key map "\M-u" 'rmail-summary-undelete-many) + (define-key map "x" 'rmail-summary-expunge) + (define-key map "w" 'rmail-summary-output-body) + (define-key map "v" 'rmail-mime) + (define-key map "." 'rmail-summary-beginning-of-message) + (define-key map "/" 'rmail-summary-end-of-message) + (define-key map "<" 'rmail-summary-first-message) + (define-key map ">" 'rmail-summary-last-message) + (define-key map " " 'rmail-summary-scroll-msg-up) + (define-key map "\177" 'rmail-summary-scroll-msg-down) + (define-key map "?" 'describe-mode) + (define-key map "\C-c\C-n" 'rmail-summary-next-same-subject) + (define-key map "\C-c\C-p" 'rmail-summary-previous-same-subject) + (define-key map "\C-c\C-s\C-d" 'rmail-summary-sort-by-date) + (define-key map "\C-c\C-s\C-s" 'rmail-summary-sort-by-subject) + (define-key map "\C-c\C-s\C-a" 'rmail-summary-sort-by-author) + (define-key map "\C-c\C-s\C-r" 'rmail-summary-sort-by-recipient) + (define-key map "\C-c\C-s\C-c" 'rmail-summary-sort-by-correspondent) + (define-key map "\C-c\C-s\C-l" 'rmail-summary-sort-by-lines) + (define-key map "\C-c\C-s\C-k" 'rmail-summary-sort-by-labels) + (define-key map "\C-x\C-s" 'rmail-summary-save-buffer) + + ;; Menu bar bindings. + + (define-key map [menu-bar] (make-sparse-keymap)) + + (define-key map [menu-bar classify] + (cons "Classify" (make-sparse-keymap "Classify"))) + + (define-key map [menu-bar classify output-menu] + '("Output (Rmail Menu)..." . rmail-summary-output-menu)) + + (define-key map [menu-bar classify input-menu] + '("Input Rmail File (menu)..." . rmail-input-menu)) + + (define-key map [menu-bar classify input-menu] + '(nil)) + + (define-key map [menu-bar classify output-menu] + '(nil)) + + (define-key map [menu-bar classify output-body] + '("Output body..." . rmail-summary-output-body)) + + (define-key map [menu-bar classify output-inbox] + '("Output..." . rmail-summary-output)) + + (define-key map [menu-bar classify output] + '("Output as seen..." . rmail-summary-output-as-seen)) + + (define-key map [menu-bar classify kill-label] + '("Kill Label..." . rmail-summary-kill-label)) + + (define-key map [menu-bar classify add-label] + '("Add Label..." . rmail-summary-add-label)) + + (define-key map [menu-bar summary] + (cons "Summary" (make-sparse-keymap "Summary"))) + + (define-key map [menu-bar summary senders] + '("By Senders..." . rmail-summary-by-senders)) + + (define-key map [menu-bar summary labels] + '("By Labels..." . rmail-summary-by-labels)) + + (define-key map [menu-bar summary recipients] + '("By Recipients..." . rmail-summary-by-recipients)) + + (define-key map [menu-bar summary topic] + '("By Topic..." . rmail-summary-by-topic)) + + (define-key map [menu-bar summary regexp] + '("By Regexp..." . rmail-summary-by-regexp)) + + (define-key map [menu-bar summary all] + '("All" . rmail-summary)) + + (define-key map [menu-bar mail] + (cons "Mail" (make-sparse-keymap "Mail"))) + + (define-key map [menu-bar mail rmail-summary-get-new-mail] + '("Get New Mail" . rmail-summary-get-new-mail)) + + (define-key map [menu-bar mail lambda] + '("----")) + + (define-key map [menu-bar mail continue] + '("Continue" . rmail-summary-continue)) + + (define-key map [menu-bar mail resend] + '("Re-send..." . rmail-summary-resend)) + + (define-key map [menu-bar mail forward] + '("Forward" . rmail-summary-forward)) + + (define-key map [menu-bar mail retry] + '("Retry" . rmail-summary-retry-failure)) + + (define-key map [menu-bar mail reply] + '("Reply" . rmail-summary-reply)) + + (define-key map [menu-bar mail mail] + '("Mail" . rmail-summary-mail)) + + (define-key map [menu-bar delete] + (cons "Delete" (make-sparse-keymap "Delete"))) + + (define-key map [menu-bar delete expunge/save] + '("Expunge/Save" . rmail-summary-expunge-and-save)) + + (define-key map [menu-bar delete expunge] + '("Expunge" . rmail-summary-expunge)) + + (define-key map [menu-bar delete undelete] + '("Undelete" . rmail-summary-undelete)) + + (define-key map [menu-bar delete delete] + '("Delete" . rmail-summary-delete-forward)) + + (define-key map [menu-bar move] + (cons "Move" (make-sparse-keymap "Move"))) + + (define-key map [menu-bar move search-back] + '("Search Back..." . rmail-summary-search-backward)) + + (define-key map [menu-bar move search] + '("Search..." . rmail-summary-search)) + + (define-key map [menu-bar move previous] + '("Previous Nondeleted" . rmail-summary-previous-msg)) + + (define-key map [menu-bar move next] + '("Next Nondeleted" . rmail-summary-next-msg)) + + (define-key map [menu-bar move last] + '("Last" . rmail-summary-last-message)) + + (define-key map [menu-bar move first] + '("First" . rmail-summary-first-message)) + + (define-key map [menu-bar move previous] + '("Previous" . rmail-summary-previous-all)) + + (define-key map [menu-bar move next] + '("Next" . rmail-summary-next-all)) + map) "Keymap used in Rmail summary mode.") ;; Entry points for making a summary buffer. @@ -990,207 +1179,6 @@ (save-excursion (switch-to-buffer rmail-buffer) (save-buffer)))) - - -(if rmail-summary-mode-map - nil - (setq rmail-summary-mode-map (make-keymap)) - (suppress-keymap rmail-summary-mode-map) - - (define-key rmail-summary-mode-map [mouse-2] 'rmail-summary-mouse-goto-message) - (define-key rmail-summary-mode-map "a" 'rmail-summary-add-label) - (define-key rmail-summary-mode-map "b" 'rmail-summary-bury) - (define-key rmail-summary-mode-map "c" 'rmail-summary-continue) - (define-key rmail-summary-mode-map "d" 'rmail-summary-delete-forward) - (define-key rmail-summary-mode-map "\C-d" 'rmail-summary-delete-backward) - (define-key rmail-summary-mode-map "e" 'rmail-summary-edit-current-message) - (define-key rmail-summary-mode-map "f" 'rmail-summary-forward) - (define-key rmail-summary-mode-map "g" 'rmail-summary-get-new-mail) - (define-key rmail-summary-mode-map "h" 'rmail-summary) - (define-key rmail-summary-mode-map "i" 'rmail-summary-input) - (define-key rmail-summary-mode-map "j" 'rmail-summary-goto-msg) - (define-key rmail-summary-mode-map "\C-m" 'rmail-summary-goto-msg) - (define-key rmail-summary-mode-map "k" 'rmail-summary-kill-label) - (define-key rmail-summary-mode-map "l" 'rmail-summary-by-labels) - (define-key rmail-summary-mode-map "\e\C-h" 'rmail-summary) - (define-key rmail-summary-mode-map "\e\C-l" 'rmail-summary-by-labels) - (define-key rmail-summary-mode-map "\e\C-r" 'rmail-summary-by-recipients) - (define-key rmail-summary-mode-map "\e\C-s" 'rmail-summary-by-regexp) - ;; `f' for "from". - (define-key rmail-summary-mode-map "\e\C-f" 'rmail-summary-by-senders) - (define-key rmail-summary-mode-map "\e\C-t" 'rmail-summary-by-topic) - (define-key rmail-summary-mode-map "m" 'rmail-summary-mail) - (define-key rmail-summary-mode-map "\M-m" 'rmail-summary-retry-failure) - (define-key rmail-summary-mode-map "n" 'rmail-summary-next-msg) - (define-key rmail-summary-mode-map "\en" 'rmail-summary-next-all) - (define-key rmail-summary-mode-map "\e\C-n" 'rmail-summary-next-labeled-message) - (define-key rmail-summary-mode-map "o" 'rmail-summary-output) - (define-key rmail-summary-mode-map "\C-o" 'rmail-summary-output-as-seen) - (define-key rmail-summary-mode-map "p" 'rmail-summary-previous-msg) - (define-key rmail-summary-mode-map "\ep" 'rmail-summary-previous-all) - (define-key rmail-summary-mode-map "\e\C-p" 'rmail-summary-previous-labeled-message) - (define-key rmail-summary-mode-map "q" 'rmail-summary-quit) - (define-key rmail-summary-mode-map "Q" 'rmail-summary-wipe) - (define-key rmail-summary-mode-map "r" 'rmail-summary-reply) - (define-key rmail-summary-mode-map "s" 'rmail-summary-expunge-and-save) - ;; See rms's comment in rmail.el -;;; (define-key rmail-summary-mode-map "\er" 'rmail-summary-search-backward) - (define-key rmail-summary-mode-map "\es" 'rmail-summary-search) - (define-key rmail-summary-mode-map "t" 'rmail-summary-toggle-header) - (define-key rmail-summary-mode-map "u" 'rmail-summary-undelete) - (define-key rmail-summary-mode-map "\M-u" 'rmail-summary-undelete-many) - (define-key rmail-summary-mode-map "x" 'rmail-summary-expunge) - (define-key rmail-summary-mode-map "w" 'rmail-summary-output-body) - (define-key rmail-summary-mode-map "v" 'rmail-mime) - (define-key rmail-summary-mode-map "." 'rmail-summary-beginning-of-message) - (define-key rmail-summary-mode-map "/" 'rmail-summary-end-of-message) - (define-key rmail-summary-mode-map "<" 'rmail-summary-first-message) - (define-key rmail-summary-mode-map ">" 'rmail-summary-last-message) - (define-key rmail-summary-mode-map " " 'rmail-summary-scroll-msg-up) - (define-key rmail-summary-mode-map "\177" 'rmail-summary-scroll-msg-down) - (define-key rmail-summary-mode-map "?" 'describe-mode) - (define-key rmail-summary-mode-map "\C-c\C-n" 'rmail-summary-next-same-subject) - (define-key rmail-summary-mode-map "\C-c\C-p" 'rmail-summary-previous-same-subject) - (define-key rmail-summary-mode-map "\C-c\C-s\C-d" - 'rmail-summary-sort-by-date) - (define-key rmail-summary-mode-map "\C-c\C-s\C-s" - 'rmail-summary-sort-by-subject) - (define-key rmail-summary-mode-map "\C-c\C-s\C-a" - 'rmail-summary-sort-by-author) - (define-key rmail-summary-mode-map "\C-c\C-s\C-r" - 'rmail-summary-sort-by-recipient) - (define-key rmail-summary-mode-map "\C-c\C-s\C-c" - 'rmail-summary-sort-by-correspondent) - (define-key rmail-summary-mode-map "\C-c\C-s\C-l" - 'rmail-summary-sort-by-lines) - (define-key rmail-summary-mode-map "\C-c\C-s\C-k" - 'rmail-summary-sort-by-labels) - (define-key rmail-summary-mode-map "\C-x\C-s" 'rmail-summary-save-buffer) - ) - -;;; Menu bar bindings. - -(define-key rmail-summary-mode-map [menu-bar] (make-sparse-keymap)) - -(define-key rmail-summary-mode-map [menu-bar classify] - (cons "Classify" (make-sparse-keymap "Classify"))) - -(define-key rmail-summary-mode-map [menu-bar classify output-menu] - '("Output (Rmail Menu)..." . rmail-summary-output-menu)) - -(define-key rmail-summary-mode-map [menu-bar classify input-menu] - '("Input Rmail File (menu)..." . rmail-input-menu)) - -(define-key rmail-summary-mode-map [menu-bar classify input-menu] - '(nil)) - -(define-key rmail-summary-mode-map [menu-bar classify output-menu] - '(nil)) - -(define-key rmail-summary-mode-map [menu-bar classify output-body] - '("Output body..." . rmail-summary-output-body)) - -(define-key rmail-summary-mode-map [menu-bar classify output-inbox] - '("Output..." . rmail-summary-output)) - -(define-key rmail-summary-mode-map [menu-bar classify output] - '("Output as seen..." . rmail-summary-output-as-seen)) - -(define-key rmail-summary-mode-map [menu-bar classify kill-label] - '("Kill Label..." . rmail-summary-kill-label)) - -(define-key rmail-summary-mode-map [menu-bar classify add-label] - '("Add Label..." . rmail-summary-add-label)) - -(define-key rmail-summary-mode-map [menu-bar summary] - (cons "Summary" (make-sparse-keymap "Summary"))) - -(define-key rmail-summary-mode-map [menu-bar summary senders] - '("By Senders..." . rmail-summary-by-senders)) - -(define-key rmail-summary-mode-map [menu-bar summary labels] - '("By Labels..." . rmail-summary-by-labels)) - -(define-key rmail-summary-mode-map [menu-bar summary recipients] - '("By Recipients..." . rmail-summary-by-recipients)) - -(define-key rmail-summary-mode-map [menu-bar summary topic] - '("By Topic..." . rmail-summary-by-topic)) - -(define-key rmail-summary-mode-map [menu-bar summary regexp] - '("By Regexp..." . rmail-summary-by-regexp)) - -(define-key rmail-summary-mode-map [menu-bar summary all] - '("All" . rmail-summary)) - -(define-key rmail-summary-mode-map [menu-bar mail] - (cons "Mail" (make-sparse-keymap "Mail"))) - -(define-key rmail-summary-mode-map [menu-bar mail rmail-summary-get-new-mail] - '("Get New Mail" . rmail-summary-get-new-mail)) - -(define-key rmail-summary-mode-map [menu-bar mail lambda] - '("----")) - -(define-key rmail-summary-mode-map [menu-bar mail continue] - '("Continue" . rmail-summary-continue)) - -(define-key rmail-summary-mode-map [menu-bar mail resend] - '("Re-send..." . rmail-summary-resend)) - -(define-key rmail-summary-mode-map [menu-bar mail forward] - '("Forward" . rmail-summary-forward)) - -(define-key rmail-summary-mode-map [menu-bar mail retry] - '("Retry" . rmail-summary-retry-failure)) - -(define-key rmail-summary-mode-map [menu-bar mail reply] - '("Reply" . rmail-summary-reply)) - -(define-key rmail-summary-mode-map [menu-bar mail mail] - '("Mail" . rmail-summary-mail)) - -(define-key rmail-summary-mode-map [menu-bar delete] - (cons "Delete" (make-sparse-keymap "Delete"))) - -(define-key rmail-summary-mode-map [menu-bar delete expunge/save] - '("Expunge/Save" . rmail-summary-expunge-and-save)) - -(define-key rmail-summary-mode-map [menu-bar delete expunge] - '("Expunge" . rmail-summary-expunge)) - -(define-key rmail-summary-mode-map [menu-bar delete undelete] - '("Undelete" . rmail-summary-undelete)) - -(define-key rmail-summary-mode-map [menu-bar delete delete] - '("Delete" . rmail-summary-delete-forward)) - -(define-key rmail-summary-mode-map [menu-bar move] - (cons "Move" (make-sparse-keymap "Move"))) - -(define-key rmail-summary-mode-map [menu-bar move search-back] - '("Search Back..." . rmail-summary-search-backward)) - -(define-key rmail-summary-mode-map [menu-bar move search] - '("Search..." . rmail-summary-search)) - -(define-key rmail-summary-mode-map [menu-bar move previous] - '("Previous Nondeleted" . rmail-summary-previous-msg)) - -(define-key rmail-summary-mode-map [menu-bar move next] - '("Next Nondeleted" . rmail-summary-next-msg)) - -(define-key rmail-summary-mode-map [menu-bar move last] - '("Last" . rmail-summary-last-message)) - -(define-key rmail-summary-mode-map [menu-bar move first] - '("First" . rmail-summary-first-message)) - -(define-key rmail-summary-mode-map [menu-bar move previous] - '("Previous" . rmail-summary-previous-all)) - -(define-key rmail-summary-mode-map [menu-bar move next] - '("Next" . rmail-summary-next-all)) (defun rmail-summary-mouse-goto-message (event) "Select the message whose summary line you click on." === modified file 'lisp/menu-bar.el' --- lisp/menu-bar.el 2011-01-25 04:08:28 +0000 +++ lisp/menu-bar.el 2011-02-10 16:56:00 +0000 @@ -28,11 +28,17 @@ ;;; Code: +;; This is referenced by some code below; it is defined in uniquify.el +(defvar uniquify-buffer-name-style) + +;; From emulation/cua-base.el; used below +(defvar cua-enable-cua-keys) + + ;; Don't clobber an existing menu-bar keymap, to preserve any menu-bar key ;; definitions made in loaddefs.el. (or (lookup-key global-map [menu-bar]) (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar"))) -(defvar menu-bar-help-menu (make-sparse-keymap "Help")) (if (not (featurep 'ns)) ;; Force Help item to come last, after the major mode's own items. @@ -52,149 +58,151 @@ (define-key global-map [menu-bar services] ; set-up in ns-win (cons (purecopy "Services") (make-sparse-keymap "Services")))) -;; If running under GNUstep, "Help" is moved and renamed "Info" (see below). -(or (and (featurep 'ns) - (not (eq system-type 'darwin))) - (define-key global-map [menu-bar help-menu] - (cons (purecopy "Help") menu-bar-help-menu))) - -(defvar menu-bar-tools-menu (make-sparse-keymap "Tools")) -(define-key global-map [menu-bar tools] - (cons (purecopy "Tools") menu-bar-tools-menu)) ;; This definition is just to show what this looks like. ;; It gets modified in place when menu-bar-update-buffers is called. (defvar global-buffers-menu-map (make-sparse-keymap "Buffers")) -(define-key global-map [menu-bar buffer] - (cons (purecopy "Buffers") global-buffers-menu-map)) -(defvar menu-bar-options-menu (make-sparse-keymap "Options")) -(define-key global-map [menu-bar options] - (cons (purecopy "Options") menu-bar-options-menu)) -(defvar menu-bar-edit-menu (make-sparse-keymap "Edit")) -(define-key global-map [menu-bar edit] - (cons (purecopy "Edit") menu-bar-edit-menu)) -(defvar menu-bar-file-menu (make-sparse-keymap "File")) -(define-key global-map [menu-bar file] - (cons (purecopy "File") menu-bar-file-menu)) - -;; Put "Help" menu at the front, called "Info". -(and (featurep 'ns) - (not (eq system-type 'darwin)) - (define-key global-map [menu-bar help-menu] - (cons (purecopy "Info") menu-bar-help-menu))) ;; Only declared obsolete (and only made a proper alias) in 23.3. -(define-obsolete-variable-alias 'menu-bar-files-menu 'menu-bar-file-menu "22.1") - -;; This is referenced by some code below; it is defined in uniquify.el -(defvar uniquify-buffer-name-style) - -;; From emulation/cua-base.el; used below -(defvar cua-enable-cua-keys) - - -;; The "File" menu items -(define-key menu-bar-file-menu [exit-emacs] - `(menu-item ,(purecopy "Quit") save-buffers-kill-terminal - :help ,(purecopy "Save unsaved buffers, then exit"))) - -(define-key menu-bar-file-menu [separator-exit] - menu-bar-separator) - -;; Don't use delete-frame as event name because that is a special -;; event. -(define-key menu-bar-file-menu [delete-this-frame] - `(menu-item ,(purecopy "Delete Frame") delete-frame - :visible (fboundp 'delete-frame) - :enable (delete-frame-enabled-p) - :help ,(purecopy "Delete currently selected frame"))) -(define-key menu-bar-file-menu [make-frame-on-display] - `(menu-item ,(purecopy "New Frame on Display...") make-frame-on-display - :visible (fboundp 'make-frame-on-display) - :help ,(purecopy "Open a new frame on another display"))) -(define-key menu-bar-file-menu [make-frame] - `(menu-item ,(purecopy "New Frame") make-frame-command - :visible (fboundp 'make-frame-command) - :help ,(purecopy "Open a new frame"))) - -(define-key menu-bar-file-menu [one-window] - `(menu-item ,(purecopy "Remove Splits") delete-other-windows - :enable (not (one-window-p t nil)) - :help ,(purecopy "Selected window grows to fill the whole frame"))) - -(define-key menu-bar-file-menu [split-window] - `(menu-item ,(purecopy "Split Window") split-window-vertically - :enable (and (menu-bar-menu-frame-live-and-visible-p) - (menu-bar-non-minibuffer-window-p)) - :help ,(purecopy "Split selected window in two windows"))) - -(define-key menu-bar-file-menu [separator-window] - menu-bar-separator) - -(define-key menu-bar-file-menu [ps-print-region] - `(menu-item ,(purecopy "Postscript Print Region (B+W)") ps-print-region - :enable mark-active - :help ,(purecopy "Pretty-print marked region in black and white to PostScript printer"))) -(define-key menu-bar-file-menu [ps-print-buffer] - `(menu-item ,(purecopy "Postscript Print Buffer (B+W)") ps-print-buffer - :enable (menu-bar-menu-frame-live-and-visible-p) - :help ,(purecopy "Pretty-print current buffer in black and white to PostScript printer"))) -(define-key menu-bar-file-menu [ps-print-region-faces] - `(menu-item ,(purecopy "Postscript Print Region") ps-print-region-with-faces - :enable mark-active - :help ,(purecopy "Pretty-print marked region to PostScript printer"))) -(define-key menu-bar-file-menu [ps-print-buffer-faces] - `(menu-item ,(purecopy "Postscript Print Buffer") ps-print-buffer-with-faces - :enable (menu-bar-menu-frame-live-and-visible-p) - :help ,(purecopy "Pretty-print current buffer to PostScript printer"))) -(define-key menu-bar-file-menu [print-region] - `(menu-item ,(purecopy "Print Region") print-region - :enable mark-active - :help ,(purecopy "Print region between mark and current position"))) -(define-key menu-bar-file-menu [print-buffer] - `(menu-item ,(purecopy "Print Buffer") print-buffer - :enable (menu-bar-menu-frame-live-and-visible-p) - :help ,(purecopy "Print current buffer with page headings"))) - -(define-key menu-bar-file-menu [separator-print] - menu-bar-separator) - -(define-key menu-bar-file-menu [recover-session] - `(menu-item ,(purecopy "Recover Crashed Session") recover-session - :enable (and auto-save-list-file-prefix - (file-directory-p - (file-name-directory auto-save-list-file-prefix)) - (directory-files - (file-name-directory auto-save-list-file-prefix) - nil - (concat "\\`" - (regexp-quote - (file-name-nondirectory - auto-save-list-file-prefix))) - t)) - :help ,(purecopy "Recover edits from a crashed session"))) -(define-key menu-bar-file-menu [revert-buffer] - `(menu-item ,(purecopy "Revert Buffer") revert-buffer - :enable (or revert-buffer-function - revert-buffer-insert-file-contents-function - (and buffer-file-number - (or (buffer-modified-p) - (not (verify-visited-file-modtime - (current-buffer)))))) - :help ,(purecopy "Re-read current buffer from its file"))) -(define-key menu-bar-file-menu [write-file] - `(menu-item ,(purecopy "Save As...") write-file - :enable (and (menu-bar-menu-frame-live-and-visible-p) - (menu-bar-non-minibuffer-window-p)) - :help ,(purecopy "Write current buffer to another file"))) -(define-key menu-bar-file-menu [save-buffer] - `(menu-item ,(purecopy "Save") save-buffer - :enable (and (buffer-modified-p) - (buffer-file-name) - (menu-bar-non-minibuffer-window-p)) - :help ,(purecopy "Save current buffer to its file"))) - -(define-key menu-bar-file-menu [separator-save] - menu-bar-separator) +(define-obsolete-variable-alias + 'menu-bar-files-menu 'menu-bar-file-menu "22.1") +(defvar menu-bar-file-menu + (let ((menu (make-sparse-keymap "File"))) + + ;; The "File" menu items + (define-key menu [exit-emacs] + `(menu-item ,(purecopy "Quit") save-buffers-kill-terminal + :help ,(purecopy "Save unsaved buffers, then exit"))) + + (define-key menu [separator-exit] + menu-bar-separator) + + ;; Don't use delete-frame as event name because that is a special + ;; event. + (define-key menu [delete-this-frame] + `(menu-item ,(purecopy "Delete Frame") delete-frame + :visible (fboundp 'delete-frame) + :enable (delete-frame-enabled-p) + :help ,(purecopy "Delete currently selected frame"))) + (define-key menu [make-frame-on-display] + `(menu-item ,(purecopy "New Frame on Display...") make-frame-on-display + :visible (fboundp 'make-frame-on-display) + :help ,(purecopy "Open a new frame on another display"))) + (define-key menu [make-frame] + `(menu-item ,(purecopy "New Frame") make-frame-command + :visible (fboundp 'make-frame-command) + :help ,(purecopy "Open a new frame"))) + + (define-key menu [one-window] + `(menu-item ,(purecopy "Remove Splits") delete-other-windows + :enable (not (one-window-p t nil)) + :help ,(purecopy + "Selected window grows to fill the whole frame"))) + + (define-key menu [split-window] + `(menu-item ,(purecopy "Split Window") split-window-vertically + :enable (and (menu-bar-menu-frame-live-and-visible-p) + (menu-bar-non-minibuffer-window-p)) + :help ,(purecopy "Split selected window in two windows"))) + + (define-key menu [separator-window] + menu-bar-separator) + + (define-key menu [ps-print-region] + `(menu-item ,(purecopy "Postscript Print Region (B+W)") ps-print-region + :enable mark-active + :help ,(purecopy "Pretty-print marked region in black and white to PostScript printer"))) + (define-key menu [ps-print-buffer] + `(menu-item ,(purecopy "Postscript Print Buffer (B+W)") ps-print-buffer + :enable (menu-bar-menu-frame-live-and-visible-p) + :help ,(purecopy "Pretty-print current buffer in black and white to PostScript printer"))) + (define-key menu [ps-print-region-faces] + `(menu-item ,(purecopy "Postscript Print Region") + ps-print-region-with-faces + :enable mark-active + :help ,(purecopy + "Pretty-print marked region to PostScript printer"))) + (define-key menu [ps-print-buffer-faces] + `(menu-item ,(purecopy "Postscript Print Buffer") + ps-print-buffer-with-faces + :enable (menu-bar-menu-frame-live-and-visible-p) + :help ,(purecopy "Pretty-print current buffer to PostScript printer"))) + (define-key menu [print-region] + `(menu-item ,(purecopy "Print Region") print-region + :enable mark-active + :help ,(purecopy "Print region between mark and current position"))) + (define-key menu [print-buffer] + `(menu-item ,(purecopy "Print Buffer") print-buffer + :enable (menu-bar-menu-frame-live-and-visible-p) + :help ,(purecopy "Print current buffer with page headings"))) + + (define-key menu [separator-print] + menu-bar-separator) + + (define-key menu [recover-session] + `(menu-item ,(purecopy "Recover Crashed Session") recover-session + :enable + (and auto-save-list-file-prefix + (file-directory-p + (file-name-directory auto-save-list-file-prefix)) + (directory-files + (file-name-directory auto-save-list-file-prefix) + nil + (concat "\\`" + (regexp-quote + (file-name-nondirectory + auto-save-list-file-prefix))) + t)) + :help ,(purecopy "Recover edits from a crashed session"))) + (define-key menu [revert-buffer] + `(menu-item ,(purecopy "Revert Buffer") revert-buffer + :enable (or revert-buffer-function + revert-buffer-insert-file-contents-function + (and buffer-file-number + (or (buffer-modified-p) + (not (verify-visited-file-modtime + (current-buffer)))))) + :help ,(purecopy "Re-read current buffer from its file"))) + (define-key menu [write-file] + `(menu-item ,(purecopy "Save As...") write-file + :enable (and (menu-bar-menu-frame-live-and-visible-p) + (menu-bar-non-minibuffer-window-p)) + :help ,(purecopy "Write current buffer to another file"))) + (define-key menu [save-buffer] + `(menu-item ,(purecopy "Save") save-buffer + :enable (and (buffer-modified-p) + (buffer-file-name) + (menu-bar-non-minibuffer-window-p)) + :help ,(purecopy "Save current buffer to its file"))) + + (define-key menu [separator-save] + menu-bar-separator) + + + (define-key menu [kill-buffer] + `(menu-item ,(purecopy "Close") kill-this-buffer + :enable (kill-this-buffer-enabled-p) + :help ,(purecopy "Discard (kill) current buffer"))) + (define-key menu [insert-file] + `(menu-item ,(purecopy "Insert File...") insert-file + :enable (menu-bar-non-minibuffer-window-p) + :help ,(purecopy "Insert another file into current buffer"))) + (define-key menu [dired] + `(menu-item ,(purecopy "Open Directory...") dired + :enable (menu-bar-non-minibuffer-window-p) + :help ,(purecopy + "Read a directory, to operate on its files"))) + (define-key menu [open-file] + `(menu-item ,(purecopy "Open File...") menu-find-file-existing + :enable (menu-bar-non-minibuffer-window-p) + :help ,(purecopy + "Read an existing file into an Emacs buffer"))) + (define-key menu [new-file] + `(menu-item ,(purecopy "Visit New File...") find-file + :enable (menu-bar-non-minibuffer-window-p) + :help ,(purecopy + "Specify a new file's name, to edit the file"))) + + menu)) (defun menu-find-file-existing () "Edit the existing file FILENAME." @@ -206,31 +214,6 @@ (find-file-existing filename) (find-file filename)))) - -(define-key menu-bar-file-menu [kill-buffer] - `(menu-item ,(purecopy "Close") kill-this-buffer - :enable (kill-this-buffer-enabled-p) - :help ,(purecopy "Discard (kill) current buffer"))) -(define-key menu-bar-file-menu [insert-file] - `(menu-item ,(purecopy "Insert File...") insert-file - :enable (menu-bar-non-minibuffer-window-p) - :help ,(purecopy "Insert another file into current buffer"))) -(define-key menu-bar-file-menu [dired] - `(menu-item ,(purecopy "Open Directory...") dired - :enable (menu-bar-non-minibuffer-window-p) - :help ,(purecopy "Read a directory, to operate on its files"))) -(define-key menu-bar-file-menu [open-file] - `(menu-item ,(purecopy "Open File...") menu-find-file-existing - :enable (menu-bar-non-minibuffer-window-p) - :help ,(purecopy "Read an existing file into an Emacs buffer"))) -(define-key menu-bar-file-menu [new-file] - `(menu-item ,(purecopy "Visit New File...") find-file - :enable (menu-bar-non-minibuffer-window-p) - :help ,(purecopy "Specify a new file's name, to edit the file"))) - - -;; The "Edit" menu items - ;; The "Edit->Search" submenu (defvar menu-bar-last-search-type nil "Type of last non-incremental search command called from the menu.") @@ -297,131 +280,253 @@ (isearch-update-ring string t) (re-search-backward string))) -(defvar menu-bar-search-menu (make-sparse-keymap "Search")) - ;; The Edit->Search->Incremental Search menu (defvar menu-bar-i-search-menu - (make-sparse-keymap "Incremental Search")) - -(define-key menu-bar-i-search-menu [isearch-backward-regexp] - `(menu-item ,(purecopy "Backward Regexp...") isearch-backward-regexp - :help ,(purecopy "Search backwards for a regular expression as you type it"))) -(define-key menu-bar-i-search-menu [isearch-forward-regexp] - `(menu-item ,(purecopy "Forward Regexp...") isearch-forward-regexp - :help ,(purecopy "Search forward for a regular expression as you type it"))) -(define-key menu-bar-i-search-menu [isearch-backward] - `(menu-item ,(purecopy "Backward String...") isearch-backward - :help ,(purecopy "Search backwards for a string as you type it"))) -(define-key menu-bar-i-search-menu [isearch-forward] - `(menu-item ,(purecopy "Forward String...") isearch-forward - :help ,(purecopy "Search forward for a string as you type it"))) - -(define-key menu-bar-search-menu [i-search] - `(menu-item ,(purecopy "Incremental Search") ,menu-bar-i-search-menu)) -(define-key menu-bar-search-menu [separator-tag-isearch] - menu-bar-separator) - -(define-key menu-bar-search-menu [tags-continue] - `(menu-item ,(purecopy "Continue Tags Search") tags-loop-continue - :help ,(purecopy "Continue last tags search operation"))) -(define-key menu-bar-search-menu [tags-srch] - `(menu-item ,(purecopy "Search Tagged Files...") tags-search - :help ,(purecopy "Search for a regexp in all tagged files"))) -(define-key menu-bar-search-menu [separator-tag-search] - menu-bar-separator) - -(define-key menu-bar-search-menu [repeat-search-back] - `(menu-item ,(purecopy "Repeat Backwards") nonincremental-repeat-search-backward - :enable (or (and (eq menu-bar-last-search-type 'string) - search-ring) - (and (eq menu-bar-last-search-type 'regexp) - regexp-search-ring)) - :help ,(purecopy "Repeat last search backwards"))) -(define-key menu-bar-search-menu [repeat-search-fwd] - `(menu-item ,(purecopy "Repeat Forward") nonincremental-repeat-search-forward - :enable (or (and (eq menu-bar-last-search-type 'string) - search-ring) - (and (eq menu-bar-last-search-type 'regexp) - regexp-search-ring)) - :help ,(purecopy "Repeat last search forward"))) -(define-key menu-bar-search-menu [separator-repeat-search] - menu-bar-separator) - -(define-key menu-bar-search-menu [re-search-backward] - `(menu-item ,(purecopy "Regexp Backwards...") nonincremental-re-search-backward - :help ,(purecopy "Search backwards for a regular expression"))) -(define-key menu-bar-search-menu [re-search-forward] - `(menu-item ,(purecopy "Regexp Forward...") nonincremental-re-search-forward - :help ,(purecopy "Search forward for a regular expression"))) - -(define-key menu-bar-search-menu [search-backward] - `(menu-item ,(purecopy "String Backwards...") nonincremental-search-backward - :help ,(purecopy "Search backwards for a string"))) -(define-key menu-bar-search-menu [search-forward] - `(menu-item ,(purecopy "String Forward...") nonincremental-search-forward - :help ,(purecopy "Search forward for a string"))) + (let ((menu (make-sparse-keymap "Incremental Search"))) + (define-key menu [isearch-backward-regexp] + `(menu-item ,(purecopy "Backward Regexp...") isearch-backward-regexp + :help ,(purecopy + "Search backwards for a regular expression as you type it"))) + (define-key menu [isearch-forward-regexp] + `(menu-item ,(purecopy "Forward Regexp...") isearch-forward-regexp + :help ,(purecopy + "Search forward for a regular expression as you type it"))) + (define-key menu [isearch-backward] + `(menu-item ,(purecopy "Backward String...") isearch-backward + :help ,(purecopy "Search backwards for a string as you type it"))) + (define-key menu [isearch-forward] + `(menu-item ,(purecopy "Forward String...") isearch-forward + :help ,(purecopy "Search forward for a string as you type it"))) + menu)) + +(defvar menu-bar-search-menu + (let ((menu (make-sparse-keymap "Search"))) + + (define-key menu [i-search] + `(menu-item ,(purecopy "Incremental Search") ,menu-bar-i-search-menu)) + (define-key menu [separator-tag-isearch] + menu-bar-separator) + + (define-key menu [tags-continue] + `(menu-item ,(purecopy "Continue Tags Search") tags-loop-continue + :help ,(purecopy "Continue last tags search operation"))) + (define-key menu [tags-srch] + `(menu-item ,(purecopy "Search Tagged Files...") tags-search + :help ,(purecopy "Search for a regexp in all tagged files"))) + (define-key menu [separator-tag-search] menu-bar-separator) + + (define-key menu [repeat-search-back] + `(menu-item ,(purecopy "Repeat Backwards") + nonincremental-repeat-search-backward + :enable (or (and (eq menu-bar-last-search-type 'string) + search-ring) + (and (eq menu-bar-last-search-type 'regexp) + regexp-search-ring)) + :help ,(purecopy "Repeat last search backwards"))) + (define-key menu [repeat-search-fwd] + `(menu-item ,(purecopy "Repeat Forward") + nonincremental-repeat-search-forward + :enable (or (and (eq menu-bar-last-search-type 'string) + search-ring) + (and (eq menu-bar-last-search-type 'regexp) + regexp-search-ring)) + :help ,(purecopy "Repeat last search forward"))) + (define-key menu [separator-repeat-search] + menu-bar-separator) + + (define-key menu [re-search-backward] + `(menu-item ,(purecopy "Regexp Backwards...") + nonincremental-re-search-backward + :help ,(purecopy + "Search backwards for a regular expression"))) + (define-key menu [re-search-forward] + `(menu-item ,(purecopy "Regexp Forward...") + nonincremental-re-search-forward + :help ,(purecopy "Search forward for a regular expression"))) + + (define-key menu [search-backward] + `(menu-item ,(purecopy "String Backwards...") + nonincremental-search-backward + :help ,(purecopy "Search backwards for a string"))) + (define-key menu [search-forward] + `(menu-item ,(purecopy "String Forward...") nonincremental-search-forward + :help ,(purecopy "Search forward for a string"))) + menu)) ;; The Edit->Replace submenu -(defvar menu-bar-replace-menu (make-sparse-keymap "Replace")) - -(define-key menu-bar-replace-menu [tags-repl-continue] - `(menu-item ,(purecopy "Continue Replace") tags-loop-continue - :help ,(purecopy "Continue last tags replace operation"))) -(define-key menu-bar-replace-menu [tags-repl] - `(menu-item ,(purecopy "Replace in Tagged Files...") tags-query-replace - :help ,(purecopy "Interactively replace a regexp in all tagged files"))) -(define-key menu-bar-replace-menu [separator-replace-tags] - menu-bar-separator) - -(define-key menu-bar-replace-menu [query-replace-regexp] - `(menu-item ,(purecopy "Replace Regexp...") query-replace-regexp - :enable (not buffer-read-only) - :help ,(purecopy "Replace regular expression interactively, ask about each occurrence"))) -(define-key menu-bar-replace-menu [query-replace] - `(menu-item ,(purecopy "Replace String...") query-replace - :enable (not buffer-read-only) - :help ,(purecopy "Replace string interactively, ask about each occurrence"))) +(defvar menu-bar-replace-menu + (let ((menu (make-sparse-keymap "Replace"))) + (define-key menu [tags-repl-continue] + `(menu-item ,(purecopy "Continue Replace") tags-loop-continue + :help ,(purecopy "Continue last tags replace operation"))) + (define-key menu [tags-repl] + `(menu-item ,(purecopy "Replace in Tagged Files...") tags-query-replace + :help ,(purecopy + "Interactively replace a regexp in all tagged files"))) + (define-key menu [separator-replace-tags] + menu-bar-separator) + + (define-key menu [query-replace-regexp] + `(menu-item ,(purecopy "Replace Regexp...") query-replace-regexp + :enable (not buffer-read-only) + :help ,(purecopy "Replace regular expression interactively, ask about each occurrence"))) + (define-key menu [query-replace] + `(menu-item ,(purecopy "Replace String...") query-replace + :enable (not buffer-read-only) + :help ,(purecopy + "Replace string interactively, ask about each occurrence"))) + menu)) ;;; Assemble the top-level Edit menu items. -(define-key menu-bar-edit-menu [props] - `(menu-item ,(purecopy "Text Properties") facemenu-menu)) - -;; ns-win.el said: Add spell for platorm consistency. -(if (featurep 'ns) - (define-key menu-bar-edit-menu [spell] - `(menu-item ,(purecopy "Spell") ispell-menu-map))) - -(define-key menu-bar-edit-menu [fill] - `(menu-item ,(purecopy "Fill") fill-region - :enable (and mark-active (not buffer-read-only)) - :help - ,(purecopy "Fill text in region to fit between left and right margin"))) - -(define-key menu-bar-edit-menu [separator-bookmark] - menu-bar-separator) - -(define-key menu-bar-edit-menu [bookmark] - `(menu-item ,(purecopy "Bookmarks") menu-bar-bookmark-map)) - -(defvar menu-bar-goto-menu (make-sparse-keymap "Go To")) - -(define-key menu-bar-goto-menu [set-tags-name] - `(menu-item ,(purecopy "Set Tags File Name...") visit-tags-table - :help ,(purecopy "Tell Tags commands which tag table file to use"))) - -(define-key menu-bar-goto-menu [separator-tag-file] - menu-bar-separator) - -(define-key menu-bar-goto-menu [apropos-tags] - `(menu-item ,(purecopy "Tags Apropos...") tags-apropos - :help ,(purecopy "Find function/variables whose names match regexp"))) -(define-key menu-bar-goto-menu [next-tag-otherw] - `(menu-item ,(purecopy "Next Tag in Other Window") - menu-bar-next-tag-other-window - :enable (and (boundp 'tags-location-ring) - (not (ring-empty-p tags-location-ring))) - :help ,(purecopy "Find next function/variable matching last tag name in another window"))) +(defvar menu-bar-goto-menu + (let ((menu (make-sparse-keymap "Go To"))) + + (define-key menu [set-tags-name] + `(menu-item ,(purecopy "Set Tags File Name...") visit-tags-table + :help ,(purecopy "Tell Tags commands which tag table file to use"))) + + (define-key menu [separator-tag-file] + menu-bar-separator) + + (define-key menu [apropos-tags] + `(menu-item ,(purecopy "Tags Apropos...") tags-apropos + :help ,(purecopy "Find function/variables whose names match regexp"))) + (define-key menu [next-tag-otherw] + `(menu-item ,(purecopy "Next Tag in Other Window") + menu-bar-next-tag-other-window + :enable (and (boundp 'tags-location-ring) + (not (ring-empty-p tags-location-ring))) + :help ,(purecopy "Find next function/variable matching last tag name in another window"))) + + (define-key menu [next-tag] + `(menu-item ,(purecopy "Find Next Tag") + menu-bar-next-tag + :enable (and (boundp 'tags-location-ring) + (not (ring-empty-p tags-location-ring))) + :help ,(purecopy "Find next function/variable matching last tag name"))) + (define-key menu [find-tag-otherw] + `(menu-item ,(purecopy "Find Tag in Other Window...") find-tag-other-window + :help ,(purecopy "Find function/variable definition in another window"))) + (define-key menu [find-tag] + `(menu-item ,(purecopy "Find Tag...") find-tag + :help ,(purecopy "Find definition of function or variable"))) + + (define-key menu [separator-tags] + menu-bar-separator) + + (define-key menu [end-of-buf] + `(menu-item ,(purecopy "Goto End of Buffer") end-of-buffer)) + (define-key menu [beg-of-buf] + `(menu-item ,(purecopy "Goto Beginning of Buffer") beginning-of-buffer)) + (define-key menu [go-to-pos] + `(menu-item ,(purecopy "Goto Buffer Position...") goto-char + :help ,(purecopy "Read a number N and go to buffer position N"))) + (define-key menu [go-to-line] + `(menu-item ,(purecopy "Goto Line...") goto-line + :help ,(purecopy "Read a line number and go to that line"))) + menu)) + + +(defvar yank-menu (cons (purecopy "Select Yank") nil)) +(fset 'yank-menu (cons 'keymap yank-menu)) + +(defvar menu-bar-edit-menu + (let ((menu (make-sparse-keymap "Edit"))) + + (define-key menu [props] + `(menu-item ,(purecopy "Text Properties") facemenu-menu)) + + ;; ns-win.el said: Add spell for platorm consistency. + (if (featurep 'ns) + (define-key menu [spell] + `(menu-item ,(purecopy "Spell") ispell-menu-map))) + + (define-key menu [fill] + `(menu-item ,(purecopy "Fill") fill-region + :enable (and mark-active (not buffer-read-only)) + :help + ,(purecopy "Fill text in region to fit between left and right margin"))) + + (define-key menu [separator-bookmark] + menu-bar-separator) + + (define-key menu [bookmark] + `(menu-item ,(purecopy "Bookmarks") menu-bar-bookmark-map)) + + (define-key menu [goto] + `(menu-item ,(purecopy "Go To") ,menu-bar-goto-menu)) + + (define-key menu [replace] + `(menu-item ,(purecopy "Replace") ,menu-bar-replace-menu)) + + (define-key menu [search] + `(menu-item ,(purecopy "Search") ,menu-bar-search-menu)) + + (define-key menu [separator-search] + menu-bar-separator) + + (define-key menu [mark-whole-buffer] + `(menu-item ,(purecopy "Select All") mark-whole-buffer + :help ,(purecopy "Mark the whole buffer for a subsequent cut/copy"))) + (define-key menu [clear] + `(menu-item ,(purecopy "Clear") delete-region + :enable (and mark-active + (not buffer-read-only)) + :help + ,(purecopy "Delete the text in region between mark and current position"))) + + + (define-key menu (if (featurep 'ns) [select-paste] + [paste-from-menu]) + ;; ns-win.el said: Change text to be more consistent with + ;; surrounding menu items `paste', etc." + `(menu-item ,(purecopy (if (featurep 'ns) "Select and Paste" + "Paste from Kill Menu")) yank-menu + :enable (and (cdr yank-menu) (not buffer-read-only)) + :help ,(purecopy "Choose a string from the kill ring and paste it"))) + (define-key menu [paste] + `(menu-item ,(purecopy "Paste") yank + :enable (and (or + ;; Emacs compiled --without-x (or --with-ns) + ;; doesn't have x-selection-exists-p. + (and (fboundp 'x-selection-exists-p) + (x-selection-exists-p 'CLIPBOARD)) + (if (featurep 'ns) ; like paste-from-menu + (cdr yank-menu) + kill-ring)) + (not buffer-read-only)) + :help ,(purecopy "Paste (yank) text most recently cut/copied"))) + (define-key menu [copy] + ;; ns-win.el said: Substitute a Copy function that works better + ;; under X (for GNUstep). + `(menu-item ,(purecopy "Copy") ,(if (featurep 'ns) + 'ns-copy-including-secondary + 'kill-ring-save) + :enable mark-active + :help ,(purecopy "Copy text in region between mark and current position") + :keys ,(purecopy (if (featurep 'ns) + "\\[ns-copy-including-secondary]" + "\\[kill-ring-save]")))) + (define-key menu [cut] + `(menu-item ,(purecopy "Cut") kill-region + :enable (and mark-active (not buffer-read-only)) + :help + ,(purecopy "Cut (kill) text in region between mark and current position"))) + ;; ns-win.el said: Separate undo from cut/paste section. + (if (featurep 'ns) + (define-key menu [separator-undo] menu-bar-separator)) + + (define-key menu [undo] + `(menu-item ,(purecopy "Undo") undo + :enable (and (not buffer-read-only) + (not (eq t buffer-undo-list)) + (if (eq last-command 'undo) + (listp pending-undo-list) + (consp buffer-undo-list))) + :help ,(purecopy "Undo last operation"))) + + menu)) (defun menu-bar-next-tag-other-window () "Find the next definition of the tag already specified." @@ -433,105 +538,6 @@ (interactive) (find-tag nil t)) -(define-key menu-bar-goto-menu [next-tag] - `(menu-item ,(purecopy "Find Next Tag") - menu-bar-next-tag - :enable (and (boundp 'tags-location-ring) - (not (ring-empty-p tags-location-ring))) - :help ,(purecopy "Find next function/variable matching last tag name"))) -(define-key menu-bar-goto-menu [find-tag-otherw] - `(menu-item ,(purecopy "Find Tag in Other Window...") find-tag-other-window - :help ,(purecopy "Find function/variable definition in another window"))) -(define-key menu-bar-goto-menu [find-tag] - `(menu-item ,(purecopy "Find Tag...") find-tag - :help ,(purecopy "Find definition of function or variable"))) - -(define-key menu-bar-goto-menu [separator-tags] - menu-bar-separator) - -(define-key menu-bar-goto-menu [end-of-buf] - `(menu-item ,(purecopy "Goto End of Buffer") end-of-buffer)) -(define-key menu-bar-goto-menu [beg-of-buf] - `(menu-item ,(purecopy "Goto Beginning of Buffer") beginning-of-buffer)) -(define-key menu-bar-goto-menu [go-to-pos] - `(menu-item ,(purecopy "Goto Buffer Position...") goto-char - :help ,(purecopy "Read a number N and go to buffer position N"))) -(define-key menu-bar-goto-menu [go-to-line] - `(menu-item ,(purecopy "Goto Line...") goto-line - :help ,(purecopy "Read a line number and go to that line"))) - -(define-key menu-bar-edit-menu [goto] - `(menu-item ,(purecopy "Go To") ,menu-bar-goto-menu)) - -(define-key menu-bar-edit-menu [replace] - `(menu-item ,(purecopy "Replace") ,menu-bar-replace-menu)) - -(define-key menu-bar-edit-menu [search] - `(menu-item ,(purecopy "Search") ,menu-bar-search-menu)) - -(define-key menu-bar-edit-menu [separator-search] - menu-bar-separator) - -(define-key menu-bar-edit-menu [mark-whole-buffer] - `(menu-item ,(purecopy "Select All") mark-whole-buffer - :help ,(purecopy "Mark the whole buffer for a subsequent cut/copy"))) -(define-key menu-bar-edit-menu [clear] - `(menu-item ,(purecopy "Clear") delete-region - :enable (and mark-active - (not buffer-read-only)) - :help - ,(purecopy "Delete the text in region between mark and current position"))) -(defvar yank-menu (cons (purecopy "Select Yank") nil)) -(fset 'yank-menu (cons 'keymap yank-menu)) -(define-key menu-bar-edit-menu (if (featurep 'ns) [select-paste] - [paste-from-menu]) - ;; ns-win.el said: Change text to be more consistent with - ;; surrounding menu items `paste', etc." - `(menu-item ,(purecopy (if (featurep 'ns) "Select and Paste" - "Paste from Kill Menu")) yank-menu - :enable (and (cdr yank-menu) (not buffer-read-only)) - :help ,(purecopy "Choose a string from the kill ring and paste it"))) -(define-key menu-bar-edit-menu [paste] - `(menu-item ,(purecopy "Paste") yank - :enable (and (or - ;; Emacs compiled --without-x (or --with-ns) - ;; doesn't have x-selection-exists-p. - (and (fboundp 'x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) - (if (featurep 'ns) ; like paste-from-menu - (cdr yank-menu) - kill-ring)) - (not buffer-read-only)) - :help ,(purecopy "Paste (yank) text most recently cut/copied"))) -(define-key menu-bar-edit-menu [copy] - ;; ns-win.el said: Substitute a Copy function that works better - ;; under X (for GNUstep). - `(menu-item ,(purecopy "Copy") ,(if (featurep 'ns) - 'ns-copy-including-secondary - 'kill-ring-save) - :enable mark-active - :help ,(purecopy "Copy text in region between mark and current position") - :keys ,(purecopy (if (featurep 'ns) - "\\[ns-copy-including-secondary]" - "\\[kill-ring-save]")))) -(define-key menu-bar-edit-menu [cut] - `(menu-item ,(purecopy "Cut") kill-region - :enable (and mark-active (not buffer-read-only)) - :help - ,(purecopy "Cut (kill) text in region between mark and current position"))) -;; ns-win.el said: Separate undo from cut/paste section. -(if (featurep 'ns) - (define-key menu-bar-edit-menu [separator-undo] menu-bar-separator)) - -(define-key menu-bar-edit-menu [undo] - `(menu-item ,(purecopy "Undo") undo - :enable (and (not buffer-read-only) - (not (eq t buffer-undo-list)) - (if (eq last-command 'undo) - (listp pending-undo-list) - (consp buffer-undo-list))) - :help ,(purecopy "Undo last operation"))) - (define-obsolete-function-alias 'menu-bar-kill-ring-save 'kill-ring-save "24.1") @@ -581,48 +587,49 @@ ;; The "Options" menu items -(defvar menu-bar-custom-menu (make-sparse-keymap "Customize")) - -(define-key menu-bar-custom-menu [customize-apropos-faces] - `(menu-item ,(purecopy "Faces Matching...") customize-apropos-faces - :help ,(purecopy "Browse faces matching a regexp or word list"))) -(define-key menu-bar-custom-menu [customize-apropos-options] - `(menu-item ,(purecopy "Options Matching...") customize-apropos-options - :help ,(purecopy "Browse options matching a regexp or word list"))) -(define-key menu-bar-custom-menu [customize-apropos] - `(menu-item ,(purecopy "All Settings Matching...") customize-apropos - :help ,(purecopy "Browse customizable settings matching a regexp or word list"))) -(define-key menu-bar-custom-menu [separator-1] - menu-bar-separator) -(define-key menu-bar-custom-menu [customize-group] - `(menu-item ,(purecopy "Specific Group...") customize-group - :help ,(purecopy "Customize settings of specific group"))) -(define-key menu-bar-custom-menu [customize-face] - `(menu-item ,(purecopy "Specific Face...") customize-face - :help ,(purecopy "Customize attributes of specific face"))) -(define-key menu-bar-custom-menu [customize-option] - `(menu-item ,(purecopy "Specific Option...") customize-option - :help ,(purecopy "Customize value of specific option"))) -(define-key menu-bar-custom-menu [separator-2] - menu-bar-separator) -(define-key menu-bar-custom-menu [customize-changed-options] - `(menu-item ,(purecopy "New Options...") customize-changed-options - :help ,(purecopy "Options added or changed in recent Emacs versions"))) -(define-key menu-bar-custom-menu [customize-saved] - `(menu-item ,(purecopy "Saved Options") customize-saved - :help ,(purecopy "Customize previously saved options"))) -(define-key menu-bar-custom-menu [separator-3] - menu-bar-separator) -(define-key menu-bar-custom-menu [customize-browse] - `(menu-item ,(purecopy "Browse Customization Groups") customize-browse - :help ,(purecopy "Browse all customization groups"))) -(define-key menu-bar-custom-menu [customize] - `(menu-item ,(purecopy "Top-level Customization Group") customize - :help ,(purecopy "The master group called `Emacs'"))) -(define-key menu-bar-custom-menu [customize-themes] - `(menu-item ,(purecopy "Custom Themes") customize-themes - :help ,(purecopy "Choose a pre-defined customization theme"))) - +(defvar menu-bar-custom-menu + (let ((menu (make-sparse-keymap "Customize"))) + + (define-key menu [customize-apropos-faces] + `(menu-item ,(purecopy "Faces Matching...") customize-apropos-faces + :help ,(purecopy "Browse faces matching a regexp or word list"))) + (define-key menu [customize-apropos-options] + `(menu-item ,(purecopy "Options Matching...") customize-apropos-options + :help ,(purecopy "Browse options matching a regexp or word list"))) + (define-key menu [customize-apropos] + `(menu-item ,(purecopy "All Settings Matching...") customize-apropos + :help ,(purecopy "Browse customizable settings matching a regexp or word list"))) + (define-key menu [separator-1] + menu-bar-separator) + (define-key menu [customize-group] + `(menu-item ,(purecopy "Specific Group...") customize-group + :help ,(purecopy "Customize settings of specific group"))) + (define-key menu [customize-face] + `(menu-item ,(purecopy "Specific Face...") customize-face + :help ,(purecopy "Customize attributes of specific face"))) + (define-key menu [customize-option] + `(menu-item ,(purecopy "Specific Option...") customize-option + :help ,(purecopy "Customize value of specific option"))) + (define-key menu [separator-2] + menu-bar-separator) + (define-key menu [customize-changed-options] + `(menu-item ,(purecopy "New Options...") customize-changed-options + :help ,(purecopy "Options added or changed in recent Emacs versions"))) + (define-key menu [customize-saved] + `(menu-item ,(purecopy "Saved Options") customize-saved + :help ,(purecopy "Customize previously saved options"))) + (define-key menu [separator-3] + menu-bar-separator) + (define-key menu [customize-browse] + `(menu-item ,(purecopy "Browse Customization Groups") customize-browse + :help ,(purecopy "Browse all customization groups"))) + (define-key menu [customize] + `(menu-item ,(purecopy "Top-level Customization Group") customize + :help ,(purecopy "The master group called `Emacs'"))) + (define-key menu [customize-themes] + `(menu-item ,(purecopy "Custom Themes") customize-themes + :help ,(purecopy "Choose a pre-defined customization theme"))) + menu)) ;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences")) (defmacro menu-bar-make-mm-toggle (fname doc help &optional props) @@ -692,12 +699,6 @@ (custom-push-theme 'theme-face 'default 'user 'set spec) (put 'default 'face-modified nil)))) - - -;;; Assemble all the top-level items of the "Options" menu -(define-key menu-bar-options-menu [customize] - `(menu-item ,(purecopy "Customize Emacs") ,menu-bar-custom-menu)) - (defun menu-bar-options-save () "Save current values of Options menu items using Custom." (interactive) @@ -745,276 +746,204 @@ (when need-save (custom-save-all)))) -(define-key menu-bar-options-menu [package] - '(menu-item "Manage Emacs Packages" package-list-packages - :help "Install or uninstall additional Emacs packages")) - -(define-key menu-bar-options-menu [save] - `(menu-item ,(purecopy "Save Options") menu-bar-options-save - :help ,(purecopy "Save options set from the menu above"))) - -(define-key menu-bar-options-menu [custom-separator] - menu-bar-separator) - -(define-key menu-bar-options-menu [menu-set-font] - `(menu-item ,(purecopy "Set Default Font...") menu-set-font - :visible (display-multi-font-p) - :help ,(purecopy "Select a default font"))) - -(if (featurep 'system-font-setting) - (define-key menu-bar-options-menu [menu-system-font] - (menu-bar-make-toggle toggle-use-system-font font-use-system-font - "Use system font" - "Use system font: %s" - "Use the monospaced font defined by the system"))) - + +;;; Assemble all the top-level items of the "Options" menu ;; The "Show/Hide" submenu of menu "Options" -(defvar menu-bar-showhide-menu (make-sparse-keymap "Show/Hide")) - -(define-key menu-bar-showhide-menu [column-number-mode] - (menu-bar-make-mm-toggle column-number-mode - "Column Numbers" - "Show the current column number in the mode line")) - -(define-key menu-bar-showhide-menu [line-number-mode] - (menu-bar-make-mm-toggle line-number-mode - "Line Numbers" - "Show the current line number in the mode line")) - -(define-key menu-bar-showhide-menu [size-indication-mode] - (menu-bar-make-mm-toggle size-indication-mode - "Size Indication" - "Show the size of the buffer in the mode line")) - -(define-key menu-bar-showhide-menu [linecolumn-separator] - menu-bar-separator) - -(define-key menu-bar-showhide-menu [showhide-battery] - (menu-bar-make-mm-toggle display-battery-mode - "Battery Status" - "Display battery status information in mode line")) - -(define-key menu-bar-showhide-menu [showhide-date-time] - (menu-bar-make-mm-toggle display-time-mode - "Time, Load and Mail" - "Display time, system load averages and \ -mail status in mode line")) - -(define-key menu-bar-showhide-menu [datetime-separator] - menu-bar-separator) - -(define-key menu-bar-showhide-menu [showhide-speedbar] - `(menu-item ,(purecopy "Speedbar") speedbar-frame-mode - :help ,(purecopy "Display a Speedbar quick-navigation frame") - :button (:toggle - . (and (boundp 'speedbar-frame) - (frame-live-p (symbol-value 'speedbar-frame)) - (frame-visible-p - (symbol-value 'speedbar-frame)))))) - -(defvar menu-bar-showhide-fringe-menu (make-sparse-keymap "Fringe")) - -(defvar menu-bar-showhide-fringe-ind-menu - (make-sparse-keymap "Buffer boundaries")) - (defun menu-bar-showhide-fringe-ind-customize () "Show customization buffer for `indicate-buffer-boundaries'." (interactive) (customize-variable 'indicate-buffer-boundaries)) -(define-key menu-bar-showhide-fringe-ind-menu [customize] - `(menu-item ,(purecopy "Other (Customize)") - menu-bar-showhide-fringe-ind-customize - :help ,(purecopy "Additional choices available through Custom buffer") - :visible (display-graphic-p) - :button (:radio . (not (member indicate-buffer-boundaries - '(nil left right - ((top . left) (bottom . right)) - ((t . right) (top . left)))))))) - (defun menu-bar-showhide-fringe-ind-mixed () "Display top and bottom indicators in opposite fringes, arrows in right." (interactive) (customize-set-variable 'indicate-buffer-boundaries '((t . right) (top . left)))) -(define-key menu-bar-showhide-fringe-ind-menu [mixed] - `(menu-item ,(purecopy "Opposite, Arrows Right") menu-bar-showhide-fringe-ind-mixed - :help - ,(purecopy "Show top/bottom indicators in opposite fringes, arrows in right") - :visible (display-graphic-p) - :button (:radio . (equal indicate-buffer-boundaries - '((t . right) (top . left)))))) - (defun menu-bar-showhide-fringe-ind-box () "Display top and bottom indicators in opposite fringes." (interactive) (customize-set-variable 'indicate-buffer-boundaries '((top . left) (bottom . right)))) -(define-key menu-bar-showhide-fringe-ind-menu [box] - `(menu-item ,(purecopy "Opposite, No Arrows") menu-bar-showhide-fringe-ind-box - :help ,(purecopy "Show top/bottom indicators in opposite fringes, no arrows") - :visible (display-graphic-p) - :button (:radio . (equal indicate-buffer-boundaries - '((top . left) (bottom . right)))))) - (defun menu-bar-showhide-fringe-ind-right () "Display buffer boundaries and arrows in the right fringe." (interactive) (customize-set-variable 'indicate-buffer-boundaries 'right)) -(define-key menu-bar-showhide-fringe-ind-menu [right] - `(menu-item ,(purecopy "In Right Fringe") menu-bar-showhide-fringe-ind-right - :help ,(purecopy "Show buffer boundaries and arrows in right fringe") - :visible (display-graphic-p) - :button (:radio . (eq indicate-buffer-boundaries 'right)))) - (defun menu-bar-showhide-fringe-ind-left () "Display buffer boundaries and arrows in the left fringe." (interactive) (customize-set-variable 'indicate-buffer-boundaries 'left)) -(define-key menu-bar-showhide-fringe-ind-menu [left] - `(menu-item ,(purecopy "In Left Fringe") menu-bar-showhide-fringe-ind-left - :help ,(purecopy "Show buffer boundaries and arrows in left fringe") - :visible (display-graphic-p) - :button (:radio . (eq indicate-buffer-boundaries 'left)))) - (defun menu-bar-showhide-fringe-ind-none () "Do not display any buffer boundary indicators." (interactive) (customize-set-variable 'indicate-buffer-boundaries nil)) -(define-key menu-bar-showhide-fringe-ind-menu [none] - `(menu-item ,(purecopy "No Indicators") menu-bar-showhide-fringe-ind-none - :help ,(purecopy "Hide all buffer boundary indicators and arrows") - :visible (display-graphic-p) - :button (:radio . (eq indicate-buffer-boundaries nil)))) - -(define-key menu-bar-showhide-fringe-menu [showhide-fringe-ind] - `(menu-item ,(purecopy "Buffer Boundaries") ,menu-bar-showhide-fringe-ind-menu - :visible (display-graphic-p) - :help ,(purecopy "Indicate buffer boundaries in fringe"))) - -(define-key menu-bar-showhide-fringe-menu [indicate-empty-lines] - (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines - "Empty Line Indicators" - "Indicating of empty lines %s" - "Indicate trailing empty lines in fringe, globally")) +(defvar menu-bar-showhide-fringe-ind-menu + (let ((menu (make-sparse-keymap "Buffer boundaries"))) + + (define-key menu [customize] + `(menu-item ,(purecopy "Other (Customize)") + menu-bar-showhide-fringe-ind-customize + :help ,(purecopy "Additional choices available through Custom buffer") + :visible (display-graphic-p) + :button (:radio . (not (member indicate-buffer-boundaries + '(nil left right + ((top . left) (bottom . right)) + ((t . right) (top . left)))))))) + + (define-key menu [mixed] + `(menu-item ,(purecopy "Opposite, Arrows Right") menu-bar-showhide-fringe-ind-mixed + :help + ,(purecopy "Show top/bottom indicators in opposite fringes, arrows in right") + :visible (display-graphic-p) + :button (:radio . (equal indicate-buffer-boundaries + '((t . right) (top . left)))))) + + (define-key menu [box] + `(menu-item ,(purecopy "Opposite, No Arrows") menu-bar-showhide-fringe-ind-box + :help ,(purecopy "Show top/bottom indicators in opposite fringes, no arrows") + :visible (display-graphic-p) + :button (:radio . (equal indicate-buffer-boundaries + '((top . left) (bottom . right)))))) + + (define-key menu [right] + `(menu-item ,(purecopy "In Right Fringe") menu-bar-showhide-fringe-ind-right + :help ,(purecopy "Show buffer boundaries and arrows in right fringe") + :visible (display-graphic-p) + :button (:radio . (eq indicate-buffer-boundaries 'right)))) + + (define-key menu [left] + `(menu-item ,(purecopy "In Left Fringe") menu-bar-showhide-fringe-ind-left + :help ,(purecopy "Show buffer boundaries and arrows in left fringe") + :visible (display-graphic-p) + :button (:radio . (eq indicate-buffer-boundaries 'left)))) + + (define-key menu [none] + `(menu-item ,(purecopy "No Indicators") menu-bar-showhide-fringe-ind-none + :help ,(purecopy "Hide all buffer boundary indicators and arrows") + :visible (display-graphic-p) + :button (:radio . (eq indicate-buffer-boundaries nil)))) + menu)) (defun menu-bar-showhide-fringe-menu-customize () "Show customization buffer for `fringe-mode'." (interactive) (customize-variable 'fringe-mode)) -(define-key menu-bar-showhide-fringe-menu [customize] - `(menu-item ,(purecopy "Customize Fringe") menu-bar-showhide-fringe-menu-customize - :help ,(purecopy "Detailed customization of fringe") - :visible (display-graphic-p))) - (defun menu-bar-showhide-fringe-menu-customize-reset () "Reset the fringe mode: display fringes on both sides of a window." (interactive) (customize-set-variable 'fringe-mode nil)) -(define-key menu-bar-showhide-fringe-menu [default] - `(menu-item ,(purecopy "Default") menu-bar-showhide-fringe-menu-customize-reset - :help ,(purecopy "Default width fringe on both left and right side") - :visible (display-graphic-p) - :button (:radio . (eq fringe-mode nil)))) - (defun menu-bar-showhide-fringe-menu-customize-right () "Display fringes only on the right of each window." (interactive) (require 'fringe) (customize-set-variable 'fringe-mode '(0 . nil))) -(define-key menu-bar-showhide-fringe-menu [right] - `(menu-item ,(purecopy "On the Right") menu-bar-showhide-fringe-menu-customize-right - :help ,(purecopy "Fringe only on the right side") - :visible (display-graphic-p) - :button (:radio . (equal fringe-mode '(0 . nil))))) - (defun menu-bar-showhide-fringe-menu-customize-left () "Display fringes only on the left of each window." (interactive) (require 'fringe) (customize-set-variable 'fringe-mode '(nil . 0))) -(define-key menu-bar-showhide-fringe-menu [left] - `(menu-item ,(purecopy "On the Left") menu-bar-showhide-fringe-menu-customize-left - :help ,(purecopy "Fringe only on the left side") - :visible (display-graphic-p) - :button (:radio . (equal fringe-mode '(nil . 0))))) - (defun menu-bar-showhide-fringe-menu-customize-disable () "Do not display window fringes." (interactive) (require 'fringe) (customize-set-variable 'fringe-mode 0)) -(define-key menu-bar-showhide-fringe-menu [none] - `(menu-item ,(purecopy "None") menu-bar-showhide-fringe-menu-customize-disable - :help ,(purecopy "Turn off fringe") - :visible (display-graphic-p) - :button (:radio . (eq fringe-mode 0)))) - -(define-key menu-bar-showhide-menu [showhide-fringe] - `(menu-item ,(purecopy "Fringe") ,menu-bar-showhide-fringe-menu - :visible (display-graphic-p))) - -(defvar menu-bar-showhide-scroll-bar-menu (make-sparse-keymap "Scroll-bar")) - -(define-key menu-bar-showhide-scroll-bar-menu [right] - `(menu-item ,(purecopy "On the Right") - menu-bar-right-scroll-bar - :help ,(purecopy "Scroll-bar on the right side") - :visible (display-graphic-p) - :button (:radio . (eq (cdr (assq 'vertical-scroll-bars - (frame-parameters))) 'right)))) +(defvar menu-bar-showhide-fringe-menu + (let ((menu (make-sparse-keymap "Fringe"))) + + (define-key menu [showhide-fringe-ind] + `(menu-item ,(purecopy "Buffer Boundaries") ,menu-bar-showhide-fringe-ind-menu + :visible (display-graphic-p) + :help ,(purecopy "Indicate buffer boundaries in fringe"))) + + (define-key menu [indicate-empty-lines] + (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines + "Empty Line Indicators" + "Indicating of empty lines %s" + "Indicate trailing empty lines in fringe, globally")) + + (define-key menu [customize] + `(menu-item ,(purecopy "Customize Fringe") menu-bar-showhide-fringe-menu-customize + :help ,(purecopy "Detailed customization of fringe") + :visible (display-graphic-p))) + + (define-key menu [default] + `(menu-item ,(purecopy "Default") menu-bar-showhide-fringe-menu-customize-reset + :help ,(purecopy "Default width fringe on both left and right side") + :visible (display-graphic-p) + :button (:radio . (eq fringe-mode nil)))) + + (define-key menu [right] + `(menu-item ,(purecopy "On the Right") menu-bar-showhide-fringe-menu-customize-right + :help ,(purecopy "Fringe only on the right side") + :visible (display-graphic-p) + :button (:radio . (equal fringe-mode '(0 . nil))))) + + (define-key menu [left] + `(menu-item ,(purecopy "On the Left") menu-bar-showhide-fringe-menu-customize-left + :help ,(purecopy "Fringe only on the left side") + :visible (display-graphic-p) + :button (:radio . (equal fringe-mode '(nil . 0))))) + + (define-key menu [none] + `(menu-item ,(purecopy "None") menu-bar-showhide-fringe-menu-customize-disable + :help ,(purecopy "Turn off fringe") + :visible (display-graphic-p) + :button (:radio . (eq fringe-mode 0)))) + menu)) + (defun menu-bar-right-scroll-bar () "Display scroll bars on the right of each window." (interactive) (customize-set-variable 'scroll-bar-mode 'right)) -(define-key menu-bar-showhide-scroll-bar-menu [left] - `(menu-item ,(purecopy "On the Left") - menu-bar-left-scroll-bar - :help ,(purecopy "Scroll-bar on the left side") - :visible (display-graphic-p) - :button (:radio . (eq (cdr (assq 'vertical-scroll-bars - (frame-parameters))) 'left)))) - (defun menu-bar-left-scroll-bar () "Display scroll bars on the left of each window." (interactive) (customize-set-variable 'scroll-bar-mode 'left)) -(define-key menu-bar-showhide-scroll-bar-menu [none] - `(menu-item ,(purecopy "None") - menu-bar-no-scroll-bar - :help ,(purecopy "Turn off scroll-bar") - :visible (display-graphic-p) - :button (:radio . (eq (cdr (assq 'vertical-scroll-bars - (frame-parameters))) nil)))) - (defun menu-bar-no-scroll-bar () "Turn off scroll bars." (interactive) (customize-set-variable 'scroll-bar-mode nil)) -(define-key menu-bar-showhide-menu [showhide-scroll-bar] - `(menu-item ,(purecopy "Scroll-bar") ,menu-bar-showhide-scroll-bar-menu - :visible (display-graphic-p))) - -(define-key menu-bar-showhide-menu [showhide-tooltip-mode] - `(menu-item ,(purecopy "Tooltips") tooltip-mode - :help ,(purecopy "Turn tooltips on/off") - :visible (and (display-graphic-p) (fboundp 'x-show-tip)) - :button (:toggle . tooltip-mode))) +(defvar menu-bar-showhide-scroll-bar-menu + (let ((menu (make-sparse-keymap "Scroll-bar"))) + + (define-key menu [right] + `(menu-item ,(purecopy "On the Right") + menu-bar-right-scroll-bar + :help ,(purecopy "Scroll-bar on the right side") + :visible (display-graphic-p) + :button (:radio . (eq (cdr (assq 'vertical-scroll-bars + (frame-parameters))) 'right)))) + + (define-key menu [left] + `(menu-item ,(purecopy "On the Left") + menu-bar-left-scroll-bar + :help ,(purecopy "Scroll-bar on the left side") + :visible (display-graphic-p) + :button (:radio . (eq (cdr (assq 'vertical-scroll-bars + (frame-parameters))) 'left)))) + + (define-key menu [none] + `(menu-item ,(purecopy "None") + menu-bar-no-scroll-bar + :help ,(purecopy "Turn off scroll-bar") + :visible (display-graphic-p) + :button (:radio . (eq (cdr (assq 'vertical-scroll-bars + (frame-parameters))) nil)))) + menu)) (defun menu-bar-frame-for-menubar () "Return the frame suitable for updating the menu bar." @@ -1027,14 +956,6 @@ (and (numberp val) (> val 0))) -(define-key menu-bar-showhide-menu [menu-bar-mode] - `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame - :help ,(purecopy "Turn menu-bar on/off") - :button - (:toggle . (menu-bar-positive-p - (frame-parameter (menu-bar-frame-for-menubar) - 'menu-bar-lines))))) - (defun menu-bar-set-tool-bar-position (position) (customize-set-variable 'tool-bar-mode t) (customize-set-variable 'tool-bar-position position)) @@ -1059,163 +980,147 @@ (interactive) (menu-bar-set-tool-bar-position 'bottom)) -(if (featurep 'move-toolbar) - (progn - (defvar menu-bar-showhide-tool-bar-menu (make-sparse-keymap "Tool-bar")) - - (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-left] - `(menu-item ,(purecopy "On the left") - menu-bar-showhide-tool-bar-menu-customize-enable-left - :help ,(purecopy "Tool-bar at the left side") - :visible (display-graphic-p) - :button - (:radio . (and tool-bar-mode - (eq (frame-parameter - (menu-bar-frame-for-menubar) - 'tool-bar-position) - 'left))))) - - (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-right] - `(menu-item ,(purecopy "On the right") - menu-bar-showhide-tool-bar-menu-customize-enable-right - :help ,(purecopy "Tool-bar at the right side") - :visible (display-graphic-p) - :button - (:radio . (and tool-bar-mode - (eq (frame-parameter - (menu-bar-frame-for-menubar) - 'tool-bar-position) - 'right))))) - - (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-bottom] - `(menu-item ,(purecopy "On the bottom") - menu-bar-showhide-tool-bar-menu-customize-enable-bottom - :help ,(purecopy "Tool-bar at the bottom") - :visible (display-graphic-p) - :button - (:radio . (and tool-bar-mode - (eq (frame-parameter - (menu-bar-frame-for-menubar) - 'tool-bar-position) - 'bottom))))) - - (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-top] - `(menu-item ,(purecopy "On the top") - menu-bar-showhide-tool-bar-menu-customize-enable-top - :help ,(purecopy "Tool-bar at the top") - :visible (display-graphic-p) - :button - (:radio . (and tool-bar-mode - (eq (frame-parameter - (menu-bar-frame-for-menubar) - 'tool-bar-position) - 'top))))) - - (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-none] - `(menu-item ,(purecopy "None") - menu-bar-showhide-tool-bar-menu-customize-disable - :help ,(purecopy "Turn tool-bar off") - :visible (display-graphic-p) - :button (:radio . (eq tool-bar-mode nil)))) - - (define-key menu-bar-showhide-menu [showhide-tool-bar] - `(menu-item ,(purecopy "Tool-bar") ,menu-bar-showhide-tool-bar-menu - :visible (display-graphic-p))) - - ) - ;; else not tool bar that can move. - (define-key menu-bar-showhide-menu [showhide-tool-bar] - `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame - :help ,(purecopy "Turn tool-bar on/off") - :visible (display-graphic-p) - :button - (:toggle . (menu-bar-positive-p - (frame-parameter (menu-bar-frame-for-menubar) - 'tool-bar-lines)))))) - -(define-key menu-bar-options-menu [showhide] - `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) - -(define-key menu-bar-options-menu [showhide-separator] - menu-bar-separator) - -(define-key menu-bar-options-menu [mule] - ;; It is better not to use backquote here, - ;; because that makes a bootstrapping problem - ;; if you need to recompile all the Lisp files using interpreted code. - `(menu-item ,(purecopy "Multilingual Environment") ,mule-menu-keymap -;; Most of the MULE menu actually does make sense in unibyte mode, -;; e.g. language selection. -;;; :visible '(default-value 'enable-multibyte-characters) - )) -;(setq menu-bar-final-items (cons 'mule menu-bar-final-items)) -;(define-key menu-bar-options-menu [preferences] -; `(menu-item ,(purecopy "Preferences") ,menu-bar-preferences-menu -; :help ,(purecopy "Toggle important global options"))) - -(define-key menu-bar-options-menu [mule-separator] - menu-bar-separator) - -(define-key menu-bar-options-menu [debug-on-quit] - (menu-bar-make-toggle toggle-debug-on-quit debug-on-quit - "Enter Debugger on Quit/C-g" "Debug on Quit %s" - "Enter Lisp debugger when C-g is pressed")) -(define-key menu-bar-options-menu [debug-on-error] - (menu-bar-make-toggle toggle-debug-on-error debug-on-error - "Enter Debugger on Error" "Debug on Error %s" - "Enter Lisp debugger when an error is signaled")) -(define-key menu-bar-options-menu [debugger-separator] - menu-bar-separator) - -(define-key menu-bar-options-menu [blink-cursor-mode] - (menu-bar-make-mm-toggle blink-cursor-mode - "Blinking Cursor" - "Whether the cursor blinks (Blink Cursor mode)")) -(define-key menu-bar-options-menu [cursor-separator] - menu-bar-separator) - -(define-key menu-bar-options-menu [save-place] - (menu-bar-make-toggle toggle-save-place-globally save-place - "Save Place in Files between Sessions" - "Saving place in files %s" - "Visit files of previous session when restarting Emacs" - (require 'saveplace) - ;; Do it by name, to avoid a free-variable - ;; warning during byte compilation. - (set-default - 'save-place (not (symbol-value 'save-place))))) - -(define-key menu-bar-options-menu [uniquify] - (menu-bar-make-toggle toggle-uniquify-buffer-names uniquify-buffer-name-style - "Use Directory Names in Buffer Names" - "Directory name in buffer names (uniquify) %s" - "Uniquify buffer names by adding parent directory names" - (require 'uniquify) - (setq uniquify-buffer-name-style - (if (not uniquify-buffer-name-style) - 'forward)))) - -(define-key menu-bar-options-menu [edit-options-separator] - menu-bar-separator) -(define-key menu-bar-options-menu [cua-mode] - (menu-bar-make-mm-toggle cua-mode - "C-x/C-c/C-v Cut and Paste (CUA)" - "Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste" - (:visible (or (not (boundp 'cua-enable-cua-keys)) - cua-enable-cua-keys)))) - -(define-key menu-bar-options-menu [cua-emulation-mode] - (menu-bar-make-mm-toggle cua-mode - "Shift movement mark region (CUA)" - "Use shifted movement keys to set and extend the region" - (:visible (and (boundp 'cua-enable-cua-keys) - (not cua-enable-cua-keys))))) - -(define-key menu-bar-options-menu [case-fold-search] - (menu-bar-make-toggle toggle-case-fold-search case-fold-search - "Case-Insensitive Search" - "Case-Insensitive Search %s" - "Ignore letter-case in search commands")) +(when (featurep 'move-toolbar) + (defvar menu-bar-showhide-tool-bar-menu + (let ((menu (make-sparse-keymap "Tool-bar"))) + + (define-key menu [showhide-tool-bar-left] + `(menu-item ,(purecopy "On the left") + menu-bar-showhide-tool-bar-menu-customize-enable-left + :help ,(purecopy "Tool-bar at the left side") + :visible (display-graphic-p) + :button + (:radio . (and tool-bar-mode + (eq (frame-parameter + (menu-bar-frame-for-menubar) + 'tool-bar-position) + 'left))))) + + (define-key menu [showhide-tool-bar-right] + `(menu-item ,(purecopy "On the right") + menu-bar-showhide-tool-bar-menu-customize-enable-right + :help ,(purecopy "Tool-bar at the right side") + :visible (display-graphic-p) + :button + (:radio . (and tool-bar-mode + (eq (frame-parameter + (menu-bar-frame-for-menubar) + 'tool-bar-position) + 'right))))) + + (define-key menu [showhide-tool-bar-bottom] + `(menu-item ,(purecopy "On the bottom") + menu-bar-showhide-tool-bar-menu-customize-enable-bottom + :help ,(purecopy "Tool-bar at the bottom") + :visible (display-graphic-p) + :button + (:radio . (and tool-bar-mode + (eq (frame-parameter + (menu-bar-frame-for-menubar) + 'tool-bar-position) + 'bottom))))) + + (define-key menu [showhide-tool-bar-top] + `(menu-item ,(purecopy "On the top") + menu-bar-showhide-tool-bar-menu-customize-enable-top + :help ,(purecopy "Tool-bar at the top") + :visible (display-graphic-p) + :button + (:radio . (and tool-bar-mode + (eq (frame-parameter + (menu-bar-frame-for-menubar) + 'tool-bar-position) + 'top))))) + + (define-key menu [showhide-tool-bar-none] + `(menu-item ,(purecopy "None") + menu-bar-showhide-tool-bar-menu-customize-disable + :help ,(purecopy "Turn tool-bar off") + :visible (display-graphic-p) + :button (:radio . (eq tool-bar-mode nil)))) + menu))) + +(defvar menu-bar-showhide-menu + (let ((menu (make-sparse-keymap "Show/Hide"))) + + (define-key menu [column-number-mode] + (menu-bar-make-mm-toggle column-number-mode + "Column Numbers" + "Show the current column number in the mode line")) + + (define-key menu [line-number-mode] + (menu-bar-make-mm-toggle line-number-mode + "Line Numbers" + "Show the current line number in the mode line")) + + (define-key menu [size-indication-mode] + (menu-bar-make-mm-toggle size-indication-mode + "Size Indication" + "Show the size of the buffer in the mode line")) + + (define-key menu [linecolumn-separator] + menu-bar-separator) + + (define-key menu [showhide-battery] + (menu-bar-make-mm-toggle display-battery-mode + "Battery Status" + "Display battery status information in mode line")) + + (define-key menu [showhide-date-time] + (menu-bar-make-mm-toggle display-time-mode + "Time, Load and Mail" + "Display time, system load averages and \ +mail status in mode line")) + + (define-key menu [datetime-separator] + menu-bar-separator) + + (define-key menu [showhide-speedbar] + `(menu-item ,(purecopy "Speedbar") speedbar-frame-mode + :help ,(purecopy "Display a Speedbar quick-navigation frame") + :button (:toggle + . (and (boundp 'speedbar-frame) + (frame-live-p (symbol-value 'speedbar-frame)) + (frame-visible-p + (symbol-value 'speedbar-frame)))))) + + (define-key menu [showhide-fringe] + `(menu-item ,(purecopy "Fringe") ,menu-bar-showhide-fringe-menu + :visible (display-graphic-p))) + + (define-key menu [showhide-scroll-bar] + `(menu-item ,(purecopy "Scroll-bar") ,menu-bar-showhide-scroll-bar-menu + :visible (display-graphic-p))) + + (define-key menu [showhide-tooltip-mode] + `(menu-item ,(purecopy "Tooltips") tooltip-mode + :help ,(purecopy "Turn tooltips on/off") + :visible (and (display-graphic-p) (fboundp 'x-show-tip)) + :button (:toggle . tooltip-mode))) + + (define-key menu [menu-bar-mode] + `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame + :help ,(purecopy "Turn menu-bar on/off") + :button + (:toggle . (menu-bar-positive-p + (frame-parameter (menu-bar-frame-for-menubar) + 'menu-bar-lines))))) + + (if (and (boundp 'menu-bar-showhide-tool-bar-menu) + (keymapp menu-bar-showhide-tool-bar-menu)) + (define-key menu [showhide-tool-bar] + `(menu-item ,(purecopy "Tool-bar") ,menu-bar-showhide-tool-bar-menu + :visible (display-graphic-p))) + ;; else not tool bar that can move. + (define-key menu [showhide-tool-bar] + `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame + :help ,(purecopy "Turn tool-bar on/off") + :visible (display-graphic-p) + :button + (:toggle . (menu-bar-positive-p + (frame-parameter (menu-bar-frame-for-menubar) + 'tool-bar-lines)))))) + menu)) (defun menu-bar-text-mode-auto-fill () (interactive) @@ -1225,71 +1130,187 @@ ;; -- Per Abrahamsen 2002-02-11. (customize-mark-as-set 'text-mode-hook)) -(define-key menu-bar-options-menu [auto-fill-mode] - `(menu-item ,(purecopy "Auto Fill in Text Modes") - menu-bar-text-mode-auto-fill - :help ,(purecopy "Automatically fill text while typing (Auto Fill mode)") - :button (:toggle . (if (listp text-mode-hook) - (member 'turn-on-auto-fill text-mode-hook) - (eq 'turn-on-auto-fill text-mode-hook))))) - - -(defvar menu-bar-line-wrapping-menu (make-sparse-keymap "Line Wrapping")) - -(define-key menu-bar-line-wrapping-menu [word-wrap] - `(menu-item ,(purecopy "Word Wrap (Visual Line mode)") - (lambda () - (interactive) - (unless visual-line-mode - (visual-line-mode 1)) - (message ,(purecopy "Visual-Line mode enabled"))) - :help ,(purecopy "Wrap long lines at word boundaries") - :button (:radio . (and (null truncate-lines) - (not (truncated-partial-width-window-p)) - word-wrap)) - :visible (menu-bar-menu-frame-live-and-visible-p))) - -(define-key menu-bar-line-wrapping-menu [truncate] - `(menu-item ,(purecopy "Truncate Long Lines") - (lambda () - (interactive) - (if visual-line-mode (visual-line-mode 0)) - (setq word-wrap nil) - (toggle-truncate-lines 1)) - :help ,(purecopy "Truncate long lines at window edge") - :button (:radio . (or truncate-lines - (truncated-partial-width-window-p))) - :visible (menu-bar-menu-frame-live-and-visible-p) - :enable (not (truncated-partial-width-window-p)))) - -(define-key menu-bar-line-wrapping-menu [window-wrap] - `(menu-item ,(purecopy "Wrap at Window Edge") - (lambda () (interactive) - (if visual-line-mode (visual-line-mode 0)) - (setq word-wrap nil) - (if truncate-lines (toggle-truncate-lines -1))) - :help ,(purecopy "Wrap long lines at window edge") - :button (:radio . (and (null truncate-lines) - (not (truncated-partial-width-window-p)) - (not word-wrap))) - :visible (menu-bar-menu-frame-live-and-visible-p) - :enable (not (truncated-partial-width-window-p)))) - -(define-key menu-bar-options-menu [line-wrapping] - `(menu-item ,(purecopy "Line Wrapping in this Buffer") ,menu-bar-line-wrapping-menu)) - - -(define-key menu-bar-options-menu [highlight-separator] - menu-bar-separator) -(define-key menu-bar-options-menu [highlight-paren-mode] - (menu-bar-make-mm-toggle show-paren-mode - "Paren Match Highlighting" - "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) -(define-key menu-bar-options-menu [transient-mark-mode] - (menu-bar-make-mm-toggle transient-mark-mode - "Active Region Highlighting" - "Make text in active region stand out in color (Transient Mark mode)" - (:enable (not cua-mode)))) + +(defvar menu-bar-line-wrapping-menu + (let ((menu (make-sparse-keymap "Line Wrapping"))) + + (define-key menu [word-wrap] + `(menu-item ,(purecopy "Word Wrap (Visual Line mode)") + (lambda () + (interactive) + (unless visual-line-mode + (visual-line-mode 1)) + (message ,(purecopy "Visual-Line mode enabled"))) + :help ,(purecopy "Wrap long lines at word boundaries") + :button (:radio . (and (null truncate-lines) + (not (truncated-partial-width-window-p)) + word-wrap)) + :visible (menu-bar-menu-frame-live-and-visible-p))) + + (define-key menu [truncate] + `(menu-item ,(purecopy "Truncate Long Lines") + (lambda () + (interactive) + (if visual-line-mode (visual-line-mode 0)) + (setq word-wrap nil) + (toggle-truncate-lines 1)) + :help ,(purecopy "Truncate long lines at window edge") + :button (:radio . (or truncate-lines + (truncated-partial-width-window-p))) + :visible (menu-bar-menu-frame-live-and-visible-p) + :enable (not (truncated-partial-width-window-p)))) + + (define-key menu [window-wrap] + `(menu-item ,(purecopy "Wrap at Window Edge") + (lambda () (interactive) + (if visual-line-mode (visual-line-mode 0)) + (setq word-wrap nil) + (if truncate-lines (toggle-truncate-lines -1))) + :help ,(purecopy "Wrap long lines at window edge") + :button (:radio . (and (null truncate-lines) + (not (truncated-partial-width-window-p)) + (not word-wrap))) + :visible (menu-bar-menu-frame-live-and-visible-p) + :enable (not (truncated-partial-width-window-p)))) + menu)) + +(defvar menu-bar-options-menu + (let ((menu (make-sparse-keymap "Options"))) + (define-key menu [customize] + `(menu-item ,(purecopy "Customize Emacs") ,menu-bar-custom-menu)) + + (define-key menu [package] + '(menu-item "Manage Emacs Packages" package-list-packages + :help "Install or uninstall additional Emacs packages")) + + (define-key menu [save] + `(menu-item ,(purecopy "Save Options") menu-bar-options-save + :help ,(purecopy "Save options set from the menu above"))) + + (define-key menu [custom-separator] + menu-bar-separator) + + (define-key menu [menu-set-font] + `(menu-item ,(purecopy "Set Default Font...") menu-set-font + :visible (display-multi-font-p) + :help ,(purecopy "Select a default font"))) + + (if (featurep 'system-font-setting) + (define-key menu [menu-system-font] + (menu-bar-make-toggle + toggle-use-system-font font-use-system-font + "Use system font" + "Use system font: %s" + "Use the monospaced font defined by the system"))) + + (define-key menu [showhide] + `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) + + (define-key menu [showhide-separator] + menu-bar-separator) + + (define-key menu [mule] + ;; It is better not to use backquote here, + ;; because that makes a bootstrapping problem + ;; if you need to recompile all the Lisp files using interpreted code. + `(menu-item ,(purecopy "Multilingual Environment") ,mule-menu-keymap + ;; Most of the MULE menu actually does make sense in + ;; unibyte mode, e.g. language selection. + ;; :visible '(default-value 'enable-multibyte-characters) + )) + ;;(setq menu-bar-final-items (cons 'mule menu-bar-final-items)) + ;;(define-key menu [preferences] + ;; `(menu-item ,(purecopy "Preferences") ,menu-bar-preferences-menu + ;; :help ,(purecopy "Toggle important global options"))) + + (define-key menu [mule-separator] + menu-bar-separator) + + (define-key menu [debug-on-quit] + (menu-bar-make-toggle toggle-debug-on-quit debug-on-quit + "Enter Debugger on Quit/C-g" "Debug on Quit %s" + "Enter Lisp debugger when C-g is pressed")) + (define-key menu [debug-on-error] + (menu-bar-make-toggle toggle-debug-on-error debug-on-error + "Enter Debugger on Error" "Debug on Error %s" + "Enter Lisp debugger when an error is signaled")) + (define-key menu [debugger-separator] + menu-bar-separator) + + (define-key menu [blink-cursor-mode] + (menu-bar-make-mm-toggle blink-cursor-mode + "Blinking Cursor" + "Whether the cursor blinks (Blink Cursor mode)")) + (define-key menu [cursor-separator] + menu-bar-separator) + + (define-key menu [save-place] + (menu-bar-make-toggle toggle-save-place-globally save-place + "Save Place in Files between Sessions" + "Saving place in files %s" + "Visit files of previous session when restarting Emacs" + (require 'saveplace) + ;; Do it by name, to avoid a free-variable + ;; warning during byte compilation. + (set-default + 'save-place (not (symbol-value 'save-place))))) + + (define-key menu [uniquify] + (menu-bar-make-toggle toggle-uniquify-buffer-names uniquify-buffer-name-style + "Use Directory Names in Buffer Names" + "Directory name in buffer names (uniquify) %s" + "Uniquify buffer names by adding parent directory names" + (require 'uniquify) + (setq uniquify-buffer-name-style + (if (not uniquify-buffer-name-style) + 'forward)))) + + (define-key menu [edit-options-separator] + menu-bar-separator) + (define-key menu [cua-mode] + (menu-bar-make-mm-toggle cua-mode + "C-x/C-c/C-v Cut and Paste (CUA)" + "Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste" + (:visible (or (not (boundp 'cua-enable-cua-keys)) + cua-enable-cua-keys)))) + + (define-key menu [cua-emulation-mode] + (menu-bar-make-mm-toggle cua-mode + "Shift movement mark region (CUA)" + "Use shifted movement keys to set and extend the region" + (:visible (and (boundp 'cua-enable-cua-keys) + (not cua-enable-cua-keys))))) + + (define-key menu [case-fold-search] + (menu-bar-make-toggle toggle-case-fold-search case-fold-search + "Case-Insensitive Search" + "Case-Insensitive Search %s" + "Ignore letter-case in search commands")) + + (define-key menu [auto-fill-mode] + `(menu-item ,(purecopy "Auto Fill in Text Modes") + menu-bar-text-mode-auto-fill + :help ,(purecopy "Automatically fill text while typing (Auto Fill mode)") + :button (:toggle . (if (listp text-mode-hook) + (member 'turn-on-auto-fill text-mode-hook) + (eq 'turn-on-auto-fill text-mode-hook))))) + + (define-key menu [line-wrapping] + `(menu-item ,(purecopy "Line Wrapping in this Buffer") ,menu-bar-line-wrapping-menu)) + + + (define-key menu [highlight-separator] + menu-bar-separator) + (define-key menu [highlight-paren-mode] + (menu-bar-make-mm-toggle show-paren-mode + "Paren Match Highlighting" + "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) + (define-key menu [transient-mark-mode] + (menu-bar-make-mm-toggle transient-mark-mode + "Active Region Highlighting" + "Make text in active region stand out in color (Transient Mark mode)" + (:enable (not cua-mode)))) + menu)) ;; The "Tools" menu items @@ -1314,270 +1335,276 @@ (known (assq read-mail-command known-rmail-commands))) (if known (cdr known) (symbol-name read-mail-command)))) -(defvar menu-bar-games-menu (make-sparse-keymap "Games")) - -(define-key menu-bar-tools-menu [games] - `(menu-item ,(purecopy "Games") ,menu-bar-games-menu)) - -(define-key menu-bar-tools-menu [separator-games] - menu-bar-separator) - -(define-key menu-bar-games-menu [zone] - `(menu-item ,(purecopy "Zone Out") zone - :help ,(purecopy "Play tricks with Emacs display when Emacs is idle"))) -(define-key menu-bar-games-menu [tetris] - `(menu-item ,(purecopy "Tetris") tetris - :help ,(purecopy "Falling blocks game"))) -(define-key menu-bar-games-menu [solitaire] - `(menu-item ,(purecopy "Solitaire") solitaire - :help ,(purecopy "Get rid of all the stones"))) -(define-key menu-bar-games-menu [snake] - `(menu-item ,(purecopy "Snake") snake - :help ,(purecopy "Move snake around avoiding collisions"))) -(define-key menu-bar-games-menu [pong] - `(menu-item ,(purecopy "Pong") pong - :help ,(purecopy "Bounce the ball to your opponent"))) -(define-key menu-bar-games-menu [mult] - `(menu-item ,(purecopy "Multiplication Puzzle") mpuz - :help ,(purecopy "Exercise brain with multiplication"))) -(define-key menu-bar-games-menu [life] - `(menu-item ,(purecopy "Life") life - :help ,(purecopy "Watch how John Conway's cellular automaton evolves"))) -(define-key menu-bar-games-menu [land] - `(menu-item ,(purecopy "Landmark") landmark - :help ,(purecopy "Watch a neural-network robot learn landmarks"))) -(define-key menu-bar-games-menu [hanoi] - `(menu-item ,(purecopy "Towers of Hanoi") hanoi - :help ,(purecopy "Watch Towers-of-Hanoi puzzle solved by Emacs"))) -(define-key menu-bar-games-menu [gomoku] - `(menu-item ,(purecopy "Gomoku") gomoku - :help ,(purecopy "Mark 5 contiguous squares (like tic-tac-toe)"))) -(define-key menu-bar-games-menu [bubbles] - `(menu-item ,(purecopy "Bubbles") bubbles - :help ,(purecopy "Remove all bubbles using the fewest moves"))) -(define-key menu-bar-games-menu [black-box] - `(menu-item ,(purecopy "Blackbox") blackbox - :help ,(purecopy "Find balls in a black box by shooting rays"))) -(define-key menu-bar-games-menu [adventure] - `(menu-item ,(purecopy "Adventure") dunnet - :help ,(purecopy "Dunnet, a text Adventure game for Emacs"))) -(define-key menu-bar-games-menu [5x5] - `(menu-item ,(purecopy "5x5") 5x5 - :help ,(purecopy "Fill in all the squares on a 5x5 board"))) +(defvar menu-bar-games-menu + (let ((menu (make-sparse-keymap "Games"))) + + (define-key menu [zone] + `(menu-item ,(purecopy "Zone Out") zone + :help ,(purecopy "Play tricks with Emacs display when Emacs is idle"))) + (define-key menu [tetris] + `(menu-item ,(purecopy "Tetris") tetris + :help ,(purecopy "Falling blocks game"))) + (define-key menu [solitaire] + `(menu-item ,(purecopy "Solitaire") solitaire + :help ,(purecopy "Get rid of all the stones"))) + (define-key menu [snake] + `(menu-item ,(purecopy "Snake") snake + :help ,(purecopy "Move snake around avoiding collisions"))) + (define-key menu [pong] + `(menu-item ,(purecopy "Pong") pong + :help ,(purecopy "Bounce the ball to your opponent"))) + (define-key menu [mult] + `(menu-item ,(purecopy "Multiplication Puzzle") mpuz + :help ,(purecopy "Exercise brain with multiplication"))) + (define-key menu [life] + `(menu-item ,(purecopy "Life") life + :help ,(purecopy "Watch how John Conway's cellular automaton evolves"))) + (define-key menu [land] + `(menu-item ,(purecopy "Landmark") landmark + :help ,(purecopy "Watch a neural-network robot learn landmarks"))) + (define-key menu [hanoi] + `(menu-item ,(purecopy "Towers of Hanoi") hanoi + :help ,(purecopy "Watch Towers-of-Hanoi puzzle solved by Emacs"))) + (define-key menu [gomoku] + `(menu-item ,(purecopy "Gomoku") gomoku + :help ,(purecopy "Mark 5 contiguous squares (like tic-tac-toe)"))) + (define-key menu [bubbles] + `(menu-item ,(purecopy "Bubbles") bubbles + :help ,(purecopy "Remove all bubbles using the fewest moves"))) + (define-key menu [black-box] + `(menu-item ,(purecopy "Blackbox") blackbox + :help ,(purecopy "Find balls in a black box by shooting rays"))) + (define-key menu [adventure] + `(menu-item ,(purecopy "Adventure") dunnet + :help ,(purecopy "Dunnet, a text Adventure game for Emacs"))) + (define-key menu [5x5] + `(menu-item ,(purecopy "5x5") 5x5 + :help ,(purecopy "Fill in all the squares on a 5x5 board"))) + menu)) (defvar menu-bar-encryption-decryption-menu - (make-sparse-keymap "Encryption/Decryption")) - -(define-key menu-bar-tools-menu [encryption-decryption] - `(menu-item ,(purecopy "Encryption/Decryption") ,menu-bar-encryption-decryption-menu)) - -(define-key menu-bar-tools-menu [separator-encryption-decryption] - menu-bar-separator) - -(define-key menu-bar-encryption-decryption-menu [insert-keys] - `(menu-item ,(purecopy "Insert Keys") epa-insert-keys - :help ,(purecopy "Insert public keys after the current point"))) - -(define-key menu-bar-encryption-decryption-menu [export-keys] - `(menu-item ,(purecopy "Export Keys") epa-export-keys - :help ,(purecopy "Export public keys to a file"))) - -(define-key menu-bar-encryption-decryption-menu [import-keys-region] - `(menu-item ,(purecopy "Import Keys from Region") epa-import-keys-region - :help ,(purecopy "Import public keys from the current region"))) - -(define-key menu-bar-encryption-decryption-menu [import-keys] - `(menu-item ,(purecopy "Import Keys from File...") epa-import-keys - :help ,(purecopy "Import public keys from a file"))) - -(define-key menu-bar-encryption-decryption-menu [list-keys] - `(menu-item ,(purecopy "List Keys") epa-list-keys - :help ,(purecopy "Browse your public keyring"))) - -(define-key menu-bar-encryption-decryption-menu [separator-keys] - menu-bar-separator) - -(define-key menu-bar-encryption-decryption-menu [sign-region] - `(menu-item ,(purecopy "Sign Region") epa-sign-region - :help ,(purecopy "Create digital signature of the current region"))) - -(define-key menu-bar-encryption-decryption-menu [verify-region] - `(menu-item ,(purecopy "Verify Region") epa-verify-region - :help ,(purecopy "Verify digital signature of the current region"))) - -(define-key menu-bar-encryption-decryption-menu [encrypt-region] - `(menu-item ,(purecopy "Encrypt Region") epa-encrypt-region - :help ,(purecopy "Encrypt the current region"))) - -(define-key menu-bar-encryption-decryption-menu [decrypt-region] - `(menu-item ,(purecopy "Decrypt Region") epa-decrypt-region - :help ,(purecopy "Decrypt the current region"))) - -(define-key menu-bar-encryption-decryption-menu [separator-file] - menu-bar-separator) - -(define-key menu-bar-encryption-decryption-menu [sign-file] - `(menu-item ,(purecopy "Sign File...") epa-sign-file - :help ,(purecopy "Create digital signature of a file"))) - -(define-key menu-bar-encryption-decryption-menu [verify-file] - `(menu-item ,(purecopy "Verify File...") epa-verify-file - :help ,(purecopy "Verify digital signature of a file"))) - -(define-key menu-bar-encryption-decryption-menu [encrypt-file] - `(menu-item ,(purecopy "Encrypt File...") epa-encrypt-file - :help ,(purecopy "Encrypt a file"))) - -(define-key menu-bar-encryption-decryption-menu [decrypt-file] - `(menu-item ,(purecopy "Decrypt File...") epa-decrypt-file - :help ,(purecopy "Decrypt a file"))) - -(define-key menu-bar-tools-menu [simple-calculator] - `(menu-item ,(purecopy "Simple Calculator") calculator - :help ,(purecopy "Invoke the Emacs built-in quick calculator"))) -(define-key menu-bar-tools-menu [calc] - `(menu-item ,(purecopy "Programmable Calculator") calc - :help ,(purecopy "Invoke the Emacs built-in full scientific calculator"))) -(define-key menu-bar-tools-menu [calendar] - `(menu-item ,(purecopy "Calendar") calendar - :help ,(purecopy "Invoke the Emacs built-in calendar"))) - -(define-key menu-bar-tools-menu [separator-net] - menu-bar-separator) - -(define-key menu-bar-tools-menu [directory-search] - `(menu-item ,(purecopy "Directory Search") eudc-tools-menu)) -(define-key menu-bar-tools-menu [compose-mail] - `(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail - :visible (and mail-user-agent (not (eq mail-user-agent 'ignore))) - :help ,(purecopy "Send a mail message"))) -(define-key menu-bar-tools-menu [rmail] - `(menu-item (format "Read Mail (with %s)" (read-mail-item-name)) - menu-bar-read-mail - :visible (and read-mail-command - (not (eq read-mail-command 'ignore))) - :help ,(purecopy "Read your mail and reply to it"))) + (let ((menu (make-sparse-keymap "Encryption/Decryption"))) + (define-key menu [insert-keys] + `(menu-item ,(purecopy "Insert Keys") epa-insert-keys + :help ,(purecopy "Insert public keys after the current point"))) + + (define-key menu [export-keys] + `(menu-item ,(purecopy "Export Keys") epa-export-keys + :help ,(purecopy "Export public keys to a file"))) + + (define-key menu [import-keys-region] + `(menu-item ,(purecopy "Import Keys from Region") epa-import-keys-region + :help ,(purecopy "Import public keys from the current region"))) + + (define-key menu [import-keys] + `(menu-item ,(purecopy "Import Keys from File...") epa-import-keys + :help ,(purecopy "Import public keys from a file"))) + + (define-key menu [list-keys] + `(menu-item ,(purecopy "List Keys") epa-list-keys + :help ,(purecopy "Browse your public keyring"))) + + (define-key menu [separator-keys] + menu-bar-separator) + + (define-key menu [sign-region] + `(menu-item ,(purecopy "Sign Region") epa-sign-region + :help ,(purecopy "Create digital signature of the current region"))) + + (define-key menu [verify-region] + `(menu-item ,(purecopy "Verify Region") epa-verify-region + :help ,(purecopy "Verify digital signature of the current region"))) + + (define-key menu [encrypt-region] + `(menu-item ,(purecopy "Encrypt Region") epa-encrypt-region + :help ,(purecopy "Encrypt the current region"))) + + (define-key menu [decrypt-region] + `(menu-item ,(purecopy "Decrypt Region") epa-decrypt-region + :help ,(purecopy "Decrypt the current region"))) + + (define-key menu [separator-file] + menu-bar-separator) + + (define-key menu [sign-file] + `(menu-item ,(purecopy "Sign File...") epa-sign-file + :help ,(purecopy "Create digital signature of a file"))) + + (define-key menu [verify-file] + `(menu-item ,(purecopy "Verify File...") epa-verify-file + :help ,(purecopy "Verify digital signature of a file"))) + + (define-key menu [encrypt-file] + `(menu-item ,(purecopy "Encrypt File...") epa-encrypt-file + :help ,(purecopy "Encrypt a file"))) + + (define-key menu [decrypt-file] + `(menu-item ,(purecopy "Decrypt File...") epa-decrypt-file + :help ,(purecopy "Decrypt a file"))) + + menu)) (defun menu-bar-read-mail () "Read mail using `read-mail-command'." (interactive) (call-interactively read-mail-command)) -(define-key menu-bar-tools-menu [gnus] - `(menu-item ,(purecopy "Read Net News (Gnus)") gnus - :help ,(purecopy "Read network news groups"))) - -(define-key menu-bar-tools-menu [separator-vc] - menu-bar-separator) - -(define-key menu-bar-tools-menu [pcl-cvs] - `(menu-item ,(purecopy "PCL-CVS") cvs-global-menu)) -(define-key menu-bar-tools-menu [vc] nil) ;Create the place for the VC menu. - -(define-key menu-bar-tools-menu [separator-compare] - menu-bar-separator) - -(define-key menu-bar-tools-menu [epatch] - `(menu-item ,(purecopy "Apply Patch") menu-bar-epatch-menu)) -(define-key menu-bar-tools-menu [ediff-merge] - `(menu-item ,(purecopy "Merge") menu-bar-ediff-merge-menu)) -(define-key menu-bar-tools-menu [compare] - `(menu-item ,(purecopy "Compare (Ediff)") menu-bar-ediff-menu)) - -(define-key menu-bar-tools-menu [separator-spell] - menu-bar-separator) - -(define-key menu-bar-tools-menu [spell] - `(menu-item ,(purecopy "Spell Checking") ispell-menu-map)) - -(define-key menu-bar-tools-menu [separator-prog] - menu-bar-separator) - -(define-key menu-bar-tools-menu [semantic] - `(menu-item ,(purecopy "Source Code Parsers (Semantic)") - semantic-mode - :help ,(purecopy "Toggle automatic parsing in source code buffers (Semantic mode)") - :button (:toggle . (bound-and-true-p semantic-mode)))) - -(define-key menu-bar-tools-menu [ede] - `(menu-item ,(purecopy "Project support (EDE)") - global-ede-mode - :help ,(purecopy "Toggle the Emacs Development Environment (Global EDE mode)") - :button (:toggle . (bound-and-true-p global-ede-mode)))) - -(define-key menu-bar-tools-menu [gdb] - `(menu-item ,(purecopy "Debugger (GDB)...") gdb - :help ,(purecopy "Debug a program from within Emacs with GDB"))) -(define-key menu-bar-tools-menu [shell-on-region] - `(menu-item ,(purecopy "Shell Command on Region...") shell-command-on-region - :enable mark-active - :help ,(purecopy "Pass marked region to a shell command"))) -(define-key menu-bar-tools-menu [shell] - `(menu-item ,(purecopy "Shell Command...") shell-command - :help ,(purecopy "Invoke a shell command and catch its output"))) -(define-key menu-bar-tools-menu [compile] - `(menu-item ,(purecopy "Compile...") compile - :help ,(purecopy "Invoke compiler or Make, view compilation errors"))) -(define-key menu-bar-tools-menu [grep] - `(menu-item ,(purecopy "Search Files (Grep)...") grep - :help ,(purecopy "Search files for strings or regexps (with Grep)"))) - +(defvar menu-bar-tools-menu + (let ((menu (make-sparse-keymap "Tools"))) + + (define-key menu [games] + `(menu-item ,(purecopy "Games") ,menu-bar-games-menu)) + + (define-key menu [separator-games] + menu-bar-separator) + + (define-key menu [encryption-decryption] + `(menu-item ,(purecopy "Encryption/Decryption") ,menu-bar-encryption-decryption-menu)) + + (define-key menu [separator-encryption-decryption] + menu-bar-separator) + + (define-key menu [simple-calculator] + `(menu-item ,(purecopy "Simple Calculator") calculator + :help ,(purecopy "Invoke the Emacs built-in quick calculator"))) + (define-key menu [calc] + `(menu-item ,(purecopy "Programmable Calculator") calc + :help ,(purecopy "Invoke the Emacs built-in full scientific calculator"))) + (define-key menu [calendar] + `(menu-item ,(purecopy "Calendar") calendar + :help ,(purecopy "Invoke the Emacs built-in calendar"))) + + (define-key menu [separator-net] + menu-bar-separator) + + (define-key menu [directory-search] + `(menu-item ,(purecopy "Directory Search") eudc-tools-menu)) + (define-key menu [compose-mail] + `(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail + :visible (and mail-user-agent (not (eq mail-user-agent 'ignore))) + :help ,(purecopy "Send a mail message"))) + (define-key menu [rmail] + `(menu-item (format "Read Mail (with %s)" (read-mail-item-name)) + menu-bar-read-mail + :visible (and read-mail-command + (not (eq read-mail-command 'ignore))) + :help ,(purecopy "Read your mail and reply to it"))) + + (define-key menu [gnus] + `(menu-item ,(purecopy "Read Net News (Gnus)") gnus + :help ,(purecopy "Read network news groups"))) + + (define-key menu [separator-vc] + menu-bar-separator) + + (define-key menu [pcl-cvs] + `(menu-item ,(purecopy "PCL-CVS") cvs-global-menu)) + (define-key menu [vc] nil) ;Create the place for the VC menu. + + (define-key menu [separator-compare] + menu-bar-separator) + + (define-key menu [epatch] + `(menu-item ,(purecopy "Apply Patch") menu-bar-epatch-menu)) + (define-key menu [ediff-merge] + `(menu-item ,(purecopy "Merge") menu-bar-ediff-merge-menu)) + (define-key menu [compare] + `(menu-item ,(purecopy "Compare (Ediff)") menu-bar-ediff-menu)) + + (define-key menu [separator-spell] + menu-bar-separator) + + (define-key menu [spell] + `(menu-item ,(purecopy "Spell Checking") ispell-menu-map)) + + (define-key menu [separator-prog] + menu-bar-separator) + + (define-key menu [semantic] + `(menu-item ,(purecopy "Source Code Parsers (Semantic)") + semantic-mode + :help ,(purecopy "Toggle automatic parsing in source code buffers (Semantic mode)") + :button (:toggle . (bound-and-true-p semantic-mode)))) + + (define-key menu [ede] + `(menu-item ,(purecopy "Project support (EDE)") + global-ede-mode + :help ,(purecopy "Toggle the Emacs Development Environment (Global EDE mode)") + :button (:toggle . (bound-and-true-p global-ede-mode)))) + + (define-key menu [gdb] + `(menu-item ,(purecopy "Debugger (GDB)...") gdb + :help ,(purecopy "Debug a program from within Emacs with GDB"))) + (define-key menu [shell-on-region] + `(menu-item ,(purecopy "Shell Command on Region...") shell-command-on-region + :enable mark-active + :help ,(purecopy "Pass marked region to a shell command"))) + (define-key menu [shell] + `(menu-item ,(purecopy "Shell Command...") shell-command + :help ,(purecopy "Invoke a shell command and catch its output"))) + (define-key menu [compile] + `(menu-item ,(purecopy "Compile...") compile + :help ,(purecopy "Invoke compiler or Make, view compilation errors"))) + (define-key menu [grep] + `(menu-item ,(purecopy "Search Files (Grep)...") grep + :help ,(purecopy "Search files for strings or regexps (with Grep)"))) + menu)) ;; The "Help" menu items -(defvar menu-bar-describe-menu (make-sparse-keymap "Describe")) - -(define-key menu-bar-describe-menu [mule-diag] - `(menu-item ,(purecopy "Show All of Mule Status") mule-diag - :visible (default-value 'enable-multibyte-characters) - :help ,(purecopy "Display multilingual environment settings"))) -(define-key menu-bar-describe-menu [describe-coding-system-briefly] - `(menu-item ,(purecopy "Describe Coding System (Briefly)") - describe-current-coding-system-briefly - :visible (default-value 'enable-multibyte-characters))) -(define-key menu-bar-describe-menu [describe-coding-system] - `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system - :visible (default-value 'enable-multibyte-characters))) -(define-key menu-bar-describe-menu [describe-input-method] - `(menu-item ,(purecopy "Describe Input Method...") describe-input-method - :visible (default-value 'enable-multibyte-characters) - :help ,(purecopy "Keyboard layout for specific input method"))) -(define-key menu-bar-describe-menu [describe-language-environment] - `(menu-item ,(purecopy "Describe Language Environment") - ,describe-language-environment-map)) - -(define-key menu-bar-describe-menu [separator-desc-mule] - menu-bar-separator) - -(define-key menu-bar-describe-menu [list-keybindings] - `(menu-item ,(purecopy "List Key Bindings") describe-bindings - :help ,(purecopy "Display all current key bindings (keyboard shortcuts)"))) -(define-key menu-bar-describe-menu [describe-current-display-table] - `(menu-item ,(purecopy "Describe Display Table") describe-current-display-table - :help ,(purecopy "Describe the current display table"))) -(define-key menu-bar-describe-menu [describe-package] - `(menu-item ,(purecopy "Describe Package...") describe-package - :help ,(purecopy "Display documentation of a Lisp package"))) -(define-key menu-bar-describe-menu [describe-face] - `(menu-item ,(purecopy "Describe Face...") describe-face - :help ,(purecopy "Display the properties of a face"))) -(define-key menu-bar-describe-menu [describe-variable] - `(menu-item ,(purecopy "Describe Variable...") describe-variable - :help ,(purecopy "Display documentation of variable/option"))) -(define-key menu-bar-describe-menu [describe-function] - `(menu-item ,(purecopy "Describe Function...") describe-function - :help ,(purecopy "Display documentation of function/command"))) -(define-key menu-bar-describe-menu [describe-key-1] - `(menu-item ,(purecopy "Describe Key or Mouse Operation...") describe-key - ;; Users typically don't identify keys and menu items... - :help ,(purecopy "Display documentation of command bound to a \ +(defvar menu-bar-describe-menu + (let ((menu (make-sparse-keymap "Describe"))) + + (define-key menu [mule-diag] + `(menu-item ,(purecopy "Show All of Mule Status") mule-diag + :visible (default-value 'enable-multibyte-characters) + :help ,(purecopy "Display multilingual environment settings"))) + (define-key menu [describe-coding-system-briefly] + `(menu-item ,(purecopy "Describe Coding System (Briefly)") + describe-current-coding-system-briefly + :visible (default-value 'enable-multibyte-characters))) + (define-key menu [describe-coding-system] + `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system + :visible (default-value 'enable-multibyte-characters))) + (define-key menu [describe-input-method] + `(menu-item ,(purecopy "Describe Input Method...") describe-input-method + :visible (default-value 'enable-multibyte-characters) + :help ,(purecopy "Keyboard layout for specific input method"))) + (define-key menu [describe-language-environment] + `(menu-item ,(purecopy "Describe Language Environment") + ,describe-language-environment-map)) + + (define-key menu [separator-desc-mule] + menu-bar-separator) + + (define-key menu [list-keybindings] + `(menu-item ,(purecopy "List Key Bindings") describe-bindings + :help ,(purecopy "Display all current key bindings (keyboard shortcuts)"))) + (define-key menu [describe-current-display-table] + `(menu-item ,(purecopy "Describe Display Table") describe-current-display-table + :help ,(purecopy "Describe the current display table"))) + (define-key menu [describe-package] + `(menu-item ,(purecopy "Describe Package...") describe-package + :help ,(purecopy "Display documentation of a Lisp package"))) + (define-key menu [describe-face] + `(menu-item ,(purecopy "Describe Face...") describe-face + :help ,(purecopy "Display the properties of a face"))) + (define-key menu [describe-variable] + `(menu-item ,(purecopy "Describe Variable...") describe-variable + :help ,(purecopy "Display documentation of variable/option"))) + (define-key menu [describe-function] + `(menu-item ,(purecopy "Describe Function...") describe-function + :help ,(purecopy "Display documentation of function/command"))) + (define-key menu [describe-key-1] + `(menu-item ,(purecopy "Describe Key or Mouse Operation...") describe-key + ;; Users typically don't identify keys and menu items... + :help ,(purecopy "Display documentation of command bound to a \ key, a click, or a menu-item"))) -(define-key menu-bar-describe-menu [describe-mode] - `(menu-item ,(purecopy "Describe Buffer Modes") describe-mode - :help ,(purecopy "Describe this buffer's major and minor mode"))) + (define-key menu [describe-mode] + `(menu-item ,(purecopy "Describe Buffer Modes") describe-mode + :help ,(purecopy "Describe this buffer's major and minor mode"))) + menu)) -(defvar menu-bar-search-documentation-menu - (make-sparse-keymap "Search Documentation")) (defun menu-bar-read-lispref () "Display the Emacs Lisp Reference manual in Info mode." (interactive) @@ -1605,80 +1632,69 @@ (info "elisp") (Info-index topic)) -(define-key menu-bar-search-documentation-menu [search-documentation-strings] - `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation - :help - ,(purecopy "Find functions and variables whose doc strings match a regexp"))) -(define-key menu-bar-search-documentation-menu [find-any-object-by-name] - `(menu-item ,(purecopy "Find Any Object by Name...") apropos - :help ,(purecopy "Find symbols of any kind whose names match a regexp"))) -(define-key menu-bar-search-documentation-menu [find-option-by-value] - `(menu-item ,(purecopy "Find Options by Value...") apropos-value - :help ,(purecopy "Find variables whose values match a regexp"))) -(define-key menu-bar-search-documentation-menu [find-options-by-name] - `(menu-item ,(purecopy "Find Options by Name...") apropos-variable - :help ,(purecopy "Find variables whose names match a regexp"))) -(define-key menu-bar-search-documentation-menu [find-commands-by-name] - `(menu-item ,(purecopy "Find Commands by Name...") apropos-command - :help ,(purecopy "Find commands whose names match a regexp"))) -(define-key menu-bar-search-documentation-menu [sep1] - menu-bar-separator) -(define-key menu-bar-search-documentation-menu [lookup-command-in-manual] - `(menu-item ,(purecopy "Look Up Command in User Manual...") Info-goto-emacs-command-node - :help ,(purecopy "Display manual section that describes a command"))) -(define-key menu-bar-search-documentation-menu [lookup-key-in-manual] - `(menu-item ,(purecopy "Look Up Key in User Manual...") Info-goto-emacs-key-command-node - :help ,(purecopy "Display manual section that describes a key"))) -(define-key menu-bar-search-documentation-menu [lookup-subject-in-elisp-manual] - `(menu-item ,(purecopy "Look Up Subject in ELisp Manual...") elisp-index-search - :help ,(purecopy "Find description of a subject in Emacs Lisp manual"))) -(define-key menu-bar-search-documentation-menu [lookup-subject-in-emacs-manual] - `(menu-item ,(purecopy "Look Up Subject in User Manual...") emacs-index-search - :help ,(purecopy "Find description of a subject in Emacs User manual"))) -(define-key menu-bar-search-documentation-menu [emacs-terminology] - `(menu-item ,(purecopy "Emacs Terminology") search-emacs-glossary - :help ,(purecopy "Display the Glossary section of the Emacs manual"))) - -(defvar menu-bar-manuals-menu (make-sparse-keymap "More Manuals")) - -(define-key menu-bar-manuals-menu [man] - `(menu-item ,(purecopy "Read Man Page...") manual-entry - :help ,(purecopy "Man-page docs for external commands and libraries"))) -(define-key menu-bar-manuals-menu [sep2] - menu-bar-separator) -(define-key menu-bar-manuals-menu [order-emacs-manuals] - `(menu-item ,(purecopy "Ordering Manuals") view-order-manuals - :help ,(purecopy "How to order manuals from the Free Software Foundation"))) -(define-key menu-bar-manuals-menu [lookup-subject-in-all-manuals] - `(menu-item ,(purecopy "Lookup Subject in all Manuals...") info-apropos - :help ,(purecopy "Find description of a subject in all installed manuals"))) -(define-key menu-bar-manuals-menu [other-manuals] - `(menu-item ,(purecopy "All Other Manuals (Info)") Info-directory - :help ,(purecopy "Read any of the installed manuals"))) -(define-key menu-bar-manuals-menu [emacs-lisp-reference] - `(menu-item ,(purecopy "Emacs Lisp Reference") menu-bar-read-lispref - :help ,(purecopy "Read the Emacs Lisp Reference manual"))) -(define-key menu-bar-manuals-menu [emacs-lisp-intro] - `(menu-item ,(purecopy "Introduction to Emacs Lisp") menu-bar-read-lispintro - :help ,(purecopy "Read the Introduction to Emacs Lisp Programming"))) - -(define-key menu-bar-help-menu [about-gnu-project] - `(menu-item ,(purecopy "About GNU") describe-gnu-project - :help ,(purecopy "About the GNU System, GNU Project, and GNU/Linux"))) -(define-key menu-bar-help-menu [about-emacs] - `(menu-item ,(purecopy "About Emacs") about-emacs - :help ,(purecopy "Display version number, copyright info, and basic help"))) -(define-key menu-bar-help-menu [sep4] - menu-bar-separator) -(define-key menu-bar-help-menu [describe-no-warranty] - `(menu-item ,(purecopy "(Non)Warranty") describe-no-warranty - :help ,(purecopy "Explain that Emacs has NO WARRANTY"))) -(define-key menu-bar-help-menu [describe-copying] - `(menu-item ,(purecopy "Copying Conditions") describe-copying - :help ,(purecopy "Show the Emacs license (GPL)"))) -(define-key menu-bar-help-menu [getting-new-versions] - `(menu-item ,(purecopy "Getting New Versions") describe-distribution - :help ,(purecopy "How to get the latest version of Emacs"))) +(defvar menu-bar-search-documentation-menu + (let ((menu (make-sparse-keymap "Search Documentation"))) + + (define-key menu [search-documentation-strings] + `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation + :help + ,(purecopy "Find functions and variables whose doc strings match a regexp"))) + (define-key menu [find-any-object-by-name] + `(menu-item ,(purecopy "Find Any Object by Name...") apropos + :help ,(purecopy "Find symbols of any kind whose names match a regexp"))) + (define-key menu [find-option-by-value] + `(menu-item ,(purecopy "Find Options by Value...") apropos-value + :help ,(purecopy "Find variables whose values match a regexp"))) + (define-key menu [find-options-by-name] + `(menu-item ,(purecopy "Find Options by Name...") apropos-variable + :help ,(purecopy "Find variables whose names match a regexp"))) + (define-key menu [find-commands-by-name] + `(menu-item ,(purecopy "Find Commands by Name...") apropos-command + :help ,(purecopy "Find commands whose names match a regexp"))) + (define-key menu [sep1] + menu-bar-separator) + (define-key menu [lookup-command-in-manual] + `(menu-item ,(purecopy "Look Up Command in User Manual...") Info-goto-emacs-command-node + :help ,(purecopy "Display manual section that describes a command"))) + (define-key menu [lookup-key-in-manual] + `(menu-item ,(purecopy "Look Up Key in User Manual...") Info-goto-emacs-key-command-node + :help ,(purecopy "Display manual section that describes a key"))) + (define-key menu [lookup-subject-in-elisp-manual] + `(menu-item ,(purecopy "Look Up Subject in ELisp Manual...") elisp-index-search + :help ,(purecopy "Find description of a subject in Emacs Lisp manual"))) + (define-key menu [lookup-subject-in-emacs-manual] + `(menu-item ,(purecopy "Look Up Subject in User Manual...") emacs-index-search + :help ,(purecopy "Find description of a subject in Emacs User manual"))) + (define-key menu [emacs-terminology] + `(menu-item ,(purecopy "Emacs Terminology") search-emacs-glossary + :help ,(purecopy "Display the Glossary section of the Emacs manual"))) + menu)) + +(defvar menu-bar-manuals-menu + (let ((menu (make-sparse-keymap "More Manuals"))) + + (define-key menu [man] + `(menu-item ,(purecopy "Read Man Page...") manual-entry + :help ,(purecopy "Man-page docs for external commands and libraries"))) + (define-key menu [sep2] + menu-bar-separator) + (define-key menu [order-emacs-manuals] + `(menu-item ,(purecopy "Ordering Manuals") view-order-manuals + :help ,(purecopy "How to order manuals from the Free Software Foundation"))) + (define-key menu [lookup-subject-in-all-manuals] + `(menu-item ,(purecopy "Lookup Subject in all Manuals...") info-apropos + :help ,(purecopy "Find description of a subject in all installed manuals"))) + (define-key menu [other-manuals] + `(menu-item ,(purecopy "All Other Manuals (Info)") Info-directory + :help ,(purecopy "Read any of the installed manuals"))) + (define-key menu [emacs-lisp-reference] + `(menu-item ,(purecopy "Emacs Lisp Reference") menu-bar-read-lispref + :help ,(purecopy "Read the Emacs Lisp Reference manual"))) + (define-key menu [emacs-lisp-intro] + `(menu-item ,(purecopy "Introduction to Emacs Lisp") menu-bar-read-lispintro + :help ,(purecopy "Read the Introduction to Emacs Lisp Programming"))) + menu)) + (defun menu-bar-help-extra-packages () "Display help about some additional packages available for Emacs." (interactive) @@ -1686,60 +1702,101 @@ (view-file (expand-file-name "MORE.STUFF" data-directory)) (goto-address-mode 1))) -(define-key menu-bar-help-menu [sep2] - menu-bar-separator) -(define-key menu-bar-help-menu [external-packages] - `(menu-item ,(purecopy "Finding Extra Packages") menu-bar-help-extra-packages - :help ,(purecopy "Lisp packages distributed separately for use in Emacs"))) -(define-key menu-bar-help-menu [find-emacs-packages] - `(menu-item ,(purecopy "Search Built-in Packages") finder-by-keyword - :help ,(purecopy "Find built-in packages and features by keyword"))) -(define-key menu-bar-help-menu [more-manuals] - `(menu-item ,(purecopy "More Manuals") ,menu-bar-manuals-menu)) -(define-key menu-bar-help-menu [emacs-manual] - `(menu-item ,(purecopy "Read the Emacs Manual") info-emacs-manual - :help ,(purecopy "Full documentation of Emacs features"))) -(define-key menu-bar-help-menu [describe] - `(menu-item ,(purecopy "Describe") ,menu-bar-describe-menu)) -(define-key menu-bar-help-menu [search-documentation] - `(menu-item ,(purecopy "Search Documentation") ,menu-bar-search-documentation-menu)) -(define-key menu-bar-help-menu [sep1] - menu-bar-separator) -(define-key menu-bar-help-menu [emacs-psychotherapist] - `(menu-item ,(purecopy "Emacs Psychotherapist") doctor - :help ,(purecopy "Our doctor will help you feel better"))) -(define-key menu-bar-help-menu [send-emacs-bug-report] - `(menu-item ,(purecopy "Send Bug Report...") report-emacs-bug - :help ,(purecopy "Send e-mail to Emacs maintainers"))) -(define-key menu-bar-help-menu [emacs-known-problems] - `(menu-item ,(purecopy "Emacs Known Problems") view-emacs-problems - :help ,(purecopy "Read about known problems with Emacs"))) -(define-key menu-bar-help-menu [emacs-news] - `(menu-item ,(purecopy "Emacs News") view-emacs-news - :help ,(purecopy "New features of this version"))) -(define-key menu-bar-help-menu [emacs-faq] - `(menu-item ,(purecopy "Emacs FAQ") view-emacs-FAQ - :help ,(purecopy "Frequently asked (and answered) questions about Emacs"))) (defun help-with-tutorial-spec-language () "Use the Emacs tutorial, specifying which language you want." (interactive) (help-with-tutorial t)) -(define-key menu-bar-help-menu [emacs-tutorial-language-specific] - `(menu-item ,(purecopy "Emacs Tutorial (choose language)...") - help-with-tutorial-spec-language - :help ,(purecopy "Learn how to use Emacs (choose a language)"))) -(define-key menu-bar-help-menu [emacs-tutorial] - `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial - :help ,(purecopy "Learn how to use Emacs"))) - -;; In OS X it's in the app menu already. -;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. -(and (featurep 'ns) - (not (eq system-type 'darwin)) - (define-key menu-bar-help-menu [info-panel] - `(menu-item ,(purecopy "About Emacs...") ns-do-emacs-info-panel))) +(defvar menu-bar-help-menu + (let ((menu (make-sparse-keymap "Help"))) + (define-key menu [about-gnu-project] + `(menu-item ,(purecopy "About GNU") describe-gnu-project + :help ,(purecopy "About the GNU System, GNU Project, and GNU/Linux"))) + (define-key menu [about-emacs] + `(menu-item ,(purecopy "About Emacs") about-emacs + :help ,(purecopy "Display version number, copyright info, and basic help"))) + (define-key menu [sep4] + menu-bar-separator) + (define-key menu [describe-no-warranty] + `(menu-item ,(purecopy "(Non)Warranty") describe-no-warranty + :help ,(purecopy "Explain that Emacs has NO WARRANTY"))) + (define-key menu [describe-copying] + `(menu-item ,(purecopy "Copying Conditions") describe-copying + :help ,(purecopy "Show the Emacs license (GPL)"))) + (define-key menu [getting-new-versions] + `(menu-item ,(purecopy "Getting New Versions") describe-distribution + :help ,(purecopy "How to get the latest version of Emacs"))) + (define-key menu [sep2] + menu-bar-separator) + (define-key menu [external-packages] + `(menu-item ,(purecopy "Finding Extra Packages") menu-bar-help-extra-packages + :help ,(purecopy "Lisp packages distributed separately for use in Emacs"))) + (define-key menu [find-emacs-packages] + `(menu-item ,(purecopy "Search Built-in Packages") finder-by-keyword + :help ,(purecopy "Find built-in packages and features by keyword"))) + (define-key menu [more-manuals] + `(menu-item ,(purecopy "More Manuals") ,menu-bar-manuals-menu)) + (define-key menu [emacs-manual] + `(menu-item ,(purecopy "Read the Emacs Manual") info-emacs-manual + :help ,(purecopy "Full documentation of Emacs features"))) + (define-key menu [describe] + `(menu-item ,(purecopy "Describe") ,menu-bar-describe-menu)) + (define-key menu [search-documentation] + `(menu-item ,(purecopy "Search Documentation") ,menu-bar-search-documentation-menu)) + (define-key menu [sep1] + menu-bar-separator) + (define-key menu [emacs-psychotherapist] + `(menu-item ,(purecopy "Emacs Psychotherapist") doctor + :help ,(purecopy "Our doctor will help you feel better"))) + (define-key menu [send-emacs-bug-report] + `(menu-item ,(purecopy "Send Bug Report...") report-emacs-bug + :help ,(purecopy "Send e-mail to Emacs maintainers"))) + (define-key menu [emacs-known-problems] + `(menu-item ,(purecopy "Emacs Known Problems") view-emacs-problems + :help ,(purecopy "Read about known problems with Emacs"))) + (define-key menu [emacs-news] + `(menu-item ,(purecopy "Emacs News") view-emacs-news + :help ,(purecopy "New features of this version"))) + (define-key menu [emacs-faq] + `(menu-item ,(purecopy "Emacs FAQ") view-emacs-FAQ + :help ,(purecopy "Frequently asked (and answered) questions about Emacs"))) + + (define-key menu [emacs-tutorial-language-specific] + `(menu-item ,(purecopy "Emacs Tutorial (choose language)...") + help-with-tutorial-spec-language + :help ,(purecopy "Learn how to use Emacs (choose a language)"))) + (define-key menu [emacs-tutorial] + `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial + :help ,(purecopy "Learn how to use Emacs"))) + + ;; In OS X it's in the app menu already. + ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. + (and (featurep 'ns) + (not (eq system-type 'darwin)) + (define-key menu [info-panel] + `(menu-item ,(purecopy "About Emacs...") ns-do-emacs-info-panel))) + menu)) + +(define-key global-map [menu-bar tools] + (cons (purecopy "Tools") menu-bar-tools-menu)) +(define-key global-map [menu-bar buffer] + (cons (purecopy "Buffers") global-buffers-menu-map)) +(define-key global-map [menu-bar options] + (cons (purecopy "Options") menu-bar-options-menu)) +(define-key global-map [menu-bar edit] + (cons (purecopy "Edit") menu-bar-edit-menu)) +(define-key global-map [menu-bar file] + (cons (purecopy "File") menu-bar-file-menu)) + +;; Put "Help" menu at the end, or Info at the front. +;; If running under GNUstep, "Help" is moved and renamed "Info" (see below). +(if (and (featurep 'ns) + (not (eq system-type 'darwin))) + (define-key global-map [menu-bar help-menu] + (cons (purecopy "Info") menu-bar-help-menu)) + (define-key-after global-map [menu-bar help-menu] + (cons (purecopy "Help") menu-bar-help-menu))) (defun menu-bar-menu-frame-live-and-visible-p () "Return non-nil if the menu frame is alive and visible. === modified file 'lisp/net/net-utils.el' --- lisp/net/net-utils.el 2011-01-25 04:08:28 +0000 +++ lisp/net/net-utils.el 2011-02-10 16:56:00 +0000 @@ -490,6 +490,11 @@ (autoload 'comint-mode "comint" nil t) +(defvar nslookup-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\t" 'comint-dynamic-complete) + map)) + ;; Using a derived mode gives us keymaps, hooks, etc. (define-derived-mode nslookup-mode comint-mode "Nslookup" "Major mode for interacting with the nslookup program." @@ -499,8 +504,6 @@ (setq comint-prompt-regexp nslookup-prompt-regexp) (setq comint-input-autoexpand t)) -(define-key nslookup-mode-map "\t" 'comint-dynamic-complete) - ;;;###autoload (defun dns-lookup-host (host) "Lookup the DNS information for HOST (name or IP address)." @@ -556,6 +559,12 @@ (list host))) (pop-to-buffer buf))) +(defvar ftp-mode-map + (let ((map (make-sparse-keymap))) + ;; Occasionally useful + (define-key map "\t" 'comint-dynamic-complete) + map)) + (define-derived-mode ftp-mode comint-mode "FTP" "Major mode for interacting with the ftp program." (setq comint-prompt-regexp ftp-prompt-regexp) @@ -571,9 +580,6 @@ (add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt nil t))) -;; Occasionally useful -(define-key ftp-mode-map "\t" 'comint-dynamic-complete) - (defun smbclient (host service) "Connect to SERVICE on HOST via SMB." (interactive === modified file 'lisp/net/newst-plainview.el' --- lisp/net/newst-plainview.el 2011-01-26 08:36:39 +0000 +++ lisp/net/newst-plainview.el 2011-02-10 16:56:00 +0000 @@ -378,6 +378,107 @@ ;;; Newsticker mode ;; ====================================================================== + +;; newsticker menu +(defvar newsticker-menu + (let ((map (make-sparse-keymap "Newsticker"))) + + (define-key map [newsticker-browse-url] + '("Browse URL for item at point" . newsticker-browse-url)) + (define-key map [newsticker-separator-1] + '("--")) + (define-key map [newsticker-buffer-update] + '("Update buffer" . newsticker-buffer-update)) + (define-key map [newsticker-separator-2] + '("--")) + (define-key map [newsticker-get-all-news] + '("Get news from all feeds" . newsticker-get-all-news)) + (define-key map [newsticker-get-news-at-point] + '("Get news from feed at point" . newsticker-get-news-at-point)) + (define-key map [newsticker-separator-3] + '("--")) + (define-key map [newsticker-mark-all-items-as-read] + '("Mark all items as read" . newsticker-mark-all-items-as-read)) + (define-key map [newsticker-mark-all-items-at-point-as-read] + '("Mark all items in feed at point as read" . + newsticker-mark-all-items-at-point-as-read)) + (define-key map [newsticker-mark-item-at-point-as-read] + '("Mark item at point as read" . + newsticker-mark-item-at-point-as-read)) + (define-key map [newsticker-mark-item-at-point-as-immortal] + '("Toggle immortality for item at point" . + newsticker-mark-item-at-point-as-immortal)) + (define-key map [newsticker-separator-4] + '("--")) + (define-key map [newsticker-toggle-auto-narrow-to-item] + '("Narrow to single item" . newsticker-toggle-auto-narrow-to-item)) + (define-key map [newsticker-toggle-auto-narrow-to-feed] + '("Narrow to single news feed" . newsticker-toggle-auto-narrow-to-feed)) + (define-key map [newsticker-hide-old-items] + '("Hide old items" . newsticker-hide-old-items)) + (define-key map [newsticker-show-old-items] + '("Show old items" . newsticker-show-old-items)) + (define-key map [newsticker-next-item] + '("Go to next item" . newsticker-next-item)) + (define-key map [newsticker-previous-item] + '("Go to previous item" . newsticker-previous-item)) + map)) + +(defvar newsticker-mode-map + (let ((map (make-keymap))) + (define-key map "sO" 'newsticker-show-old-items) + (define-key map "hO" 'newsticker-hide-old-items) + (define-key map "sa" 'newsticker-show-all-desc) + (define-key map "ha" 'newsticker-hide-all-desc) + (define-key map "sf" 'newsticker-show-feed-desc) + (define-key map "hf" 'newsticker-hide-feed-desc) + (define-key map "so" 'newsticker-show-old-item-desc) + (define-key map "ho" 'newsticker-hide-old-item-desc) + (define-key map "sn" 'newsticker-show-new-item-desc) + (define-key map "hn" 'newsticker-hide-new-item-desc) + (define-key map "se" 'newsticker-show-entry) + (define-key map "he" 'newsticker-hide-entry) + (define-key map "sx" 'newsticker-show-extra) + (define-key map "hx" 'newsticker-hide-extra) + + (define-key map " " 'scroll-up) + (define-key map "q" 'newsticker-close-buffer) + (define-key map "p" 'newsticker-previous-item) + (define-key map "P" 'newsticker-previous-new-item) + (define-key map "F" 'newsticker-previous-feed) + (define-key map "\t" 'newsticker-next-item) + (define-key map "n" 'newsticker-next-item) + (define-key map "N" 'newsticker-next-new-item) + (define-key map "f" 'newsticker-next-feed) + (define-key map "M" 'newsticker-mark-all-items-as-read) + (define-key map "m" + 'newsticker-mark-all-items-at-point-as-read-and-redraw) + (define-key map "o" + 'newsticker-mark-item-at-point-as-read) + (define-key map "O" + 'newsticker-mark-all-items-at-point-as-read) + (define-key map "G" 'newsticker-get-all-news) + (define-key map "g" 'newsticker-get-news-at-point) + (define-key map "u" 'newsticker-buffer-update) + (define-key map "U" 'newsticker-buffer-force-update) + (define-key map "a" 'newsticker-add-url) + + (define-key map "i" + 'newsticker-mark-item-at-point-as-immortal) + + (define-key map "xf" + 'newsticker-toggle-auto-narrow-to-feed) + (define-key map "xi" + 'newsticker-toggle-auto-narrow-to-item) + + ;; Bind menu to mouse. + (define-key map [down-mouse-3] newsticker-menu) + ;; Put menu in menu-bar. + (define-key map [menu-bar Newsticker] + (cons "Newsticker" newsticker-menu)) + + map)) + (define-derived-mode newsticker-mode fundamental-mode "NewsTicker" "Viewing news feeds in Emacs." @@ -414,114 +515,16 @@ (add-to-invisibility-spec 'extra)) (newsticker--buffer-set-uptodate nil)) -;; refine its mode-map -(define-key newsticker-mode-map "sO" 'newsticker-show-old-items) -(define-key newsticker-mode-map "hO" 'newsticker-hide-old-items) -(define-key newsticker-mode-map "sa" 'newsticker-show-all-desc) -(define-key newsticker-mode-map "ha" 'newsticker-hide-all-desc) -(define-key newsticker-mode-map "sf" 'newsticker-show-feed-desc) -(define-key newsticker-mode-map "hf" 'newsticker-hide-feed-desc) -(define-key newsticker-mode-map "so" 'newsticker-show-old-item-desc) -(define-key newsticker-mode-map "ho" 'newsticker-hide-old-item-desc) -(define-key newsticker-mode-map "sn" 'newsticker-show-new-item-desc) -(define-key newsticker-mode-map "hn" 'newsticker-hide-new-item-desc) -(define-key newsticker-mode-map "se" 'newsticker-show-entry) -(define-key newsticker-mode-map "he" 'newsticker-hide-entry) -(define-key newsticker-mode-map "sx" 'newsticker-show-extra) -(define-key newsticker-mode-map "hx" 'newsticker-hide-extra) - -(define-key newsticker-mode-map " " 'scroll-up) -(define-key newsticker-mode-map "q" 'newsticker-close-buffer) -(define-key newsticker-mode-map "p" 'newsticker-previous-item) -(define-key newsticker-mode-map "P" 'newsticker-previous-new-item) -(define-key newsticker-mode-map "F" 'newsticker-previous-feed) -(define-key newsticker-mode-map "\t" 'newsticker-next-item) -(define-key newsticker-mode-map "n" 'newsticker-next-item) -(define-key newsticker-mode-map "N" 'newsticker-next-new-item) -(define-key newsticker-mode-map "f" 'newsticker-next-feed) -(define-key newsticker-mode-map "M" 'newsticker-mark-all-items-as-read) -(define-key newsticker-mode-map "m" - 'newsticker-mark-all-items-at-point-as-read-and-redraw) -(define-key newsticker-mode-map "o" - 'newsticker-mark-item-at-point-as-read) -(define-key newsticker-mode-map "O" - 'newsticker-mark-all-items-at-point-as-read) -(define-key newsticker-mode-map "G" 'newsticker-get-all-news) -(define-key newsticker-mode-map "g" 'newsticker-get-news-at-point) -(define-key newsticker-mode-map "u" 'newsticker-buffer-update) -(define-key newsticker-mode-map "U" 'newsticker-buffer-force-update) -(define-key newsticker-mode-map "a" 'newsticker-add-url) - -(define-key newsticker-mode-map "i" - 'newsticker-mark-item-at-point-as-immortal) - -(define-key newsticker-mode-map "xf" - 'newsticker-toggle-auto-narrow-to-feed) -(define-key newsticker-mode-map "xi" - 'newsticker-toggle-auto-narrow-to-item) - ;; maps for the clickable portions -(defvar newsticker--url-keymap (make-sparse-keymap) +(defvar newsticker--url-keymap + (let ((map (make-sparse-keymap))) + (define-key map [mouse-1] 'newsticker-mouse-browse-url) + (define-key map [mouse-2] 'newsticker-mouse-browse-url) + (define-key map "\n" 'newsticker-browse-url) + (define-key map "\C-m" 'newsticker-browse-url) + (define-key map [(control return)] 'newsticker-handle-url) + map) "Key map for click-able headings in the newsticker buffer.") -(define-key newsticker--url-keymap [mouse-1] - 'newsticker-mouse-browse-url) -(define-key newsticker--url-keymap [mouse-2] - 'newsticker-mouse-browse-url) -(define-key newsticker--url-keymap "\n" - 'newsticker-browse-url) -(define-key newsticker--url-keymap "\C-m" - 'newsticker-browse-url) -(define-key newsticker--url-keymap [(control return)] - 'newsticker-handle-url) - -;; newsticker menu -(defvar newsticker-menu (make-sparse-keymap "Newsticker")) - -(define-key newsticker-menu [newsticker-browse-url] - '("Browse URL for item at point" . newsticker-browse-url)) -(define-key newsticker-menu [newsticker-separator-1] - '("--")) -(define-key newsticker-menu [newsticker-buffer-update] - '("Update buffer" . newsticker-buffer-update)) -(define-key newsticker-menu [newsticker-separator-2] - '("--")) -(define-key newsticker-menu [newsticker-get-all-news] - '("Get news from all feeds" . newsticker-get-all-news)) -(define-key newsticker-menu [newsticker-get-news-at-point] - '("Get news from feed at point" . newsticker-get-news-at-point)) -(define-key newsticker-menu [newsticker-separator-3] - '("--")) -(define-key newsticker-menu [newsticker-mark-all-items-as-read] - '("Mark all items as read" . newsticker-mark-all-items-as-read)) -(define-key newsticker-menu [newsticker-mark-all-items-at-point-as-read] - '("Mark all items in feed at point as read" . - newsticker-mark-all-items-at-point-as-read)) -(define-key newsticker-menu [newsticker-mark-item-at-point-as-read] - '("Mark item at point as read" . - newsticker-mark-item-at-point-as-read)) -(define-key newsticker-menu [newsticker-mark-item-at-point-as-immortal] - '("Toggle immortality for item at point" . - newsticker-mark-item-at-point-as-immortal)) -(define-key newsticker-menu [newsticker-separator-4] - '("--")) -(define-key newsticker-menu [newsticker-toggle-auto-narrow-to-item] - '("Narrow to single item" . newsticker-toggle-auto-narrow-to-item)) -(define-key newsticker-menu [newsticker-toggle-auto-narrow-to-feed] - '("Narrow to single news feed" . newsticker-toggle-auto-narrow-to-feed)) -(define-key newsticker-menu [newsticker-hide-old-items] - '("Hide old items" . newsticker-hide-old-items)) -(define-key newsticker-menu [newsticker-show-old-items] - '("Show old items" . newsticker-show-old-items)) -(define-key newsticker-menu [newsticker-next-item] - '("Go to next item" . newsticker-next-item)) -(define-key newsticker-menu [newsticker-previous-item] - '("Go to previous item" . newsticker-previous-item)) - -;; bind menu to mouse -(define-key newsticker-mode-map [down-mouse-3] newsticker-menu) -;; Put menu in menu-bar -(define-key newsticker-mode-map [menu-bar Newsticker] - (cons "Newsticker" newsticker-menu)) ;; ====================================================================== === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2011-02-10 15:41:40 +0000 +++ lisp/net/rcirc.el 2011-02-10 16:56:00 +0000 @@ -861,41 +861,43 @@ (interactive "zCoding system for outgoing messages: ") (setq rcirc-encode-coding-system coding-system)) -(defvar rcirc-mode-map (make-sparse-keymap) +(defvar rcirc-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "RET") 'rcirc-send-input) + (define-key map (kbd "M-p") 'rcirc-insert-prev-input) + (define-key map (kbd "M-n") 'rcirc-insert-next-input) + (define-key map (kbd "TAB") 'rcirc-complete) + (define-key map (kbd "C-c C-b") 'rcirc-browse-url) + (define-key map (kbd "C-c C-c") 'rcirc-edit-multiline) + (define-key map (kbd "C-c C-j") 'rcirc-cmd-join) + (define-key map (kbd "C-c C-k") 'rcirc-cmd-kick) + (define-key map (kbd "C-c C-l") 'rcirc-toggle-low-priority) + (define-key map (kbd "C-c C-d") 'rcirc-cmd-mode) + (define-key map (kbd "C-c C-m") 'rcirc-cmd-msg) + (define-key map (kbd "C-c C-r") 'rcirc-cmd-nick) ; rename + (define-key map (kbd "C-c C-o") 'rcirc-omit-mode) + (define-key map (kbd "M-o") 'rcirc-omit-mode) + (define-key map (kbd "C-c C-p") 'rcirc-cmd-part) + (define-key map (kbd "C-c C-q") 'rcirc-cmd-query) + (define-key map (kbd "C-c C-t") 'rcirc-cmd-topic) + (define-key map (kbd "C-c C-n") 'rcirc-cmd-names) + (define-key map (kbd "C-c C-w") 'rcirc-cmd-whois) + (define-key map (kbd "C-c C-x") 'rcirc-cmd-quit) + (define-key map (kbd "C-c TAB") ; C-i + 'rcirc-toggle-ignore-buffer-activity) + (define-key map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer) + (define-key map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line) + map) "Keymap for rcirc mode.") -(define-key rcirc-mode-map (kbd "RET") 'rcirc-send-input) -(define-key rcirc-mode-map (kbd "M-p") 'rcirc-insert-prev-input) -(define-key rcirc-mode-map (kbd "M-n") 'rcirc-insert-next-input) -(define-key rcirc-mode-map (kbd "TAB") 'rcirc-complete) -(define-key rcirc-mode-map (kbd "C-c C-b") 'rcirc-browse-url) -(define-key rcirc-mode-map (kbd "C-c C-c") 'rcirc-edit-multiline) -(define-key rcirc-mode-map (kbd "C-c C-j") 'rcirc-cmd-join) -(define-key rcirc-mode-map (kbd "C-c C-k") 'rcirc-cmd-kick) -(define-key rcirc-mode-map (kbd "C-c C-l") 'rcirc-toggle-low-priority) -(define-key rcirc-mode-map (kbd "C-c C-d") 'rcirc-cmd-mode) -(define-key rcirc-mode-map (kbd "C-c C-m") 'rcirc-cmd-msg) -(define-key rcirc-mode-map (kbd "C-c C-r") 'rcirc-cmd-nick) ; rename -(define-key rcirc-mode-map (kbd "C-c C-o") 'rcirc-omit-mode) -(define-key rcirc-mode-map (kbd "M-o") 'rcirc-omit-mode) -(define-key rcirc-mode-map (kbd "C-c C-p") 'rcirc-cmd-part) -(define-key rcirc-mode-map (kbd "C-c C-q") 'rcirc-cmd-query) -(define-key rcirc-mode-map (kbd "C-c C-t") 'rcirc-cmd-topic) -(define-key rcirc-mode-map (kbd "C-c C-n") 'rcirc-cmd-names) -(define-key rcirc-mode-map (kbd "C-c C-w") 'rcirc-cmd-whois) -(define-key rcirc-mode-map (kbd "C-c C-x") 'rcirc-cmd-quit) -(define-key rcirc-mode-map (kbd "C-c TAB") ; C-i - 'rcirc-toggle-ignore-buffer-activity) -(define-key rcirc-mode-map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer) -(define-key rcirc-mode-map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line) - -(defvar rcirc-browse-url-map (make-sparse-keymap) +(defvar rcirc-browse-url-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "RET") 'rcirc-browse-url-at-point) + (define-key map (kbd "") 'rcirc-browse-url-at-mouse) + (define-key map [follow-link] 'mouse-face) + map) "Keymap used for browsing URLs in `rcirc-mode'.") -(define-key rcirc-browse-url-map (kbd "RET") 'rcirc-browse-url-at-point) -(define-key rcirc-browse-url-map (kbd "") 'rcirc-browse-url-at-mouse) -(define-key rcirc-browse-url-map [follow-link] 'mouse-face) - (defvar rcirc-short-buffer-name nil "Generated abbreviation to use to indicate buffer activity.") @@ -1216,16 +1218,14 @@ (and (> pos 0) (goto-char pos)) (message "Type C-c C-c to return text to %s, or C-c C-k to cancel" parent)))) -(defvar rcirc-multiline-minor-mode-map (make-sparse-keymap) +(defvar rcirc-multiline-minor-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-c") 'rcirc-multiline-minor-submit) + (define-key map (kbd "C-x C-s") 'rcirc-multiline-minor-submit) + (define-key map (kbd "C-c C-k") 'rcirc-multiline-minor-cancel) + (define-key map (kbd "ESC ESC ESC") 'rcirc-multiline-minor-cancel) + map) "Keymap for multiline mode in rcirc.") -(define-key rcirc-multiline-minor-mode-map - (kbd "C-c C-c") 'rcirc-multiline-minor-submit) -(define-key rcirc-multiline-minor-mode-map - (kbd "C-x C-s") 'rcirc-multiline-minor-submit) -(define-key rcirc-multiline-minor-mode-map - (kbd "C-c C-k") 'rcirc-multiline-minor-cancel) -(define-key rcirc-multiline-minor-mode-map - (kbd "ESC ESC ESC") 'rcirc-multiline-minor-cancel) (define-minor-mode rcirc-multiline-minor-mode "Minor mode for editing multiple lines in rcirc." @@ -1742,12 +1742,13 @@ (mapconcat 'identity sorted sep))) ;;; activity tracking -(defvar rcirc-track-minor-mode-map (make-sparse-keymap) +(defvar rcirc-track-minor-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-@") 'rcirc-next-active-buffer) + (define-key map (kbd "C-c C-SPC") 'rcirc-next-active-buffer) + map) "Keymap for rcirc track minor mode.") -(define-key rcirc-track-minor-mode-map (kbd "C-c C-@") 'rcirc-next-active-buffer) -(define-key rcirc-track-minor-mode-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer) - ;;;###autoload (define-minor-mode rcirc-track-minor-mode "Global minor mode for tracking activity in rcirc buffers." === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2011-01-25 04:08:28 +0000 +++ lisp/org/ChangeLog 2011-02-10 16:56:00 +0000 @@ -1,3 +1,8 @@ +2011-02-10 Stefan Monnier + + * org-remember.el (org-remember-mode-map): + * org-src.el (org-src-mode-map): Move initialization into declaration. + 2011-01-13 Stefan Monnier * org-remember.el (org-remember-mode): === modified file 'lisp/org/org-remember.el' --- lisp/org/org-remember.el 2011-01-26 08:36:39 +0000 +++ lisp/org/org-remember.el 2011-02-10 16:56:00 +0000 @@ -214,7 +214,11 @@ :group 'org-remember :type 'hook) -(defvar org-remember-mode-map (make-sparse-keymap) +(defvar org-remember-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-c\C-c" 'org-remember-finalize) + (define-key map "\C-c\C-k" 'org-remember-kill) + map) "Keymap for `org-remember-mode', a minor mode. Use this map to set additional keybindings for when Org-mode is used for a Remember buffer.") @@ -224,8 +228,6 @@ (define-minor-mode org-remember-mode "Minor mode for special key bindings in a remember buffer." nil " Rem" org-remember-mode-map) -(define-key org-remember-mode-map "\C-c\C-c" 'org-remember-finalize) -(define-key org-remember-mode-map "\C-c\C-k" 'org-remember-kill) (defcustom org-remember-clock-out-on-exit 'query "Non-nil means stop the clock when exiting a clocking remember buffer. === modified file 'lisp/org/org-src.el' --- lisp/org/org-src.el 2011-01-26 08:36:39 +0000 +++ lisp/org/org-src.el 2011-02-10 16:56:00 +0000 @@ -169,8 +169,10 @@ ;;; Editing source examples -(defvar org-src-mode-map (make-sparse-keymap)) -(define-key org-src-mode-map "\C-c'" 'org-edit-src-exit) +(defvar org-src-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-c'" 'org-edit-src-exit) + map)) (defvar org-edit-src-force-single-line nil) (defvar org-edit-src-from-org-mode nil) === modified file 'lisp/play/gametree.el' --- lisp/play/gametree.el 2011-01-25 04:08:28 +0000 +++ lisp/play/gametree.el 2011-02-10 16:56:00 +0000 @@ -565,6 +565,20 @@ (gametree-hack-file-layout)) nil) +;;;; Key bindings +(defvar gametree-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-c\C-j" 'gametree-break-line-here) + (define-key map "\C-c\C-v" 'gametree-insert-new-leaf) + (define-key map "\C-c\C-m" 'gametree-merge-line) + (define-key map "\C-c\C-r " 'gametree-layout-to-register) + (define-key map "\C-c\C-r/" 'gametree-layout-to-register) + (define-key map "\C-c\C-rj" 'gametree-apply-register-layout) + (define-key map "\C-c\C-y" 'gametree-save-and-hack-layout) + (define-key map "\C-c;" 'gametree-insert-score) + (define-key map "\C-c^" 'gametree-compute-and-insert-score) + map)) + (define-derived-mode gametree-mode outline-mode "GameTree" "Major mode for managing game analysis trees. Useful to postal and email chess (and, it is hoped, also checkers, go, @@ -575,18 +589,6 @@ (make-local-variable 'write-contents-hooks) (add-hook 'write-contents-hooks 'gametree-save-and-hack-layout)) -;;;; Key bindings - -(define-key gametree-mode-map "\C-c\C-j" 'gametree-break-line-here) -(define-key gametree-mode-map "\C-c\C-v" 'gametree-insert-new-leaf) -(define-key gametree-mode-map "\C-c\C-m" 'gametree-merge-line) -(define-key gametree-mode-map "\C-c\C-r " 'gametree-layout-to-register) -(define-key gametree-mode-map "\C-c\C-r/" 'gametree-layout-to-register) -(define-key gametree-mode-map "\C-c\C-rj" 'gametree-apply-register-layout) -(define-key gametree-mode-map "\C-c\C-y" 'gametree-save-and-hack-layout) -(define-key gametree-mode-map "\C-c;" 'gametree-insert-score) -(define-key gametree-mode-map "\C-c^" 'gametree-compute-and-insert-score) - ;;;; Goodies for mousing users (and (fboundp 'track-mouse) (defun gametree-mouse-break-line-here (event) === modified file 'lisp/play/handwrite.el' --- lisp/play/handwrite.el 2011-01-25 04:08:28 +0000 +++ lisp/play/handwrite.el 2011-02-10 16:56:00 +0000 @@ -80,8 +80,24 @@ (defvar handwrite-psindex 0 "The index of the PostScript buffer.") -(defvar menu-bar-handwrite-map (make-sparse-keymap "Handwrite functions.")) -(fset 'menu-bar-handwrite-map (symbol-value 'menu-bar-handwrite-map)) +(defvar menu-bar-handwrite-map + (let ((map (make-sparse-keymap "Handwrite functions."))) + (define-key map [numbering] + '(menu-item "Page numbering" handwrite-set-pagenumber + :button (:toggle . handwrite-pagenumbering))) + (define-key map [handwrite-separator2] '("----" . nil)) + (define-key map [10pt] '(menu-item "10 pt" handwrite-10pt + :button (:radio . (eq handwrite-fontsize 10)))) + (define-key map [11pt] '(menu-item "11 pt" handwrite-11pt + :button (:radio . (eq handwrite-fontsize 11)))) + (define-key map [12pt] '(menu-item "12 pt" handwrite-12pt + :button (:radio . (eq handwrite-fontsize 12)))) + (define-key map [13pt] '(menu-item "13 pt" handwrite-13pt + :button (:radio . (eq handwrite-fontsize 13)))) + (define-key map [handwrite-separator1] '("----" . nil)) + (define-key map [handwrite] '("Write by hand" . handwrite)) + map)) +(fset 'menu-bar-handwrite-map menu-bar-handwrite-map) ;; User definable variables @@ -135,10 +151,10 @@ The functions `handwrite-10pt', `handwrite-11pt', `handwrite-12pt' and `handwrite-13pt' set up for various sizes of output. -Variables: handwrite-linespace (default 12) - handwrite-fontsize (default 11) - handwrite-numlines (default 60) - handwrite-pagenumbering (default nil)" +Variables: `handwrite-linespace' (default 12) + `handwrite-fontsize' (default 11) + `handwrite-numlines' (default 60) + `handwrite-pagenumbering' (default nil)" (interactive) (let ((pmin) ; thanks, Havard @@ -258,7 +274,8 @@ "Toggle the value of `handwrite-pagenumbering'." (interactive) (if handwrite-pagenumbering - (handwrite-set-pagenumber-off)(handwrite-set-pagenumber-on))) + (handwrite-set-pagenumber-off) + (handwrite-set-pagenumber-on))) (defun handwrite-10pt () "Specify 10-point output for `handwrite. @@ -268,14 +285,6 @@ (setq handwrite-fontsize 10) (setq handwrite-linespace 11) (setq handwrite-numlines handwrite-10pt-numlines) - (define-key menu-bar-handwrite-map [10pt] - '("10 pt *" . handwrite-10pt)) - (define-key menu-bar-handwrite-map [11pt] - '("11 pt" . handwrite-11pt)) - (define-key menu-bar-handwrite-map [12pt] - '("12 pt" . handwrite-12pt)) - (define-key menu-bar-handwrite-map [13pt] - '("13 pt" . handwrite-13pt)) (message "Handwrite output size set to 10 points")) @@ -287,14 +296,6 @@ (setq handwrite-fontsize 11) (setq handwrite-linespace 12) (setq handwrite-numlines handwrite-11pt-numlines) - (define-key menu-bar-handwrite-map [10pt] - '("10 pt" . handwrite-10pt)) - (define-key menu-bar-handwrite-map [11pt] - '("11 pt *" . handwrite-11pt)) - (define-key menu-bar-handwrite-map [12pt] - '("12 pt" . handwrite-12pt)) - (define-key menu-bar-handwrite-map [13pt] - '("13 pt" . handwrite-13pt)) (message "Handwrite output size set to 11 points")) (defun handwrite-12pt () @@ -305,14 +306,6 @@ (setq handwrite-fontsize 12) (setq handwrite-linespace 13) (setq handwrite-numlines handwrite-12pt-numlines) - (define-key menu-bar-handwrite-map [10pt] - '("10 pt" . handwrite-10pt)) - (define-key menu-bar-handwrite-map [11pt] - '("11 pt" . handwrite-11pt)) - (define-key menu-bar-handwrite-map [12pt] - '("12 pt *" . handwrite-12pt)) - (define-key menu-bar-handwrite-map [13pt] - '("13 pt" . handwrite-13pt)) (message "Handwrite output size set to 12 points")) (defun handwrite-13pt () @@ -323,14 +316,6 @@ (setq handwrite-fontsize 13) (setq handwrite-linespace 14) (setq handwrite-numlines handwrite-13pt-numlines) - (define-key menu-bar-handwrite-map [10pt] - '("10 pt" . handwrite-10pt)) - (define-key menu-bar-handwrite-map [11pt] - '("11 pt" . handwrite-11pt)) - (define-key menu-bar-handwrite-map [12pt] - '("12 pt" . handwrite-12pt)) - (define-key menu-bar-handwrite-map [13pt] - '("13 pt *" . handwrite-13pt)) (message "Handwrite output size set to 13 points")) @@ -1263,62 +1248,24 @@ ;;Sets page numbering off (defun handwrite-set-pagenumber-off () (setq handwrite-pagenumbering nil) - (define-key menu-bar-handwrite-map - [numbering] - '("Page numbering Off" . handwrite-set-pagenumber)) (message "page numbering off")) ;;Sets page numbering on (defun handwrite-set-pagenumber-on () (setq handwrite-pagenumbering t) - (define-key menu-bar-handwrite-map - [numbering] - '("Page numbering On" . handwrite-set-pagenumber)) (message "page numbering on" )) ;; Key bindings - -;;; I'd rather not fill up the menu bar menus with -;;; lots of random miscellaneous features. -- rms. +;; I'd rather not fill up the menu bar menus with +;; lots of random miscellaneous features. -- rms. ;;;(define-key-after ;;; (lookup-key global-map [menu-bar edit]) ;;; [handwrite] ;;; '("Write by hand" . menu-bar-handwrite-map) ;;; 'spell) -(define-key menu-bar-handwrite-map [numbering] - '("Page numbering Off" . handwrite-set-pagenumber)) - -(define-key menu-bar-handwrite-map [10pt] - '("10 pt" . handwrite-10pt)) - -(define-key menu-bar-handwrite-map [11pt] - '("11 pt *" . handwrite-11pt)) - -(define-key menu-bar-handwrite-map [12pt] - '("12 pt" . handwrite-12pt)) - -(define-key menu-bar-handwrite-map [13pt] - '("13 pt" . handwrite-13pt)) - -(define-key menu-bar-handwrite-map [handwrite] - '("Write by hand" . handwrite)) - -(define-key-after - (lookup-key menu-bar-handwrite-map [ ]) - [handwrite-separator1] - '("----" . nil) - 'handwrite) - -(define-key-after - (lookup-key menu-bar-handwrite-map [ ]) - [handwrite-separator2] - '("----" . nil) - '10pt) - - (provide 'handwrite) === modified file 'lisp/play/pong.el' --- lisp/play/pong.el 2011-01-25 04:08:28 +0000 +++ lisp/play/pong.el 2011-02-10 16:56:00 +0000 @@ -190,21 +190,23 @@ ;;; Initialize maps (defvar pong-mode-map - (make-sparse-keymap 'pong-mode-map) "Modemap for pong-mode.") + (let ((map (make-sparse-keymap 'pong-mode-map))) + (define-key map [left] 'pong-move-left) + (define-key map [right] 'pong-move-right) + (define-key map [up] 'pong-move-up) + (define-key map [down] 'pong-move-down) + (define-key map pong-left-key 'pong-move-left) + (define-key map pong-right-key 'pong-move-right) + (define-key map pong-up-key 'pong-move-up) + (define-key map pong-down-key 'pong-move-down) + (define-key map pong-quit-key 'pong-quit) + (define-key map pong-pause-key 'pong-pause) + map) + "Modemap for pong-mode.") (defvar pong-null-map (make-sparse-keymap 'pong-null-map) "Null map for pong-mode.") -(define-key pong-mode-map [left] 'pong-move-left) -(define-key pong-mode-map [right] 'pong-move-right) -(define-key pong-mode-map [up] 'pong-move-up) -(define-key pong-mode-map [down] 'pong-move-down) -(define-key pong-mode-map pong-left-key 'pong-move-left) -(define-key pong-mode-map pong-right-key 'pong-move-right) -(define-key pong-mode-map pong-up-key 'pong-move-up) -(define-key pong-mode-map pong-down-key 'pong-move-down) -(define-key pong-mode-map pong-quit-key 'pong-quit) -(define-key pong-mode-map pong-pause-key 'pong-pause) ;;; Fun stuff -- The code === modified file 'lisp/play/snake.el' --- lisp/play/snake.el 2011-01-25 04:08:28 +0000 +++ lisp/play/snake.el 2011-02-10 16:56:00 +0000 @@ -174,21 +174,22 @@ ;; ;;;;;;;;;;;;; keymaps ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar snake-mode-map - (make-sparse-keymap 'snake-mode-map)) - -(define-key snake-mode-map "n" 'snake-start-game) -(define-key snake-mode-map "q" 'snake-end-game) -(define-key snake-mode-map "p" 'snake-pause-game) - -(define-key snake-mode-map [left] 'snake-move-left) -(define-key snake-mode-map [right] 'snake-move-right) -(define-key snake-mode-map [up] 'snake-move-up) -(define-key snake-mode-map [down] 'snake-move-down) + (let ((map (make-sparse-keymap 'snake-mode-map))) + + (define-key map "n" 'snake-start-game) + (define-key map "q" 'snake-end-game) + (define-key map "p" 'snake-pause-game) + + (define-key map [left] 'snake-move-left) + (define-key map [right] 'snake-move-right) + (define-key map [up] 'snake-move-up) + (define-key map [down] 'snake-move-down) + map)) (defvar snake-null-map - (make-sparse-keymap 'snake-null-map)) - -(define-key snake-null-map "n" 'snake-start-game) + (let ((map (make-sparse-keymap 'snake-null-map))) + (define-key map "n" 'snake-start-game) + map)) ;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; === modified file 'lisp/play/solitaire.el' --- lisp/play/solitaire.el 2011-02-02 17:59:44 +0000 +++ lisp/play/solitaire.el 2011-02-10 16:56:00 +0000 @@ -41,6 +41,49 @@ :type 'hook :group 'solitaire) +(defvar solitaire-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map special-mode-map) + + (define-key map "\C-f" 'solitaire-right) + (define-key map "\C-b" 'solitaire-left) + (define-key map "\C-p" 'solitaire-up) + (define-key map "\C-n" 'solitaire-down) + (define-key map "\r" 'solitaire-move) + (define-key map [remap undo] 'solitaire-undo) + (define-key map " " 'solitaire-do-check) + + (define-key map [right] 'solitaire-right) + (define-key map [left] 'solitaire-left) + (define-key map [up] 'solitaire-up) + (define-key map [down] 'solitaire-down) + + (define-key map [S-right] 'solitaire-move-right) + (define-key map [S-left] 'solitaire-move-left) + (define-key map [S-up] 'solitaire-move-up) + (define-key map [S-down] 'solitaire-move-down) + + (define-key map [kp-6] 'solitaire-right) + (define-key map [kp-4] 'solitaire-left) + (define-key map [kp-8] 'solitaire-up) + (define-key map [kp-2] 'solitaire-down) + (define-key map [kp-5] 'solitaire-center-point) + + (define-key map [S-kp-6] 'solitaire-move-right) + (define-key map [S-kp-4] 'solitaire-move-left) + (define-key map [S-kp-8] 'solitaire-move-up) + (define-key map [S-kp-2] 'solitaire-move-down) + + (define-key map [kp-enter] 'solitaire-move) + (define-key map [kp-0] 'solitaire-undo) + + ;; spoil it with s ;) + (define-key map [?s] 'solitaire-solve) + + ;; (define-key map [kp-0] 'solitaire-hint) - Not yet provided ;) + map) + "Keymap for playing Solitaire.") + ;; Solitaire mode is suitable only for specially formatted data. (put 'solitaire-mode 'mode-class 'special) @@ -54,41 +97,6 @@ (setq truncate-lines t) (setq show-trailing-whitespace nil)) -(define-key solitaire-mode-map "\C-f" 'solitaire-right) -(define-key solitaire-mode-map "\C-b" 'solitaire-left) -(define-key solitaire-mode-map "\C-p" 'solitaire-up) -(define-key solitaire-mode-map "\C-n" 'solitaire-down) -(define-key solitaire-mode-map "\r" 'solitaire-move) -(define-key solitaire-mode-map [remap undo] 'solitaire-undo) -(define-key solitaire-mode-map " " 'solitaire-do-check) - -(define-key solitaire-mode-map [right] 'solitaire-right) -(define-key solitaire-mode-map [left] 'solitaire-left) -(define-key solitaire-mode-map [up] 'solitaire-up) -(define-key solitaire-mode-map [down] 'solitaire-down) - -(define-key solitaire-mode-map [S-right] 'solitaire-move-right) -(define-key solitaire-mode-map [S-left] 'solitaire-move-left) -(define-key solitaire-mode-map [S-up] 'solitaire-move-up) -(define-key solitaire-mode-map [S-down] 'solitaire-move-down) - -(define-key solitaire-mode-map [kp-6] 'solitaire-right) -(define-key solitaire-mode-map [kp-4] 'solitaire-left) -(define-key solitaire-mode-map [kp-8] 'solitaire-up) -(define-key solitaire-mode-map [kp-2] 'solitaire-down) -(define-key solitaire-mode-map [kp-5] 'solitaire-center-point) - -(define-key solitaire-mode-map [S-kp-6] 'solitaire-move-right) -(define-key solitaire-mode-map [S-kp-4] 'solitaire-move-left) -(define-key solitaire-mode-map [S-kp-8] 'solitaire-move-up) -(define-key solitaire-mode-map [S-kp-2] 'solitaire-move-down) - -(define-key solitaire-mode-map [kp-enter] 'solitaire-move) -(define-key solitaire-mode-map [kp-0] 'solitaire-undo) - -;; spoil it with s ;) -(define-key solitaire-mode-map [?s] 'solitaire-solve) -;; (define-key map [kp-0] 'solitaire-hint) - Not yet provided ;) (defvar solitaire-stones 0 "Counter for the stones that are still there.") === modified file 'lisp/progmodes/gdb-mi.el' --- lisp/progmodes/gdb-mi.el 2011-02-03 19:59:17 +0000 +++ lisp/progmodes/gdb-mi.el 2011-02-10 16:56:00 +0000 @@ -2983,25 +2983,27 @@ map) "Keymap to select format in the header line.") -(defvar gdb-memory-format-menu (make-sparse-keymap "Format") +(defvar gdb-memory-format-menu + (let ((map (make-sparse-keymap "Format"))) + + (define-key map [binary] + '(menu-item "Binary" gdb-memory-format-binary + :button (:radio . (equal gdb-memory-format "t")))) + (define-key map [octal] + '(menu-item "Octal" gdb-memory-format-octal + :button (:radio . (equal gdb-memory-format "o")))) + (define-key map [unsigned] + '(menu-item "Unsigned Decimal" gdb-memory-format-unsigned + :button (:radio . (equal gdb-memory-format "u")))) + (define-key map [signed] + '(menu-item "Signed Decimal" gdb-memory-format-signed + :button (:radio . (equal gdb-memory-format "d")))) + (define-key map [hexadecimal] + '(menu-item "Hexadecimal" gdb-memory-format-hexadecimal + :button (:radio . (equal gdb-memory-format "x")))) + map) "Menu of display formats in the header line.") -(define-key gdb-memory-format-menu [binary] - '(menu-item "Binary" gdb-memory-format-binary - :button (:radio . (equal gdb-memory-format "t")))) -(define-key gdb-memory-format-menu [octal] - '(menu-item "Octal" gdb-memory-format-octal - :button (:radio . (equal gdb-memory-format "o")))) -(define-key gdb-memory-format-menu [unsigned] - '(menu-item "Unsigned Decimal" gdb-memory-format-unsigned - :button (:radio . (equal gdb-memory-format "u")))) -(define-key gdb-memory-format-menu [signed] - '(menu-item "Signed Decimal" gdb-memory-format-signed - :button (:radio . (equal gdb-memory-format "d")))) -(define-key gdb-memory-format-menu [hexadecimal] - '(menu-item "Hexadecimal" gdb-memory-format-hexadecimal - :button (:radio . (equal gdb-memory-format "x")))) - (defun gdb-memory-format-menu (event) (interactive "@e") (x-popup-menu event gdb-memory-format-menu)) @@ -3061,22 +3063,23 @@ map) "Keymap to select units in the header line.") -(defvar gdb-memory-unit-menu (make-sparse-keymap "Unit") +(defvar gdb-memory-unit-menu + (let ((map (make-sparse-keymap "Unit"))) + (define-key map [giantwords] + '(menu-item "Giant words" gdb-memory-unit-giant + :button (:radio . (equal gdb-memory-unit 8)))) + (define-key map [words] + '(menu-item "Words" gdb-memory-unit-word + :button (:radio . (equal gdb-memory-unit 4)))) + (define-key map [halfwords] + '(menu-item "Halfwords" gdb-memory-unit-halfword + :button (:radio . (equal gdb-memory-unit 2)))) + (define-key map [bytes] + '(menu-item "Bytes" gdb-memory-unit-byte + :button (:radio . (equal gdb-memory-unit 1)))) + map) "Menu of units in the header line.") -(define-key gdb-memory-unit-menu [giantwords] - '(menu-item "Giant words" gdb-memory-unit-giant - :button (:radio . (equal gdb-memory-unit 8)))) -(define-key gdb-memory-unit-menu [words] - '(menu-item "Words" gdb-memory-unit-word - :button (:radio . (equal gdb-memory-unit 4)))) -(define-key gdb-memory-unit-menu [halfwords] - '(menu-item "Halfwords" gdb-memory-unit-halfword - :button (:radio . (equal gdb-memory-unit 2)))) -(define-key gdb-memory-unit-menu [bytes] - '(menu-item "Bytes" gdb-memory-unit-byte - :button (:radio . (equal gdb-memory-unit 1)))) - (defun gdb-memory-unit-menu (event) (interactive "@e") (x-popup-menu event gdb-memory-unit-menu)) === modified file 'lisp/progmodes/idlw-help.el' --- lisp/progmodes/idlw-help.el 2011-01-25 04:08:28 +0000 +++ lisp/progmodes/idlw-help.el 2011-02-10 16:56:00 +0000 @@ -219,23 +219,24 @@ ;; Define the key bindings for the Help application -(defvar idlwave-help-mode-map (make-sparse-keymap) +(defvar idlwave-help-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "q" 'idlwave-help-quit) + (define-key map "w" 'widen) + (define-key map "\C-m" (lambda (arg) + (interactive "p") + (scroll-up arg))) + (define-key map " " 'scroll-up) + (define-key map [delete] 'scroll-down) + (define-key map "h" 'idlwave-help-find-header) + (define-key map "H" 'idlwave-help-find-first-header) + (define-key map "." 'idlwave-help-toggle-header-match-and-def) + (define-key map "F" 'idlwave-help-fontify) + (define-key map "\M-?" 'idlwave-help-return-to-calling-frame) + (define-key map "x" 'idlwave-help-return-to-calling-frame) + map) "The keymap used in `idlwave-help-mode'.") -(define-key idlwave-help-mode-map "q" 'idlwave-help-quit) -(define-key idlwave-help-mode-map "w" 'widen) -(define-key idlwave-help-mode-map "\C-m" (lambda (arg) - (interactive "p") - (scroll-up arg))) -(define-key idlwave-help-mode-map " " 'scroll-up) -(define-key idlwave-help-mode-map [delete] 'scroll-down) -(define-key idlwave-help-mode-map "h" 'idlwave-help-find-header) -(define-key idlwave-help-mode-map "H" 'idlwave-help-find-first-header) -(define-key idlwave-help-mode-map "." 'idlwave-help-toggle-header-match-and-def) -(define-key idlwave-help-mode-map "F" 'idlwave-help-fontify) -(define-key idlwave-help-mode-map "\M-?" 'idlwave-help-return-to-calling-frame) -(define-key idlwave-help-mode-map "x" 'idlwave-help-return-to-calling-frame) - ;; Define the menu for the Help application (easy-menu-define === modified file 'lisp/progmodes/idlwave.el' --- lisp/progmodes/idlwave.el 2011-01-25 04:08:28 +0000 +++ lisp/progmodes/idlwave.el 2011-02-10 16:56:00 +0000 @@ -8265,20 +8265,26 @@ ;; keyword - return it as it is. keyword)))) -(defvar idlwave-rinfo-mouse-map (make-sparse-keymap)) -(defvar idlwave-rinfo-map (make-sparse-keymap)) -(define-key idlwave-rinfo-mouse-map - (if (featurep 'xemacs) [button2] [mouse-2]) - 'idlwave-mouse-active-rinfo) -(define-key idlwave-rinfo-mouse-map - (if (featurep 'xemacs) [(shift button2)] [(shift mouse-2)]) - 'idlwave-mouse-active-rinfo-shift) -(define-key idlwave-rinfo-mouse-map - (if (featurep 'xemacs) [button3] [mouse-3]) - 'idlwave-mouse-active-rinfo-right) -(define-key idlwave-rinfo-mouse-map " " 'idlwave-active-rinfo-space) -(define-key idlwave-rinfo-map "q" 'idlwave-quit-help) -(define-key idlwave-rinfo-mouse-map "q" 'idlwave-quit-help) +(defvar idlwave-rinfo-mouse-map + (let ((map (make-sparse-keymap))) + (define-key map + (if (featurep 'xemacs) [button2] [mouse-2]) + 'idlwave-mouse-active-rinfo) + (define-key map + (if (featurep 'xemacs) [(shift button2)] [(shift mouse-2)]) + 'idlwave-mouse-active-rinfo-shift) + (define-key map + (if (featurep 'xemacs) [button3] [mouse-3]) + 'idlwave-mouse-active-rinfo-right) + (define-key map " " 'idlwave-active-rinfo-space) + (define-key map "q" 'idlwave-quit-help) + map)) + +(defvar idlwave-rinfo-map + (let ((map (make-sparse-keymap))) + (define-key map "q" 'idlwave-quit-help) + map)) + (defvar idlwave-popup-source nil) (defvar idlwave-rinfo-marker (make-marker)) === modified file 'lisp/replace.el' --- lisp/replace.el 2011-02-01 21:22:21 +0000 +++ lisp/replace.el 2011-02-10 16:56:00 +0000 @@ -757,6 +757,60 @@ count))) +(defvar occur-mode-map + (let ((map (make-sparse-keymap))) + ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto]. + (define-key map [mouse-2] 'occur-mode-mouse-goto) + (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) + (define-key map "\C-m" 'occur-mode-goto-occurrence) + (define-key map "o" 'occur-mode-goto-occurrence-other-window) + (define-key map "\C-o" 'occur-mode-display-occurrence) + (define-key map "\M-n" 'occur-next) + (define-key map "\M-p" 'occur-prev) + (define-key map "r" 'occur-rename-buffer) + (define-key map "c" 'clone-buffer) + (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) + (define-key map [menu-bar] (make-sparse-keymap)) + (define-key map [menu-bar occur] + `(cons ,(purecopy "Occur") map)) + (define-key map [next-error-follow-minor-mode] + (menu-bar-make-mm-toggle next-error-follow-minor-mode + "Auto Occurrence Display" + "Display another occurrence when moving the cursor")) + (define-key map [separator-1] menu-bar-separator) + (define-key map [kill-this-buffer] + `(menu-item ,(purecopy "Kill occur buffer") kill-this-buffer + :help ,(purecopy "Kill the current *Occur* buffer"))) + (define-key map [quit-window] + `(menu-item ,(purecopy "Quit occur window") quit-window + :help ,(purecopy "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame"))) + (define-key map [revert-buffer] + `(menu-item ,(purecopy "Revert occur buffer") revert-buffer + :help ,(purecopy "Replace the text in the *Occur* buffer with the results of rerunning occur"))) + (define-key map [clone-buffer] + `(menu-item ,(purecopy "Clone occur buffer") clone-buffer + :help ,(purecopy "Create and return a twin copy of the current *Occur* buffer"))) + (define-key map [occur-rename-buffer] + `(menu-item ,(purecopy "Rename occur buffer") occur-rename-buffer + :help ,(purecopy "Rename the current *Occur* buffer to *Occur: original-buffer-name*."))) + (define-key map [separator-2] menu-bar-separator) + (define-key map [occur-mode-goto-occurrence-other-window] + `(menu-item ,(purecopy "Go To Occurrence Other Window") occur-mode-goto-occurrence-other-window + :help ,(purecopy "Go to the occurrence the current line describes, in another window"))) + (define-key map [occur-mode-goto-occurrence] + `(menu-item ,(purecopy "Go To Occurrence") occur-mode-goto-occurrence + :help ,(purecopy "Go to the occurrence the current line describes"))) + (define-key map [occur-mode-display-occurrence] + `(menu-item ,(purecopy "Display Occurrence") occur-mode-display-occurrence + :help ,(purecopy "Display in another window the occurrence the current line describes"))) + (define-key map [occur-next] + `(menu-item ,(purecopy "Move to next match") occur-next + :help ,(purecopy "Move to the Nth (default 1) next match in an Occur mode buffer"))) + (define-key map [occur-prev] + `(menu-item ,(purecopy "Move to previous match") occur-prev + :help ,(purecopy "Move to the Nth (default 1) previous match in an Occur mode buffer"))) + map) + "Keymap for `occur-mode'.") (defvar occur-revert-arguments nil "Arguments to pass to `occur-1' to revert an Occur mode buffer. @@ -792,54 +846,6 @@ (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) (setq next-error-function 'occur-next-error)) -(define-key occur-mode-map [mouse-2] 'occur-mode-mouse-goto) -(define-key occur-mode-map "\C-c\C-c" 'occur-mode-goto-occurrence) -(define-key occur-mode-map "\C-m" 'occur-mode-goto-occurrence) -(define-key occur-mode-map "o" 'occur-mode-goto-occurrence-other-window) -(define-key occur-mode-map "\C-o" 'occur-mode-display-occurrence) -(define-key occur-mode-map "\M-n" 'occur-next) -(define-key occur-mode-map "\M-p" 'occur-prev) -(define-key occur-mode-map "r" 'occur-rename-buffer) -(define-key occur-mode-map "c" 'clone-buffer) -(define-key occur-mode-map "\C-c\C-f" 'next-error-follow-minor-mode) -(define-key occur-mode-map [menu-bar] (make-sparse-keymap)) -(define-key occur-mode-map [menu-bar occur] `(cons ,(purecopy "Occur") map)) -(define-key occur-mode-map [next-error-follow-minor-mode] - (menu-bar-make-mm-toggle next-error-follow-minor-mode - "Auto Occurrence Display" - "Display another occurrence when moving the cursor")) -(define-key occur-mode-map [separator-1] menu-bar-separator) -(define-key occur-mode-map [kill-this-buffer] - `(menu-item ,(purecopy "Kill occur buffer") kill-this-buffer - :help ,(purecopy "Kill the current *Occur* buffer"))) -(define-key occur-mode-map [quit-window] - `(menu-item ,(purecopy "Quit occur window") quit-window - :help ,(purecopy "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame"))) -(define-key occur-mode-map [revert-buffer] - `(menu-item ,(purecopy "Revert occur buffer") revert-buffer - :help ,(purecopy "Replace the text in the *Occur* buffer with the results of rerunning occur"))) -(define-key occur-mode-map [clone-buffer] - `(menu-item ,(purecopy "Clone occur buffer") clone-buffer - :help ,(purecopy "Create and return a twin copy of the current *Occur* buffer"))) -(define-key occur-mode-map [occur-rename-buffer] - `(menu-item ,(purecopy "Rename occur buffer") occur-rename-buffer - :help ,(purecopy "Rename the current *Occur* buffer to *Occur: original-buffer-name*."))) -(define-key occur-mode-map [separator-2] menu-bar-separator) -(define-key occur-mode-map [occur-mode-goto-occurrence-other-window] - `(menu-item ,(purecopy "Go To Occurrence Other Window") occur-mode-goto-occurrence-other-window - :help ,(purecopy "Go to the occurrence the current line describes, in another window"))) -(define-key occur-mode-map [occur-mode-goto-occurrence] - `(menu-item ,(purecopy "Go To Occurrence") occur-mode-goto-occurrence - :help ,(purecopy "Go to the occurrence the current line describes"))) -(define-key occur-mode-map [occur-mode-display-occurrence] - `(menu-item ,(purecopy "Display Occurrence") occur-mode-display-occurrence - :help ,(purecopy "Display in another window the occurrence the current line describes"))) -(define-key occur-mode-map [occur-next] - `(menu-item ,(purecopy "Move to next match") occur-next - :help ,(purecopy "Move to the Nth (default 1) next match in an Occur mode buffer"))) -(define-key occur-mode-map [occur-prev] - `(menu-item ,(purecopy "Move to previous match") occur-prev - :help ,(purecopy "Move to the Nth (default 1) previous match in an Occur mode buffer"))) (defun occur-revert-function (ignore1 ignore2) "Handle `revert-buffer' for Occur mode buffers." (apply 'occur-1 (append occur-revert-arguments (list (buffer-name))))) === modified file 'lisp/tar-mode.el' --- lisp/tar-mode.el 2011-02-01 21:22:21 +0000 +++ lisp/tar-mode.el 2011-02-10 16:56:00 +0000 @@ -520,7 +520,84 @@ (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 "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 "\^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) @@ -590,77 +667,6 @@ (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. === modified file 'lisp/term/lk201.el' --- lisp/term/lk201.el 2011-01-15 23:16:57 +0000 +++ lisp/term/lk201.el 2011-02-10 16:56:00 +0000 @@ -1,76 +1,78 @@ ;; -*- no-byte-compile: t -*- ;; Define function key sequences for DEC terminals. -(defvar lk201-function-map (make-sparse-keymap) +(defvar lk201-function-map + (let ((map (make-sparse-keymap))) + + ;; Termcap or terminfo should set these. + ;; (define-key map "\e[A" [up]) + ;; (define-key map "\e[B" [down]) + ;; (define-key map "\e[C" [right]) + ;; (define-key map "\e[D" [left]) + + (define-key map "\e[1~" [find]) + (define-key map "\e[2~" [insert]) + (define-key map "\e[3~" [delete]) + (define-key map "\e[4~" [select]) + (define-key map "\e[5~" [prior]) + (define-key map "\e[6~" [next]) + (define-key map "\e[11~" [f1]) + (define-key map "\e[12~" [f2]) + (define-key map "\e[13~" [f3]) + (define-key map "\e[14~" [f4]) + (define-key map "\e[15~" [f5]) + (define-key map "\e[17~" [f6]) + (define-key map "\e[18~" [f7]) + (define-key map "\e[19~" [f8]) + (define-key map "\e[20~" [f9]) + (define-key map "\e[21~" [f10]) + ;; Customarily F11 is used as the ESC key. + ;; The file that includes this one, takes care of that. + (define-key map "\e[23~" [f11]) + (define-key map "\e[24~" [f12]) + (define-key map "\e[25~" [f13]) + (define-key map "\e[26~" [f14]) + (define-key map "\e[28~" [help]) + (define-key map "\e[29~" [menu]) + (define-key map "\e[31~" [f17]) + (define-key map "\e[32~" [f18]) + (define-key map "\e[33~" [f19]) + (define-key map "\e[34~" [f20]) + + ;; Termcap or terminfo should set these. + ;; (define-key map "\eOA" [up]) + ;; (define-key map "\eOB" [down]) + ;; (define-key map "\eOC" [right]) + ;; (define-key map "\eOD" [left]) + + ;; Termcap or terminfo should set these, but doesn't properly. + ;; Termcap sets these to k1-k4, which get mapped to f1-f4 in term.c + (define-key map "\eOP" [kp-f1]) + (define-key map "\eOQ" [kp-f2]) + (define-key map "\eOR" [kp-f3]) + (define-key map "\eOS" [kp-f4]) + + (define-key map "\eOI" [kp-tab]) + (define-key map "\eOj" [kp-multiply]) + (define-key map "\eOk" [kp-add]) + (define-key map "\eOl" [kp-separator]) + (define-key map "\eOM" [kp-enter]) + (define-key map "\eOm" [kp-subtract]) + (define-key map "\eOn" [kp-decimal]) + (define-key map "\eOo" [kp-divide]) + (define-key map "\eOp" [kp-0]) + (define-key map "\eOq" [kp-1]) + (define-key map "\eOr" [kp-2]) + (define-key map "\eOs" [kp-3]) + (define-key map "\eOt" [kp-4]) + (define-key map "\eOu" [kp-5]) + (define-key map "\eOv" [kp-6]) + (define-key map "\eOw" [kp-7]) + (define-key map "\eOx" [kp-8]) + (define-key map "\eOy" [kp-9]) + map) "Function key definitions for DEC terminals.") -;; Termcap or terminfo should set these. -;; (define-key lk201-function-map "\e[A" [up]) -;; (define-key lk201-function-map "\e[B" [down]) -;; (define-key lk201-function-map "\e[C" [right]) -;; (define-key lk201-function-map "\e[D" [left]) - -(define-key lk201-function-map "\e[1~" [find]) -(define-key lk201-function-map "\e[2~" [insert]) -(define-key lk201-function-map "\e[3~" [delete]) -(define-key lk201-function-map "\e[4~" [select]) -(define-key lk201-function-map "\e[5~" [prior]) -(define-key lk201-function-map "\e[6~" [next]) -(define-key lk201-function-map "\e[11~" [f1]) -(define-key lk201-function-map "\e[12~" [f2]) -(define-key lk201-function-map "\e[13~" [f3]) -(define-key lk201-function-map "\e[14~" [f4]) -(define-key lk201-function-map "\e[15~" [f5]) -(define-key lk201-function-map "\e[17~" [f6]) -(define-key lk201-function-map "\e[18~" [f7]) -(define-key lk201-function-map "\e[19~" [f8]) -(define-key lk201-function-map "\e[20~" [f9]) -(define-key lk201-function-map "\e[21~" [f10]) -;; Customarily F11 is used as the ESC key. -;; The file that includes this one, takes care of that. -(define-key lk201-function-map "\e[23~" [f11]) -(define-key lk201-function-map "\e[24~" [f12]) -(define-key lk201-function-map "\e[25~" [f13]) -(define-key lk201-function-map "\e[26~" [f14]) -(define-key lk201-function-map "\e[28~" [help]) -(define-key lk201-function-map "\e[29~" [menu]) -(define-key lk201-function-map "\e[31~" [f17]) -(define-key lk201-function-map "\e[32~" [f18]) -(define-key lk201-function-map "\e[33~" [f19]) -(define-key lk201-function-map "\e[34~" [f20]) - -;; Termcap or terminfo should set these. -;; (define-key lk201-function-map "\eOA" [up]) -;; (define-key lk201-function-map "\eOB" [down]) -;; (define-key lk201-function-map "\eOC" [right]) -;; (define-key lk201-function-map "\eOD" [left]) - -;; Termcap or terminfo should set these, but doesn't properly. -;; Termcap sets these to k1-k4, which get mapped to f1-f4 in term.c -(define-key lk201-function-map "\eOP" [kp-f1]) -(define-key lk201-function-map "\eOQ" [kp-f2]) -(define-key lk201-function-map "\eOR" [kp-f3]) -(define-key lk201-function-map "\eOS" [kp-f4]) - -(define-key lk201-function-map "\eOI" [kp-tab]) -(define-key lk201-function-map "\eOj" [kp-multiply]) -(define-key lk201-function-map "\eOk" [kp-add]) -(define-key lk201-function-map "\eOl" [kp-separator]) -(define-key lk201-function-map "\eOM" [kp-enter]) -(define-key lk201-function-map "\eOm" [kp-subtract]) -(define-key lk201-function-map "\eOn" [kp-decimal]) -(define-key lk201-function-map "\eOo" [kp-divide]) -(define-key lk201-function-map "\eOp" [kp-0]) -(define-key lk201-function-map "\eOq" [kp-1]) -(define-key lk201-function-map "\eOr" [kp-2]) -(define-key lk201-function-map "\eOs" [kp-3]) -(define-key lk201-function-map "\eOt" [kp-4]) -(define-key lk201-function-map "\eOu" [kp-5]) -(define-key lk201-function-map "\eOv" [kp-6]) -(define-key lk201-function-map "\eOw" [kp-7]) -(define-key lk201-function-map "\eOx" [kp-8]) -(define-key lk201-function-map "\eOy" [kp-9]) - (defun terminal-init-lk201 () ;; Use inheritance to let the main keymap override these defaults. ;; This way we don't override terminfo-derived settings or settings === modified file 'lisp/textmodes/bib-mode.el' --- lisp/textmodes/bib-mode.el 2011-01-25 04:08:28 +0000 +++ lisp/textmodes/bib-mode.el 2011-02-10 16:56:00 +0000 @@ -47,11 +47,14 @@ :type 'file :group 'bib) -(defvar bib-mode-map (copy-keymap text-mode-map)) -(define-key bib-mode-map "\C-M" 'return-key-bib) -(define-key bib-mode-map "\C-c\C-u" 'unread-bib) -(define-key bib-mode-map "\C-c\C-@" 'mark-bib) -(define-key bib-mode-map "\e`" 'abbrev-mode) +(defvar bib-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map text-mode-map) + (define-key map "\C-M" 'return-key-bib) + (define-key map "\C-c\C-u" 'unread-bib) + (define-key map "\C-c\C-@" 'mark-bib) + (define-key map "\e`" 'abbrev-mode) + map)) (defun addbib () "Set up editor to add to troff bibliography file specified === modified file 'lisp/textmodes/enriched.el' --- lisp/textmodes/enriched.el 2011-01-25 04:08:28 +0000 +++ lisp/textmodes/enriched.el 2011-02-10 16:56:00 +0000 @@ -164,6 +164,24 @@ (defvar enriched-rerun-flag nil) ;;; +;;; Keybindings +;;; + +(defvar enriched-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [remap move-beginning-of-line] 'beginning-of-line-text) + (define-key map "\C-m" 'reindent-then-newline-and-indent) + (define-key map + [remap newline-and-indent] 'reindent-then-newline-and-indent) + (define-key map "\M-j" 'facemenu-justification-menu) + (define-key map "\M-S" 'set-justification-center) + (define-key map "\C-x\t" 'increase-left-margin) + (define-key map "\C-c[" 'set-left-margin) + (define-key map "\C-c]" 'set-right-margin) + map) + "Keymap for Enriched mode.") + +;;; ;;; Define the mode ;;; @@ -184,6 +202,8 @@ :group 'enriched :lighter " Enriched" (cond ((null enriched-mode) ;; Turn mode off + (remove-hook 'change-major-mode-hook + 'enriched-before-change-major-mode 'local) (setq buffer-file-format (delq 'text/enriched buffer-file-format)) ;; restore old variable values (while enriched-old-bindings @@ -199,6 +219,8 @@ nil) (t ; Turn mode on + (add-hook 'change-major-mode-hook + 'enriched-before-change-major-mode nil 'local) (add-to-list 'buffer-file-format 'text/enriched) ;; Save old variable values before we change them. ;; These will be restored if we exit Enriched mode. @@ -226,8 +248,6 @@ (while enriched-old-bindings (set (pop enriched-old-bindings) (pop enriched-old-bindings))))) -(add-hook 'change-major-mode-hook 'enriched-before-change-major-mode) - (defun enriched-after-change-major-mode () (when enriched-mode (let ((enriched-rerun-flag t)) @@ -235,30 +255,8 @@ (add-hook 'after-change-major-mode-hook 'enriched-after-change-major-mode) -;;; -;;; Keybindings -;;; - -(defvar enriched-mode-map nil - "Keymap for Enriched mode.") - -(if (null enriched-mode-map) - (fset 'enriched-mode-map (setq enriched-mode-map (make-sparse-keymap)))) - -(if (not (assq 'enriched-mode minor-mode-map-alist)) - (setq minor-mode-map-alist - (cons (cons 'enriched-mode enriched-mode-map) - minor-mode-map-alist))) - -(define-key enriched-mode-map [remap move-beginning-of-line] 'beginning-of-line-text) -(define-key enriched-mode-map "\C-m" 'reindent-then-newline-and-indent) -(define-key enriched-mode-map - [remap newline-and-indent] 'reindent-then-newline-and-indent) -(define-key enriched-mode-map "\M-j" 'facemenu-justification-menu) -(define-key enriched-mode-map "\M-S" 'set-justification-center) -(define-key enriched-mode-map "\C-x\t" 'increase-left-margin) -(define-key enriched-mode-map "\C-c[" 'set-left-margin) -(define-key enriched-mode-map "\C-c]" 'set-right-margin) + +(fset 'enriched-mode-map enriched-mode-map) ;;; ;;; Some functions dealing with text-properties, especially indentation ------------------------------------------------------------ revno: 103210 committer: Deniz Dogan branch nick: emacs-trunk timestamp: Thu 2011-02-10 16:41:40 +0100 message: * lisp/net/rcirc.el: Add PRIVMSG and CTCP functions. (rcirc-send-privmsg, rcirc-send-ctcp): New functions. (rcirc-keepalive, rcirc-cmd-ctcp, rcirc-ctcp-sender-PING) (rcirc-cmd-me, rcirc-authenticate): Use them. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-02-10 00:33:34 +0000 +++ lisp/ChangeLog 2011-02-10 15:41:40 +0000 @@ -1,3 +1,10 @@ +2011-02-10 Deniz Dogan + + * net/rcirc.el: Add PRIVMSG and CTCP functions. + (rcirc-send-privmsg, rcirc-send-ctcp): New functions. + (rcirc-keepalive, rcirc-cmd-ctcp, rcirc-ctcp-sender-PING) + (rcirc-cmd-me, rcirc-authenticate): Use them. + 2011-02-10 Ken Manheimer * allout.el: Synopsis: Change allout user configuration so === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2011-02-09 01:22:26 +0000 +++ lisp/net/rcirc.el 2011-02-10 15:41:40 +0000 @@ -564,13 +564,13 @@ (mapc (lambda (process) (with-rcirc-process-buffer process (when (not rcirc-connecting) - (rcirc-send-string process - (format "PRIVMSG %s :\C-aKEEPALIVE %f\C-a" - rcirc-nick - (if (featurep 'xemacs) - (time-to-seconds - (current-time)) - (float-time))))))) + (rcirc-send-ctcp process + rcirc-nick + (format "KEEPALIVE %f" + (if (featurep 'xemacs) + (time-to-seconds + (current-time)) + (float-time))))))) (rcirc-process-list)) ;; no processes, clean up timer (cancel-timer rcirc-keepalive-timer) @@ -714,6 +714,14 @@ (rcirc-debug process string) (process-send-string process string))) +(defun rcirc-send-privmsg (process target string) + (rcirc-send-string process (format "PRIVMSG %s :%s" target string))) + +(defun rcirc-send-ctcp (process target request &optional args) + (let ((args (if args (concat " " args) ""))) + (rcirc-send-privmsg process target + (format "\C-a%s%s\C-a" request args "")))) + (defun rcirc-buffer-process (&optional buffer) "Return the process associated with channel BUFFER. With no argument or nil as argument, use the current buffer." @@ -2190,21 +2198,17 @@ (function (intern-soft (concat "rcirc-ctcp-sender-" request)))) (if (fboundp function) ;; use special function if available (funcall function process target request) - (rcirc-send-string process - (format "PRIVMSG %s :\C-a%s\C-a" - target request)))) + (rcirc-send-ctcp process target request))) (rcirc-print process (rcirc-nick process) "ERROR" nil "usage: /ctcp NICK REQUEST"))) (defun rcirc-ctcp-sender-PING (process target request) "Send a CTCP PING message to TARGET." (let ((timestamp (format "%.0f" (float-time)))) - (rcirc-send-string process - (format "PRIVMSG %s :\C-aPING %s\C-a" target timestamp)))) + (rcirc-send-ctcp process target "PING" timestamp))) (defun rcirc-cmd-me (args &optional process target) - (rcirc-send-string process (format "PRIVMSG %s :\C-aACTION %s\C-a" - target args))) + (rcirc-send-ctcp process target "ACTION" args)) (defun rcirc-add-or-remove (set &rest elements) (dolist (elt elements) @@ -2699,20 +2703,20 @@ (when (and (string-match server rcirc-server) (string-match nick rcirc-nick)) (cond ((equal method 'nickserv) - (rcirc-send-string + (rcirc-send-privmsg process - (concat "PRIVMSG " (or (cadr args) "nickserv") - " :identify " (car args)))) + (or (cadr args) "NickServ") + (concat "identify " (car args)))) ((equal method 'chanserv) - (rcirc-send-string + (rcirc-send-privmsg process - (concat - "PRIVMSG chanserv :identify " - (car args) " " (cadr args)))) + "ChanServ" + (format "identify %s %s" (car args) (cadr args)))) ((equal method 'bitlbee) - (rcirc-send-string + (rcirc-send-privmsg process - (concat "PRIVMSG &bitlbee :identify " (car args)))) + "&bitlbee" + (concat "identify " (car args)))) (t (message "No %S authentication method defined" method)))))))) ------------------------------------------------------------ revno: 103209 committer: Glenn Morris branch nick: trunk timestamp: Wed 2011-02-09 21:03:29 -0800 message: lwlib/ trivia. * lwlib-Xaw.c, lwlib-Xlw.c, lwlib-Xm.c, lwlib-utils.c, lwlib.c, xlwmenu.c: Standardize on <> for includes from the ../src directory. diff: === modified file 'lwlib/ChangeLog' --- lwlib/ChangeLog 2011-02-09 03:25:07 +0000 +++ lwlib/ChangeLog 2011-02-10 05:03:29 +0000 @@ -1,9 +1,14 @@ +2011-02-10 Glenn Morris + + * lwlib-Xaw.c, lwlib-Xlw.c, lwlib-Xm.c, lwlib-utils.c, lwlib.c: + * xlwmenu.c: Standardize on <> for includes from the ../src directory. + 2011-02-09 Glenn Morris * Makefile.in (@SET_MAKE@): New, set by configure. (globals): New variable and rule. (lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o) - (xlwmenu.o): Add dependency on src/globals.h. + (xlwmenu.o): Add dependency on src/globals.h. 2011-01-31 Jan Djärv === modified file 'lwlib/lwlib-Xaw.c' --- lwlib/lwlib-Xaw.c 2011-01-25 04:08:28 +0000 +++ lwlib/lwlib-Xaw.c 2011-02-10 05:03:29 +0000 @@ -1,4 +1,5 @@ /* The lwlib interface to Athena widgets. + Copyright (C) 1993 Chuck Thompson Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. @@ -27,7 +28,7 @@ #include #include -#include "../src/lisp.h" +#include #include "lwlib-Xaw.h" @@ -833,4 +834,3 @@ {"main", xaw_create_main}, {NULL, NULL} }; - === modified file 'lwlib/lwlib-Xlw.c' --- lwlib/lwlib-Xlw.c 2011-01-25 04:08:28 +0000 +++ lwlib/lwlib-Xlw.c 2011-02-10 05:03:29 +0000 @@ -1,6 +1,7 @@ /* The lwlib interface to "xlwmenu" menus. - Copyright (C) 1992 Lucid, Inc. - Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc. + +Copyright (C) 1992 Lucid, Inc. +Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc. This file is part of the Lucid Widget Library. @@ -24,7 +25,7 @@ #endif #include -#include "lisp.h" +#include #include "lwlib-Xlw.h" #include @@ -272,4 +273,3 @@ if (instance->widget) XtDestroyWidget (instance->widget); } - === modified file 'lwlib/lwlib-Xm.c' --- lwlib/lwlib-Xm.c 2011-01-31 06:44:05 +0000 +++ lwlib/lwlib-Xm.c 2011-02-10 05:03:29 +0000 @@ -34,7 +34,7 @@ #include #include -#include "../src/lisp.h" +#include #include "lwlib-Xm.h" #include "lwlib-utils.h" @@ -1956,4 +1956,3 @@ { XtVaSetValues (w, XtNallowShellResize, flag, NULL); } - === modified file 'lwlib/lwlib-utils.c' --- lwlib/lwlib-utils.c 2011-01-31 06:44:05 +0000 +++ lwlib/lwlib-utils.c 2011-02-10 05:03:29 +0000 @@ -1,4 +1,5 @@ /* Defines some widget utility functions. + Copyright (C) 1992 Lucid, Inc. Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. @@ -31,7 +32,7 @@ #undef rindex #include -#include "../src/lisp.h" +#include #include #include @@ -173,4 +174,3 @@ abort (); #endif } - === modified file 'lwlib/lwlib.c' --- lwlib/lwlib.c 2011-01-31 06:44:05 +0000 +++ lwlib/lwlib.c 2011-02-10 05:03:29 +0000 @@ -1,4 +1,5 @@ /* A general interface to the widgets of different toolkits. + Copyright (C) 1992, 1993 Lucid, Inc. Copyright (C) 1994-1996, 1999-2011 Free Software Foundation, Inc. @@ -24,7 +25,7 @@ #endif #include -#include "../src/lisp.h" +#include #include #include @@ -1418,4 +1419,3 @@ return separator_p; } - === modified file 'lwlib/xlwmenu.c' --- lwlib/xlwmenu.c 2011-01-25 04:08:28 +0000 +++ lwlib/xlwmenu.c 2011-02-10 05:03:29 +0000 @@ -1,4 +1,5 @@ /* Implements a lightweight menubar widget. + Copyright (C) 1992 Lucid, Inc. Copyright (C) 1994-1995, 1997, 1999-2011 Free Software Foundation, Inc. @@ -26,7 +27,7 @@ #endif #include -#include "lisp.h" +#include #include #include @@ -56,7 +57,7 @@ extern int gray_bitmap_height; extern char *gray_bitmap_bits; -#include "xterm.h" +#include #else /* not emacs */ @@ -2689,4 +2690,3 @@ ((XMotionEvent*)event)->is_hint = 0; handle_motion_event (mw, (XMotionEvent*)event); } -