Sync up with r21-2-39.
[chise/xemacs-chise.git] / info / xemacs.info-14
index 72a3771..34910d2 100644 (file)
@@ -1,5 +1,5 @@
-This is Info file ../info/xemacs.info, produced by Makeinfo version
-1.68 from the input file xemacs/xemacs.texi.
+This is ../info/xemacs.info, produced by makeinfo version 4.0b from
+xemacs/xemacs.texi.
 
 INFO-DIR-SECTION XEmacs Editor
 START-INFO-DIR-ENTRY
@@ -30,1157 +30,1218 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
-File: xemacs.info,  Node: To Other Calendar,  Next: From Other Calendar,  Prev: Calendar Systems,  Up: Other Calendars
+File: xemacs.info,  Node: Expanding Abbrevs,  Next: Editing Abbrevs,  Prev: Defining Abbrevs,  Up: Abbrevs
+
+Controlling Abbrev Expansion
+============================
+
+   An abbrev expands whenever it is in a buffer just before point and
+you type a self-inserting punctuation character (<SPC>, comma, etc.).
+Most often an abbrev is used by inserting the abbrev followed by
+punctuation.
+
+   Abbrev expansion preserves case; thus, `foo' expands into `find
+outer otter', `Foo' into `Find outer otter', and `FOO' into `FIND OUTER
+OTTER' or `Find Outer Otter' according to the variable
+`abbrev-all-caps' (a non-`nil' value chooses the first of the two
+expansions).
+
+   Two commands are available to control abbrev expansion:
+
+`M-''
+     Separate a prefix from a following abbrev to be expanded
+     (`abbrev-prefix-mark').
+
+`C-x a e'
+     Expand the abbrev before point (`expand-abbrev').  This is
+     effective even when Abbrev mode is not enabled.
+
+`M-x unexpand-abbrev'
+     Undo last abbrev expansion.
+
+`M-x expand-region-abbrevs'
+     Expand some or all abbrevs found in the region.
+
+   You may wish to expand an abbrev with a prefix attached.  For
+example, if `cnst' expands into `construction', you may want to use it
+to enter `reconstruction'.  It does not work to type `recnst', because
+that is not necessarily a defined abbrev.  Instead, you can use the
+command `M-'' (`abbrev-prefix-mark') between the prefix `re' and the
+abbrev `cnst'.  First, insert `re'.  Then type `M-''; this inserts a
+minus sign in the buffer to indicate that it has done its work.  Then
+insert the abbrev `cnst'.  The buffer now contains `re-cnst'.  Now
+insert a punctuation character to expand the abbrev `cnst' into
+`construction'.  The minus sign is deleted at this point by `M-''.  The
+resulting text is the desired `reconstruction'.
+
+   If you actually want the text of the abbrev in the buffer, rather
+than its expansion, insert the following punctuation with `C-q'.  Thus,
+`foo C-q -' leaves `foo-' in the buffer.
+
+   If you expand an abbrev by mistake, you can undo the expansion
+(replace the expansion by the original abbrev text) with `M-x
+unexpand-abbrev'.  You can also use `C-_' (`undo') to undo the
+expansion; but that will first undo the insertion of the punctuation
+character.
+
+   `M-x expand-region-abbrevs' searches through the region for defined
+abbrevs, and  offers to replace each one it finds with its expansion.
+This command is useful if you have typed text using abbrevs but forgot
+to turn on Abbrev mode first.  It may also be useful together with a
+special set of abbrev definitions for making several global
+replacements at once.  The command is effective even if Abbrev mode is
+not enabled.
 
-Converting To Other Calendars
+\1f
+File: xemacs.info,  Node: Editing Abbrevs,  Next: Saving Abbrevs,  Prev: Expanding Abbrevs,  Up: Abbrevs
+
+Examining and Editing Abbrevs
 =============================
 
-   The following commands describe the selected date (the date at point)
-in various other calendar systems:
+`M-x list-abbrevs'
+     Print a list of all abbrev definitions.
+
+`M-x edit-abbrevs'
+     Edit a list of abbrevs; you can add, alter, or remove definitions.
 
-`Button2  Other Calendars'
-     Display the date that you click on, expressed in various other
-     calendars.
+   The output from `M-x list-abbrevs' looks like this:
 
-`p c'
-     Display ISO commercial calendar equivalent for selected day
-     (`calendar-print-iso-date').
+     (lisp-mode-abbrev-table)
+     "dk"           0    "define-key"
+     (global-abbrev-table)
+     "dfn"          0    "definition"
 
-`p j'
-     Display Julian date for selected day
-     (`calendar-print-julian-date').
+(Some blank lines of no semantic significance, and some other abbrev
+tables, have been omitted.)
 
-`p a'
-     Display astronomical (Julian) day number for selected day
-     (`calendar-print-astro-day-number').
+   A line containing a name in parentheses is the header for abbrevs in
+a particular abbrev table; `global-abbrev-table' contains all the global
+abbrevs, and the other abbrev tables that are named after major modes
+contain the mode-specific abbrevs.
 
-`p h'
-     Display Hebrew date for selected day
-     (`calendar-print-hebrew-date').
+   Within each abbrev table, each non-blank line defines one abbrev.
+The word at the beginning is the abbrev.  The number that appears is
+the number of times the abbrev has been expanded.  Emacs keeps track of
+this to help you see which abbrevs you actually use, in case you want
+to eliminate those that you don't use often.  The string at the end of
+the line is the expansion.
 
-`p i'
-     Display Islamic date for selected day
-     (`calendar-print-islamic-date').
+   `M-x edit-abbrevs' allows you to add, change or kill abbrev
+definitions by editing a list of them in an Emacs buffer.  The list has
+the format described above.  The buffer of abbrevs is called
+`*Abbrevs*', and is in Edit-Abbrevs mode.  This mode redefines the key
+`C-c C-c' to install the abbrev definitions as specified in the buffer.
+The  `edit-abbrevs-redefine' command does this.  Any abbrevs not
+described in the buffer are eliminated when this is done.
 
-`p f'
-     Display French Revolutionary date for selected day
-     (`calendar-print-french-date').
+   `edit-abbrevs' is actually the same as `list-abbrevs', except that
+it selects the buffer `*Abbrevs*' whereas `list-abbrevs' merely
+displays it in another window.
 
-`p C'
-     Display Chinese date for selected day
-     (`calendar-print-chinese-date').
+\1f
+File: xemacs.info,  Node: Saving Abbrevs,  Next: Dynamic Abbrevs,  Prev: Editing Abbrevs,  Up: Abbrevs
 
-`p k'
-     Display Coptic date for selected day
-     (`calendar-print-coptic-date').
+Saving Abbrevs
+==============
 
-`p e'
-     Display Ethiopic date for selected day
-     (`calendar-print-ethiopic-date').
+   These commands allow you to keep abbrev definitions between editing
+sessions.
 
-`p p'
-     Display Persian date for selected day
-     (`calendar-print-persian-date').
+`M-x write-abbrev-file'
+     Write a file describing all defined abbrevs.
 
-`p m'
-     Display Mayan date for selected day (`calendar-print-mayan-date').
+`M-x read-abbrev-file'
+     Read such an abbrev file and define abbrevs as specified there.
 
-   If you are using X, the easiest way to translate a date into other
-calendars is to click on it with `Button2', then choose `Other
-Calendars' from the menu that appears.  This displays the equivalent
-forms of the date in all the calendars Emacs understands, in the form of
-a menu.  (Choosing an alternative from this menu doesn't actually do
-anything--the menu is used only for display.)
+`M-x quietly-read-abbrev-file'
+     Similar, but do not display a message about what is going on.
 
-   Put point on the desired date of the Gregorian calendar, then type
-the appropriate keys.  The `p' is a mnemonic for "print" since Emacs
-"prints" the equivalent date in the echo area.
+`M-x define-abbrevs'
+     Define abbrevs from buffer.
 
-\1f
-File: xemacs.info,  Node: From Other Calendar,  Next: Mayan Calendar,  Prev: To Other Calendar,  Up: Other Calendars
+`M-x insert-abbrevs'
+     Insert all abbrevs and their expansions into the buffer.
 
-Converting From Other Calendars
-===============================
+   Use `M-x write-abbrev-file' to save abbrev definitions for use in a
+later session.  The command reads a file name using the minibuffer and
+writes a description of all current abbrev definitions into the
+specified file.  The text stored in the file looks like the output of
+`M-x list-abbrevs'.
 
-   You can use the other supported calendars to specify a date to move
-to.  This section describes the commands for doing this using calendars
-other than Mayan; for the Mayan calendar, see the following section.
-
-`g c'
-     Move to a date specified in the ISO commercial calendar
-     (`calendar-goto-iso-date').
-
-`g j'
-     Move to a date specified in the Julian calendar
-     (`calendar-goto-julian-date').
-
-`g a'
-     Move to a date specified in astronomical (Julian) day number
-     (`calendar-goto-astro-day-number').
-
-`g h'
-     Move to a date specified in the Hebrew calendar
-     (`calendar-goto-hebrew-date').
-
-`g i'
-     Move to a date specified in the Islamic calendar
-     (`calendar-goto-islamic-date').
-
-`g f'
-     Move to a date specified in the French Revolutionary calendar
-     (`calendar-goto-french-date').
-
-`g C'
-     Move to a date specified in the Chinese calendar
-     (`calendar-goto-chinese-date').
-
-`g p'
-     Move to a date specified in the Persian calendar
-     (`calendar-goto-persian-date').
-
-`g k'
-     Move to a date specified in the Coptic calendar
-     (`calendar-goto-coptic-date').
-
-`g e'
-     Move to a date specified in the Ethiopic calendar
-     (`calendar-goto-ethiopic-date').
-
-   These commands ask you for a date on the other calendar, move point
-to the Gregorian calendar date equivalent to that date, and display the
-other calendar's date in the echo area.  Emacs uses strict completion
-(*note Completion::.) whenever it asks you to type a month name, so you
-don't have to worry about the spelling of Hebrew, Islamic, or French
-names.
-
-   One common question concerning the Hebrew calendar is the computation
-of the anniversary of a date of death, called a "yahrzeit."  The Emacs
-calendar includes a facility for such calculations.  If you are in the
-calendar, the command `M-x list-yahrzeit-dates' asks you for a range of
-years and then displays a list of the yahrzeit dates for those years
-for the date given by point.  If you are not in the calendar, this
-command first asks you for the date of death and the range of years,
-and then displays the list of yahrzeit dates.
+   `M-x read-abbrev-file' prompts for a file name using the minibuffer
+and reads the specified file, defining abbrevs according to its
+contents.  `M-x quietly-read-abbrev-file' is the same but does not
+display a message in the echo area; it is actually useful primarily in
+the init file.  *Note Init File::. If you give an empty argument to
+either of these functions, the file name Emacs uses is the value of the
+variable `abbrev-file-name', which is by default `"~/.abbrev_defs"'.
+
+   Emacs offers to save abbrevs automatically if you have changed any of
+them, whenever it offers to save all files (for `C-x s' or `C-x C-c').
+Set the variable `save-abbrevs' to `nil' to inhibit this feature.
+
+   The commands `M-x insert-abbrevs' and `M-x define-abbrevs' are
+similar to the previous commands but work on text in an Emacs buffer.
+`M-x insert-abbrevs' inserts text into the current buffer before point,
+describing all current abbrev definitions; `M-x define-abbrevs' parses
+the entire current buffer and defines abbrevs accordingly.
 
 \1f
-File: xemacs.info,  Node: Mayan Calendar,  Next: Diary,  Prev: From Other Calendar,  Up: Other Calendars
-
-Converting from the Mayan Calendar
-----------------------------------
-
-   Here are the commands to select dates based on the Mayan calendar:
-
-`g m l'
-     Move to a date specified by the long count calendar
-     (`calendar-goto-mayan-long-count-date').
-
-`g m n t'
-     Move to the next occurrence of a place in the tzolkin calendar
-     (`calendar-next-tzolkin-date').
-
-`g m p t'
-     Move to the previous occurrence of a place in the tzolkin calendar
-     (`calendar-previous-tzolkin-date').
-
-`g m n h'
-     Move to the next occurrence of a place in the haab calendar
-     (`calendar-next-haab-date').
-
-`g m p h'
-     Move to the previous occurrence of a place in the haab calendar
-     (`calendar-previous-haab-date').
-
-`g m n c'
-     Move to the next occurrence of a place in the calendar round
-     (`calendar-next-calendar-round-date').
-
-`g m p c'
-     Move to the previous occurrence of a place in the calendar round
-     (`calendar-previous-calendar-round-date').
-
-   To understand these commands, you need to understand the Mayan
-calendars.  The "long count" is a counting of days with these units:
-
-     1 kin = 1 day   1 uinal = 20 kin   1 tun = 18 uinal
-     1 katun = 20 tun   1 baktun = 20 katun
-
-Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11
-tun, 16 uinal, and 6 kin.  The Emacs calendar can handle Mayan long
-count dates as early as 7.17.18.13.1, but no earlier.  When you use the
-`g m l' command, type the Mayan long count date with the baktun, katun,
-tun, uinal, and kin separated by periods.
-
-   The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of
-independent cycles of 13 and 20 days.  Since this cycle repeats
-endlessly, Emacs provides commands to move backward and forward to the
-previous or next point in the cycle.  Type `g m p t' to go to the
-previous tzolkin date; Emacs asks you for a tzolkin date and moves point
-to the previous occurrence of that date.  Similarly, type `g m n t' to
-go to the next occurrence of a tzolkin date.
-
-   The Mayan haab calendar is a cycle of 365 days arranged as 18 months
-of 20 days each, followed a 5-day monthless period.  Like the tzolkin
-cycle, this cycle repeats endlessly, and there are commands to move
-backward and forward to the previous or next point in the cycle.  Type
-`g m p h' to go to the previous haab date; Emacs asks you for a haab
-date and moves point to the previous occurrence of that date.
-Similarly, type `g m n h' to go to the next occurrence of a haab date.
-
-   The Maya also used the combination of the tzolkin date and the haab
-date.  This combination is a cycle of about 52 years called a *calendar
-round*.  If you type `g m p c', Emacs asks you for both a haab and a
-tzolkin date and then moves point to the previous occurrence of that
-combination.  Use `g m n c' to move point to the next occurrence of a
-combination.  These commands signal an error if the haab/tzolkin date
-combination you have typed is impossible.
-
-   Emacs uses strict completion (*note Completion::.) whenever it asks
-you to type a Mayan name, so you don't have to worry about spelling.
+File: xemacs.info,  Node: Dynamic Abbrevs,  Prev: Saving Abbrevs,  Up: Abbrevs
+
+Dynamic Abbrev Expansion
+========================
+
+   The abbrev facility described above operates automatically as you
+insert text, but all abbrevs must be defined explicitly.  By contrast,
+"dynamic abbrevs" allow the meanings of abbrevs to be determined
+automatically from the contents of the buffer, but dynamic abbrev
+expansion happens only when you request it explicitly.
+
+`M-/'
+     Expand the word in the buffer before point as a "dynamic abbrev",
+     by searching in the buffer for words starting with that
+     abbreviation (`dabbrev-expand').
+
+   For example, if the buffer contains `does this follow ' and you type
+`f o M-/', the effect is to insert `follow' because that is the last
+word in the buffer that starts with `fo'.  A numeric argument to `M-/'
+says to take the second, third, etc. distinct expansion found looking
+backward from point.  Repeating `M-/' searches for an alternative
+expansion by looking farther back.  After the entire buffer before
+point has been considered, the buffer after point is searched.
+
+   Dynamic abbrev expansion is completely independent of Abbrev mode;
+the expansion of a word with `M-/' is completely independent of whether
+it has a definition as an ordinary abbrev.
 
 \1f
-File: xemacs.info,  Node: Diary,  Next: Calendar Customization,  Prev: Mayan Calendar,  Up: Calendar/Diary
-
-The Diary
----------
-
-   The Emacs diary keeps track of appointments or other events on a
-daily basis, in conjunction with the calendar.  To use the diary
-feature, you must first create a "diary file" containing a list of
-events and their dates.  Then Emacs can automatically pick out and
-display the events for today, for the immediate future, or for any
-specified date.
-
-   By default, Emacs uses `~/diary' as the diary file.  This is the
-same file that the `calendar' utility uses.  A sample `~/diary' file is:
-
-     12/22/1988 Twentieth wedding anniversary!!
-     &1/1. Happy New Year!
-     10/22 Ruth's birthday.
-     * 21, *: Payday
-     Tuesday--weekly meeting with grad students at 10am
-              Supowit, Shen, Bitner, and Kapoor to attend.
-     1/13/89 Friday the thirteenth!!
-     &thu 4pm squash game with Lloyd.
-     mar 16 Dad's birthday
-     April 15, 1989 Income tax due.
-     &* 15 time cards due.
-
-This example uses extra spaces to align the event descriptions of most
-of the entries.  Such formatting is purely a matter of taste.
-
-   Although you probably will start by creating a diary manually, Emacs
-provides a number of commands to let you view, add, and change diary
-entries.  You can also share diary entries with other users (*note
-Included Diary Files::.).
+File: xemacs.info,  Node: Picture,  Next: Sending Mail,  Prev: Abbrevs,  Up: Top
+
+Editing Pictures
+****************
+
+   If you want to create a picture made out of text characters (for
+example, a picture of the division of a register into fields, as a
+comment in a program), use the command `edit-picture' to enter Picture
+mode.
+
+   In Picture mode, editing is based on the "quarter-plane" model of
+text.  In this model, the text characters lie studded on an area that
+stretches infinitely far to the right and downward.  The concept of the
+end of a line does not exist in this model; the most you can say is
+where the last non-blank character on the line is found.
+
+   Of course, Emacs really always considers text as a sequence of
+characters, and lines really do have ends.  But in Picture mode most
+frequently-used keys are rebound to commands that simulate the
+quarter-plane model of text.  They do this by inserting spaces or by
+converting tabs to spaces.
+
+   Most of the basic editing commands of Emacs are redefined by Picture
+mode to do essentially the same thing but in a quarter-plane way.  In
+addition, Picture mode defines various keys starting with the `C-c'
+prefix to run special picture editing commands.
+
+   One of these keys, `C-c C-c', is pretty important.  Often a picture
+is part of a larger file that is usually edited in some other major
+mode.  `M-x edit-picture' records the name of the previous major mode.
+You can then use the `C-c C-c' command (`picture-mode-exit') to restore
+that mode.  `C-c C-c' also deletes spaces from the ends of lines,
+unless you give it a numeric argument.
+
+   The commands used in Picture mode all work in other modes (provided
+the `picture' library is loaded), but are only  bound to keys in
+Picture mode.  Note that the descriptions below talk of moving "one
+column" and so on, but all the picture mode commands handle numeric
+arguments as their normal equivalents do.
+
+   Turning on Picture mode calls the value of the variable
+`picture-mode-hook' as a function, with no arguments, if that value
+exists and is non-`nil'.
 
 * Menu:
 
-* Diary Commands::         Viewing diary entries and associated calendar dates.
-* Format of Diary File::   Entering events in your diary.
-* Date Formats::           Various ways you can specify dates.
-* Adding to Diary::        Commands to create diary entries.
-* Special Diary Entries::  Anniversaries, blocks of dates, cyclic entries, etc.
+* Basic Picture::         Basic concepts and simple commands of Picture Mode.
+* Insert in Picture::     Controlling direction of cursor motion
+                           after "self-inserting" characters.
+* Tabs in Picture::       Various features for tab stops and indentation.
+* Rectangles in Picture:: Clearing and superimposing rectangles.
+
+\1f
+File: xemacs.info,  Node: Basic Picture,  Next: Insert in Picture,  Prev: Picture,  Up: Picture
+
+Basic Editing in Picture Mode
+=============================
+
+   Most keys do the same thing in Picture mode that they usually do,
+but do it in a quarter-plane style.  For example, `C-f' is rebound to
+run `picture-forward-column', which moves point one column to the
+right, by inserting a space if necessary, so that the actual end of the
+line makes no difference.  `C-b' is rebound to run
+`picture-backward-column', which always moves point left one column,
+converting a tab to multiple spaces if necessary.  `C-n' and `C-p' are
+rebound to run `picture-move-down' and `picture-move-up', which can
+either insert spaces or convert tabs as necessary to make sure that
+point stays in exactly the same column.  `C-e' runs
+`picture-end-of-line', which moves to after the last non-blank
+character on the line.  There was no need to change `C-a', as the choice
+of screen model does not affect beginnings of lines.
+
+   Insertion of text is adapted to the quarter-plane screen model
+through the use of Overwrite mode (*note Minor Modes::).
+Self-inserting characters replace existing text, column by column,
+rather than pushing existing text to the right.  <RET> runs
+`picture-newline', which just moves to the beginning of the following
+line so that new text will replace that line.
+
+   Text is erased instead of deleted and killed.  <DEL>
+(`picture-backward-clear-column') replaces the preceding character with
+a space rather than removing it.  `C-d' (`picture-clear-column') does
+the same in a forward direction.  `C-k' (`picture-clear-line') really
+kills the contents of lines, but never removes the newlines from a
+buffer.
+
+   To do actual insertion, you must use special commands.  `C-o'
+(`picture-open-line') creates a blank line, but does so after the
+current line; it never splits a line.  `C-M-o', `split-line', makes
+sense in Picture mode, so it remains unchanged.  <LFD>
+(`picture-duplicate-line') inserts another line with the same contents
+below the current line.
+
+   To actually delete parts of the picture, use `C-w', or with `C-c
+C-d' (which is defined as `delete-char', as `C-d' is in other modes),
+or with one of the picture rectangle commands (*note Rectangles in
+Picture::).
 
 \1f
-File: xemacs.info,  Node: Diary Commands,  Next: Format of Diary File,  Prev: Diary,  Up: Diary
+File: xemacs.info,  Node: Insert in Picture,  Next: Tabs in Picture,  Prev: Basic Picture,  Up: Picture
+
+Controlling Motion After Insert
+===============================
 
-Commands Displaying Diary Entries
----------------------------------
+   Since "self-inserting" characters just overwrite and move point in
+Picture mode, there is no essential restriction on how point should be
+moved.  Normally point moves right, but you can specify any of the eight
+orthogonal or diagonal directions for motion after a "self-inserting"
+character.  This is useful for drawing lines in the buffer.
 
-   Once you have created a `~/diary' file, you can use the calendar to
-view it.  You can also view today's events outside of Calendar mode.
+`C-c <'
+     Move left after insertion (`picture-movement-left').
 
-`d'
-     Display all diary entries for the selected date
-     (`view-diary-entries').
+`C-c >'
+     Move right after insertion (`picture-movement-right').
 
-`Button2 Diary'
-     Display all diary entries for the date you click on.
+`C-c ^'
+     Move up after insertion (`picture-movement-up').
 
-`s'
-     Display the entire diary file (`show-all-diary-entries').
+`C-c .'
+     Move down after insertion (`picture-movement-down').
 
-`m'
-     Mark all visible dates that have diary entries
-     (`mark-diary-entries').
+`C-c `'
+     Move up and left ("northwest") after insertion
+     (`picture-movement-nw').
 
-`u'
-     Unmark the calendar window (`calendar-unmark').
-
-`M-x print-diary-entries'
-     Print hard copy of the diary display as it appears.
-
-`M-x diary'
-     Display all diary entries for today's date.
-
-`M-x diary-mail-entries'
-     Mail yourself email reminders about upcoming diary entries.
-
-   Displaying the diary entries with `d' shows in a separate window the
-diary entries for the selected date in the calendar.  The mode line of
-the new window shows the date of the diary entries and any holidays
-that fall on that date.  If you specify a numeric argument with `d', it
-shows all the diary entries for that many successive days.  Thus, `2 d'
-displays all the entries for the selected date and for the following
-day.
-
-   Another way to display the diary entries for a date is to click
-`Button2' on the date, and then choose `Diary' from the menu that
-appears.
-
-   To get a broader view of which days are mentioned in the diary, use
-the `m' command.  This displays the dates that have diary entries in a
-different face (or places a `+' after these dates, if display with
-multiple faces is not available).  The command applies both to the
-currently visible months and to other months that subsequently become
-visible by scrolling.  To turn marking off and erase the current marks,
-type `u', which also turns off holiday marks (*note Holidays::.).
-
-   To see the full diary file, rather than just some of the entries, use
-the `s' command.
-
-   Display of selected diary entries uses the selective display feature
-to hide entries that don't apply.
-
-   The diary buffer as you see it is an illusion, so simply printing the
-buffer does not print what you see on your screen.  There is a special
-command to print hard copy of the diary buffer *as it appears*; this
-command is `M-x print-diary-entries'.  It sends the data directly to
-the printer.  You can customize it like `lpr-region' (*note
-Hardcopy::.).
-
-   The command `M-x diary' displays the diary entries for the current
-date, independently of the calendar display, and optionally for the next
-few days as well; the variable `number-of-diary-entries' specifies how
-many days to include (*note Customization::.).
-
-   If you put `(diary)' in your `.emacs' file, this automatically
-displays a window with the day's diary entries, when you enter Emacs.
-The mode line of the displayed window shows the date and any holidays
-that fall on that date.
-
-   Many users like to receive notice of events in their diary as email.
-To send such mail to yourself, use the command `M-x
-diary-mail-entries'.  A prefix argument specifies how many days
-(starting with today) to check; otherwise, the variable
-`diary-mail-days' says how many days.
+`C-c ''
+     Move up and right ("northeast") after insertion
+     (`picture-movement-ne').
+
+`C-c /'
+     Move down and left ("southwest") after insertion
+     (`picture-movement-sw').
+
+`C-c \'
+     Move down and right ("southeast") after insertion
+     (`picture-movement-se').
+
+   Two motion commands move based on the current Picture insertion
+direction.  The command `C-c C-f' (`picture-motion') moves in the same
+direction as motion after "insertion" currently does, while `C-c C-b'
+(`picture-motion-reverse') moves in the opposite direction.
 
 \1f
-File: xemacs.info,  Node: Format of Diary File,  Next: Date Formats,  Prev: Diary Commands,  Up: Diary
-
-The Diary File
---------------
-
-   Your "diary file" is a file that records events associated with
-particular dates.  The name of the diary file is specified by the
-variable `diary-file'; `~/diary' is the default.  The `calendar'
-utility program supports a subset of the format allowed by the Emacs
-diary facilities, so you can use that utility to view the diary file,
-with reasonable results aside from the entries it cannot understand.
-
-   Each entry in the diary file describes one event and consists of one
-or more lines.  An entry always begins with a date specification at the
-left margin.  The rest of the entry is simply text to describe the
-event.  If the entry has more than one line, then the lines after the
-first must begin with whitespace to indicate they continue a previous
-entry.  Lines that do not begin with valid dates and do not continue a
-preceding entry are ignored.
-
-   You can inhibit the marking of certain diary entries in the calendar
-window; to do this, insert an ampersand (`&') at the beginning of the
-entry, before the date.  This has no effect on display of the entry in
-the diary window; it affects only marks on dates in the calendar
-window.  Nonmarking entries are especially useful for generic entries
-that would otherwise mark many different dates.
-
-   If the first line of a diary entry consists only of the date or day
-name with no following blanks or punctuation, then the diary window
-display doesn't include that line; only the continuation lines appear.
-For example, this entry:
-
-     02/11/1989
-           Bill B. visits Princeton today
-           2pm Cognitive Studies Committee meeting
-           2:30-5:30 Liz at Lawrenceville
-           4:00pm Dentist appt
-           7:30pm Dinner at George's
-           8:00-10:00pm concert
-
-appears in the diary window without the date line at the beginning.
-This style of entry looks neater when you display just a single day's
-entries, but can cause confusion if you ask for more than one day's
-entries.
-
-   You can edit the diary entries as they appear in the window, but it
-is important to remember that the buffer displayed contains the *entire*
-diary file, with portions of it concealed from view.  This means, for
-instance, that the `C-f' (`forward-char') command can put point at what
-appears to be the end of the line, but what is in reality the middle of
-some concealed line.
-
-   *Be careful when editing the diary entries!*  Inserting additional
-lines or adding/deleting characters in the middle of a visible line
-cannot cause problems, but editing at the end of a line may not do what
-you expect.  Deleting a line may delete other invisible entries that
-follow it.  Before editing the diary, it is best to display the entire
-file with `s' (`show-all-diary-entries').
+File: xemacs.info,  Node: Tabs in Picture,  Next: Rectangles in Picture,  Prev: Insert in Picture,  Up: Picture
+
+Picture Mode Tabs
+=================
+
+   Two kinds of tab-like action are provided in Picture mode.
+Context-based tabbing is done with `M-<TAB>' (`picture-tab-search').
+With no argument, it moves to a point underneath the next "interesting"
+character that follows whitespace in the previous non-blank line.
+"Next" here means "appearing at a horizontal position greater than the
+one point starts out at".  With an argument, as in `C-u M-<TAB>', the
+command moves to the next such interesting character in the current
+line.  `M-<TAB>' does not change the text; it only moves point.
+"Interesting" characters are defined by the variable
+`picture-tab-chars', which contains a string of characters considered
+interesting.  Its default value is `"!-~"'.
+
+   <TAB> itself runs `picture-tab', which operates based on the current
+tab stop settings; it is the Picture mode equivalent of
+`tab-to-tab-stop'.  Without arguments it just moves point, but with a
+numeric argument it clears the text that it moves over.
+
+   The context-based and tab-stop-based forms of tabbing are brought
+together by the command `C-c <TAB>' (`picture-set-tab-stops'.)  This
+command sets the tab stops to the positions which `M-<TAB>' would
+consider significant in the current line.  If you use this command with
+<TAB>, you can get the effect of context-based tabbing.  But `M-<TAB>'
+is more convenient in the cases where it is sufficient.
 
 \1f
-File: xemacs.info,  Node: Date Formats,  Next: Adding to Diary,  Prev: Format of Diary File,  Up: Diary
-
-Date Formats
-------------
-
-   Here are some sample diary entries, illustrating different ways of
-formatting a date.  The examples all show dates in American order
-(month, day, year), but Calendar mode supports European order (day,
-month, year) as an option.
-
-     4/20/93  Switch-over to new tabulation system
-     apr. 25  Start tabulating annual results
-     4/30  Results for April are due
-     */25  Monthly cycle finishes
-     Friday  Don't leave without backing up files
-
-   The first entry appears only once, on April 20, 1993.  The second and
-third appear every year on the specified dates, and the fourth uses a
-wildcard (asterisk) for the month, so it appears on the 25th of every
-month.  The final entry appears every week on Friday.
-
-   You can use just numbers to express a date, as in `MONTH/DAY' or
-`MONTH/DAY/YEAR'.  This must be followed by a nondigit.  In the date
-itself, MONTH and DAY are numbers of one or two digits.  The optional
-YEAR is also a number, and may be abbreviated to the last two digits;
-that is, you can use `11/12/1989' or `11/12/89'.
-
-   Dates can also have the form `MONTHNAME DAY' or `MONTHNAME DAY,
-YEAR', where the month's name can be spelled in full or abbreviated to
-three characters (with or without a period).  Case is not significant.
-
-   A date may be "generic"; that is, partially unspecified.  Then the
-entry applies to all dates that match the specification.  If the date
-does not contain a year, it is generic and applies to any year.
-Alternatively, MONTH, DAY, or YEAR can be a `*'; this matches any
-month, day, or year, respectively.  Thus, a diary entry `3/*/*' matches
-any day in March of any year; so does `march *'.
-
-   If you prefer the European style of writing dates--in which the day
-comes before the month--type `M-x european-calendar' while in the
-calendar, or set the variable `european-calendar-style' to `t' *before*
-using any calendar or diary command.  This mode interprets all dates in
-the diary in the European manner, and also uses European style for
-displaying diary dates.  (Note that there is no comma after the
-MONTHNAME in the European style.)  To go back to the (default) American
-style of writing dates, type `M-x american-calendar'.
-
-   You can use the name of a day of the week as a generic date which
-applies to any date falling on that day of the week.  You can abbreviate
-the day of the week to three letters (with or without a period) or spell
-it in full; case is not significant.
+File: xemacs.info,  Node: Rectangles in Picture,  Prev: Tabs in Picture,  Up: Picture
+
+Picture Mode Rectangle Commands
+===============================
+
+   Picture mode defines commands for working on rectangular pieces of
+the text in ways that fit with the quarter-plane model.  The standard
+rectangle commands may also be useful (*note Rectangles::).
+
+`C-c C-k'
+     Clear out the region-rectangle (`picture-clear-rectangle').  With
+     argument, kill it.
+
+`C-c C-w R'
+     Similar but save rectangle contents in register R first
+     (`picture-clear-rectangle-to-register').
+
+`C-c C-y'
+     Copy last killed rectangle into the buffer by overwriting, with
+     upper left corner at point (`picture-yank-rectangle').  With
+     argument, insert instead.
+
+`C-c C-x R'
+     Similar, but use the rectangle in register R
+     (`picture-yank-rectangle-from-register').
+
+   The picture rectangle commands `C-c C-k' (`picture-clear-rectangle')
+and `C-c C-w' (`picture-clear-rectangle-to-register') differ from the
+standard rectangle commands in that they normally clear the rectangle
+instead of deleting it; this is analogous with the way `C-d' is changed
+in Picture mode.
+
+   However, deletion of rectangles can be useful in Picture mode, so
+these commands delete the rectangle if given a numeric argument.
+
+   The Picture mode commands for yanking rectangles differ from the
+standard ones in overwriting instead of inserting.  This is the same
+way that Picture mode insertion of other text is different from other
+modes.  `C-c C-y' (`picture-yank-rectangle') inserts (by overwriting)
+the rectangle that was most recently killed, while `C-c C-x'
+(`picture-yank-rectangle-from-register') does for the rectangle found
+in a specified register.
+
+   Since most region commands in Picture mode operate on rectangles,
+when you select a region of text with the mouse in Picture mode, it is
+highlighted as a rectangle.
 
 \1f
-File: xemacs.info,  Node: Adding to Diary,  Next: Special Diary Entries,  Prev: Date Formats,  Up: Diary
+File: xemacs.info,  Node: Sending Mail,  Next: Reading Mail,  Prev: Picture,  Up: Top
+
+Sending Mail
+************
+
+   To send a message in Emacs, start by typing the command (`C-x m') to
+select and initialize the `*mail*' buffer.  You can then edit the text
+and headers of the message in the mail buffer, and type the command
+(`C-c C-c') to send the message.
+
+`C-x m'
+     Begin composing a message to send (`mail').
 
-Commands to Add to the Diary
-----------------------------
+`C-x 4 m'
+     Likewise, but display the message in another window
+     (`mail-other-window').
 
-   While in the calendar, there are several commands to create diary
-entries:
+`C-c C-c'
+     In Mail mode, send the message and switch to another buffer
+     (`mail-send-and-exit').
 
-`i d'
-     Add a diary entry for the selected date (`insert-diary-entry').
+   The command `C-x m' (`mail') selects a buffer named `*mail*' and
+initializes it with the skeleton of an outgoing message.  `C-x 4 m'
+(`mail-other-window') selects the `*mail*' buffer in a different
+window, leaving the previous current buffer visible.
 
-`i w'
-     Add a diary entry for the selected day of the week
-     (`insert-weekly-diary-entry').
+   Because the buffer for mail composition is an ordinary Emacs buffer,
+you can switch to other buffers while in the middle of composing mail,
+and switch back later (or never).  If you use the `C-x m' command again
+when you have been composing another message but have not sent it, a
+new mail buffer will be created; in this way, you can compose multiple
+messages at once.  You can switch back to and complete an unsent
+message by using the normal buffer selection mechanisms.
 
-`i m'
-     Add a diary entry for the selected day of the month
-     (`insert-monthly-diary-entry').
+   `C-u C-x m' is another way to switch back to a message in progress:
+it will search for an existing, unsent mail message buffer and select
+it.
 
-`i y'
-     Add a diary entry for the selected day of the year
-     (`insert-yearly-diary-entry').
+* Menu:
+
+* Format: Mail Format.    Format of the mail being composed.
+* Headers: Mail Headers.  Details of allowed mail header fields.
+* Mode: Mail Mode.        Special commands for editing mail being composed.
+
+\1f
+File: xemacs.info,  Node: Mail Format,  Next: Mail Headers,  Prev: Sending Mail,  Up: Sending Mail
+
+The Format of the Mail Buffer
+=============================
 
-   You can make a diary entry for a specific date by selecting that date
-in the calendar window and typing the `i d' command.  This command
-displays the end of your diary file in another window and inserts the
-date; you can then type the rest of the diary entry.
+   In addition to the "text" or contents, a message has "header
+fields", which say who sent it, when, to whom, why, and so on.  Some
+header fields, such as the date and sender, are created automatically
+after the message is sent.  Others, such as the recipient names, must
+be specified by you in order to send the message properly.
 
-   If you want to make a diary entry that applies to a specific day of
-the week, select that day of the week (any occurrence will do) and type
-`i w'.  This inserts the day-of-week as a generic date; you can then
-type the rest of the diary entry.  You can make a monthly diary entry in
-the same fashion.  Select the day of the month, use the `i m' command,
-and type rest of the entry.  Similarly, you can insert a yearly diary
-entry with the `i y' command.
+   Mail mode provides a few commands to help you edit some header
+fields, and some are preinitialized in the buffer automatically at
+times.  You can insert or edit any header fields using ordinary editing
+commands.
 
-   All of the above commands make marking diary entries by default.  To
-make a nonmarking diary entry, give a numeric argument to the command.
-For example, `C-u i w' makes a nonmarking weekly diary entry.
+   The line in the buffer that says:
 
-   When you modify the diary file, be sure to save the file before
-exiting Emacs.
+     --text follows this line--
+
+is a special delimiter that separates the headers you have specified
+from the text.  Whatever follows this line is the text of the message;
+the headers precede it.  The delimiter line itself does not appear in
+the message actually sent.  The text used for the delimiter line is
+controlled by the variable `mail-header-separator'.
+
+   Here is an example of what the headers and text in the `*mail*'
+buffer might look like.
+
+     To: rms@mc
+     CC: mly@mc, rg@oz
+     Subject: The XEmacs User's Manual
+     --Text follows this line--
+     Please ignore this message.
 
 \1f
-File: xemacs.info,  Node: Special Diary Entries,  Prev: Adding to Diary,  Up: Diary
-
-Special Diary Entries
----------------------
-
-   In addition to entries based on calendar dates, the diary file can
-contain "sexp entries" for regular events such as anniversaries.  These
-entries are based on Lisp expressions (sexps) that Emacs evaluates as
-it scans the diary file.  Instead of a date, a sexp entry contains `%%'
-followed by a Lisp expression which must begin and end with
-parentheses.  The Lisp expression determines which dates the entry
-applies to.
-
-   Calendar mode provides commands to insert certain commonly used sexp
-entries:
-
-`i a'
-     Add an anniversary diary entry for the selected date
-     (`insert-anniversary-diary-entry').
-
-`i b'
-     Add a block diary entry for the current region
-     (`insert-block-diary-entry').
-
-`i c'
-     Add a cyclic diary entry starting at the date
-     (`insert-cyclic-diary-entry').
-
-   If you want to make a diary entry that applies to the anniversary of
-a specific date, move point to that date and use the `i a' command.
-This displays the end of your diary file in another window and inserts
-the anniversary description; you can then type the rest of the diary
-entry. The entry looks like this:
-
-   The effect of `i a' is to add a `diary-anniversary' sexp to your
-diary file.  You can also add one manually, for instance:
-
-     %%(diary-anniversary 10 31 1948) Arthur's birthday
-
-This entry applies to October 31 in any year after 1948; `10 31 1948'
-specifies the date.  (If you are using the European calendar style, the
-month and day are interchanged.)  The reason this expression requires a
-beginning year is that advanced diary functions can use it to calculate
-the number of elapsed years.
-
-   A "block" diary entry applies to a specified range of consecutive
-dates.  Here is a block diary entry that applies to all dates from June
-24, 1990 through July 10, 1990:
-
-     %%(diary-block 6 24 1990 7 10 1990) Vacation
-
-The `6 24 1990' indicates the starting date and the `7 10 1990'
-indicates the stopping date.  (Again, if you are using the European
-calendar style, the month and day are interchanged.)
-
-   To insert a block entry, place point and the mark on the two dates
-that begin and end the range, and type `i b'.  This command displays
-the end of your diary file in another window and inserts the block
-description; you can then type the diary entry.
-
-   "Cyclic" diary entries repeat after a fixed interval of days.  To
-create one, select the starting date and use the `i c' command.  The
-command prompts for the length of interval, then inserts the entry,
-which looks like this:
-
-     %%(diary-cyclic 50 3 1 1990) Renew medication
-
-This entry applies to March 1, 1990 and every 50th day following; `3 1
-1990' specifies the starting date.  (If you are using the European
-calendar style, the month and day are interchanged.)
-
-   All three of these commands make marking diary entries.  To insert a
-nonmarking entry, give a numeric argument to the command.  For example,
-`C-u i a' makes a nonmarking anniversary diary entry.
-
-   Marking sexp diary entries in the calendar is *extremely*
-time-consuming, since every date visible in the calendar window must be
-individually checked.  So it's a good idea to make sexp diary entries
-nonmarking (with `&') when possible.
-
-   Another sophisticated kind of sexp entry, a "floating" diary entry,
-specifies a regularly occurring event by offsets specified in days,
-weeks, and months.  It is comparable to a crontab entry interpreted by
-the `cron' utility.  Here is a nonmarking, floating diary entry that
-applies to the last Thursday in November:
-
-     &%%(diary-float 11 4 -1) American Thanksgiving
-
-The 11 specifies November (the eleventh month), the 4 specifies Thursday
-(the fourth day of the week, where Sunday is numbered zero), and the -1
-specifies "last" (1 would mean "first", 2 would mean "second", -2 would
-mean "second-to-last", and so on).  The month can be a single month or
-a list of months.  Thus you could change the 11 above to `'(1 2 3)' and
-have the entry apply to the last Thursday of January, February, and
-March.  If the month is `t', the entry applies to all months of the
-year.
-
-   The sexp feature of the diary allows you to specify diary entries
-based on any Emacs Lisp expression.  You can use the library of built-in
-functions or you can write your own functions.  The built-in functions
-include the ones shown in this section, plus a few others (*note Sexp
-Diary Entries::.).
-
-   The generality of sexps lets you specify any diary entry that you can
-describe algorithmically.  Suppose you get paid on the 21st of the month
-if it is a weekday, and to the Friday before if the 21st is on a
-weekend.  The diary entry
-
-     &%%(let ((dayname (calendar-day-of-week date))
-              (day (car (cdr date))))
-           (or (and (= day 21) (memq dayname '(1 2 3 4 5)))
-               (and (memq day '(19 20)) (= dayname 5)))
-              ) Pay check deposited
-
-to just those dates.  This example illustrates how the sexp can depend
-on the variable `date'; this variable is a list (MONTH DAY YEAR) that
-gives the Gregorian date for which the diary entries are being found.
-If the value of the sexp is `t', the entry applies to that date.  If
-the sexp evaluates to `nil', the entry does *not* apply to that date.
+File: xemacs.info,  Node: Mail Headers,  Next: Mail Mode,  Prev: Mail Format,  Up: Sending Mail
+
+Mail Header Fields
+==================
+
+   There are several header fields you can use in the `*mail*' buffer.
+Each header field starts with a field name at the beginning of a line,
+terminated by a colon.  It does not matter whether you use upper or
+lower case in the field name.  After the colon and optional whitespace
+comes the contents of the field.
+
+`To'
+     This field contains the mailing addresses of the message.
+
+`Subject'
+     The contents of the `Subject' field should be a piece of text that
+     says what the message is about.  Subject fields are useful because
+     most mail-reading programs can provide a summary of messages,
+     listing the subject of each message but not its text.
+
+`CC'
+     This field contains additional mailing addresses to send the
+     message to, but whose readers should not regard the message as
+     addressed to them.
+
+`BCC'
+     This field contains additional mailing addresses to send the
+     message to, but which should not appear in the header of the
+     message actually sent.
+
+`FCC'
+     This field contains the name of one file (in Unix mail file
+     format) to which a copy of the message should be appended when the
+     message is sent.
+
+`From'
+     Use the `From' field to say who you are, when the account you are
+     using to send the mail is not your own.  The contents of the
+     `From' field should be a valid mailing address, since replies will
+     normally go there.
+
+`Reply-To'
+     Use the `Reply-To' field to direct replies to a different address,
+     not your own. `From' and `Reply-To' have the same effect on where
+     replies go, but they convey a different meaning to the person who
+     reads the message.
+
+`In-Reply-To'
+     This field contains a piece of text describing a message you are
+     replying to.  Some mail systems can use the information to
+     correlate related pieces of mail.  This field is normally filled
+     in by your mail handling package when you are replying to a
+     message and you never need to think about it.
+
+The `To', `CC', `BCC' and `FCC' fields can appear any number of times,
+to specify many places to send the message.
+
+The `To', `CC', and `BCC', fields can have continuation lines.  All the
+lines starting with whitespace, following the line on which the field
+starts, are considered part of the field.  For example,
+
+     To: foo@here, this@there,
+       me@gnu.cambridge.mass.usa.earth.spiral3281
+
+If you have a `~/.mailrc' file, Emacs scans it for mail aliases the
+first time you try to send mail in an Emacs session.  Emacs expands
+aliases found in the `To', `CC', and `BCC' fields where appropriate.
+You can set the variable `mail-abbrev-mailrc-file' to the name of the
+file with mail aliases.  If `nil', `~/.mailrc' is used.
+
+   Your `.mailrc' file ensures that word-abbrevs are defined for each
+of your mail aliases when point is in a `To', `CC', `BCC', or `From'
+field.  The aliases are defined in your `.mailrc' file or in a file
+specified by the MAILRC environment variable if it exists.  Your mail
+aliases expand any time you type a word-delimiter at the end of an
+abbreviation.
+
+   In this version of Emacs, what you see is what you get: in contrast
+to some other versions, no abbreviations are expanded after you have
+sent the mail.  This means you don't suffer the annoyance of having the
+system do things behind your back--if the system rewrites an address
+you typed, you know it immediately, instead of after the mail has been
+sent and it's too late to do anything about it.  For example, you will
+never again be in trouble because you forgot to delete an old alias
+from your `.mailrc' and a new local user is given a userid which
+conflicts with one of your aliases.
+
+   Your mail alias abbrevs are in effect only when point is in an
+appropriate header field. The mail aliases will not expand in the body
+of the message, or in other header fields.  The default mode-specific
+abbrev table `mail-mode-abbrev-table' is used instead if defined.  That
+means if you have been using mail-mode specific abbrevs, this code will
+not adversely affect you.  You can control which header fields the
+abbrevs are used in by changing the variable `mail-abbrev-mode-regexp'.
+
+   If auto-fill mode is on, abbrevs wrap at commas instead of at word
+boundaries, and header continuation lines will be properly indented.
+
+   You can also insert a mail alias with
+`mail-interactive-insert-alias'.  This function, which is bound to `C-c
+C-a', prompts you for an alias (with completion) and inserts its
+expansion at point.
+
+   In this version of Emacs, it is possible to have lines like the
+following in your `.mailrc' file:
+
+          alias someone "John Doe <doe@quux.com>"
+
+   That is, if you want an address to have embedded spaces, simply
+surround it with double-quotes.  The quotes are necessary because the
+format of the `.mailrc' file uses spaces as address delimiters.
+
+   Aliases in the `.mailrc' file may be nested. For example, assume you
+define aliases like:
+          alias group1 fred ethel
+          alias group2 larry curly moe
+          alias everybody group1 group2
+
+   When you now type `everybody' on the `To' line, it will expand to:
+          fred, ethyl, larry, curly, moe
+
+   Aliases may contain forward references; the alias of `everybody' in
+the example above can precede the aliases of `group1' and `group2'.
+
+   In this version of Emacs, you can use the `source' `.mailrc' command
+for reading aliases from some other file as well.
+
+   Aliases may contain hyphens, as in `"alias foo-bar foo@bar"', even
+though word-abbrevs normally cannot contain hyphens.
+
+   To read in the contents of another `.mailrc'-type file from Emacs,
+use the command `M-x merge-mail-aliases'.  The `rebuild-mail-aliases'
+command is similar, but deletes existing aliases first.
+
+   If you want multiple addresses separated by a string other than `,'
+(a comma), then set the variable `mail-alias-separator-string' to it.
+This has to be a comma bracketed by whitespace if you want any kind  of
+reasonable behavior.
+
+   If the variable `mail-archive-file-name' is non-`nil', it should be
+a string naming a file.  Each time you start to edit a message to send,
+an `FCC' field is entered for that file.  Unless you remove the `FCC'
+field, every message is written into that file when it is sent.
 
 \1f
-File: xemacs.info,  Node: Calendar Customization,  Prev: Diary,  Up: Calendar/Diary
+File: xemacs.info,  Node: Mail Mode,  Prev: Mail Headers,  Up: Sending Mail
+
+Mail Mode
+=========
+
+   The major mode used in the `*mail*' buffer is Mail mode.  Mail mode
+is similar to Text mode, but several commands are provided on the `C-c'
+prefix.  These commands all deal specifically with editing or sending
+the message.
+
+`C-c C-s'
+     Send the message, and leave the `*mail*' buffer selected
+     (`mail-send').
+
+`C-c C-c'
+     Send the message, and select some other buffer
+     (`mail-send-and-exit').
+
+`C-c C-f C-t'
+     Move to the `To' header field, creating one if there is none
+     (`mail-to').
+
+`C-c C-f C-s'
+     Move to the `Subject' header field, creating one if there is none
+     (`mail-subject').
+
+`C-c C-f C-c'
+     Move to the `CC' header field, creating one if there is none
+     (`mail-cc').
+
+`C-c C-w'
+     Insert the file `~/.signature' at the end of the message text
+     (`mail-signature').
+
+`C-c C-y'
+     Yank the selected message (`mail-yank-original').
+
+`C-c C-q'
+     Fill all paragraphs of yanked old messages, each individually
+     (`mail-fill-yanked-message').
+
+`<button3>'
+     Pops up a menu of useful mail-mode commands.
+
+   There are two ways to send a message.  `C-c C-c'
+(`mail-send-and-exit') is the usual way to send the message.  It sends
+the message and then deletes the window (if there is another window) or
+switches to another buffer.  It puts the `*mail*' buffer at the lowest
+priority for automatic reselection, since you are finished with using
+it.  `C-c C-s' (`mail-send') sends the message and marks the `*mail*'
+buffer unmodified, but leaves that buffer selected so that you can
+modify the message (perhaps with new recipients) and send it again.
+
+   Mail mode provides some other special commands that are useful for
+editing the headers and text of the message before you send it.  There
+are three commands defined to move point to particular header fields,
+all based on the prefix `C-c C-f' (`C-f' is for "field").  They are
+`C-c C-f C-t' (`mail-to') to move to the `To' field, `C-c C-f C-s'
+(`mail-subject') for the `Subject' field, and `C-c C-f C-c' (`mail-cc')
+for the `CC' field.  These fields have special motion commands because
+they are edited most frequently.
+
+   `C-c C-w' (`mail-signature') adds a standard piece of text at the
+end of the message to say more about who you are.  The text comes from
+the file `.signature' in your home directory.
+
+   When you use an Rmail command to send mail from the Rmail mail
+reader, you can use `C-c C-y' `mail-yank-original' inside the `*mail*'
+buffer to insert the text of the message you are replying to.  Normally
+Rmail indents each line of that message four spaces and eliminates most
+header fields.  A numeric argument specifies the number of spaces to
+indent.  An argument of just `C-u' says not to indent at all and not to
+eliminate anything.  `C-c C-y' always uses the current message from the
+`RMAIL' buffer, so you can insert several old messages by selecting one
+in `RMAIL', switching to `*mail*' and yanking it, then switching back
+to `RMAIL' to select another.
+
+   After using `C-c C-y', you can use the command `C-c C-q'
+(`mail-fill-yanked-message') to fill the paragraphs of the yanked old
+message or messages.  One use of `C-c C-q' fills all such paragraphs,
+each one separately.
+
+   Clicking the right mouse button in a mail buffer pops up a menu of
+the above commands, for easy access.
+
+   Turning on Mail mode (which `C-x m' does automatically) calls the
+value of `text-mode-hook', if it is not void or `nil', and then calls
+the value of `mail-mode-hook' if that is not void or `nil'.
 
-Customizing the Calendar and Diary
-----------------------------------
+\1f
+File: xemacs.info,  Node: Reading Mail,  Next: Calendar/Diary,  Prev: Sending Mail,  Up: Top
+
+Reading Mail
+************
+
+   XEmacs provides three separate mail-reading packages.  Each one
+comes with its own manual, which is included standard with the XEmacs
+distribution.
+
+   The recommended mail-reading package for new users is VM.  VM works
+with standard Unix-mail-format folders and was designed as a replacement
+for the older Rmail.
+
+   XEmacs also provides a sophisticated and comfortable front-end to the
+MH mail-processing system, called `mh-e'.  Unlike in other mail
+programs, folders in MH are stored as file-system directories, with
+each message occupying one (numbered) file.  This facilitates working
+with mail using shell commands, and many other features of MH are also
+designed to integrate well with the shell and with shell scripts.  Keep
+in mind, however, that in order to use mh-e you must have the MH
+mail-processing system installed on your computer.
+
+   Finally, XEmacs provides the Rmail package.  Rmail is (currently) the
+only mail reading package distributed with FSF GNU Emacs, and is
+powerful in its own right.  However, it stores mail folders in a special
+format called `Babyl', that is incompatible with all other
+frequently-used mail programs.  A utility program is provided for
+converting Babyl folders to standard Unix-mail format; however, unless
+you already have mail in Babyl-format folders, you should consider
+using VM or mh-e instead. (If at times you have to use FSF Emacs, it is
+not hard to obtain and install VM for that editor.)
 
-   There are many customizations that you can use to make the calendar
-and diary suit your personal tastes.
+\1f
+File: xemacs.info,  Node: Calendar/Diary,  Next: Sorting,  Prev: Reading Mail,  Up: Top
+
+Calendar Mode and the Diary
+===========================
+
+   Emacs provides the functions of a desk calendar, with a diary of
+planned or past events.  To enter the calendar, type `M-x calendar';
+this displays a three-month calendar centered on the current month, with
+point on the current date.  With a numeric argument, as in `C-u M-x
+calendar', it prompts you for the month and year to be the center of the
+three-month calendar.  The calendar uses its own buffer, whose major
+mode is Calendar mode.
+
+   `Button2' in the calendar brings up a menu of operations on a
+particular date; `Buttons3' brings up a menu of commonly used calendar
+features that are independent of any particular date.  To exit the
+calendar, type `q'.  *Note Customizing the Calendar and Diary:
+(lispref)Calendar, for customization information about the calendar and
+diary.
 
 * Menu:
 
-* Calendar Customizing::   Defaults you can set.
-* Holiday Customizing::    Defining your own holidays.
-* Date Display Format::    Changing the format.
-* Time Display Format::    Changing the format.
-* Daylight Savings::       Changing the default.
-* Diary Customizing::      Defaults you can set.
-* Hebrew/Islamic Entries:: How to obtain them.
-* Fancy Diary Display::    Enhancing the diary display, sorting entries.
-* Included Diary Files::   Sharing a common diary file.
-* Sexp Diary Entries::     Fancy things you can do.
-* Appt Customizing::      Customizing appointment reminders.
+* Calendar Motion::        Moving through the calendar; selecting a date.
+* Scroll Calendar::        Bringing earlier or later months onto the screen.
+* Mark and Region::        Remembering dates, the mark ring.
+* General Calendar::       Exiting or recomputing the calendar.
+* LaTeX Calendar::         Print a calendar using LaTeX.
+* Holidays::               Displaying dates of holidays.
+* Sunrise/Sunset::         Displaying local times of sunrise and sunset.
+* Lunar Phases::           Displaying phases of the moon.
+* Other Calendars::        Converting dates to other calendar systems.
+* Diary::                  Displaying events from your diary.
+* Calendar Customization:: Altering the behavior of the features above.
 
 \1f
-File: xemacs.info,  Node: Calendar Customizing,  Next: Holiday Customizing,  Up: Calendar Customization
-
-Customizing the Calendar
-........................
-
-   If you set the variable `view-diary-entries-initially' to `t',
-calling up the calendar automatically displays the diary entries for
-the current date as well.  The diary dates appear only if the current
-date is visible.  If you add both of the following lines to your
-`.emacs' file:
-
-     (setq view-diary-entries-initially t)
-     (calendar)
-
-this displays both the calendar and diary windows whenever you start
-Emacs.
-
-   Similarly, if you set the variable
-`view-calendar-holidays-initially' to `t', entering the calendar
-automatically displays a list of holidays for the current three-month
-period.  The holiday list appears in a separate window.
-
-   You can set the variable `mark-diary-entries-in-calendar' to `t' in
-order to mark any dates with diary entries.  This takes effect whenever
-the calendar window contents are recomputed.  There are two ways of
-marking these dates: by changing the face (*note Faces::.), if the
-display supports that, or by placing a plus sign (`+') beside the date
-otherwise.
-
-   Similarly, setting the variable `mark-holidays-in-calendar' to `t'
-marks holiday dates, either with a change of face or with an asterisk
-(`*').
-
-   The variable `calendar-holiday-marker' specifies how to mark a date
-as being a holiday.  Its value may be a character to insert next to the
-date, or a face name to use for displaying the date.  Likewise, the
-variable `diary-entry-marker' specifies how to mark a date that has
-diary entries.  The calendar creates faces named `holiday-face' and
-`diary-face' for these purposes; those symbols are the default values
-of these variables, when Emacs supports multiple faces on your terminal.
-
-   The variable `calendar-load-hook' is a normal hook run when the
-calendar package is first loaded (before actually starting to display
-the calendar).
-
-   Starting the calendar runs the normal hook
-`initial-calendar-window-hook'.  Recomputation of the calendar display
-does not run this hook.  But if you leave the calendar with the `q'
-command and reenter it, the hook runs again.
-
-   The variable `today-visible-calendar-hook' is a normal hook run
-after the calendar buffer has been prepared with the calendar when the
-current date is visible in the window.  One use of this hook is to
-replace today's date with asterisks; to do that, use the hook function
-`calendar-star-date'.
-
-     (add-hook 'today-visible-calendar-hook 'calendar-star-date)
-
-Another standard hook function marks the current date, either by
-changing its face or by adding an asterisk.  Here's how to use it:
-
-     (add-hook 'today-visible-calendar-hook 'calendar-mark-today)
-
-The variable `calendar-today-marker' specifies how to mark today's
-date.  Its value should be a character to insert next to the date or a
-face name to use for displaying the date.  A face named
-`calendar-today-face' is provided for this purpose; that symbol is the
-default for this variable when Emacs supports multiple faces on your
-terminal.
-
-A similar normal hook, `today-invisible-calendar-hook' is run if the
-current date is *not* visible in the window.
+File: xemacs.info,  Node: Calendar Motion,  Next: Scroll Calendar,  Prev: Calendar/Diary,  Up: Calendar/Diary
+
+Movement in the Calendar
+------------------------
+
+   Calendar mode lets you move through the calendar in logical units of
+time such as days, weeks, months, and years.  If you move outside the
+three months originally displayed, the calendar display "scrolls"
+automatically through time to make the selected date visible.  Moving to
+a date lets you view its holidays or diary entries, or convert it to
+other calendars; moving longer time periods is also useful simply to
+scroll the calendar.
+
+* Menu:
+
+* Calendar Unit Motion::       Moving by days, weeks, months, and years.
+* Move to Beginning or End::   Moving to start/end of weeks, months, and years.
+* Specified Dates::            Moving to the current date or another
+                               specific date.
 
 \1f
-File: xemacs.info,  Node: Holiday Customizing,  Next: Date Display Format,  Prev: Calendar Customizing,  Up: Calendar Customization
-
-Customizing the Holidays
-........................
-
-   Emacs knows about holidays defined by entries on one of several
-lists.  You can customize these lists of holidays to your own needs,
-adding or deleting holidays.  The lists of holidays that Emacs uses are
-for general holidays (`general-holidays'), local holidays
-(`local-holidays'), Christian holidays (`christian-holidays'), Hebrew
-(Jewish) holidays (`hebrew-holidays'), Islamic (Moslem) holidays
-(`islamic-holidays'), and other holidays (`other-holidays').
-
-   The general holidays are, by default, holidays common throughout the
-United States.  To eliminate these holidays, set `general-holidays' to
-`nil'.
-
-   There are no default local holidays (but sites may supply some).  You
-can set the variable `local-holidays' to any list of holidays, as
-described below.
-
-   By default, Emacs does not include all the holidays of the religions
-that it knows, only those commonly found in secular calendars.  For a
-more extensive collection of religious holidays, you can set any (or
-all) of the variables `all-christian-calendar-holidays',
-`all-hebrew-calendar-holidays', or `all-islamic-calendar-holidays' to
-`t'.  If you want to eliminate the religious holidays, set any or all
-of the corresponding variables `christian-holidays', `hebrew-holidays',
-and `islamic-holidays' to `nil'.
-
-   You can set the variable `other-holidays' to any list of holidays.
-This list, normally empty, is intended for individual use.
-
-   Each of the lists (`general-holidays', `local-holidays',
-`christian-holidays', `hebrew-holidays', `islamic-holidays', and
-`other-holidays') is a list of "holiday forms", each holiday form
-describing a holiday (or sometimes a list of holidays).
-
-   Here is a table of the possible kinds of holiday form.  Day numbers
-and month numbers count starting from 1, but "dayname" numbers count
-Sunday as 0.  The element STRING is always the name of the holiday, as
-a string.
-
-`(holiday-fixed MONTH DAY STRING)'
-     A fixed date on the Gregorian calendar.  MONTH and DAY are
-     numbers, STRING is the name of the holiday.
-
-`(holiday-float MONTH DAYNAME K STRING)'
-     The Kth DAYNAME in MONTH on the Gregorian calendar (DAYNAME=0 for
-     Sunday, and so on); negative K means count back from the end of
-     the month.  STRING is the name of the holiday.
-
-`(holiday-hebrew MONTH DAY STRING)'
-     A fixed date on the Hebrew calendar.  MONTH and DAY are numbers,
-     STRING is the name of the holiday.
-
-`(holiday-islamic MONTH DAY STRING)'
-     A fixed date on the Islamic calendar.  MONTH and DAY are numbers,
-     STRING is the name of the holiday.
-
-`(holiday-julian MONTH DAY STRING)'
-     A fixed date on the Julian calendar.  MONTH and DAY are numbers,
-     STRING is the name of the holiday.
-
-`(holiday-sexp SEXP STRING)'
-     A date calculated by the Lisp expression SEXP.  The expression
-     should use the variable `year' to compute and return the date of a
-     holiday, or `nil' if the holiday doesn't happen this year.  The
-     value of SEXP must represent the date as a list of the form
-     `(MONTH DAY YEAR)'.  STRING is the name of the holiday.
-
-`(if CONDITION HOLIDAY-FORM &optional HOLIDAY-FORM)'
-     A holiday that happens only if CONDITION is true.
-
-`(FUNCTION [ARGS])'
-     A list of dates calculated by the function FUNCTION, called with
-     arguments ARGS.
-
-   For example, suppose you want to add Bastille Day, celebrated in
-France on July 14.  You can do this by adding the following line to
-your `.emacs' file:
-
-     (setq other-holidays '((holiday-fixed 7 14 "Bastille Day")))
-
-The holiday form `(holiday-fixed 7 14 "Bastille Day")' specifies the
-fourteenth day of the seventh month (July).
-
-   Many holidays occur on a specific day of the week, at a specific time
-of month.  Here is a holiday form describing Hurricane Supplication Day,
-celebrated in the Virgin Islands on the fourth Monday in August:
-
-     (holiday-float 8 1 4 "Hurricane Supplication Day")
-
-Here the 8 specifies August, the 1 specifies Monday (Sunday is 0,
-Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in
-the month (1 specifies the first occurrence, 2 the second occurrence,
--1 the last occurrence, -2 the second-to-last occurrence, and so on).
-
-   You can specify holidays that occur on fixed days of the Hebrew,
-Islamic, and Julian calendars too.  For example,
-
-     (setq other-holidays
-           '((holiday-hebrew 10 2 "Last day of Hanukkah")
-             (holiday-islamic 3 12 "Mohammed's Birthday")
-             (holiday-julian 4 2 "Jefferson's Birthday")))
-
-adds the last day of Hanukkah (since the Hebrew months are numbered with
-1 starting from Nisan), the Islamic feast celebrating Mohammed's
-birthday (since the Islamic months are numbered from 1 starting with
-Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the
-Julian calendar.
-
-   To include a holiday conditionally, use either Emacs Lisp's `if' or
-the `holiday-sexp' form.  For example, American presidential elections
-occur on the first Tuesday after the first Monday in November of years
-divisible by 4:
-
-     (holiday-sexp (if (= 0 (% year 4))
-                        (calendar-gregorian-from-absolute
-                      (1+ (calendar-dayname-on-or-before
-                            1 (+ 6 (calendar-absolute-from-gregorian
-                                     (list 11 1 year))))))
-                   "US Presidential Election"))
-
-or
-
-     (if (= 0 (% displayed-year 4))
-         (fixed 11
-                (extract-calendar-day
-                  (calendar-gregorian-from-absolute
-                    (1+ (calendar-dayname-on-or-before
-                          1 (+ 6 (calendar-absolute-from-gregorian
-                                   (list 11 1 displayed-year)))))))
-                "US Presidential Election"))
-
-   Some holidays just don't fit into any of these forms because special
-calculations are involved in their determination.  In such cases you
-must write a Lisp function to do the calculation.  To include eclipses,
-for example, add `(eclipses)' to `other-holidays' and write an Emacs
-Lisp function `eclipses' that returns a (possibly empty) list of the
-relevant Gregorian dates among the range visible in the calendar
-window, with descriptive strings, like this:
-
-     (((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... )
+File: xemacs.info,  Node: Calendar Unit Motion,  Next: Move to Beginning or End,  Prev: Calendar Motion,  Up: Calendar Motion
+
+Motion by Integral Days, Weeks, Months, Years
+.............................................
+
+   The commands for movement in the calendar buffer parallel the
+commands for movement in text.  You can move forward and backward by
+days, weeks, months, and years.
+
+`C-f'
+     Move point one day forward (`calendar-forward-day').
+
+`C-b'
+     Move point one day backward (`calendar-backward-day').
+
+`C-n'
+     Move point one week forward (`calendar-forward-week').
+
+`C-p'
+     Move point one week backward (`calendar-backward-week').
+
+`M-}'
+     Move point one month forward (`calendar-forward-month').
+
+`M-{'
+     Move point one month backward (`calendar-backward-month').
+
+`C-x ]'
+     Move point one year forward (`calendar-forward-year').
+
+`C-x ['
+     Move point one year backward (`calendar-backward-year').
+
+   The day and week commands are natural analogues of the usual Emacs
+commands for moving by characters and by lines.  Just as `C-n' usually
+moves to the same column in the following line, in Calendar mode it
+moves to the same day in the following week.  And `C-p' moves to the
+same day in the previous week.
+
+   The arrow keys are equivalent to `C-f', `C-b', `C-n' and `C-p', just
+as they normally are in other modes.
+
+   The commands for motion by months and years work like those for
+weeks, but move a larger distance.  The month commands `M-}' and `M-{'
+move forward or backward by an entire month's time.  The year commands
+`C-x ]' and `C-x [' move forward or backward a whole year.
+
+   The easiest way to remember these commands is to consider months and
+years analogous to paragraphs and pages of text, respectively.  But the
+commands themselves are not quite analogous.  The ordinary Emacs
+paragraph commands move to the beginning or end of a paragraph, whereas
+these month and year commands move by an entire month or an entire
+year, which usually involves skipping across the end of a month or year.
+
+   All these commands accept a numeric argument as a repeat count.  For
+convenience, the digit keys and the minus sign specify numeric
+arguments in Calendar mode even without the Meta modifier.  For example,
+`100 C-f' moves point 100 days forward from its present location.
 
 \1f
-File: xemacs.info,  Node: Date Display Format,  Next: Time Display Format,  Prev: Holiday Customizing,  Up: Calendar Customization
+File: xemacs.info,  Node: Move to Beginning or End,  Next: Specified Dates,  Prev: Calendar Unit Motion,  Up: Calendar Motion
 
-Date Display Format
-...................
+Beginning or End of Week, Month or Year
+.......................................
 
-   You can customize the manner of displaying dates in the diary, in
-mode lines, and in messages by setting `calendar-date-display-form'.
-This variable holds a list of expressions that can involve the variables
-`month', `day', and `year', which are all numbers in string form, and
-`monthname' and `dayname', which are both alphabetic strings.  In the
-American style, the default value of this list is as follows:
+   A week (or month, or year) is not just a quantity of days; we think
+of weeks (months, years) as starting on particular dates.  So Calendar
+mode provides commands to move to the beginning or end of a week, month
+or year:
 
-     ((if dayname (concat dayname ", ")) monthname " " day ", " year)
+`C-a'
+     Move point to start of week (`calendar-beginning-of-week').
 
-while in the European style this value is the default:
+`C-e'
+     Move point to end of week (`calendar-end-of-week').
 
-     ((if dayname (concat dayname ", ")) day " " monthname " " year)
+`M-a'
+     Move point to start of month (`calendar-beginning-of-month').
 
-   + The ISO standard date representation is this:
+`M-e'
+     Move point to end of month (`calendar-end-of-month').
 
-     (year "-" month "-" day)
+`M-<'
+     Move point to start of year (`calendar-beginning-of-year').
 
-This specifies a typical American format:
+`M->'
+     Move point to end of year (`calendar-end-of-year').
 
-     (month "/" day "/" (substring year -2))
+   These commands also take numeric arguments as repeat counts, with the
+repeat count indicating how many weeks, months, or years to move
+backward or forward.
+
+   By default, weeks begin on Sunday.  To make them begin on Monday
+instead, set the variable `calendar-week-start-day' to 1.
 
 \1f
-File: xemacs.info,  Node: Time Display Format,  Next: Daylight Savings,  Prev: Date Display Format,  Up: Calendar Customization
+File: xemacs.info,  Node: Specified Dates,  Prev: Move to Beginning or End,  Up: Calendar Motion
+
+Particular Dates
+................
 
-Time Display Format
-...................
+   Calendar mode provides commands for moving to a particular date
+specified in various ways.
 
-   The calendar and diary by default display times of day in the
-conventional American style with the hours from 1 through 12, minutes,
-and either `am' or `pm'.  If you prefer the European style, also known
-in the US as military, in which the hours go from 00 to 23, you can
-alter the variable `calendar-time-display-form'.  This variable is a
-list of expressions that can involve the variables `12-hours',
-`24-hours', and `minutes', which are all numbers in string form, and
-`am-pm' and `time-zone', which are both alphabetic strings.  The
-default value of `calendar-time-display-form' is as follows:
+`g d'
+     Move point to specified date (`calendar-goto-date').
 
-     (12-hours ":" minutes am-pm
-               (if time-zone " (") time-zone (if time-zone ")"))
+`o'
+     Center calendar around specified month (`calendar-other-month').
 
-Here is a value that provides European style times:
+`.'
+     Move point to today's date (`calendar-goto-today').
 
-     (24-hours ":" minutes
-               (if time-zone " (") time-zone (if time-zone ")"))
+   `g d' (`calendar-goto-date') prompts for a year, a month, and a day
+of the month, and then moves to that date.  Because the calendar
+includes all dates from the beginning of the current era, you must type
+the year in its entirety; that is, type `1990', not `90'.
 
-gives military-style times like `21:07 (UT)' if time zone names are
-defined, and times like `21:07' if they are not.
+   `o' (`calendar-other-month') prompts for a month and year, then
+centers the three-month calendar around that month.
+
+   You can return to today's date with `.' (`calendar-goto-today').
 
 \1f
-File: xemacs.info,  Node: Daylight Savings,  Next: Diary Customizing,  Prev: Time Display Format,  Up: Calendar Customization
-
-Daylight Savings Time
-.....................
-
-   Emacs understands the difference between standard time and daylight
-savings time--the times given for sunrise, sunset, solstices,
-equinoxes, and the phases of the moon take that into account.  The rules
-for daylight savings time vary from place to place and have also varied
-historically from year to year.  To do the job properly, Emacs needs to
-know which rules to use.
-
-   Some operating systems keep track of the rules that apply to the
-place where you are; on these systems, Emacs gets the information it
-needs from the system automatically.  If some or all of this
-information is missing, Emacs fills in the gaps with the rules
-currently used in Cambridge, Massachusetts.  If the resulting rules are
-not what you want, you can tell Emacs the rules to use by setting
-certain variables.
-
-   If the default choice of rules is not appropriate for your location,
-you can tell Emacs the rules to use by setting the variables
-`calendar-daylight-savings-starts' and
-`calendar-daylight-savings-ends'.  Their values should be Lisp
-expressions that refer to the variable `year', and evaluate to the
-Gregorian date on which daylight savings time starts or (respectively)
-ends, in the form of a list `(MONTH DAY YEAR)'.  The values should be
-`nil' if your area does not use daylight savings time.
-
-   Emacs uses these expressions to determine the starting date of
-daylight savings time for the holiday list  and for correcting times of
-day in the solar and lunar calculations.
-
-   The values for Cambridge, Massachusetts are as follows:
-
-     (calendar-nth-named-day 1 0 4 year)
-     (calendar-nth-named-day -1 0 10 year)
-
-That is, the first 0th day (Sunday) of the fourth month (April) in the
-year specified by `year', and the last Sunday of the tenth month
-(October) of that year.  If daylight savings time were changed to start
-on October 1, you would set `calendar-daylight-savings-starts' to this:
-
-     (list 10 1 year)
-
-   For a more complex example, suppose daylight savings time begins on
-the first of Nisan on the Hebrew calendar.  You should set
-`calendar-daylight-savings-starts' to this value:
-
-     (calendar-gregorian-from-absolute
-       (calendar-absolute-from-hebrew
-         (list 1 1 (+ year 3760))))
-
-because Nisan is the first month in the Hebrew calendar and the Hebrew
-year differs from the Gregorian year by 3760 at Nisan.
-
-   If there is no daylight savings time at your location, or if you want
-all times in standard time, set `calendar-daylight-savings-starts' and
-`calendar-daylight-savings-ends' to `nil'.
-
-   The variable `calendar-daylight-time-offset' specifies the
-difference between daylight savings time and standard time, measured in
-minutes.  The value for Cambridge, Massachusetts is 60.
-
-   The two variables `calendar-daylight-savings-starts-time' and
-`calendar-daylight-savings-ends-time' specify the number of minutes
-after midnight local time when the transition to and from daylight
-savings time should occur.  For Cambridge, Massachusetts both variables'
-values are 120.
+File: xemacs.info,  Node: Scroll Calendar,  Next: Mark and Region,  Prev: Calendar Motion,  Up: Calendar/Diary
+
+Scrolling the Calendar through Time
+-----------------------------------
+
+   The calendar display scrolls automatically through time when you
+move out of the visible portion.  You can also scroll it manually.
+Imagine that the calendar window contains a long strip of paper with
+the months on it.  Scrolling it means moving the strip so that new
+months become visible in the window.
+
+`C-x <'
+     Scroll calendar one month forward (`scroll-calendar-left').
+
+`C-x >'
+     Scroll calendar one month backward (`scroll-calendar-right').
+
+`C-v'
+`<NEXT>'
+     Scroll calendar three months forward
+     (`scroll-calendar-left-three-months').
+
+`M-v'
+`<PRIOR>'
+     Scroll calendar three months backward
+     (`scroll-calendar-right-three-months').
+
+   The most basic calendar scroll commands scroll by one month at a
+time.  This means that there are two months of overlap between the
+display before the command and the display after.  `C-x <' scrolls the
+calendar contents one month to the left; that is, it moves the display
+forward in time.  `C-x >' scrolls the contents to the right, which
+moves backwards in time.
+
+   The commands `C-v' and `M-v' scroll the calendar by an entire
+"screenful"--three months--in analogy with the usual meaning of these
+commands.  `C-v' makes later dates visible and `M-v' makes earlier
+dates visible.  These commands take a numeric argument as a repeat
+count; in particular, since `C-u' multiplies the next command by four,
+typing `C-u C-v' scrolls the calendar forward by a year and typing `C-u
+M-v' scrolls the calendar backward by a year.
+
+   The function keys <NEXT> and <PRIOR> are equivalent to `C-v' and
+`M-v', just as they are in other modes.
 
 \1f
-File: xemacs.info,  Node: Diary Customizing,  Next: Hebrew/Islamic Entries,  Prev: Daylight Savings,  Up: Calendar Customization
-
-Customizing the Diary
-.....................
-
-   Ordinarily, the mode line of the diary buffer window indicates any
-holidays that fall on the date of the diary entries.  The process of
-checking for holidays can take several seconds, so including holiday
-information delays the display of the diary buffer noticeably.  If you'd
-prefer to have a faster display of the diary buffer but without the
-holiday information, set the variable `holidays-in-diary-buffer' to
-`nil'.
-
-   The variable `number-of-diary-entries' controls the number of days
-of diary entries to be displayed at one time.  It affects the initial
-display when `view-diary-entries-initially' is `t', as well as the
-command `M-x diary'.  For example, the default value is 1, which says
-to display only the current day's diary entries.  If the value is 2,
-both the current day's and the next day's entries are displayed.  The
-value can also be a vector of seven elements: for example, if the value
-is `[0 2 2 2 2 4 1]' then no diary entries appear on Sunday, the
-current date's and the next day's diary entries appear Monday through
-Thursday, Friday through Monday's entries appear on Friday, while on
-Saturday only that day's entries appear.
-
-   The variable `print-diary-entries-hook' is a normal hook run after
-preparation of a temporary buffer containing just the diary entries
-currently visible in the diary buffer.  (The other, irrelevant diary
-entries are really absent from the temporary buffer; in the diary
-buffer, they are merely hidden.)  The default value of this hook does
-the printing with the command `lpr-buffer'.  If you want to use a
-different command to do the printing, just change the value of this
-hook.  Other uses might include, for example, rearranging the lines into
-order by day and time.
-
-   You can customize the form of dates in your diary file, if neither
-the standard American nor European styles suits your needs, by setting
-the variable `diary-date-forms'.  This variable is a list of patterns
-for recognizing a date.  Each date pattern is a list whose elements may
-be regular expressions (*note Regexps::.) or the symbols `month',
-`day', `year', `monthname', and `dayname'.  All these elements serve as
-patterns that match certain kinds of text in the diary file.  In order
-for the date pattern, as a whole, to match, all of its elements must
-match consecutively.
-
-   A regular expression in a date pattern matches in its usual fashion,
-using the standard syntax table altered so that `*' is a word
-constituent.
-
-   The symbols `month', `day', `year', `monthname', and `dayname' match
-the month number, day number, year number, month name, and day name of
-the date being considered.  The symbols that match numbers allow
-leading zeros; those that match names allow three-letter abbreviations
-and capitalization.  All the symbols can match `*'; since `*' in a
-diary entry means "any day", "any month", and so on, it should match
-regardless of the date being considered.
-
-   The default value of `diary-date-forms' in the American style is
-this:
-
-     ((month "/" day "[^/0-9]")
-      (month "/" day "/" year "[^0-9]")
-      (monthname " *" day "[^,0-9]")
-      (monthname " *" day ", *" year "[^0-9]")
-      (dayname "\\W"))
-
-Emacs matches of the diary entries with the date forms is done with the
-standard syntax table from Fundamental mode (*note Syntax Tables:
-(lispref)Syntax Tables.), but with the `*' changed so that it is a word
-constituent.
-
-   The date patterns in the list must be *mutually exclusive* and must
-not match any portion of the diary entry itself, just the date and one
-character of whitespace.  If, to be mutually exclusive, the pattern
-must match a portion of the diary entry text--beyond the whitespace
-that ends the date--then the first element of the date pattern *must*
-be `backup'.  This causes the date recognizer to back up to the
-beginning of the current word of the diary entry, after finishing the
-match.  Even if you use `backup', the date pattern must absolutely not
-match more than a portion of the first word of the diary entry.  The
-default value of `diary-date-forms' in the European style is this list:
-
-     ((day "/" month "[^/0-9]")
-      (day "/" month "/" year "[^0-9]")
-      (backup day " *" monthname "\\W+\\<[^*0-9]")
-      (day " *" monthname " *" year "[^0-9]")
-      (dayname "\\W"))
-
-Notice the use of `backup' in the third pattern, because it needs to
-match part of a word beyond the date itself to distinguish it from the
-fourth pattern.
+File: xemacs.info,  Node: Mark and Region,  Next: General Calendar,  Prev: Scroll Calendar,  Up: Calendar/Diary
+
+The Mark and the Region
+-----------------------
+
+   The concept of the mark applies to the calendar just as to any other
+buffer, but it marks a _date_, not a _position_ in the buffer.  The
+region consists of the days between the mark and point (including the
+starting and stopping dates).
+
+`C-SPC'
+     Set the mark to today's date (`calendar-set-mark').
+
+`C-@'
+     The same.
+
+`C-x C-x'
+     Interchange mark and point (`calendar-exchange-point-and-mark').
+
+`M-='
+     Display the number of days in the current region
+     (`calendar-count-days-region').
+
+   You set the mark in the calendar, as in any other buffer, by using
+`C-@' or `C-SPC' (`calendar-set-mark').  You return to the marked date
+with the command `C-x C-x' (`calendar-exchange-point-and-mark') which
+puts the mark where point was and point where mark was.  The calendar
+is scrolled as necessary, if the marked date was not visible on the
+screen.  This does not change the extent of the region.
+
+   To determine the number of days in the region, type `M-='
+(`calendar-count-days-region').  The numbers of days printed is
+_inclusive_; that is, it includes the days specified by mark and point.
+
+   The main use of the mark in the calendar is to remember dates that
+you may want to go back to.  To make this feature more useful, the mark
+ring (*note Mark Ring::) operates exactly as in other buffers:  Emacs
+remembers 16 previous locations of the mark.  To return to a marked
+date, type `C-u C-SPC' (or `C-u C-@'); this is the command
+`calendar-set-mark' given a numeric argument.  It moves point to where
+the mark was, restores the mark from the ring of former marks, and
+stores the previous point at the end of the mark ring.  So, repeated
+use of this command moves point through all the old marks on the ring,
+one by one.
 
 \1f
-File: xemacs.info,  Node: Hebrew/Islamic Entries,  Next: Fancy Diary Display,  Prev: Diary Customizing,  Up: Calendar Customization
+File: xemacs.info,  Node: General Calendar,  Next: LaTeX Calendar,  Prev: Mark and Region,  Up: Calendar/Diary
+
+Miscellaneous Calendar Commands
+-------------------------------
+
+`p d'
+     Display day-in-year (`calendar-print-day-of-year').
+
+`?'
+     Briefly describe calendar commands (`describe-calendar-mode').
+
+`C-c C-l'
+     Regenerate the calendar window (`redraw-calendar').
+
+`SPC'
+     Scroll the next window (`scroll-other-window').
 
-Hebrew- and Islamic-Date Diary Entries
-......................................
+`q'
+     Exit from calendar (`exit-calendar').
 
-   Your diary file can have entries based on Hebrew or Islamic dates, as
-well as entries based on the world-standard Gregorian calendar.
-However, because recognition of such entries is time-consuming and most
-people don't use them, you must explicitly enable their use.  If you
-want the diary to recognize Hebrew-date diary entries, for example, you
-must do this:
+   If you want to know how many days have elapsed since the start of
+the year, or the number of days remaining in the year, type the `p d'
+command (`calendar-print-day-of-year').  This displays both of those
+numbers in the echo area.
 
-     (add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries)
-     (add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries)
+   To display a brief description of the calendar commands, type `?'
+(`describe-calendar-mode').  For a fuller description, type `C-h m'.
 
-If you want Islamic-date entries, do this:
+   You can use `SPC' (`scroll-other-window') to scroll the other
+window.  This is handy when you display a list of holidays or diary
+entries in another window.
+
+   If the calendar window text gets corrupted, type `C-c C-l'
+(`redraw-calendar') to redraw it.  (This can only happen if you use
+non-Calendar-mode editing commands.)
+
+   In Calendar mode, you can use `SPC' (`scroll-other-window') to
+scroll the other window.  This is handy when you display a list of
+holidays or diary entries in another window.
+
+   To exit from the calendar, type `q' (`exit-calendar').  This buries
+all buffers related to the calendar, selecting other buffers.  (If a
+frame contains a dedicated calendar window, exiting from the calendar
+iconifies that frame.)
+
+\1f
+File: xemacs.info,  Node: LaTeX Calendar,  Next: Holidays,  Prev: General Calendar,  Up: Calendar/Diary
 
-     (add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries)
-     (add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries)
+LaTeX Calendar
+==============
 
-   Hebrew- and Islamic-date diary entries have the same formats as
-Gregorian-date diary entries, except that `H' precedes a Hebrew date
-and `I' precedes an Islamic date.  Moreover, because the Hebrew and
-Islamic month names are not uniquely specified by the first three
-letters, you may not abbreviate them.  For example, a diary entry for
-the Hebrew date Heshvan 25 could look like this:
+   The Calendar LaTeX commands produce a buffer of LaTeX code that
+prints as a calendar.  Depending on the command you use, the printed
+calendar covers the day, week, month or year that point is in.
 
-     HHeshvan 25 Happy Hebrew birthday!
+`t m'
+     Generate a one-month calendar (`cal-tex-cursor-month').
 
-and would appear in the diary for any date that corresponds to Heshvan
-25 on the Hebrew calendar.  And here is  Islamic-date diary entry  that
-matches Dhu al-Qada 25:
+`t M'
+     Generate a sideways-printing one-month calendar
+     (`cal-tex-cursor-month-landscape').
 
-     IDhu al-Qada 25 Happy Islamic birthday!
+`t d'
+     Generate a one-day calendar (`cal-tex-cursor-day').
 
-and would appear in the diary for any date that corresponds to Dhu
-al-Qada 25 on the Islamic calendar.
+`t w 1'
+     Generate a one-page calendar for one week (`cal-tex-cursor-week').
 
-   As with Gregorian-date diary entries, Hebrew- and Islamic-date
-entries are nonmarking if they are preceded with an ampersand (`&').
+`t w 2'
+     Generate a two-page calendar for one week (`cal-tex-cursor-week2').
 
-   Here is a table of commands used in the calendar to create diary
-entries that match the selected date and other dates that are similar
-in the Hebrew or Islamic calendar:
+`t w 3'
+     Generate an ISO-style calendar for one week
+     (`cal-tex-cursor-week-iso').
 
-`i h d'
-     Add a diary entry for the Hebrew date corresponding to the
-     selected date (`insert-hebrew-diary-entry').
+`t w 4'
+     Generate a calendar for one Monday-starting week
+     (`cal-tex-cursor-week-monday').
 
-`i h m'
-     Add a diary entry for the day of the Hebrew month corresponding to
-     the selected date (`insert-monthly-hebrew-diary-entry').  This
-     diary entry matches any date that has the same Hebrew
-     day-within-month as the selected date.
+`t f w'
+     Generate a Filofax-style two-weeks-at-a-glance calendar
+     (`cal-tex-cursor-filofax-2week').
 
-`i h y'
-     Add a diary entry for the day of the Hebrew year corresponding to
-     the selected date (`insert-yearly-hebrew-diary-entry').  This diary
-     entry matches any date which has the same Hebrew month and
-     day-within-month as the selected date.
+`t f W'
+     Generate a Filofax-style one-week-at-a-glance calendar
+     (`cal-tex-cursor-filofax-week').
 
-`i i d'
-     Add a diary entry for the Islamic date corresponding to the
-     selected date (`insert-islamic-diary-entry').
+`t y'
+     Generate a calendar for one year (`cal-tex-cursor-year').
 
-`i i m'
-     Add a diary entry for the day of the Islamic month corresponding
-     to the selected date (`insert-monthly-islamic-diary-entry').
+`t Y'
+     Generate a sideways-printing calendar for one year
+     (`cal-tex-cursor-year-landscape').
 
-`i i y'
-     Add a diary entry for the day of the Islamic year corresponding to
-     the selected date (`insert-yearly-islamic-diary-entry').
+`t f y'
+     Generate a Filofax-style calendar for one year
+     (`cal-tex-cursor-filofax-year').
 
-   These commands work much like the corresponding commands for ordinary
-diary entries: they apply to the date that point is on in the calendar
-window, and what they do is insert just the date portion of a diary
-entry at the end of your diary file.  You must then insert the rest of
-the diary entry.
+   Some of these commands print the calendar sideways (in "landscape
+mode"), so it can be wider than it is long.  Some of them use Filofax
+paper size (3.75in x 6.75in).  All of these commands accept a prefix
+argument which specifies how many days, weeks, months or years to print
+(starting always with the selected one).
+
+   If the variable `cal-tex-holidays' is non-`nil' (the default), then
+the printed calendars show the holidays in `calendar-holidays'.  If the
+variable `cal-tex-diary' is non-`nil' (the default is `nil'), diary
+entries are included also (in weekly and monthly calendars only).
+
+\1f
+File: xemacs.info,  Node: Holidays,  Next: Sunrise/Sunset,  Prev: LaTeX Calendar,  Up: Calendar/Diary
+
+Holidays
+--------
+
+   The Emacs calendar knows about all major and many minor holidays,
+and can display them.
+
+`h'
+     Display holidays for the selected date
+     (`calendar-cursor-holidays').
+
+`Button2 Holidays'
+     Display any holidays for the date you click on.
+
+`x'
+     Mark holidays in the calendar window (`mark-calendar-holidays').
+
+`u'
+     Unmark calendar window (`calendar-unmark').
+
+`a'
+     List all holidays for the displayed three months in another window
+     (`list-calendar-holidays').
+
+`M-x holidays'
+     List all holidays for three months around today's date in another
+     window.
+
+`M-x list-holidays'
+     List holidays in another window for a specified range of years.
+
+   To see if any holidays fall on a given date, position point on that
+date in the calendar window and use the `h' command.  Alternatively,
+click on that date with `Button2' and then choose `Holidays' from the
+menu that appears.  Either way, this displays the holidays for that
+date, in the echo area if they fit there, otherwise in a separate
+window.
+
+   To view the distribution of holidays for all the dates shown in the
+calendar, use the `x' command.  This displays the dates that are
+holidays in a different face (or places a `*' after these dates, if
+display with multiple faces is not available). The command applies both
+to the currently visible months and to other months that subsequently
+become visible by scrolling.  To turn marking off and erase the current
+marks, type `u', which also erases any diary marks (*note Diary::).
+
+   To get even more detailed information, use the `a' command, which
+displays a separate buffer containing a list of all holidays in the
+current three-month range.  You can use <SPC> in the calendar window to
+scroll that list.
+
+   The command `M-x holidays' displays the list of holidays for the
+current month and the preceding and succeeding months; this works even
+if you don't have a calendar window.  If you want the list of holidays
+centered around a different month, use `C-u M-x holidays', which
+prompts for the month and year.
+
+   The holidays known to Emacs include United States holidays and the
+major Christian, Jewish, and Islamic holidays; also the solstices and
+equinoxes.
+
+   The command `M-x list-holidays' displays the list of holidays for a
+range of years.  This function asks you for the starting and stopping
+years, and allows you to choose all the holidays or one of several
+categories of holidays.  You can use this command even if you don't have
+a calendar window.
+
+   The dates used by Emacs for holidays are based on _current
+practice_, not historical fact.  Historically, for instance, the start
+of daylight savings time and even its existence have varied from year to
+year, but present United States law mandates that daylight savings time
+begins on the first Sunday in April.  When the daylight savings rules
+are set up for the United States, Emacs always uses the present
+definition, even though it is wrong for some prior years.