GNU Emacs NEWS -- history of user-visible changes. 30 Jan 1998 Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. See the end for copying conditions.

Please send Emacs bug reports to bug-gnu-emacs@gnu.org. For older news, see the file ONEWS.

* Installation Changes in Emacs 20.3

** The default value of load-path now includes most subdirectories of
** Emacs no longer includes an old version of the C preprocessor from

* Changes in Emacs 20.3

** The new command C-x z (repeat) repeats the previous command
** Emacs now supports "selective undo" which undoes only within a
** If you specify --unibyte when starting Emacs, then all buffers are
** toggle-enable-multibyte-characters no longer has a key binding and
** You can specify a coding system to use for the next cut or paste
** You can specify the printer to use for commands that do printing by
** Emacs now supports on-the-fly spell checking by the means of a
** Changes in input method usage.
** The minibuffer history of file names now records the specified file
** If you are root, Emacs sets backup-by-copying-when-mismatch to t
** find-func.el can now also find the place of definition of Emacs
** C-x r t (string-rectangle) now deletes the existing rectangle
** There is a new command delete-whitespace-rectangle
** You can now store a number into a register with C-u NUMBER C-x r n REG,
** The new command M-x speedbar displays a frame in which directories,
** query-replace-regexp is now bound to C-M-%.
** In Transient Mark mode, when the region is active, M-x
** M-x write-region, when used interactively, now asks for
** If you use find-file-literally and the file is already visited
** Major modes defined with the "derived mode" feature
** shell-command-on-region (and shell-command) reports success or
** Set focus-follows-mouse to nil if your window system or window
** mouse-menu-buffer-maxlen has been renamed to
** The new variable auto-coding-alist specifies coding systems for
** If you set the variable unibyte-display-via-language-environment to
** C-q's handling of codes in the range 0200 through 0377 is changed.
** If you try to find a file that is not read-accessible, you now get
** In the minibuffer history commands M-r and M-s, an upper case
** In the *Help* buffer, cross-references to commands and variables
** M-x apropos-command, with a prefix argument, no longer looks for
** When you type a long line in the minibuffer, and the minibuffer
** The new command M-x customize-changed-options lets you customize
** When you run M-x grep with a prefix argument, it figures out
** The new command M-* (pop-tag-mark) pops back through a history of
** The new variable comment-padding specifies the number of spaces
** In Fortran mode the characters `.', `_' and `$' now have symbol
** GUD now supports jdb, the Java debugger, and pdb, the Python debugger.
** If you set the variable add-log-keep-changes-together to a non-nil
** You can use the command M-x diary-mail-entries to mail yourself a
** All you need to do, to enable use of the Desktop package, is to set
** There is no need to do anything special, now, to enable Gnus to
** Outline mode has now support for showing hidden outlines when

** Mail reading and sending changes

*** The Rmail e command now switches to displaying the whole header of
*** The w command in Rmail, which writes the message body into a file,
*** Most of the commands and modes that operate on mail and netnews no
*** If you set mail-signature to a value which is not t, nil, or a string,
*** The new Lisp library feedmail.el (version 8) enhances processing of
*** The new Lisp library feedmail.el (version 8) enhances processing of
**** you can park outgoing messages into a disk-based queue and
**** you can get one last look at the prepped outbound message and
**** does smart filling of address headers
**** can generate a MESSAGE-ID: line and a DATE: line; the date can be
**** you can specify an arbitrary function for actually transmitting

** Dired changes

*** The Dired function dired-do-toggle, which toggles marked and unmarked
*** dired-at-point has been added to ffap.el. It allows one to easily
*** Dired has a new command: %g. It searches the contents of

** VC Changes

*** New option vc-ignore-vc-files lets you turn off version control
*** VC Dired has been completely rewritten. It is now much
*** Under CVS, if you merge changes from the repository into a working
*** You can now transfer changes between branches, using the new

** Changes in Font Lock

*** The face and variable previously known as font-lock-reference-face

** Frame name display changes

*** The command set-frame-name lets you set the name of the current
*** On character-only terminal (not a window system), changing the

** Comint (subshell) changes

*** In Comint modes, the commands to kill, stop or interrupt a
*** There are new commands in Comint mode.
*** New option compilation-scroll-output can be set to scroll

** C mode changes

*** Multiline macros are now handled, both as they affect indentation,
*** A new style "user" which captures all non-hook-ified
*** "java" style now conforms to Sun's JDK coding style.
*** There are new commands c-beginning-of-defun, c-end-of-defun which
*** New and improved implementations of M-a (c-beginning-of-statement)
*** C++ namespace blocks are supported, with new syntactic symbols
*** File local variable settings of c-file-style and c-file-offsets
*** New indentation functions c-lineup-close-paren,
*** Improvements (hopefully!) to the way CC Mode is loaded. You

