]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
New built-in error `text-read-only'.
[gnu-emacs] / etc / NEWS
index 843d2cc476cbb881fb6490034fa9fc66a7b8bbb0..3624df93af24879af2526f39a295ef375e6d130d 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -6,56 +6,12 @@ Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
 For older news, see the file ONEWS.
 
 \f
-* Changes in Emacs 21.1
-
-* New packages
-
-** delim-col
-
-Helps to prettify columns in a text region or rectangle.
-
-Here is an example of columns:
-
-horse  apple   bus
-dog    pineapple       car     EXTRA
-porcupine      strawberry      airplane
-
-Doing the following settings:
-
-   (setq delimit-columns-str-before "[ ")
-   (setq delimit-columns-str-after " ]")
-   (setq delimit-columns-str-separator ", ")
-   (setq delimit-columns-separator "\t")
-
-
-Selecting the lines above and typing:
-
-   M-x delimit-columns-region
-
-It results:
-
-[ horse    , apple     , bus     ,       ]
-[ dog      , pineapple , car     , EXTRA ]
-[ porcupine, strawberry, airplane,       ]
-
-delim-col has the following options:
-
-   delimit-columns-str-before          Specify a string to be inserted
-                                       before all columns.
-
-   delimit-columns-str-separator       Specify a string to be inserted
-                                       between each column.
-
-   delimit-columns-str-after           Specify a string to be inserted
-                                       after all columns.
-
-   delimit-columns-separator           Specify a regexp which separates
-                                       each column.
-
-delim-col has the following commands:
+* Installation Changes in Emacs 21.1
 
-   delimit-columns-region      Prettify all columns in a text region.
-   delimit-columns-rectangle   Prettify all columns in a text rectangle.
+** `movemail' defaults to supporting POP.  You can turn this off using
+the --without-pop configure option, should that be necessary.
+\f
+* Changes in Emacs 21.1
 
 ** Faces and frame parameters.
 
@@ -69,7 +25,7 @@ parameter `mouse-color' and face `mouse'.
 
 Changing frame parameter `font' sets font-related attributes of the
 `default' face and vice versa.  Setting frame parameters
-`foreground-color' or `background-color' sets the colors of the 
+`foreground-color' or `background-color' sets the colors of the
 `default' face and vice versa.
 
 ** New face `menu'.
@@ -330,6 +286,11 @@ specifies a number of lines.  If nil, don't resize.
 
 Default is 0.25.
 
+** Changes to TeX mode
+
+The default mode has been changed from `plain-tex-mode' to
+`latex-mode'.
+
 ** Changes to RefTeX mode
 
 *** RefTeX has new support for index generation.  Index entries can be
@@ -380,7 +341,8 @@ tooltip display in the group `tooltip'.
 ** Customize changes
 
 *** Customize now supports comments about customized items.  Use the
-`State' menu to add comments.
+`State' menu to add comments.  Note that customization comments will
+cause the customizations to fail in earlier versions of Emacs.
 
 *** The new option `custom-buffer-done-function' says whether to kill
 Custom buffers when you've done with them or just bury them (the
@@ -394,11 +356,6 @@ print-level, print-length, and debug-on-error based on the
 customizable variables eval-expression-print-level,
 eval-expression-print-length, and eval-expression-debug-on-error.
 
-** syntax tables now understand nested comments.
-To declare a comment syntax as allowing nesting, just add an `n'
-modifier to either of the characters of the comment end and the comment
-start sequences.
-
 ** Dired changes
 
 *** New variable `dired-recursive-deletes' determines if the delete
@@ -419,6 +376,50 @@ selection into the search string rather than giving an error.
 names cleanly.  It is appended to the host name, separated by a hash
 sign, e.g. `/foo@bar.org#666:mumble'.  (This syntax comes from EFS.)
 
+** Shell script mode changes.
+
+Shell script mode (sh-script) can now indent scripts for shells
+derived from sh and rc.  The indentation style is customizeable, and
+sh-script can attempt to "learn" the current buffer's style.
+
+** Etags changes.
+
+*** In DOS, etags looks for file.cgz if it cannot find file.c.
+
+*** In C and derived languages, etags creates tags for function
+declarations when given the --declarations option.
+
+*** In C++, tags are created for "operator".  The tags have the form
+"operator+", without spaces between the keyword and the operator. 
+
+*** New language Ada: tags are functions, procedures, packages, tasks, and
+types.
+
+*** In Fortran, procedure is no more tagged.
+
+*** In Java, tags are created for "interface".
+
+*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
+are now tagged.
+
+*** In Perl, the --globals option tags global variables.  my and local
+variables are tagged.
+
+*** New language Python: def and class at the beginning of a line are tags.
+
+*** .ss files are Scheme files.
+
+*** New option --ignore-case-regex is an alternative to --regex.
+
+** Emacs now attempts to determine the initial language environment
+and preferred and locale coding systems systematically from the
+LC_ALL, LC_CTYPE, and LANG environment variables during startup.
+
+** New language environments `Latin-8' and `Latin-9'.
+These correspond respectively to the ISO character sets 8859-14
+(Celtic) and 8859-15 (updated Latin-1, with the Euro sign).  There is
+currently no specific input method support for them.
+
 ** New modes and packages
 
 *** 5x5.el is a simple puzzle game.
