home *** CD-ROM | disk | FTP | other *** search
- From: howard@hasse.ericsson.se (Howard Gayle)
- Newsgroups: alt.sources
- Subject: GNU Emacs 8-bit mods part 12 of 12
- Message-ID: <1990Apr5.134438.9370@ericsson.se>
- Date: 5 Apr 90 13:44:38 GMT
-
- This is a continuation of part 11.
-
- -----cut here-----
- ***************
- *** 8151,8157 ****
- @cindex indentation
- @findex indent-for-comment
-
- ! The comment commands insert, kill and align comments.
-
- @c WideCommands
- @table @kbd
- --- 8207,8213 ----
- @cindex indentation
- @findex indent-for-comment
-
- ! The comment commands insert, kill, and align comments.
-
- @c WideCommands
- @table @kbd
- ***************
- *** 8480,8486 ****
- @cindex etags program
-
- The @code{etags} program is used to create a tag table file. It knows
- ! the syntax of C, Fortran, La@TeX{}, Scheme and Emacs Lisp/Common Lisp. To
- use @code{etags}, type
-
- @example
- --- 8536,8542 ----
- @cindex etags program
-
- The @code{etags} program is used to create a tag table file. It knows
- ! the syntax of C, Fortran, La@TeX{}, Scheme, and Emacs Lisp/Common Lisp. To
- use @code{etags}, type
-
- @example
- ***************
- *** 10324,10329 ****
- --- 10380,10386 ----
- @kindex C-c C-c (Mail mode)
- @findex mail-send
- @findex mail-send-and-exit
- + @vindex mail-send-hook
- There are two ways to send the message. @kbd{C-c C-s} (@code{mail-send})
- sends the message and marks the @samp{*mail*} buffer unmodified, but leaves
- that buffer selected so that you can modify the message (perhaps with new
- ***************
- *** 10331,10337 ****
- sends and then deletes the window (if there is another window) or switches
- to another buffer. It puts the @samp{*mail*} buffer at the lowest priority
- for automatic reselection, since you are finished with using it. This is
- ! the usual way to send the message.
-
- @kindex C-c C-f C-t (Mail mode)
- @findex mail-to
- --- 10388,10396 ----
- sends and then deletes the window (if there is another window) or switches
- to another buffer. It puts the @samp{*mail*} buffer at the lowest priority
- for automatic reselection, since you are finished with using it. This is
- ! the usual way to send the message. If the variable
- ! @code{mail-send-hook} is bound and non-@code{nil}, then its value
- ! is called as a function just before the mail is sent.@refill
-
- @kindex C-c C-f C-t (Mail mode)
- @findex mail-to
- ***************
- *** 10465,10471 ****
- @kindex DEL (Rmail)
- Since the most common thing to do while reading a message is to scroll
- through it by screenfuls, Rmail makes @key{SPC} and @key{DEL} synonyms of
- ! @kbd{C-v} (@code{scroll-up}) and @kbd{M-v} (@code{scroll-down})
-
- @kindex . (Rmail)
- @findex rmail-beginning-of-message
- --- 10524,10530 ----
- @kindex DEL (Rmail)
- Since the most common thing to do while reading a message is to scroll
- through it by screenfuls, Rmail makes @key{SPC} and @key{DEL} synonyms of
- ! @kbd{C-v} (@code{scroll-up}) and @kbd{M-v} (@code{scroll-down}).
-
- @kindex . (Rmail)
- @findex rmail-beginning-of-message
- ***************
- *** 10536,10541 ****
- --- 10595,10605 ----
- In Rmail, you can specify a numeric argument by typing the digits.
- It is not necessary to type @kbd{C-u} first.
-
- + @vindex rmail-show-message-hook
- + If the variable @code{rmail-show-message-hook} is bound and
- + non-@code{nil}, then its value is called as a function just
- + before each message is displayed.@refill
- +
- @kindex M-s (Rmail)
- @findex rmail-search
- The @kbd{M-s} (@code{rmail-search}) command is Rmail's version of search. The
- ***************
- *** 10675,10680 ****
- --- 10739,10749 ----
- a crash at the wrong time, this file will continue to exist and will be
- used as an inbox the next time you get new mail.
-
- + @vindex rmail-get-new-mail-hook
- + If the variable @code{rmail-get-new-mail-hook} is bound and
- + non-@code{nil}, then its value is called as a function just
- + after new mail is appended to the Rmail file.@refill
- +
- @node Rmail Files, Rmail Output, Rmail Inbox, Rmail
- @section Multiple Mail Files
-
- ***************
- *** 11329,11337 ****
- identify a @dfn{sort key} for each record, and then reorder the records
- into the order determined by the sort keys. The records are ordered so
- that their keys are in alphabetical order, or, for numeric sorting, in
- ! numeric order. In alphabetic sorting, all upper case letters `A' through
- `Z' come before lower case `a', in accord with the ASCII character
- ! sequence.
-
- The various sort commands differ in how they divide the text into sort
- records and in which part of each record is used as the sort key. Most of
- --- 11398,11410 ----
- identify a @dfn{sort key} for each record, and then reorder the records
- into the order determined by the sort keys. The records are ordered so
- that their keys are in alphabetical order, or, for numeric sorting, in
- ! numeric order. In alphabetic sorting, if the value of the
- ! variable @code{case-fold-search} is @code{nil}, then all upper
- ! case letters `A' through
- `Z' come before lower case `a', in accord with the ASCII character
- ! sequence. Otherwise, upper and lower case letters sort
- ! together. The sorting order of characters can be customized.
- ! @xref{Sort Tables}.@refill
-
- The various sort commands differ in how they divide the text into sort
- records and in which part of each record is used as the sort key. Most of
- ***************
- *** 11395,11401 ****
- @end smallexample
-
- @noindent
- ! then if you apply @kbd{M-x sort-lines} to the entire buffer you get
-
- @smallexample
- On systems where clash detection (locking of files being edited) is
- --- 11468,11475 ----
- @end smallexample
-
- @noindent
- ! then if you apply @kbd{M-x sort-lines} to the entire buffer and
- ! if the value of @code{case-fold-search} is @code{nil}, you get@refill
-
- @smallexample
- On systems where clash detection (locking of files being edited) is
- ***************
- *** 11824,11829 ****
- --- 11898,11904 ----
- By changing them, you can "redefine keys".
- * Syntax:: The syntax table controls how words and expressions
- are parsed.
- + * Customizing Character Sets:: How to edit other character sets than ASCII.
- * Init File:: How to write common customizations in the @file{.emacs} file.
- @end menu
-
- ***************
- *** 12057,12064 ****
- @dfn{per-buffer} variables.
-
- Some important variables have been marked per-buffer already. These include
- ! @code{abbrev-mode}, @code{auto-fill-hook}, @code{case-fold-search},
- ! @code{comment-column}, @code{ctl-arrow}, @code{fill-column},
- @code{fill-prefix}, @code{indent-tabs-mode}, @code{left-margin},
- @code{mode-line-format}, @code{overwrite-mode},@*
- @code{selective-display-ellipses}, @code{selective-display},
- --- 12132,12140 ----
- @dfn{per-buffer} variables.
-
- Some important variables have been marked per-buffer already. These include
- ! @code{abbrev-mode}, @code{auto-fill-hook}, @code{buffer-char-table},
- ! @code{case-fold-search},
- ! @code{comment-column}, @code{fill-column},
- @code{fill-prefix}, @code{indent-tabs-mode}, @code{left-margin},
- @code{mode-line-format}, @code{overwrite-mode},@*
- @code{selective-display-ellipses}, @code{selective-display},
- ***************
- *** 12347,12353 ****
-
- @menu
- * Keymaps:: Definition of the keymap data structure.
- ! Names of Emacs's standard keymaps.
- * Rebinding:: How to redefine one key's meaning conveniently.
- * Disabling:: Disabling a command means confirmation is required
- before it can be executed. This is done to protect
- --- 12423,12429 ----
-
- @menu
- * Keymaps:: Definition of the keymap data structure.
- ! Names of Emacs's standard keymaps.
- * Rebinding:: How to redefine one key's meaning conveniently.
- * Disabling:: Disabling a command means confirmation is required
- before it can be executed. This is done to protect
- ***************
- *** 12474,12480 ****
- @subsection Changing Key Bindings Interactively
- @cindex key rebinding, this session
- @cindex rebinding keys, this session
- - @cindex rebinding keys, this session
-
- The way to redefine an Emacs key is to change its entry in a keymap.
- You can change the global keymap, in which case the change is effective in
- --- 12550,12555 ----
- ***************
- *** 12575,12581 ****
- Disabling a command has no effect on calling it as a function from Lisp
- programs.
-
- ! @node Syntax, Init File, Key Bindings, Customization
- @section The Syntax Table
- @cindex syntax table
-
- --- 12650,12656 ----
- Disabling a command has no effect on calling it as a function from Lisp
- programs.
-
- ! @node Syntax, Customizing Character Sets, Key Bindings, Customization
- @section The Syntax Table
- @cindex syntax table
-
- ***************
- *** 12687,12693 ****
- for comments have other variables that tell them where to find comments.
- And the list and sexp commands notice comments only if
- @code{parse-sexp-ignore-comments} is non-@code{nil}. This variable is set
- ! to @code{nil} in modes where comment-terminator sequences are liable to
- appear where there is no comment; for example, in Lisp mode where the
- comment terminator is a newline but not every newline ends a comment.
-
- --- 12762,12768 ----
- for comments have other variables that tell them where to find comments.
- And the list and sexp commands notice comments only if
- @code{parse-sexp-ignore-comments} is non-@code{nil}. This variable is set
- ! to @code{nil} in modes where comment-terminator sequences are likely to
- appear where there is no comment; for example, in Lisp mode where the
- comment terminator is a newline but not every newline ends a comment.
-
- ***************
- *** 12743,12748 ****
- --- 12818,13250 ----
- @code{modify-syntax-entry} to set up that character's current syntax, and
- some English to explain that string if necessary.
-
- + @node Customizing Character Sets, Init File, Syntax, Customization
- + @section Customizing Character Sets
- +
- + By default, Emacs uses an eight-bit version of the ASCII
- + character set, but it can display and edit any eight-bit
- + character set provided that:@refill
- +
- + @enumerate
- + @item
- + the space character has octal value 40,
- + @item
- + the horizontal tab character has octal value 11, and
- + @item
- + the newline character has octal value 12.
- + @end enumerate
- +
- + @noindent
- + In particular, Emacs can edit all @w{ISO 8859} character sets.
- + This capability was contributed by Howard Lee Gayle.@refill
- +
- + @iftex
- + This section describes the Lisp objects that hold information
- + about character sets, and how to manipulate them.
- + @end iftex
- +
- + @menu
- + * Case Tables:: What is the case of each character?
- + * Char Tables:: How to customize the display of characters.
- + * Sort Tables:: How to customize searching and sorting.
- + * Trans Tables:: How to customize case mapping and character translations.
- + @end menu
- +
- + @node Case Tables, Char Tables,, Customizing Character Sets
- + @subsection Case Tables
- + @cindex case table
- +
- + A @dfn{case table} is a Lisp object that contains information
- + about the case of every character in a character set.
- + Each character has exactly one case:@refill
- +
- + @enumerate
- + @item
- + caseless,
- + @item
- + lower case, or
- + @item
- + upper case.
- + @end enumerate
- +
- + @cindex standard case table
- + @findex case-table
- + @findex describe-buffer-case-table
- + @findex set-case-table
- + @findex set-standard-case-table
- + @findex standard-case-table
- + @noindent
- + A lower case character must have exactly one corresponding
- + upper case character, and vice versa.
- + A case table is associated with each buffer.
- + The function @code{case-table} returns the case table
- + associated with the current buffer.
- + The function @code{set-case-table} sets the case table of the
- + current buffer.
- + The command @code{describe-buffer-case-table} prints a readable
- + description of the current buffer's case table.
- + The description is printed in another buffer.
- + When a buffer is created, its case table is initialized to the
- + @dfn{standard case table}.
- + The function @code{standard-case-table} returns this.
- + The function @code{set-standard-case-table} sets the standard
- + case table; this does not change the case tables of any
- + existing buffers.@refill
- +
- + @findex case-table-p
- + @findex lower-p
- + @findex nocase-p
- + @findex upper-p
- + @findex make-case-table
- + @findex set-case-table-nocase
- + @findex set-case-table-pair
- + The function @code{make-case-table} creates a new case table.
- + Initially, all characters in it are caseless.
- + The function @code{set-case-table-pair} marks a pair of
- + characters as upper and lower case.
- + The function @code{set-case-table-nocase} marks a character as caseless.
- + The predicate functions @code{nocase-p}, @code{lower-p}, and
- + @code{upper-p} return @code{t} if and only if a character has
- + the corresponding case, otherwise @code{nil}.
- + The predicate @code{case-table-p}
- + returns @code{t} if and only if its argument is a case table,
- + otherwise @code{nil}.@refill
- +
- + @node Char Tables, Sort Tables, Case Tables, Customizing Character Sets
- + @subsection Char Tables
- + @cindex char table
- +
- + A @dfn{char table} is a Lisp object that contains information
- + about how to display the characters in a character set.
- + Before discussing char tables, some definitions are required.@refill
- +
- + @cindex glyf
- + @cindex rope
- + A @dfn{glyf} is something that takes up exactly one position
- + on the display of a terminal, terminal emulator, or window system.
- + For example, @samp{a} is a glyf, as is a yellow, blinking,
- + underlined @samp{7} on a red background.
- + Note that it may be necessary to transmit many bytes to a
- + terminal to display one glyf.
- + A @dfn{rope} is a sequence of glyfs.
- + (The name is an analogy to @dfn{string}, which is a sequence of characters.)
- + For example, the glyf @samp{^} followed by the glyf @samp{C}
- + forms a rope of length 2.
- + Glyfs are represented as unsigned 16-bit integers.
- + Ropes are represented as vectors of glyfs.
- + Some customization details depend on whether Emacs is run on a
- + terminal (emulator) or on the X window system.
- + These details are discussed before proceeding with an
- + explanation of char tables.@refill
- +
- + @menu
- + * Terminal Glyfs:: Glyfs on ordinary terminals.
- + * X Glyfs:: Glyfs on the X window system.
- + * More Char:: More about char tables.
- + @end menu
- +
- + @node Terminal Glyfs, X Glyfs,, Char Tables
- + @subsubsection Terminal Glyfs
- +
- + @findex find-glyf
- + @findex get-glyf
- + @findex glyf-to-string
- + @findex new-glyf
- + The function @code{new-glyf} takes as argument a string of
- + bytes and returns a glyf.
- + The bytes are sent to the terminal when the glyf is displayed.
- + The function @code{find-glyf} returns an existing glyf that
- + corresponds to the given string of bytes, or @code{nil} if
- + there is none.
- + The function @code{get-glyf} is like @code{find-glyf}, but
- + creates a new glyf if one does not already exist.
- + The function @code{glyf-to-string} returns the string of bytes
- + associated with a glyf.@refill
- +
- + It is the customizer's responsibility to see to it that the
- + string of bytes corresponding to each glyf takes up exactly one
- + display position on the terminal.
- + Since the bytes are terminal-dependent, Emacs can not check this.
- + If this does not hold, Emacs's internal information about the
- + state of the display will not correspond to the actual state of
- + the display.
- + For example, the position of the cursor may not correspond to point.
- + Furthermore, the customizer must see to it that the string of
- + bytes associated with each glyf leaves the terminal in a
- + ``normal'' state.
- + For example, a glyf corresponding to a blinking @samp{3} might
- + consist of the escape sequence to turn on blinking, @samp{3},
- + and finally the escape sequence to turn off blinking.@refill
- +
- + @node X Glyfs, More Char, Terminal Glyfs, Char Tables
- + @subsubsection X Glyfs
- +
- + @cindex X window
- + @cindex graphic context
- + @cindex GC
- + @cindex face code
- + @cindex font
- + When Emacs is used with the X window system, glyfs have a
- + slightly different meaning.
- + Recall that a glyf is represented as an unsigned 16-bit integer.
- + The low order byte selects one @dfn{face code} in a @dfn{font},
- + for example @samp{g} in the font named @file{7x14}.
- + The high order byte of a glyf is associated with an
- + X @dfn{graphic context}, abbreviated @dfn{GC}.
- + There are 255 different GC numbers, since 0 is not used.
- + For each GC number, there are actually two GCs, one for normal text and
- + one for highlighted text such as window mode lines. Each GC can specify
- + a font, a foreground color, and a background color. All fonts must be
- + fixed-width and must have the same size characters. At present,
- + multiple GCs are not implemented; GC number 2 should be used for all
- + glyfs.@refill
- +
- + @node More Char,, X Glyfs, Char Tables
- + @subsubsection More About Char Tables
- +
- + A char table contains the following:
- +
- + @cindex frame glyf
- + @cindex truncation glyf
- + @cindex wrap glyf
- + @enumerate
- + @item
- + The @dfn{frame glyf}: the glyf that separates two side-by-side
- + windows (default @samp{|}).
- + @xref{Split Window,, Splitting Windows}.@refill
- +
- + @item
- + The @dfn{truncation glyf}: the glyf that shows that a line
- + extends beyond the edge of a window (default @samp{$}).
- + @xref{Continuation Lines}.@refill
- +
- + @item
- + The @dfn{wrap glyf}: the glyf that shows that a line continues
- + on the next line in a window (default @samp{\}).
- + @xref{Continuation Lines}.@refill
- +
- + @item
- + The @dfn{selective display character}: the character that marks
- + invisible lines (default @samp{C-m}).
- + @xref{Selective Display}.@refill
- +
- + @item
- + The @dfn{selective display rope}: the rope that shows that a
- + line is followed by one or more invisible lines (default
- + @samp{... }).
- + @xref{Selective Display}.@refill
- +
- + @item
- + For each character (except space, tab, and newline), the rope
- + to be used to display that character.@refill
- + @end enumerate
- +
- + @findex describe-window-char-table
- + @findex set-window-char-table
- + @findex window-char-table
- + A char table is associated with each window.
- + The function @code{window-char-table} returns the char table of
- + a window.
- + The function @code{set-window-char-table} sets the char table
- + of a window.
- + Note that it is possible to display the same buffer in several
- + different windows, using different char tables for each window.
- + The command @code{describe-window-char-table} displays a
- + readable description of the char table of the selected window
- + in another buffer.@refill
- +
- + @vindex buffer-char-table
- + A char table can be associated with each buffer, by
- + means of the variable @code{buffer-char-table}.
- + This variable becomes local to the buffer when set.
- + Its value is the char table to use when displaying the buffer
- + in a window.
- + Changing its value has no effect on existing windows.@refill
- +
- + @findex char-table-p
- + @findex copy-char-table
- + The function @code{copy-char-table} creates a new char table
- + that is a copy of its argument.
- + The predicate @code{char-table-p} returns @code{t} if and only
- + if its argument is a char table, otherwise @code{nil}.@refill
- +
- + @findex backslash-char-table
- + @findex ctl-arrow-char-table
- + There are two ``standard'' char tables.
- + They differ only in the way control characters are displayed.
- + One displays them with ropes consisting of a @samp{^} glyf
- + followed by a single glyf; the other by a @samp{\} glyf
- + followed by three glyfs representing an octal number.
- + The @samp{^} char table is returned by the function
- + @code{ctl-arrow-char-table}; the @samp{\} char table by the
- + function @code{backslash-char-table}.
- + @xref{Unprintables} for information on how to select between
- + these char tables.@refill
- +
- + @findex get-char-table-dispr
- + @findex get-char-table-frameg
- + @findex get-char-table-invisc
- + @findex get-char-table-invisr
- + @findex get-char-table-truncg
- + @findex get-char-table-wrapg
- + @findex put-char-table-dispr
- + @findex put-char-table-frameg
- + @findex put-char-table-invisc
- + @findex put-char-table-invisr
- + @findex put-char-table-truncg
- + @findex put-char-table-wrapg
- + There is a set of functions for accessing and changing the information
- + stored in a char table.
- + The function @code{get-char-table-frameg} returns the frame glyf.
- + The function @code{get-char-table-truncg} returns the truncation glyf.
- + The function @code{get-char-table-wrapg} returns the wrap glyf.
- + The function @code{get-char-table-invisc} returns the selective
- + display character.
- + The function @code{get-char-table-invisr} returns the selective
- + display rope.
- + The function @code{get-char-table-dispr} returns the display
- + rope for a given character.
- + Each of these @code{get-} functions has a corresponding
- + @code{put-} function that changes the value.@refill
- +
- + @node Sort Tables, Trans Tables, Char Tables, Customizing Character Sets
- + @subsection Sort Tables
- + @cindex equivalence class
- + @cindex sort table
- +
- + A @dfn{sort table} is a Lisp object that holds information
- + for searching and sorting.
- + Each character set is partitioned into @dfn{equivalence classes},
- + that is, each character in the character set is assigned to
- + exactly one subset, known as the character's equivalence class.
- + All of the characters in an equivalence class are equal for the
- + purposes of searching and sorting.
- + For example, when the variable @code{case-fold-search} is
- + non-@code{nil}, the characters @samp{q} and @samp{Q} (and no
- + others) form an equivalence class.
- + Each equivalence class has a number.
- + When comparing two characters @var{x} and @var{y}, @var{x} is
- + considered to be
- + greater than @var{y} if and only if the equivalence class
- + number of @var{x} is greater than the equivalence class number
- + of @var{y}.@refill
- +
- + @findex new-sort-table
- + The function @code{new-sort-table} creates and returns a new
- + sort table.
- + Its argument is a list of the equivalence classes, in increasing order.
- + There are three ways to denote an equivalence class:@refill
- +
- + @enumerate
- + @item
- + A single character denotes the equivalence class that contains
- + just that character and no others.@refill
- +
- + @item
- + A cons cell whose car @var{x} and cdr @var{y} are both characters indicates
- + that each character in the range from @var{x} up to and
- + including @var{y} goes into its own equivalence class, alone.@refill
- +
- + @item
- + A list of characters denotes a single equivalence class
- + containing exactly those characters.@refill
- + @end enumerate
- +
- + @cindex case distinct sort table
- + @cindex case fold sort table
- + @findex case-distinct-table
- + @findex case-fold-table
- + @findex describe-case-distinct-table
- + @findex describe-case-fold-table
- + @findex set-case-distinct-table
- + @findex set-case-fold-table
- + Each buffer has two sort tables associated with it:
- + a @dfn{case distinct} sort table and a @dfn{case fold} sort table.
- + If the value of the variable @code{case-fold-search} is
- + @code{nil}, then the case distinct sort table is used,
- + otherwise the case fold sort table is used.
- + The function @code{case-distinct-table} returns the case
- + distinct sort table of the current buffer;
- + @code{case-fold-table} returns the case fold sort table.
- + The functions @code{set-case-distinct-table} and
- + @code{set-case-fold-table} set them.
- + The case distinct, but not the case fold, sort table may be @code{nil}.
- + In this case, each character is distinct, and is sorted by its
- + code in the character set.
- + The commands @code{describe-case-distinct-table} and
- + @code{describe-case-fold-table} print descriptions of the
- + current buffer's respective sort tables in another buffer.@refill
- +
- + @findex set-standard-case-distinct-table
- + @findex set-standard-case-fold-table
- + @findex standard-case-distinct-table
- + @findex standard-case-fold-table
- + When a buffer is created, its sort tables are set to two
- + standard sort tables.
- + The functions @code{standard-case-distinct-table} and
- + @code{standard-case-fold-table} return them.
- + The functions @code{set-standard-case-distinct-table} and
- + @code{set-standard-case-fold-table} set them.@refill
- +
- + @findex sort-table-p
- + @findex string-less*
- + The predicate @code{string-less*} compares two strings
- + according to a sort table.
- + The predicate @code{sort-table-p} tests if its argument is a
- + sort table.@refill
- +
- + @node Trans Tables,, Sort Tables, Customizing Character Sets
- + @subsection Trans Tables
- + @cindex identity trans table
- + @cindex trans table
- +
- + @findex make-trans-table
- + @findex set-trans-table-to
- + @findex trans-table-p
- + A trans[lation] table is a Lisp object that maps each
- + character in a character set to some other, possibly identical,
- + character.
- + The function @code{make-trans-table} creates a new copy of the
- + @dfn{identity trans table}.
- + This is a trans table that maps each character to itself.
- + The function @code{set-trans-table-to} can then be used to
- + change the mapping of a character in a trans table.
- + The predicate @code{trans-table-p} tests if its argument is a
- + trans table.@refill
- +
- + @findex describe-downcase-table
- + @findex describe-upcase-table
- + @findex downcase-table
- + @findex upcase-table
- + @findex set-downcase-table
- + @findex set-upcase-table
- + Associated with each buffer are two trans tables for case conversion.
- + The function @code{downcase-table} returns a trans table that
- + maps upper case characters to lower case, and other characters
- + to themselves.
- + The function @code{upcase-table} returns a trans table for
- + mapping to upper case.
- + The functions @code{set-downcase-table} and
- + @code{set-upcase-table} set them.
- + The commands @code{describe-downcase-table} and
- + @code{describe-upcase-table} print representations of the
- + respective trans tables in another buffer.@refill
- +
- + @findex set-standard-downcase-table
- + @findex set-standard-upcase-table
- + @findex standard-downcase-table
- + @findex standard-upcase-table
- + When a buffer is created, its trans tables are set to two
- + standard trans tables.
- + The functions @code{standard-downcase-table} and
- + @code{standard-upcase-table} return them.
- + The functions @code{set-standard-downcase-table} and
- + @code{set-standard-upcase-table} set them.@refill
- +
- + @findex translate-region
- + The function @code{translate-region} applies a trans table to
- + a region in the current buffer.@refill
- +
- @node Init File,, Syntax, Customization
- @section The Init File, .emacs
- @cindex init file
- ***************
- *** 13486,13491 ****
- --- 13988,14007 ----
- (@pxref{Command Switches}). Switches eliminated include
- @samp{-insert} and @samp{-i}, and the alternate names @samp{-funcall},
- @samp{-load}, @samp{-user} and @samp{-no-init-file}.@refill
- +
- + @item
- + Customization of character sets has been eliminated.
- + @xref{Customizing Character Sets}.@refill
- +
- + @item
- + The commands that control the display of control characters
- + have been eliminated (@pxref{Unprintables}).
- + Instead,
- + if the variable @code{ctl-arrow} is @code{nil}, control characters in the
- + buffer are displayed with octal escape sequences, all except newline and
- + tab. Altering the value of @code{ctl-arrow} makes it local to the current
- + buffer; until that time, the default value is in effect. The default is
- + initially @code{t}.@refill
- @end itemize
-
- @unnumberedsec Changes in Major Modes
- ***************
- *** 13625,13631 ****
-
- Several built-in variables now are always local to all buffers.
-
- ! These variables are @code{tab-width}, @code{ctl-arrow},
- @code{truncate-lines}, @code{fill-column}, @code{left-margin},
- @code{mode-line-format}, @code{abbrev-mode}, @code{overwrite-mode},
- @code{case-fold-search}, @code{auto-fill-hook},
- --- 14141,14147 ----
-
- Several built-in variables now are always local to all buffers.
-
- ! These variables are @code{tab-width},
- @code{truncate-lines}, @code{fill-column}, @code{left-margin},
- @code{mode-line-format}, @code{abbrev-mode}, @code{overwrite-mode},
- @code{case-fold-search}, @code{auto-fill-hook},
- ***************
- *** 13667,13673 ****
- GNU, which stands for Gnu's Not Unix, is the name for the complete
- Unix-compatible software system which I am writing so that I can give it
- away free to everyone who can use it. Several other volunteers are helping
- ! me. Contributions of time, money, programs and equipment are greatly
- needed.
-
- So far we have an Emacs text editor with Lisp for writing editor commands,
- --- 14183,14189 ----
- GNU, which stands for Gnu's Not Unix, is the name for the complete
- Unix-compatible software system which I am writing so that I can give it
- away free to everyone who can use it. Several other volunteers are helping
- ! me. Contributions of time, money, programs, and equipment are greatly
- needed.
-
- So far we have an Emacs text editor with Lisp for writing editor commands,
- ***************
- *** 13850,13856 ****
- With Unix, the price of sources puts this out of consideration for most
- businesses. With GNU this will be easy. It is still possible for there to
- be no available competent person, but this problem cannot be blamed on
- ! distibution arrangements. GNU does not eliminate all the world's problems,
- only some of them.
-
- Meanwhile, the users who know nothing about computers need handholding:
- --- 14366,14372 ----
- With Unix, the price of sources puts this out of consideration for most
- businesses. With GNU this will be easy. It is still possible for there to
- be no available competent person, but this problem cannot be blamed on
- ! distribution arrangements. GNU does not eliminate all the world's problems,
- only some of them.
-
- Meanwhile, the users who know nothing about computers need handholding:
- ***************
- *** 14121,14127 ****
- world, where nobody will have to work very hard just to make a living.
- People will be free to devote themselves to activities that are fun, such
- as programming, after spending the necessary ten hours a week on required
- ! tasks such as legislation, family counseling, robot repair and asteroid
- prospecting. There will be no need to be able to make a living from
- programming.
-
- --- 14637,14643 ----
- world, where nobody will have to work very hard just to make a living.
- People will be free to devote themselves to activities that are fun, such
- as programming, after spending the necessary ten hours a week on required
- ! tasks such as legislation, family counseling, robot repair, and asteroid
- prospecting. There will be no need to be able to make a living from
- programming.
-
- ***************
- *** 14208,14213 ****
- --- 14724,14739 ----
- Case conversion means changing text from upper case to lower case or
- vice versa. @xref{Case}, for the commands for case conversion.
-
- + @item Case Table
- + A case table tells Emacs the case of each character in a
- + character set.
- + @xref{Case Tables}.@refill
- +
- + @item Char Table
- + A char[acter] table tells Emacs how to display each character
- + in a character set.
- + @xref{Char Tables}.@refill
- +
- @item Characters
- Characters form the contents of an Emacs buffer; also, Emacs commands
- are invoked by keys (q.v.@:), which are sequences of one or more
- ***************
- *** 14266,14272 ****
- do not have graphic images assigned to them. These are the control
- characters. Any control character can be typed by holding down the
- @key{CTRL} key and typing some other character; some have special keys
- ! on the keyboard. @key{RET}, @key{TAB}, @key{ESC}, @key{LFD} and
- @key{DEL} are all control characters. @xref{Characters}.@refill
-
- @item Copyleft
- --- 14792,14798 ----
- do not have graphic images assigned to them. These are the control
- characters. Any control character can be typed by holding down the
- @key{CTRL} key and typing some other character; some have special keys
- ! on the keyboard. @key{RET}, @key{TAB}, @key{ESC}, @key{LFD}, and
- @key{DEL} are all control characters. @xref{Characters}.@refill
-
- @item Copyleft
- ***************
- *** 14426,14431 ****
- --- 14952,14963 ----
- that do not have their own local (q.v.@:) values for the variable.
- @xref{Variables}.
-
- + @item Glyf
- + A glyf is something that a terminal, terminal emulator, or
- + window system can display.
- + A glyf takes up exactly one display position.
- + @xref{Char Tables}.@refill
- +
- @item Graphic Character
- Graphic characters are those assigned pictorial images rather than
- just names. All the non-Meta (q.v.@:) characters except for the
- ***************
- *** 14513,14520 ****
- @item Local
- Local means `in effect only in a particular context'; the relevant
- kind of context is a particular function execution, a particular
- ! buffer, or a particular major mode. It is the opposite of `global'
- ! (q.v.@:). Specific uses of `local' in Emacs terminology appear below.
-
- @item Local Abbrev
- A local abbrev definition is effective only if a particular major mode
- --- 15045,15053 ----
- @item Local
- Local means `in effect only in a particular context'; the relevant
- kind of context is a particular function execution, a particular
- ! buffer, a particular window, or a particular major mode. It is
- ! the opposite of `global'
- ! (q.v.@:). Specific uses of `local' in Emacs terminology appear below.@refill
-
- @item Local Abbrev
- A local abbrev definition is effective only if a particular major mode
- ***************
- *** 14745,14750 ****
- --- 15278,15286 ----
- newline into the text. It is also used to terminate most arguments
- read in the minibuffer (q.v.@:). @xref{Characters,Return}.
-
- + @item Rope
- + A rope is a sequence of glyfs (q.v.@:).
- +
- @item Saving
- Saving a buffer means copying its text into the file that was visited
- (q.v.@:) in that buffer. This is the way text in files actually gets
- ***************
- *** 14785,14790 ****
- --- 15321,15331 ----
- work. Emacs detects all cases of simultaneous editing and warns the
- user to investigate them. @xref{Interlocking,,Simultaneous Editing}.
-
- + @item Sort Table
- + A sort table tells Emacs how to perform searching and sorting
- + for a character set.
- + @xref{Sort Tables}.@refill
- +
- @item String
- A string is a kind of Lisp data object which contains a sequence of
- characters. Many Emacs variables are intended to have strings as
- ***************
- *** 14834,14839 ****
- --- 15375,15386 ----
- are not in a recursive editing level (q.v.@:) or the minibuffer
- (q.v.@:), and not in the middle of a command. You can get back to top
- level by aborting (q.v.@:) and quitting (q.v.@:). @xref{Quitting}.
- +
- + @item Trans Table
- + A trans[lation] table maps every character in a character set
- + into another (possibly the same) character.
- + Trans tables can be used, for example, for case conversion.
- + @xref{Trans Tables}.@refill
-
- @item Transposition
- Transposing two units of text means putting each one into the place
-