** Changes to hippie-expand.

*** New customization variable `hippie-expand-dabbrev-skip-space'. If
*** New customization variable `hippie-expand-dabbrev-as-symbol'. If
*** New customization variable `hippie-expand-no-restriction'. If
*** New customization variable `hippie-expand-only-buffers'. If

** Changes in BibTeX mode.

*** Any titleword matching a regexp in the new variable
*** Autokey generation now uses all words from the title, not just
*** Case conversion of names and title words for automatic key

** Changes in vcursor.el.

*** Support for character terminals is available: there is a new keymap
*** vcursor options can now be altered with M-x customize under the
*** Loading vcursor now does not define keys by default, as this is
*** vcursor-auto-disable can be `copy', which turns off copying from the

** Ispell changes.

*** You can now spell check comments and strings in the current
*** Generic region skipping implemented.
** Changes to RefTeX mode

** Changes to RefTeX mode

*** New recursive parser.
*** Parsing only part of a document.
*** Storing parsing information in a file.
*** Using multiple selection buffers
*** References to external documents.
*** Many more labeled LaTeX environments are recognized by default.
*** Mouse support for selection and *toc* buffers
*** New keymaps for selection and table of contents modes.
*** Support for the varioref package
*** New hooks
*** Citations outside LaTeX
*** Short context is no longer fontified.
** file-cache-minibuffer-complete now accepts a prefix argument.

** New modes and packages

*** There is a new alternative major mode for Perl, Cperl mode.
*** There is a new major mode, M-x vhdl-mode, for editing files of VHDL
*** M-x which-function-mode enables a minor mode that displays the
*** Gametree is a major mode for editing game analysis trees. The author
*** The new minor mode checkdoc-minor-mode provides Emacs Lisp
*** The net-utils package makes some common networking features
*** highlight-changes-mode is a minor mode that uses colors to
*** The new package `midnight' lets you specify things to be done
*** The file generic-x.el defines a number of simple major modes.

* Lisp changes in Emacs 20.3 since the Emacs Lisp Manual was published

** If you want a Lisp file to be read in unibyte mode,
** The new function assoc-default is useful for searching an alist,
** The functions unibyte-char-to-multibyte and
** The functions read-event, read-char and read-char-exclusive now
** Two new variables print-escape-nonascii and print-escape-multibyte

* Lisp changes in Emacs 20.3 before the Emacs Lisp Manual was published

** Compiled Emacs Lisp files made with the modified "MBSK" version
** Buffer positions are now measured in characters, as they were
** defcustom, defface and defgroup now accept the keyword `:version'.
** It is now an error to change the value of a symbol whose name
** There is a new debugger command, R.
** Frame-local variables.
** `sregexq' and `sregex' are two new functions for constructing
** parse-partial-sexp's return value has an additional element which
** eval-region now accepts a fourth optional argument READ-FUNCTION.
** unload-feature by default removes the feature's functions from
** read-from-minibuffer no longer returns the argument DEFAULT-VALUE
** The new variable read-buffer-function controls which routine to use
** The new function read-passwd reads a password from the terminal,
** The variable fill-nobreak-predicate gives major modes a way to
** window-end now takes an optional second argument, UPDATE.
** other-buffer now takes an optional argument FRAME
** The new variable buffer-display-time, always local in every buffer,
** It is now meaningful to compare two window-configuration objects
** compare-window-configurations is a new function that compares two
** The variable minor-mode-overriding-map-alist allows major modes to
** The function match-string-no-properties is like match-string
** The function load-average now accepts an optional argument
** The new variable temporary-file-directory specifies the directory

** Menu changes

*** easymenu.el now uses the new menu item format and supports the
*** A new format for menu items is supported.

** New event types

*** The new event type `mouse-wheel' is generated by a wheel on a
*** The new event type `drag-n-drop' is generated when a group of

** Changes relating to multibyte characters.

*** The variable enable-multibyte-characters is now read-only;
*** In a string constant, `\ ' now stands for "nothing at all". You
*** String indices are now measured in characters, as they were
*** The function set-buffer-multibyte sets the flag in the current
*** string-make-multibyte takes a string and converts it to multibyte
*** string-make-unibyte takes a string and converts it to unibyte
*** string-as-multibyte takes a string, and returns another string
*** string-as-unibyte takes a string, and returns another string
*** The new function compare-strings lets you compare
*** assoc-ignore-case now uses compare-strings so that
*** Regular expression operations and buffer string searches now
*** Structure of coding system changed.
*** The new function select-safe-coding-system can be used to find a
*** The new functions find-coding-systems-region and
*** The explicit encoding and decoding functions, such as
*** The new function detect-coding-with-language-environment can be
*** The functions detect-coding-region and detect-coding-string always
*** The new functions coding-system-change-eol-conversion and
*** The new function set-selection-coding-system can be used to set a
*** The function `map-char-table' now passes as argument only valid
*** The new function `char-valid-p' can be used for checking whether a
*** The new function `charset-after' returns a charset of a character
*** Input methods are now implemented using the variable
*** You can customize any language environment by using