@@ -439,10 +440,86 @@ the text at point.
 
 *** whitespace.el ???
 
+*** PostScript mode (ps-mode) is a new major mode for editing PostScript
+files. It offers: interaction with a PostScript interpreter, including
+(very basic) error handling; fontification, easily customizable for
+interpreter messages; auto-indentation; insertion of EPSF templates and
+often used code snippets; viewing of BoundingBox; commenting out /
+uncommenting regions; conversion of 8bit characters to PostScript octal
+codes. All functionality is accessible through a menu.
+
+*** delim-col helps to prettify columns in a text region or rectangle.
+
+Here is an example of columns:
+
+horse  apple   bus
+dog    pineapple       car     EXTRA
+porcupine      strawberry      airplane
+
+Doing the following settings:
+
+   (setq delimit-columns-str-before "[ ")
+   (setq delimit-columns-str-after " ]")
+   (setq delimit-columns-str-separator ", ")
+   (setq delimit-columns-separator "\t")
+
+
+Selecting the lines above and typing:
+
+   M-x delimit-columns-region
+
+It results:
+
+[ horse    , apple     , bus     ,       ]
+[ dog      , pineapple , car     , EXTRA ]
+[ porcupine, strawberry, airplane,       ]
+
+delim-col has the following options:
+
+   delimit-columns-str-before          Specify a string to be inserted
+                                       before all columns.
+
+   delimit-columns-str-separator       Specify a string to be inserted
+                                       between each column.
+
+   delimit-columns-str-after           Specify a string to be inserted
+                                       after all columns.
+
+   delimit-columns-separator           Specify a regexp which separates
+                                       each column.
+
+delim-col has the following commands:
+
+   delimit-columns-region      Prettify all columns in a text region.
+   delimit-columns-rectangle   Prettify all columns in a text rectangle.
+
+*** The package recentf.el maintains a menu for visiting files that
+were operated on recently.  When enabled, a new "Open Recent" submenu
+is displayed in the "Files" menu.
+
+The recent files list is automatically saved across Emacs sessions.
+
+To enable/disable recentf use M-x recentf-mode.
+
+To enable recentf at Emacs startup use
+M-x customize-variable RET recentf-mode RET.
+
+To change the number of recent files displayed and others options use
+M-x customize-group RET recentf RET.
+
+*** elide-head.el provides a mechanism for eliding boilerplate header
+text.
+
 ** Withdrawn packages
 
 *** mldrag.el has been removed.  mouse.el provides the same
 functionality with aliases for the mldrag functions.
+
+*** eval-reg.el has been obsoleted by changes to edebug.el.
+
+** Not new, but not mentioned before:
+M-w when Transient Mark mode is enabled disables the mark.
+
 \f
 * Lisp changes in Emacs 21.1 (see following page for display-related features)
 
@@ -451,6 +528,32 @@ Note that +++ before an item means the Lisp manual has been updated.
 When you add a new item, please add it without either +++ or ---
 so I will know I still need to look at it -- rms.
 
+** The new built-in error `text-read-only' is signaled when trying to
+modify read-only text.
+
+** New functions and variables for locales.
+
+The new variable `locale-coding-system' specifies how to encode and
+decode strings passed to low-level message functions like strerror and
+time functions like strftime.  The new variables `messages-locale' and
+`time-locale' give the system locales to be used during the next
+invocations of these two types of functions; the new variables
+`previous-messages-locale' and `previous-time-locale' give the locales
+most recently used.
+
+The new function `set-locale-environment' sets the language
+environment, preferred coding system, and locale coding system from
+the system locale as specified by the LC_ALL, LC_CTYPE, and LANG
+environment variables.  It is normally invoked during startup.  It
+uses the new variables `locale-language-names',
+`locale-charset-language-names', and `locale-preferred-coding-systems'
+to make its decisions.
+
+** syntax tables now understand nested comments.
+To declare a comment syntax as allowing nesting, just add an `n'
+modifier to either of the characters of the comment end and the comment
+start sequences.
+
 ** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
 because `bitmap' is more in line with the usual X terminology.
 
@@ -595,7 +698,7 @@ Clear TABLE.
 Look up KEY in TABLE and return its associated VALUE or DEFAULT if
 not found.
 
-- Function: puthash KEY VALUE TABLE 
+- Function: puthash KEY VALUE TABLE
 
 Associate KEY with VALUE in TABLE.  If KEY is already associated with
 another value, replace the old value with VALUE.
