annotate man/xemacs/reading.texi @ 5679:a81a739181dc

Add command remapping, a more robust alternative to #'substitute-key-definition src/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * keymap.c: Add command remapping, a more robust equivalent to #'substitute-key-definition. * keymap.c (CHECK_REMAPPING_POSITION): New. * keymap.c (keymap_equal): Correct a comment here. * keymap.c (Fdefine_key): Document the command remapping syntax. * keymap.c (Fremap_command): New. * keymap.c (command_remapping): New. * keymap.c (Fcommand_remapping): New. * keymap.c (commands_remapped_to_mapper): New. * keymap.c (commands_remapped_to_traverser): New. * keymap.c (Fcommands_remapped_to): New. * keymap.c (get_relevant_keymaps): Take a new POSITION argument. * keymap.c (Fcurrent_keymaps, event_binding): Supply the new POSITION argument to get_relevant_keymaps. * keymap.c (Fkey_binding): Add new arguments, NO-REMAP and POSITION. * keymap.c (map_keymap_mapper): * keymap.c (Fwhere_is_internal): * keymap.c (where_is_to_char): * keymap.c (where_is_recursive_mapper): Don't expose the key remapping in these functions. This conflicts with GNU, but is more sane for our callers. Access to command remapping is with the functions #'command-remapping, #'commands-remapped-to, and #'remap-command, not with the general keymap functions, apart from the compatibility hack in #'define-key. * keymap.c (syms_of_keymap): * keymap.c (vars_of_keymap): * keymap.c (complex_vars_of_keymap): * lisp.h: New CHECK_COMMAND macro. man/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * lispref/keymaps.texi (Keymaps): * lispref/keymaps.texi (Changing Key Bindings): * lispref/keymaps.texi (Scanning Keymaps): * lispref/keymaps.texi (Remapping commands): * lispref/keymaps.texi (XEmacs): New. * lispref/keymaps.texi (Other Keymap Functions): Document the new command remapping functionality in this file. lisp/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * help.el (describe-function-1): Document any command remapping that has been done in this function. tests/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * automated/keymap-tests.el: Test the new command remapping functionality.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 02 Sep 2012 14:31:40 +0100
parents 712931b4b71d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @node Reading Mail, Calendar/Diary, Sending Mail, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @chapter Reading Mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @cindex mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @cindex message
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
7 XEmacs provides several mail-reading packages. Each one comes with
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
8 its own manual, which is included in each package.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 The recommended mail-reading package for new users is VM. VM works
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 with standard Unix-mail-format folders and was designed as a replacement
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 for the older Rmail.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 XEmacs also provides a sophisticated and comfortable front-end to the
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
15 MH mail-processing system, called @samp{MH-E}. Unlike in other
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 mail programs, folders in MH are stored as file-system directories,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 with each message occupying one (numbered) file. This facilitates
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 working with mail using shell commands, and many other features of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 MH are also designed to integrate well with the shell and with
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
20 shell scripts. Keep in mind, however, that in order to use MH-E
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 you must have the MH mail-processing system installed on your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 computer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
24 The @dfn{Everything including the kitchen sink} package @samp{Gnus} is
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
25 also available as an XEmacs package. Gnus also handles Usenet articles
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
26 as well as mail.
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
27
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
28 @samp{MEW} (Messaging in the Emacs World) is another mail-reading
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
29 package available for XEmacs.
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
30
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
31 Finally, XEmacs provides the Rmail package. Rmail is (currently)
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
32 the only mail reading package distributed with FSF GNU Emacs, and is
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
33 powerful in its own right. However, it stores mail folders in a
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
34 special format called @samp{Babyl}, that is incompatible with all
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
35 other frequently-used mail programs. A utility program is provided
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
36 for converting Babyl folders to standard Unix-mail format; however,
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
37 unless you already have mail in Babyl-format folders, you should
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 0
diff changeset
38 consider using Gnus, VM, or MH-E instead.