* Changes in Emacs 20.1

** Emacs has a new facility for customization of its many user
** Scroll bars are now on the left side of the window.
** The mode line no longer includes the string `Emacs'.
** When you select a region with the mouse, it is highlighted
** In an incremental search the whole current match is highlighted
** In the minibuffer, in some cases, you can now use M-n to
** In Text mode, now only blank lines separate paragraphs.

** Scrolling changes

*** Scroll commands to scroll a whole screen now preserve the screen
*** If you set scroll-conservatively to a small number, then when you
*** The new variable scroll-margin says how close point can come to the
** International character set support (MULE)

** International character set support (MULE)

*** Input methods
*** The command C-x RET m (toggle-enable-multibyte-characters)
*** Visiting a file in unibyte mode.
*** Displaying international characters on X Windows.
*** Defining fontsets.
* most fields should be just the wild card "*".
* the CHARSET_REGISTRY field should be "fontset"
* the CHARSET_ENCODING field can be any nickname of the fontset.

* the CHARSET_ENCODING field can be any nickname of the fontset.

*** The command M-x set-language-environment sets certain global Emacs
*** The command C-x RET f (set-buffer-file-coding-system)
*** The command C-x RET c (universal-coding-system-argument)
*** You can specify the coding system for a file using the -*-
*** The command C-x RET t (set-terminal-coding-system) specifies
*** The command C-x RET k (set-keyboard-coding-system) specifies
*** The command C-x RET p (set-buffer-process-coding-system)
*** The variable file-name-coding-system specifies the coding system
*** The command C-\ (toggle-input-method) activates or deactivates
*** Some input methods remap the keyboard to emulate various keyboard
*** The command C-h C (describe-coding-system) displays
*** The command C-h h (view-hello-file) displays a file called
*** The command C-h L (describe-language-support) displays
*** The mode line now contains a letter or character that identifies
*** The new variable rmail-file-coding-system specifies the code
*** The new variable sendmail-coding-system specifies the code
*** The command C-h t (help-with-tutorial) accepts a prefix argument
** An easy new way to visit a file with no code or format conversion
** C-q's handling of octal character codes is changed.
** There are new commands for looking up Info documentation for
** M-TAB in most programming language modes now runs the command
** File locking works with NFS now.
** If you wish to use Show Paren mode to display matching parentheses,
** If you wish to use Delete Selection mode to replace a highlighted
** If you wish to use Partial Completion mode to complete partial words
** If you wish to use uniquify to rename buffers for you,

** Changes in View mode.

*** Several new commands are available in View mode.
*** There are two new commands for entering View mode:
*** Exiting View mode does a better job of restoring windows to their
*** New customization variable view-scroll-auto-exit. If non-nil,
*** New customization variable view-exits-all-viewing-windows. If
*** New customization variable view-read-only. If non-nil, visiting a
*** New customization variable view-remove-frame-by-deleting controls
** C-x v l, the command to print a file's version control log,
** C-x v =, the command to compare a file with the last checked-in version,
** When using hideshow.el, incremental search can temporarily show hidden
** The new command C-x 4 0 (kill-buffer-and-window) kills the
** C-x C-w, which saves the buffer into a specified file name,

** M-x occur changes.

*** If the argument to M-x occur contains upper case letters,
*** In the *Occur* buffer made by M-x occur,
** In Transient Mark mode, the region in any one buffer is highlighted
** The feature to suggest key bindings when you use M-x now operates
** Each frame now independently records the order for recently

** Outline mode changes.

*** Outline mode now uses overlays (this is the former noutline.el).
** When a minibuffer window is active but not the selected window, if

** Changes in dynamic abbrevs.

*** Expanding dynamic abbrevs with M-/ is now smarter about case
*** The values of `dabbrev-case-replace' and `dabbrev-case-fold-search'
** Minibuffer history lists are truncated automatically now to a

** Changes in Mail mode.