@@ -617,7 +720,7 @@ Return a hash code for Lisp object OBJ.
 
 Define a new hash table test named NAME.  If NAME is specified as
 a test in `make-hash-table', the table created will use TEST-FN for
-comparing keys, and HASH-FN to compute hash codes for keys.  Test 
+comparing keys, and HASH-FN to compute hash codes for keys.  Test
 and hash function are stored as symbol property `hash-table-test'
 of NAME with a value of (TEST-FN HASH-FN).
 
@@ -636,7 +739,7 @@ be strings that are compared case-insensitively.
   (defun case-fold-string-hash (a)
     (sxhash (upcase a)))
 
-  (define-hash-table-test 'case-fold 'case-fold-string= 
+  (define-hash-table-test 'case-fold 'case-fold-string=
                           'case-fold-string-hash))
 
   (make-hash-table :test 'case-fold)
@@ -654,16 +757,6 @@ a cons cell which is its own cdr.
 If you bind print-circle to a non-nil value, the Lisp printer outputs
 #N= and #N# constructs to represent circular and shared structure.
 
-You can also do several calls to print functions using a common
-set of #N= constructs; here is how.
-
-  (let ((print-circle t)
-        (print-continuous-numbering t)
-        print-number-table)
-    (print1 ...)
-    (print1 ...)
-    ...)
-
 +++
 ** If the second argument to `move-to-column' is anything but nil or
 t, that means replace a tab with spaces if necessary to reach the
@@ -744,7 +837,7 @@ Example:
         (s2 "world"))
      (put-text-property 0 (length s1) 'face 'bold s1)
      (put-text-property 0 (length s2) 'face 'italic s2)
-     (format s1 s2)
+     (format s1 s2))
 
 results in a bold-face string with an italic `world' at the end.
 
@@ -811,18 +904,18 @@ font names anymore and face merging now works as expected.
 Each face can specify the following display attributes:
 
    1. Font family or fontset alias name.
-   
+
    2. Relative proportionate width, aka character set width or set
    width (swidth), e.g. `semi-compressed'.
-   
+
    3. Font height in 1/10pt
-   
+
    4. Font weight, e.g. `bold'.
-   
+
    5. Font slant, e.g. `italic'.
-   
+
    6. Foreground color.
-   
+
    7. Background color.
 
    8. Whether or not characters should be underlined, and in what color.
@@ -849,7 +942,7 @@ attributes mentioned above.
 There is also a global face alist `face-new-frame-defaults'.  Face
 definitions from this list are used to initialize faces of newly
 created frames.
-   
+
 A face doesn't have to specify all attributes.  Those not specified
 have a nil value.  Faces specifying all attributes are called
 `fully-specified'.
@@ -906,7 +999,7 @@ unused fonts.
 
 +++
 *** Font selection.
-   
+
 Font selection tries to find the best available matching font for a
 given (charset, face) combination.  This is done slightly differently
 for faces specifying a fontset, or a font family name.
@@ -943,7 +1036,7 @@ since the use of too many or too big scalable fonts may crash XFree86
 servers.
 
 To enable scalable font use, set the variable
-`scalable-fonts-allowed'.  A value of nil, the default, means nver use
+`scalable-fonts-allowed'.  A value of nil, the default, means never use
 scalable fonts.  A value of t means any scalable font may be used.
 Otherwise, the value must be a list of regular expressions.  A
 scalable font may then be used if it matches a regular expression from
@@ -973,7 +1066,7 @@ REGISTRY-AND-ENCODING is a string giving the registry and encoding of
 the font.  The result list is sorted according to the current setting
 of the face font sort order.
 
-- Function: x-font-family-list 
+- Function: x-font-family-list
 
 Return a list of available font families on FRAME.  If FRAME is
 omitted or nil, use the selected frame.  Value is a list of conses
@@ -1125,7 +1218,7 @@ from X resources:
   :underline           attributeUnderline      Face.AttributeUnderline
   :inverse-video       attributeInverse        Face.AttributeInverse
   :stipple             attributeStipple        Face.AttributeStipple
-       or              attributeBackgroundPixmap 
+       or              attributeBackgroundPixmap
                                                Face.AttributeBackgroundPixmap
   :font                        attributeFont           Face.AttributeFont
   :bold                        attributeBold           Face.AttributeBold
@@ -1162,19 +1255,32 @@ used to clear the mapping table.
 
 +++
 ** The minibuffer prompt is now actually inserted in the minibuffer.
-This makes it possible to scroll through the prompt, if you want to.
 
-A number of functions such as forward-word, forward-sentence,
-forward-paragraph, and beginning-of-line, stop moving when they
-come to the boundary between the prompt and the actual contents.
-The function erase-buffer does not delete the prompt.
+This makes it possible to scroll through the prompt, if you want to.
 
 The function minubuffer-prompt-end returns the current position of the
 end of the minibuffer prompt, if the minibuffer is current.
 Otherwise, it returns zero.
 
-The function buffer-string does not return the portion of the
-mini-buffer belonging to the prompt; buffer-substring does.
+** New `field' abstraction in buffers.
+
+There is now code to support an abstraction called `fields' in emacs
+buffers.  A field is a contiguous region of text with the same `field'
+text-property.
+
+Certain functions, such as forward-word, forward-sentence,
+forward-paragraph, beginning-of-line, etc., stop moving when they come
+to the boundary between fields (beginning-of-line and end-of-line will
+not let the point move past the field boundary, but other movement
+commands continue into the next field if repeated).
+
+The new function constrain-to-field may be used to achieve similar
+behavior; other new field functions include field-beginning, field-end,
+erase-field, and field-string.
+
+Now that the minibuffer prompt is inserted into the minibuffer, it is in
+a separate field from the user-input part of the buffer, so that many
+editing commands treat the user's text separately from the prompt.
 
 +++
 ** Image support.
@@ -1208,7 +1314,7 @@ of the image's height to use for its ascent.  Default is 50.
 
 `:margin MARGIN'
 
-MARGIN must be a number >= 0 specifying how many pixels to put as 
+MARGIN must be a number >= 0 specifying how many pixels to put as
 margin around the image.  Default is 0.
 
 `:relief RELIEF'
@@ -1243,7 +1349,7 @@ may be present in the image specification.
 
 *** Supported image types
 
-**** XBM, iamge type `xbm'.
+**** XBM, image type `xbm'.
 
 XBM images don't require an external library.  Additional image
 properties supported are
@@ -1302,7 +1408,7 @@ add a `:data' property instead of a `:file' property.
 
 `:data DATA'
 
-DATA must be a string containing an XPM image.  The contents of the 
+DATA must be a string containing an XPM image.  The contents of the
 string are of the same format as that of XPM files.
 
 The XPM library uses libz in its implementation so that it is able
@@ -1371,12 +1477,12 @@ Additional image properties supported are:
 `:pt-width WIDTH'
 
 WIDTH is width of the image in pt (1/72 inch).  WIDTH must be an
-integer.  This is an required property.
+integer.  This is a required property.
 
 `:pt-height HEIGHT'
 
 HEIGHT specifies the height of the image in pt (1/72 inch).  HEIGHT
-must be an integer.  This is an required property.
+must be a integer.  This is an required property.
 
 `:bounding-box BOX'
 
@@ -1389,8 +1495,8 @@ lisp/gs.el.
 
 *** Lisp interface.
 
-The variable `image-types' contains a list of those image types 
-which are supported in the current configuration.  
+The variable `image-types' contains a list of those image types
+which are supported in the current configuration.
 
 Images are stored in an image cache and removed from the cache when
 they haven't been displayed for `image-cache-eviction-delay seconds.
@@ -1456,15 +1562,15 @@ The function `set-window-vscroll' can be used to set the vertical
 scrolling value.  Here is an example of how these function might be
 used.
 
-  (global-set-key [A-down] 
-    #'(lambda () 
+  (global-set-key [A-down]
+    #'(lambda ()
         (interactive)
-       (set-window-vscroll (selected-window) 
+       (set-window-vscroll (selected-window)
                             (+ 0.5 (window-vscroll)))))
-  (global-set-key [A-up] 
+  (global-set-key [A-up]
     #'(lambda ()
        (interactive)
-       (set-window-vscroll (selected-window) 
+       (set-window-vscroll (selected-window)
                            (- (window-vscroll) 0.5)))))
 
 +++
@@ -1496,37 +1602,37 @@ automatically so that all tool bar items are visible.
 Tool bar items are defined using `define-key' with a prefix-key
 `tool-bar'.  For example `(define-key global-map [tool-bar item1] ITEM)'
 where ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
-   
+
 CAPTION is the caption of the item, If it's not a string, it is
 evaluated to get a string.  The caption is currently not displayed in
 the tool bar, but it is displayed if the item doesn't have a `:help'
 property (see below).
-   
+
 BINDING is the tool bar item's binding.  Tool bar items with keymaps as
 binding are currently ignored.
 
 The following properties are recognized:
 
 `:enable FORM'.
-   
+
 FORM is evaluated and specifies whether the tool bar item is enabled
 or disabled.
-   
+
 `:visible FORM'
-   
+
 FORM is evaluated and specifies whether the tool bar item is displayed.
-   
+
 `:filter FUNCTION'
 
 FUNCTION is called with one parameter, the same list BINDING in which
 FUNCTION is specified as the filter.  The value FUNCTION returns is
 used instead of BINDING to display this item.
-   
+
 `:button (TYPE SELECTED)'
 
 TYPE must be one of `:radio' or `:toggle'.  SELECTED is evaluated
 and specifies whether the button is selected (pressed) or not.
-   
+
 `:image IMAGES'
 
 IMAGES is either a single image specification or a vector of four
@@ -1539,9 +1645,9 @@ meaning of each of the four elements:
      1         enabled and deselected
      2         disabled and selected
      3         disabled and deselected
-   
+
 `:help HELP-STRING'.
-   
+
 Gives a help string to display for the tool bar item.  This help
 is displayed when the mouse is moved over the item.
 
@@ -1551,7 +1657,7 @@ If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
 resize to show all defined tool bar items.  It will never grow larger
 than 1/4 of the frame's size.
 
-If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be 
+If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
 raised when the mouse moves over them.
 
 You can add extra space between tool bar items by setting
@@ -1564,7 +1670,7 @@ You can change the shadow thickness of tool bar buttons by setting
 *** Tool-bar clicks with modifiers.
 
 You can bind commands to clicks with control, shift, meta etc. on
-a tool bar item.  If 
+a tool bar item.  If
 
   (define-key global-map [tool-bar shell]
     '(menu-item "Shell" shell
@@ -1861,7 +1967,7 @@ temporarily to nil, for example
   (let ((window-size-fixed nil))
      (enlarge-window 10))
 
-Likewise, an attempt to split a fixed-height window vertically, 
+Likewise, an attempt to split a fixed-height window vertically,
 or a fixed-width window horizontally results in a error.
 \f
 * Changes in Emacs 20.4
@@ -2117,7 +2223,7 @@ limit.
 
 *** \\1-expressions are now valid in `nnmail-split-methods'.
 
-*** The `custom-face-lookup' function has been removed.  
+*** The `custom-face-lookup' function has been removed.
 If you used this function in your initialization files, you must
 rewrite them to use `face-spec-set' instead.
 
@@ -2203,7 +2309,7 @@ customization group `reftex-finding-files'.
 
 *** The option `reftex-bibfile-ignore-list' has been renamed to
 `reftex-bibfile-ignore-regexps' and indeed can be fed with regular
-expressions. 
+expressions.
 
 *** Multiple Selection buffers are now hidden buffers.
 
@@ -2404,7 +2510,7 @@ requested feature cannot be loaded.
 
 ** In the function modify-face, an argument of (nil) for the
 foreground color, background color or stipple pattern
-means to clear out that attribute.  
+means to clear out that attribute.
 
 ** The `outer-window-id' frame property of an X frame
 gives the window number of the outermost X window for the frame.
@@ -2552,7 +2658,7 @@ that you can set it to t, nil, `default', or `complex-only'.
   when you are using complex input methods such as chinese-py.
 
   If the value is `default' (this is the default), extra guidance is
-  given in the following case: 
+  given in the following case:
     o When you are using a complex input method.
     o When you are using a simple input method but not in the minibuffer.
 
@@ -2742,7 +2848,7 @@ doing an isearch.  In order for this to happen search-invisible should
 be set to open (the default).  If an isearch match is inside a hidden
 outline the outline is made visible.  If you continue pressing C-s and
 the match moves outside the formerly invisible outline, the outline is
-made invisible again. 
+made invisible again.
 
 ** Mail reading and sending changes
 
@@ -2834,7 +2940,7 @@ the file named in the current Dired buffer line.  `v v' invokes
 
 The new command `v t' (vc-dired-toggle-terse-mode) allows you to
 toggle between terse display (only locked files) and full display (all
-VC files plus subdirectories).  There is also a special command, 
+VC files plus subdirectories).  There is also a special command,
 `* l', to mark all files currently locked.
 
 Giving a prefix argument to C-x v d now does the same thing as in
@@ -2909,7 +3015,7 @@ automatically in compilation-mode windows.
 *** Multiline macros are now handled, both as they affect indentation,
 and as recognized syntax.  New syntactic symbol cpp-macro-cont is
 assigned to second and subsequent lines of a multiline macro
-definition. 
+definition.
 
 *** A new style "user" which captures all non-hook-ified
 (i.e. top-level) .emacs file variable settings and customizations.
@@ -2941,7 +3047,7 @@ variable c-initialize-on-load controls this and is t by default.
 
 ** Changes to hippie-expand.
 
-*** New customization variable `hippie-expand-dabbrev-skip-space'. If 
+*** New customization variable `hippie-expand-dabbrev-skip-space'. If
 non-nil, trailing spaces may be included in the abbreviation to search for,
 which then gives the same behavior as the original `dabbrev-expand'.
 
@@ -2970,9 +3076,9 @@ against the first word in the title.
 *** Autokey generation now uses all words from the title, not just
 capitalized words.  To avoid conflicts with existing customizations,
 bibtex-autokey-titleword-ignore is set up such that words starting with
-lowerkey characters will still be ignored.  Thus, if you want to use 
+lowerkey characters will still be ignored.  Thus, if you want to use
 lowercase words from the title, you will have to overwrite the
-bibtex-autokey-titleword-ignore standard setting. 
+bibtex-autokey-titleword-ignore standard setting.
 
 *** Case conversion of names and title words for automatic key
 generation is more flexible.  Variable bibtex-autokey-preserve-case is
@@ -3000,15 +3106,15 @@ vcursor, but doesn't disable it, after any non-vcursor command.
 
 ** Ispell changes.
 
-*** You can now spell check comments and strings in the current 
-buffer with M-x ispell-comments-and-strings.  Comments and strings 
+*** You can now spell check comments and strings in the current
+buffer with M-x ispell-comments-and-strings.  Comments and strings
 are identified by syntax tables in effect.
 
 *** Generic region skipping implemented.
 A single buffer can be broken into a number of regions where text will
 and will not be checked.  The definitions of the regions can be user
 defined.  New applications and improvements made available by this
-include: 
+include:
 
     o URLs are automatically skipped
     o EMail message checking is vastly improved.
@@ -3029,7 +3135,7 @@ entire multifile document in order to parse the document.  The new
 recursive parser scans the individual files.
 
 *** Parsing only part of a document.
-    
+
 Reparsing of changed document parts can now be made faster by enabling
 partial scans.  To use this feature, read the documentation string of
 the variable `reftex-enable-partial-scans' and set the variable to t.
@@ -3241,7 +3347,7 @@ default value changed.  For example,
      :group 'foo
      :version "20.3")
 
-   (defgroup foo-group nil "The foo group."  
+   (defgroup foo-group nil "The foo group."
      :version "20.3")
 
 If an entire new group is added or the variables in it have the
@@ -3409,7 +3515,7 @@ The supported properties include
                  item is enabled.
 :visible FORM     Evaluate FORM to determine whether the
                  item should appear in the menu.
-:filter FILTER-FN 
+:filter FILTER-FN
                  FILTER-FN is a function of one argument,
                  which will be REAL-BINDING.
                  It should return a binding to use instead.
@@ -4158,7 +4264,7 @@ presumably identical to the last checked-in version, the command now asks
 which version to compare with.
 
 ** When using hideshow.el, incremental search can temporarily show hidden
-blocks if a match is inside the block. 
+blocks if a match is inside the block.
 
 The block is hidden again if the search is continued and the next match
 is outside the block.  By customizing the variable
@@ -4355,10 +4461,10 @@ for output.
 
 *** nntp.el has been totally rewritten in an asynchronous fashion.
 
-*** Article prefetching functionality has been moved up into 
-Gnus.  
+*** Article prefetching functionality has been moved up into
+Gnus.
 
-*** Scoring can now be performed with logical operators like 
+*** Scoring can now be performed with logical operators like
 `and', `or', `not', and parent redirection.
 
 *** Article washing status can be displayed in the
@@ -4403,7 +4509,7 @@ generating lines in buffers.
     (setq gnus-use-adaptive-scoring '(word))
 
 *** Scores can be decayed.
+
     (setq gnus-decay-scores t)
 
 *** Scoring can be performed using a regexp on the Date header.  The
@@ -4438,7 +4544,7 @@ sorting functions, and each topic can be sorted independently.
     See the commands under the `G P' submap.
 
 *** Cached articles can be pulled into the groups.
-  
+
     Use the `Y c' command.
 
 *** Score files are now applied in a more reliable order.
@@ -4449,7 +4555,7 @@ sorting functions, and each topic can be sorted independently.
 
 *** More hooks and functions have been added to remove junk
 from incoming mail before saving the mail.
+
     See `nnmail-prepare-incoming-header-hook'.
 
 *** The nnml mail backend now understands compressed article files.
@@ -4505,10 +4611,10 @@ Note that this only takes effect if you do it *before* cc-mode.el is
 loaded.
 
 If you typically edit more than one style of C (or C++, Objective-C,
-Java) code in a single Emacs session, you may want to make the CC Mode 
+Java) code in a single Emacs session, you may want to make the CC Mode
 style variables have buffer local values.  By default, all buffers
-share the same style variable settings; to make them buffer local, set 
-c-style-variables-are-local-p to t in your .emacs file.  Note that you 
+share the same style variable settings; to make them buffer local, set
+c-style-variables-are-local-p to t in your .emacs file.  Note that you
 must do this *before* CC Mode is loaded.
 
 *** The new variable c-indentation-style holds the C style name
@@ -4554,7 +4660,7 @@ for the year of the selected date, or the following/previous years.
 
 ** ps-print changes
 
-There are some new user variables for customizing the page layout.  
+There are some new user variables for customizing the page layout.
 
 *** Paper size, paper orientation, columns
 
@@ -4566,12 +4672,12 @@ It defaults to `letter'.
 If you need other sizes, see the variable `ps-page-dimensions-database'.
 
 The variable `ps-landscape-mode' determines the orientation
-of the printing on the page.  nil, the default, means "portrait" mode, 
+of the printing on the page.  nil, the default, means "portrait" mode,
 non-nil means "landscape" mode.
 
 The variable `ps-number-of-columns' must be a positive integer.
 It determines the number of columns both in landscape and portrait mode.
-It defaults to 1. 
+It defaults to 1.
 
 *** Horizontal layout
 
@@ -4591,14 +4697,14 @@ If the variable `ps-print-header' is nil, no header is printed.  Then
 `ps-header-offset' is not relevant and `ps-top-margin' represents the
 margin above the text.
 
-If the variable `ps-print-header-frame' is non-nil, a gaudy 
+If the variable `ps-print-header-frame' is non-nil, a gaudy
 framing box is printed around the header.
 
 The contents of the header are determined by `ps-header-lines',
 `ps-show-n-of-n', `ps-left-header' and `ps-right-header'.
 
-The height of the header is determined by `ps-header-line-pad', 
-`ps-header-font-family', `ps-header-title-font-size' and 
+The height of the header is determined by `ps-header-line-pad',
+`ps-header-font-family', `ps-header-title-font-size' and
 `ps-header-font-size'.
 
 *** Font managing
@@ -4608,13 +4714,13 @@ used for ordinary text.  Its value must be a key symbol in the alist
 `ps-font-info-database'.  You can add other font families by adding
 elements to this alist.
 
-The variable `ps-font-size' determines the size of the font 
+The variable `ps-font-size' determines the size of the font
 for ordinary text.  It defaults to 8.5 points.
 
 ** hideshow changes.
 
 *** now supports hiding of blocks of single line comments (like // for
-C++, ; for lisp). 
+C++, ; for lisp).
 
 *** Support for java-mode added.
 
@@ -4628,7 +4734,7 @@ way!  This is run by default when entering the `hs-minor-mode'.
 *** Now uses overlays instead of `selective-display', so is more
 robust and a lot faster.
 
-*** A block beginning can span multiple lines. 
+*** A block beginning can span multiple lines.
 
 *** The new variable `hs-show-hidden-short-form' if t, directs hideshow
 to show only the beginning of a block when it is hidden.  See the
@@ -4755,7 +4861,7 @@ stubs.
 
 The user options `ada-compiler-make', `ada-make-options',
 `ada-language-version', `ada-compiler-syntax-check', and
-`ada-compile-options' are used within these commands. 
+`ada-compile-options' are used within these commands.
 
 *** Ada mode can now work with Outline minor mode.  The outline level
 is calculated from the indenting, not from syntactic constructs.
@@ -4840,7 +4946,7 @@ different environments (equation, figure, ...) and has full support for
 multifile documents.  To use it, select a buffer with a LaTeX document and
 turn the mode on with M-x reftex-mode.  Here are the main user commands:
 
-C-c (    reftex-label        
+C-c (    reftex-label
    Creates a label semi-automatically.  RefTeX is context sensitive and
    knows which kind of label is needed.
 
@@ -4858,7 +4964,7 @@ C-c &    reftex-view-crossref
 C-c =    reftex-toc
    Shows a table of contents of the (multifile) document.  From there you
    can quickly jump to every section.
+
 Under X, RefTeX installs a "Ref" menu in the menu bar, with additional
 commands.  Press `?' to get help when a prompt mentions this feature.
 Full documentation and customization examples are in the file
@@ -4987,10 +5093,10 @@ related to the GNU format has now been fixed.)
 ** Changes in Viper
 
 *** The startup file is now .viper instead of .vip
-*** All variable/function names have been changed to start with viper- 
+*** All variable/function names have been changed to start with viper-
     instead of vip-.
 *** C-\ now simulates the meta-key in all Viper states.
-*** C-z in Insert state now escapes to Vi for the duration of the next 
+*** C-z in Insert state now escapes to Vi for the duration of the next
 Viper command. In Vi and Insert states, C-z behaves as before.
 *** C-c \ escapes to Vi for one command if Viper is in Insert or Emacs states.
 *** _ is no longer the meta-key in Vi state.
@@ -5156,7 +5262,7 @@ instance) and vice versa.
 To use this package load it using
     M-x load-library [enter] ogonek
 Then, you may get an explanation by calling one of
-    M-x ogonek-jak        -- in Polish  
+    M-x ogonek-jak        -- in Polish
     M-x ogonek-how        -- in English
 The info specifies the commands and variables provided as well as the
 ways of customization in `.emacs'.
@@ -5262,7 +5368,7 @@ adding one of these suffixes.
 
 *** string-to-number now takes an optional second argument BASE
 which specifies the base to use when converting an integer.
-If BASE is omitted, base 10 is used. 
+If BASE is omitted, base 10 is used.
 
 We have not implemented other radices for floating point numbers,
 because that would be much more work and does not seem useful.
@@ -5349,7 +5455,7 @@ This means that some Lisp programs, which assume that a character is
 always one buffer position, need to be changed.
 
 However, all ASCII characters are always one buffer position.
+
 *** The regexp [\200-\377] no longer matches all non-ASCII characters,
 because when enable-multibyte-characters is non-nil, these characters
 have codes that are not in the range octal 200 to octal 377.  However,
@@ -5663,16 +5769,16 @@ t when it should hide it.
 *** add-to-invisibility-spec, remove-from-invisibility-spec
 
 Modes that use overlays to hide portions of a buffer should set the
-invisible property of the overlay to the mode's name (or another symbol) 
-and modify the `buffer-invisibility-spec' to include that symbol. 
+invisible property of the overlay to the mode's name (or another symbol)
+and modify the `buffer-invisibility-spec' to include that symbol.
 Use  `add-to-invisibility-spec' and `remove-from-invisibility-spec' to
-manipulate the `buffer-invisibility-spec'. 
+manipulate the `buffer-invisibility-spec'.
 Here is an example of how to do this:
 
  ;; If we want to display an ellipsis:
- (add-to-invisibility-spec '(my-symbol . t)) 
+ (add-to-invisibility-spec '(my-symbol . t))
  ;; If you don't want ellipsis:
- (add-to-invisibility-spec 'my-symbol) 
+ (add-to-invisibility-spec 'my-symbol)
 
   ...
  (overlay-put  (make-overlay beginning end)  'invisible 'my-symbol)
@@ -5909,7 +6015,7 @@ at the end of the keymap.  If the keymap is a menu, this means it
 goes after the other menu items.
 
 ** If you have a program that makes several changes in the same area
-of the buffer, you can use the macro combine-after-change-calls 
+of the buffer, you can use the macro combine-after-change-calls
 around that Lisp code to make it faster when after-change hooks
 are in use.
 
@@ -6002,7 +6108,7 @@ is how %S normally pads to two positions.
 ** imenu.el changes.
 
 You can now specify a function to be run when selecting an
-item from menu created by imenu. 
+item from menu created by imenu.
 
 An example of using this feature: if we define imenu items for the
 #include directives in a C file, we can open the included file when we
@@ -6111,7 +6217,7 @@ previously released version, except in the message composition area.
 Below is a list of the more user-visible changes.  Coding changes
 between Gnus 5.1 and 5.2 are more extensive.
 
-*** A new message composition mode is used.  All old customization 
+*** A new message composition mode is used.  All old customization
 variables for mail-mode, rnews-reply-mode and gnus-msg are now
 obsolete.
 
@@ -6125,7 +6231,7 @@ missing articles are represented by empty nodes.
     To disable this:  (setq gnus-message-archive-group nil)
 
 *** Partial thread regeneration now happens when articles are
-referred. 
+referred.
 
 *** Gnus can make use of GroupLens predictions:
 
@@ -6136,7 +6242,7 @@ referred.
     (setq gnus-use-trees t)
 
 *** An nn-like pick-and-read minor mode is available for the summary
-buffers. 
+buffers.
 
     (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
 
@@ -6163,7 +6269,7 @@ groups of groups.
 *** Caching is possible in virtual groups.
 
 *** nndoc now understands all kinds of digests, mail boxes, rnews news
-batches, ClariNet briefs collections, and just about everything else. 
+batches, ClariNet briefs collections, and just about everything else.
 
 *** Gnus has a new backend (nnsoup) to create/read SOUP packets.
 
@@ -6196,11 +6302,11 @@ articles with the `*' command.
 
 *** All mail backends support fetching articles by Message-ID.
 
-*** Duplicate mail can now be treated properly.  See the 
+*** Duplicate mail can now be treated properly.  See the
 `nnmail-treat-duplicates' variable.
 
 *** All summary mode commands are available directly from the article
-buffer. 
+buffer.
 
 *** Frames can be part of `gnus-buffer-configuration'.
 
@@ -6210,21 +6316,21 @@ buffer.
 
     (setq gnus-use-nocem t)
 
-*** Groups can be made permanently visible. 
+*** Groups can be made permanently visible.
 
     (setq gnus-permanently-visible-groups "^nnml:")
 
-*** Many new hooks have been introduced to make customizing easier. 
+*** Many new hooks have been introduced to make customizing easier.
 
 *** Gnus respects the Mail-Copies-To header.
 
-*** Threads can be gathered by looking at the References header. 
+*** Threads can be gathered by looking at the References header.
 
-    (setq gnus-summary-thread-gathering-function 
+    (setq gnus-summary-thread-gathering-function
           'gnus-gather-threads-by-references)
 
 *** Read articles can be stored in a special backlog buffer to avoid
-refetching.  
+refetching.
 
     (setq gnus-keep-backlog 50)
 
@@ -6238,11 +6344,11 @@ buffer to allow easier treatment.
     (setq gnus-prompt-before-saving t)
 
 *** gnus-uu can view decoded files asynchronously while fetching
-articles. 
+articles.
 
     (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view)
 
-*** Filling in the article buffer now works properly on cited text. 
+*** Filling in the article buffer now works properly on cited text.
 
 *** Hiding cited text adds buttons to toggle hiding, and how much
 cited text to hide is now customizable.
@@ -6568,7 +6674,7 @@ pressing both mouse buttons.
 
 *** A number of packages and commands which previously failed or had
 restricted functionality on MS-DOS, now work.  The most important ones
-are: 
+are:
 
 **** Printing (both with `M-x lpr-buffer' and with `ps-print' package)
 now works.