*** The key C-x m no longer runs the `mail' command directly.
*** While composing a reply to a mail message, from Rmail, you can use
*** The command C-c C-i inserts a file at the end of the message,
*** The command M-x expand-mail-aliases expands all mail aliases
*** New features in the mail-complete command.
**** The mail-complete command now inserts the user's full name,
**** The variable mail-passwd-command lets you specify a shell command
**** The variable mail-passwd-file now specifies a list of files to read
** You can "quote" a file name to inhibit special significance of
** There is a new command M-x grep-find which uses find to select
** In Dired, the & command now flags for deletion the files whose names
* c dired-change-marks c
* m dired-mark m
* * dired-mark-executables * (binding deleted)
* / dired-mark-directories / (binding deleted)
* @ dired-mark-symlinks @ (binding deleted)
* u dired-unmark u
* DEL dired-unmark-backward DEL
* ? dired-unmark-all-files M-C-?
* ! dired-unmark-all-marks
* % dired-mark-files-regexp % m
* C-n dired-next-marked-file M-}

* C-p dired-prev-marked-file M-{

** Rmail changes.

*** When Rmail cannot convert your incoming mail into Babyl format, it
*** In Rmail, the variable rmail-summary-line-count-flag now controls
*** In Rmail summary buffers, d and C-d (the commands to delete
*** In Rmail, the t command now takes an optional argument which lets
*** In Rmail, the new command w (rmail-output-body-to-file) writes

** Gnus changes.

*** nntp.el has been totally rewritten in an asynchronous fashion.
*** Article prefetching functionality has been moved up into
*** Scoring can now be performed with logical operators like
*** Article washing status can be displayed in the
*** gnus.el has been split into many smaller files.
*** Suppression of duplicate articles based on Message-ID.
*** New variables for specifying what score and adapt files
*** Groups can inherit group parameters from parent topics.
*** Article editing has been revamped and is now usable.
*** Signatures can be recognized in more intelligent fashions.
*** Summary pick mode has been made to look more nn-like.
*** Commands for moving the .newsrc.eld from one server to
*** A way to specify that "uninteresting" fields be suppressed when
*** Several commands in the group buffer can be undone with
*** Scoring can be done on words using the new score type `w'.
*** Adaptive scoring can be done on a Subject word-by-word basis:
*** Scores can be decayed.
*** Scoring can be performed using a regexp on the Date header. The
*** A new command has been added to remove all data on articles from
*** A new command for reading collections of documents
*** Process mark sets can be pushed and popped.
*** A new mail-to-news backend makes it possible to post
*** A new backend for reading searches from Web search engines
*** Groups inside topics can now be sorted using the standard
*** Subsets of the groups can be sorted independently.
*** Cached articles can be pulled into the groups.
*** Score files are now applied in a more reliable order.
*** Reports on where mail messages end up can be generated.
*** More hooks and functions have been added to remove junk
*** The nnml mail backend now understands compressed article files.
*** To enable Gnus to read/post multi-lingual articles, you must execute

** CC mode changes.

*** If you edit primarily one style of C (or C++, Objective-C, Java)
*** The new variable c-indentation-style holds the C style name
*** The variable c-block-comments-indent-p has been deleted, because
*** There is a new indentation style "python", which specifies the C
*** There is a new c-cleanup-list option: brace-elseif-brace.
** VC Changes [new]
** In vc-retrieve-snapshot (C-x v r), if you don't specify a snapshot

** In vc-retrieve-snapshot (C-x v r), if you don't specify a snapshot

*** VC can now handle files under CVS that are being "watched" by
*** vc-version-diff (C-u C-x v =) now suggests reasonable defaults for
** Calendar changes.
** ps-print changes

** ps-print changes

*** Paper size, paper orientation, columns
*** Horizontal layout
*** Vertical layout
*** Headers
*** Font managing

** hideshow changes.

*** now supports hiding of blocks of single line comments (like // for
*** Support for java-mode added.
*** When doing `hs-hide-all' it is now possible to also hide the comments
*** The new function `hs-hide-initial-comment' hides the the comments at
*** Now uses overlays instead of `selective-display', so is more
*** A block beginning can span multiple lines.
*** The new variable `hs-show-hidden-short-form' if t, directs hideshow

** Changes in Enriched mode.

*** When you visit a file in enriched-mode, Emacs will make sure it is
*** use-hard-newlines is now a minor mode. When it is enabled, Emacs

** Font Lock mode

*** Custom support
*** Maximum decoration
*** New support
*** Configurable support
*** Adding highlighting patterns to existing support
*** New faces
*** Changes to fast-lock support mode
*** Changes to lazy-lock support mode

** Ada mode changes.

*** There is now better support for using find-file.el with Ada mode.
*** There are two new commands:
*** Ada mode can now work with Outline minor mode. The outline level
*** The new function `ada-gnat-style' converts the buffer to the style of

** Scheme mode changes.

*** Scheme mode indentation now uses many of the facilities of Lisp
*** DSSSL mode is a variant of Scheme mode, for editing DSSSL scripts.
** The emacsclient program now accepts an option --no-wait which tells
** M-x eldoc-mode enables a minor mode in which the echo area
** C-x n d now runs the new command narrow-to-defun,
** Emacs now handles the `--' argument in the standard way; all
** On MSDOS and Windows, the bookmark file is now called _emacs.bmk,
** When you kill a buffer that visits a file,
** When you visit a file that changes frequently outside Emacs--for
** set-default-font has been renamed to set-frame-font
** In TeX mode, you can use the variable tex-main-file to specify the
** RefTeX mode

** Changes in BibTeX mode.

*** Info documentation is now available.
*** Don't allow parentheses in string constants anymore. This confused
*** Renamed variable bibtex-mode-user-optional-fields to
*** Removed variable bibtex-include-OPTannote
*** New interactive functions to copy and kill fields and complete
*** New interactive functions for repositioning and marking of
*** New hook bibtex-clean-entry-hook. It is called after entry has
*** New variable bibtex-field-delimiters, which replaces variables
*** New variable bibtex-entry-delimiters to determine how entries
*** Allow preinitialization of fields. See documentation of
*** Book and InBook entries require either an author or an editor
*** New variable bibtex-entry-format, which replaces variable
*** Even more control on how automatic keys are generated. See
*** New boolean user option bibtex-comma-after-last-field to decide if
*** New boolean user option bibtex-align-at-equal-sign to determine if
*** New function bibtex-fill-entry to realign entries.
*** New function bibtex-reformat to reformat region or buffer.
*** New function bibtex-convert-alien to convert a BibTeX database
*** New function bibtex-complete-key (similar to bibtex-complete-string)
*** New function bibtex-count-entries to count entries in buffer or
*** Added support for imenu.
*** The function `bibtex-validate' now checks current region instead
*** New variable `bibtex-string-file-path' to determine where the files
** Iso Accents mode now supports Latin-3 as an alternative.
** The function using-unix-filesystems has been replaced by the

** browse-url changes

*** New methods for: Grail (browse-url-generic), MMM (browse-url-mmm),
*** New commands `browse-url-of-region' and `browse-url'.
*** URLs marked up with (RFC1738) work if broken across

** Changes in Ediff

*** Clicking Mouse-2 on a brief command description in Ediff control panel
*** There is now a variable, ediff-autostore-merges, which controls whether
*** Since Emacs 19.31 (this hasn't been announced before), Ediff can compare
*** Since Emacs 19.31, Ediff can apply multi-file patches interactively.

** Changes in Viper

*** The startup file is now .viper instead of .vip
*** All variable/function names have been changed to start with viper-
*** 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-c \ escapes to Vi for one command if Viper is in Insert or Emacs states.
*** _ is no longer the meta-key in Vi state.
*** The variable viper-insert-state-cursor-color can be used to change cursor
*** If search lands the cursor near the top or the bottom of the window,

** Etags changes.

*** In C, C++, Objective C and Java, Etags tags global variables by
*** C++ member functions are now recognized as tags.
*** Java is tagged like C++. In addition, "extends" and "implements"
*** Etags can now handle programs written in Postscript. Files are
*** Etags now handles Objective C and Objective C++ code. The usual C and
*** Etags also handles Cobol. Files are recognised by the extension
*** Regexps in Etags now support intervals, as in ed or grep. The syntax of
** The format for specifying a custom format for time-stamp to insert
** There are some additional major modes:
** In Shell mode, the command shell-copy-environment-variable lets you

** New Lisp packages include:

*** battery.el displays battery status for laptops.
*** M-x bruce (named after Lenny Bruce) is a program that might
*** M-x crisp-mode enables an emulation for the CRiSP editor.
*** M-x dirtrack arranges for better tracking of directory changes
*** The new library elint.el provides for linting of Emacs Lisp code.
*** M-x expand-add-abbrevs defines a special kind of abbrev which is
*** filecache.el remembers the location of files so that you
*** find-func.el lets you find the definition of the user-loaded
*** M-x handwrite converts text to a "handwritten" picture.
*** M-x iswitchb-buffer is a command for switching to a buffer, much like
*** M-x landmark implements a neural network for landmark learning.
*** M-x locate provides a convenient interface to the `locate' program.
*** M4 mode is a new mode for editing files of m4 input.
*** mantemp.el creates C++ manual template instantiations
*** mouse-copy.el provides a one-click copy and move feature.
*** mouse-drag.el lets you do scrolling by dragging Mouse-2
*** mspools.el is useful for determining which mail folders have
*** Octave mode is a major mode for editing files of input for Octave.
*** ogonek
*** Interface to ph.
*** uce.el is useful for replying to unsolicited commercial email.
*** vcursor.el implements a "virtual cursor" feature.
*** webjump.el is a "hot list" package which you can set up
*** M-x winner-mode is a minor mode which saves window configurations,
** movemail change

* Emacs 20.1 changes for MS-DOS and MS-Windows.

** Changes in handling MS-DOS/MS-Windows text files.

* Lisp Changes in Emacs 20.1

** Byte-compiled files made with Emacs 20 will, in general, work in
** Windows-specific functions and variables have been renamed

** Basic Lisp changes

*** A symbol whose name starts with a colon now automatically
*** The defined purpose of `defconst' has been changed. It should now
*** There are new macros `when' and `unless'
*** Emacs now defines functions caar, cadr, cdar and cddr with their
*** equal, when comparing strings, now ignores their text properties.
*** The new function `functionp' tests whether an object is a function.
*** arrayp now returns t for char-tables and bool-vectors.
*** Certain primitives which use characters (as integers) now get an
*** The `require' function now insists on adding a suffix, either .el
*** The `autoload' function, when the file name does not contain
*** string-to-number now takes an optional second argument BASE
*** substring now handles vectors as well as strings.
*** The Common Lisp function eql is no longer defined normally.
*** The new macro `with-current-buffer' lets you evaluate an expression
*** The new primitive `save-current-buffer' saves and restores the
*** The new macro `with-temp-file' lets you do some work in a new buffer and
*** The new macro `with-temp-buffer' lets you do some work in a new buffer,
*** The new function split-string takes a string, splits it at certain
*** The new macro with-output-to-string executes some Lisp expressions
** Non-ASCII characters are now supported, if enable-multibyte-characters

** Non-ASCII characters are now supported, if enable-multibyte-characters

*** When enable-multibyte-characters is non-nil, a single character in
*** The function forward-char moves over characters, and therefore
*** The regexp [\200-\377] no longer matches all non-ASCII characters,
*** The function char-boundary-p returns non-nil if position POS is
*** The function char-bytes returns how many bytes the character CHAR uses.
*** Strings can contain multibyte characters. The function
*** The function concat-chars takes arguments which are characters
*** The function sref access a multibyte character in a string.
*** The function chars-in-string returns the number of characters
*** The function chars-in-region returns the number of characters
*** The function string-to-list converts a string to a list of
*** The function store-substring alters part of the contents
*** char-width returns the width (in columns) of the character CHAR,
*** string-width returns the width (in columns) of the text in STRING,
*** truncate-string-to-width shortens a string, if necessary,
*** When the functions in the list after-change-functions are called,
*** The characters Emacs uses are classified in various character
*** The characters Emacs uses are classified in various character
**** The function charsetp tests whether an object is a character set name.
**** The variable charset-list holds a list of character set names.
**** char-charset, given a character code, returns the name of the character
**** split-char, given a character code, returns a list containing the
**** make-char, given a character set name and one or two subsequent
**** find-charset-region returns a list of the character sets
**** find-charset-string returns a list of the character sets
*** Here are the Lisp facilities for working with coding systems
*** Here are the Lisp facilities for working with coding systems
**** The function coding-system-list returns a list of all coding
**** coding-system-p tests a symbol to see if it is a coding system
**** file-coding-system-alist specifies which coding systems to use
**** The variable network-coding-system-alist specifies
**** process-coding-system-alist specifies which coding systems to use
**** The variable default-process-coding-system specifies the coding
**** The variable coding-system-for-write, if non-nil, specifies the
**** coding-system-for-read applies similarly to input from
**** The function process-coding-system tells you what
**** The function set-process-coding-system can be used to
** Emacs has a new facility to help users manage the many
** New `widget' library for inserting UI components in buffers.
** easy-mmode

** Text property changes

*** The `intangible' property now works on overlays as well as on a
*** The new functions next-char-property-change and
*** In the `local-map' text property or overlay property, the property

** Changes in invisibility features

*** Isearch can now temporarily show parts of the buffer which are
*** add-to-invisibility-spec, remove-from-invisibility-spec

** Changes in syntax parsing.

*** The syntax-directed buffer-scan functions (such as
*** The meaning of \s in regular expressions is also affected by the
*** There are two new syntax-codes, `!' and `|' (numeric values 14
*** The function `parse-partial-sexp' has new semantics for the sixth
*** The state-list which the return value from `parse-partial-sexp'
*** Since new features of `parse-partial-sexp' allow a complete

** Changes in face features

*** The face functions are now unconditionally defined in Emacs, even
*** The function face-documentation returns the documentation string
*** The function face-bold-p returns t if a face should be bold.
*** The function face-italic-p returns t if a face should be italic.
*** You can now specify foreground and background colors for text

** Changes in file-handling functions

*** File-access primitive functions no longer discard an extra redundant
*** If copy-file is unable to set the date of the output file,
*** The inode number returned by file-attributes may be an integer (if
*** insert-file-contents can now read from a special file,
*** The RAWFILE arg to find-file-noselect, if non-nil, now suppresses
*** Lisp packages which create temporary files should use the TMPDIR
*** interpreter-mode-alist elements now specify regexps
*** expand-file-name no longer treats `//' or `/~' specially. It used
*** The variable `format-alist' is more general now.
*** The new function access-file tries to open a file, and signals an
*** The function insert-directory now signals an error if the specified

** Changes in minibuffer input

*** The functions read-buffer, read-variable, read-command, read-string
*** The functions read-string, read-from-minibuffer,
*** All minibuffer input functions discard text properties

** Echo area features

*** Clearing the echo area now runs the normal hook
*** The function current-message returns the message currently displayed

** Keyboard input features

*** tty-erase-char is a new variable that reports which character was
*** num-nonmacro-input-events is the total number of input events

** Frame-related changes

*** make-frame runs the normal hook before-make-frame-hook just before
*** The new hook window-configuration-change-hook is now run every time
*** Each frame now independently records the order for recently
*** The value of the frame parameter vertical-scroll-bars

** X Windows features

*** You can examine X resources for other applications by binding
*** In menus, checkboxes and radio buttons now actually work.
*** The function x-list-fonts now takes an optional fourth argument

** Subprocess features

*** A reminder: it is no longer necessary for subprocess filter
*** The new function shell-command-to-string executes a shell command
*** The new function process-contact returns t for a child process,
** An error in running pre-command-hook or post-command-hook
** In define-key-after, if AFTER is t, the new binding now always goes
** If you have a program that makes several changes in the same area
** If you define an abbrev (with define-abbrev) whose EXPANSION
** Normally, the Lisp debugger is not used (even if you have enabled it)
** The new variable ring-bell-function lets you specify your own
** If run-at-time's TIME argument is t, the action is repeated at
** You can use the function locate-library to find the precise file
** Commands for entering view mode have new optional arguments that
** batch-byte-compile-file now makes Emacs return a nonzero status code
** pop-to-buffer, switch-to-buffer-other-window and
** If your .emacs file leaves the *scratch* buffer non-empty,
** The new function regexp-opt returns an efficient regexp to match a string.
** The variable buffer-display-count is local to each buffer,
** The new function compose-mail starts composing a mail message
** The `user-full-name' function now takes an optional parameter which
** Lisp packages that load files of customizations, or any other sort
** format-time-string now allows you to specify the field width
** thing-at-point now supports a new kind of "thing": url.
** imenu.el changes.
* Emacs 19.34 is a bug-fix release with no user-visible changes.

* Changes in Emacs 19.33.

** Bibtex mode no longer turns on Auto Fill automatically. (No major
** The variable normal-auto-fill-function specifies the function to

* Editing Changes in Emacs 19.32

** C-x f with no argument now signals an error.
** Expanding dynamic abbrevs with M-/ is now smarter about case
** On a non-windowing terminal, which can display only one Emacs frame
** You can use C-x 5 2 to create multiple frames on MSDOS, just as on a
** On Windows, set win32-pass-alt-to-system to a non-nil value
** The command apply-macro-to-region-lines repeats the last defined
** You can now use Mouse-1 to place the region around a string constant

** Font Lock mode

*** Font Lock support modes
*** lazy-lock

** Changes in BibTeX mode.

*** For all entries allow spaces and tabs between opening brace or
*** Non-escaped double-quoted characters (as in `Sch"of') are now
** Gnus changes.

** Gnus changes.

*** A new message composition mode is used. All old customization
*** Gnus is now able to generate "sparse" threads -- threads where
*** Outgoing articles are stored on a special archive server.
*** Partial thread regeneration now happens when articles are
*** Gnus can make use of GroupLens predictions:
*** A trn-line tree buffer can be displayed.
*** An nn-like pick-and-read minor mode is available for the summary
*** In binary groups you can use a special binary minor mode:
*** Groups can be grouped in a folding topic hierarchy.
*** Gnus can re-send and bounce mail.
*** Groups can now have a score, and bubbling based on entry frequency
*** Groups can be process-marked, and commands can be performed on
*** Caching is possible in virtual groups.
*** nndoc now understands all kinds of digests, mail boxes, rnews news
*** Gnus has a new backend (nnsoup) to create/read SOUP packets.
*** The Gnus cache is much faster.
*** Groups can be sorted according to many criteria.
*** New group parameters have been introduced to set list-address and
*** All formatting specs allow specifying faces to be used.
*** There are several more commands for setting/removing/acting on
*** The summary buffer can be limited to show parts of the available
*** Articles can be made persistent -- as an alternative to saving
*** All functions for hiding article elements are now toggles.
*** Article headers can be buttonized.
*** All mail backends support fetching articles by Message-ID.
*** Duplicate mail can now be treated properly. See the
*** All summary mode commands are available directly from the article
*** Frames can be part of `gnus-buffer-configuration'.
*** Mail can be re-scanned by a daemonic process.
*** Gnus can make use of NoCeM files to filter spam.
*** Groups can be made permanently visible.
*** 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.
*** Read articles can be stored in a special backlog buffer to avoid
*** A clean copy of the current article is always stored in a separate
*** Gnus can suggest where to save articles. See `gnus-split-methods'.
*** Gnus doesn't have to do as much prompting when saving.
*** gnus-uu can view decoded files asynchronously while fetching
*** Filling in the article buffer now works properly on cited text.
*** Hiding cited text adds buttons to toggle hiding, and how much
*** Boring headers can be hidden.
*** Default scoring values can now be set from the menu bar.
*** Further syntax checking of outgoing articles have been added.

* Lisp Changes in Emacs 19.32

** The function set-visited-file-name now accepts an optional
** The variable print-length applies to printing vectors and bitvectors,
** The new function keymap-parent returns the parent keymap
** The new function set-keymap-parent specifies a new parent for a
** Sometimes menu keymaps use a command name, a symbol, which is really

* Editing Changes in Emacs 19.31

** Freedom of the press restricted in the United States.
** A note about C mode indentation customization.
** Marking with the mouse.

** Improved Windows NT/95 support.

*** Emacs now supports scroll bars on Windows NT and Windows 95.
*** Emacs now supports subprocesses on Windows 95. (Subprocesses used
*** There are difficulties with subprocesses, though, due to problems
** M-x resize-minibuffer-mode.
** `title' frame parameter and resource.
** Emacs now uses the X toolkit by default, if you have a new
** When you compile Emacs with the Motif widget set, Motif handles the
** In overwrite mode, DEL now inserts spaces in most cases
** The Rmail summary now shows the number of lines in each message.
** Rmail has a new command M-x unforward-rmail-message, which extracts
** Turning off saving of .saves-... files in your home directory.
** Changes to Version Control (VC)
** iso-acc.el now lets you specify a choice of language.
** Posting articles and sending mail now has M-TAB completion on various
** A greatly extended sgml-mode offers new features such as (to be configured)
** M-x imenu-add-to-menubar now adds to the menu bar for the current

** Changes in BibTeX mode.

*** Field names may now contain digits, hyphens, and underscores.
*** Font Lock mode is now supported.
*** bibtex-make-optional-field is no longer interactive.
*** If bibtex-maintain-sorted-entries is non-nil, inserting new
*** Function `show-all' is no longer bound to a key, since C-u C-c C-q
*** Entries with quotes inside quote-delimited fields (as `author =
*** Case in field names doesn't matter anymore when searching for help

** Font Lock mode

*** Global Font Lock mode
*** Local Refontification
** Follow mode
** hide-show changes.
** Simula mode now has a menu containing the most important commands.
** etags can now handle programs written in Erlang. Files are

** MSDOS Changes

*** It is now possible to compile Emacs with the version 2 of DJGPP.
*** The documentation of DOS-specific aspects of Emacs was rewritten
*** Emacs now uses ~ for backup file names, not .bak.
*** You can simulate mouse-3 on two-button mice by simultaneously
*** A number of packages and commands which previously failed or had
*** A number of packages and commands which previously failed or had
**** Printing (both with `M-x lpr-buffer' and with `ps-print' package)
**** `Ediff' works (in a single-frame mode).
**** `M-x display-time' can be used on MS-DOS (due to the new
**** `Dired' supports Unix-style shell wildcards.
**** The `c-macro-expand' command now works as on other platforms.
**** `M-x recover-session' works.
**** `M-x list-colors-display' displays all the available colors.

* Lisp changes in Emacs 19.31.

** The function using-unix-filesystems on Windows NT and Windows 95
** Change in system-type and system-configuration values.
** The functions shell-command and dired-call-process
** Undoing the deletion of text now restores the positions of markers
** Timers created with run-at-time now work internally to Emacs, and

** Timers created with run-at-time now work internally to Emacs, and

*** with-timeout provides an easy way to do something but give
*** You can now arrange to call a function whenever Emacs is idle for
*** post-command-idle-hook is now obsolete; you shouldn't use it at
*** y-or-n-p-with-timeout lets you ask a question but give up if
** Minor change to `encode-time': you can now pass more than seven
** The default value of load-path now includes the directory
** When your program contains a fixed file name (like .completions or
** The interactive spec N now returns the numeric prefix argument
** When a process is deleted, this no longer disconnects the process
** The variable garbage-collection-messages now controls whether
** The variable debug-ignored-errors specifies certain kinds of errors
** The new function error-message-string converts an error datum
** Anything that changes which buffer appears in a given window
** The new function get-buffer-window-list returns a list of windows displaying
** buffer-substring now runs the hook buffer-access-fontify-functions,

** Changes in lisp-mnt.el

*** The lisp-mnt package can now recognize file headers that are written
*** The commands lm-verify and lm-synopsis are now interactive. lm-verify
---------------------------------------------------------------------- Copyright information:

Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.

Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn.

Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. Local variables: mode: outline end: