Suggest to use --color if the terminal capabilities lie.
[bpt/emacs.git] / etc / NEWS
index 4726499..e246f33 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,13 +1,16 @@
 GNU Emacs NEWS -- history of user-visible changes.  2001-03-15
-Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002 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
 
-Temporary note: +++ indicates that the appropriate manual
-has already been updated.  --- means no change in the manuals
-is called for.
+Temporary note:
+ +++ indicates that the appropriate manual has already been updated.
+ --- means no change in the manuals is called for.
+When you add a new item, please add it without either +++ or ---
+so we will look at it
+
 \f
 * Installation Changes in Emacs 21.3
 
@@ -15,16 +18,116 @@ is called for.
 `--program-suffix' and `--program-transform-name' that affect the names of
 installed programs.
 
+---
+** Leim is now part of the Emacs distribution.
+You no longer need to download a separate tarball in order to build
+Emacs with Leim.
+
+** Support for FreeBSD/Alpha has been added.
+
 \f
 * Changes in Emacs 21.3
 
++++
+** Emacs can now be invoked in full-screen mode on a windowed display.
+
+When Emacs is invoked on a window system, the new command-line options
+`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
+whose width, height, or both width and height take up the entire
+screen size.  (For now, this works only on GNU and Unix systems, and
+not with every window manager.)
+
+** Info-index finally offers completion.
+
+** Controlling the left and right fringe widths.
+
+The left and right fringe widths can now be controlled by setting the
+`left-fringe' and `right-fringe' frame parameters to an integer value
+specifying the width in pixels.  Setting the width to 0 effectively
+removes the corresponding fringe.
+
+The actual fringe widths may deviate from the specified widths, since
+the combined fringe widths must match an integral number of columns.
+The extra width is distributed evenly between the left and right fringe.
+For force a specific fringe width, specify the width as a negative
+integer (if both widths are negative, only the left fringe gets the
+specified width).
+
+Setting the width to nil (the default), restores the default fringe
+width which is the minimum number of pixels necessary to display any
+of the currently defined fringe bitmaps.  The width of the built-in
+fringe bitmaps is 8 pixels.
+
+** Changes in C-h bindings:
+
+C-h e displays the *Messages* buffer.
+
+C-h followed by a control character is used for displaying files
+    that do not change:
+
+C-h C-f displays the FAQ.
+C-h C-e displays the PROBLEMS file.
+
+The info-search bindings on C-h C-f, C-h C-k and C-h C-i
+have been moved to C-h F, C-h K and C-h S.
+
+** C-w in incremental search now grabs either a character or a word,
+making the decision in a heuristic way.  This new job is done by the
+command `isearch-yank-word-or-char'.  To restore the old behavior,
+bind C-w to `isearch-yank-word' in `isearch-mode-map'.
+
+** In GUD mode when talking to GDB, C-x C-a C-j "jumps" the program
+counter to the specified source line (the one where point is).
+
+** hide-ifdef-mode now uses overlays rather than selective-display
+to hide its text.  This should be mostly transparent but slightly
+changes the behavior of motion commands line C-e and C-p.
+
+** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+control substitution of the file names only when they are surrounded
+by whitespace.  This means you can now use them as shell wildcards
+too.  If you want to use just plain `*' as a wildcard, type `*""'; the
+doublequotes make no difference in the shell, but they prevent
+special treatment in `dired-do-shell-command'.
+
+** Unquoted `$' in file names do not signal an error any more when
+the corresponding environment variable does not exist.
+Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
+is only rarely needed.
+
 ** jit-lock can now be delayed with `jit-lock-defer-time'.
-If it is set to 0.5, fontification will only happen after 0.5s of idle time.
+
+If this variable is non-nil, its value should be the amount of Emacs
+idle time in seconds to wait before starting fontification.  For
+example, if you set `jit-lock-defer-time' to 0.25, fontification will
+only happen after 0.25s of idle time.
 
 ** If you hit M-C-SPC (mark-sexp) repeatedly, the marked region
 will now be extended each time, so you can mark the next two sexps with
 M-C-SPC M-C-SPC, for example.
 
+** In the *Occur* buffer, `o' switches to it in another window, and
+C-o displays the current line's occurrence in another window without
+switching to it.
+
+** When you specify a frame size with --geometry, the size applies to
+all frames you create.  A position specified with --geometry only
+affects the initial frame.
+
++++
+** M-h (mark-paragraph) now accepts a prefix arg.
+With positive arg, M-h marks the current and the following paragraphs;
+if the arg is negative, it marks the current and the preceding
+paragraphs.
+
+** In Dired, the w command now copies the current line's file name
+into the kill ring.
+
+** The variables dired-free-space-program and dired-free-space-args
+have been renamed to directory-free-space-program and
+directory-free-space-args, and they now apply whenever Emacs puts a
+directory listing into a buffer.
+
 ** mouse-wheels can now scroll a specific fraction of the window
 (rather than a fixed number of lines) and the scrolling is `progressive'.
 
@@ -37,11 +140,16 @@ it inserts non-ASCII chars if you hit M-i), you will need to add
 
 to your .emacs to revert to the old behavior.
 
+** A new coding system `euc-tw' has been added for traditional Chinese
+in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
+Big 5 is then converted to CNS.
+
 +++
 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
-automatically at startup, if it exists.  And it always offers to save
-abbrevs (if you have changed them) when if offers to save modified
-buffers.
+automatically at startup, if it exists.  When Emacs offers to save
+modified buffers, it saves the abbrevs too if they have changed.  It
+can do this either silently or asking for confirmation first,
+according to the value of `save-abbrevs'.
 
 ** Display of hollow cursors now obeys the buffer-local value (if any)
 of `cursor-in-non-selected-windows' in the buffer that the cursor
@@ -53,6 +161,17 @@ were changed.
 ** On terminals whose erase-char is ^H (Backspace), Emacs
 now uses normal-erase-is-backspace-mode.
 
+** Etags changes.
+
+*** In Prolog, etags creates tags for rules in addition to predicates.
+
+*** In Perl, packages are tags.  Subroutine tags are named from their
+package.  You can jump to sub tags as you did before, by the sub name, or
+additionally by looking for package::sub.
+
+*** New language PHP: tags are functions, classes and defines.  If
+the --members option is specified to etags, tags are vars also.
+
 +++
 ** The command line option --no-windows has been changed to
 --no-window-system.  The old one still works, but is deprecated.
@@ -74,6 +193,10 @@ i.e., there is always a closing tag.
 When not customized, it becomes buffer-local when it can be inferred
 from the file name or buffer contents.
 
+** New user option `isearch-resume-enabled'.
+This option can be disabled, to avoid the normal behaviour of isearch
+which puts calls to `isearch-resume' in the command history.
+
 ** When the *scratch* buffer is recreated, its mode is set from
 initial-major-mode, which normally is lisp-interaction-mode,
 instead of using default-major-mode.
@@ -118,6 +241,14 @@ in case it has been renamed.
 This enables Emacs to work better with programs that need to track
 the cursor, for example screen magnifiers and text to speech programs.
 
+** Tooltips now work on MS Windows.
+See the Emacs 21.1 NEWS entry for tooltips for details.
+
+** Pointing devices with more than 3 buttons are now supported on MS Windows.
+The new variable `w32-pass-extra-mouse-buttons-to-system' controls
+whether Emacs should handle the extra buttons itself (the default), or
+pass them to Windows to be handled with system-wide functions.
+
 ---
 ** A French translation of the `Emacs Survival Guide' is available.
 
@@ -139,13 +270,28 @@ available in `etc/calccard.tex' and `etc/calccard.ps'.
 
 The ELisp reference manual in Info format is built as part of the
 Emacs build procedure and installed together with the Emacs User
-Manual.
+Manual.  A menu item was added to the menu bar that makes it easy
+accessible (Help->More Manuals->Emacs Lisp Reference).
+
+*** The Introduction to Programming in Emacs Lisp manual is now part of
+the distribution.
+
+This manual is now part of the standard distribution and is installed,
+together with the Emacs User Manual, into the Info directory.  A menu
+item was added to the menu bar that makes it easy accessible
+(Help->More Manuals->Introduction to Emacs Lisp).
 
 *** The ruler-mode.el library provides a minor mode for displaying an
 "active" ruler in the header line.  You can use the mouse to visually
 change the `fill-column', `window-margins' and `tab-stop-list'
 settings.
 
+*** The reveal.el package provides the minor modes `reveal-mode' and
+`global-reveal-mode' which will make text visible on the fly as you
+move your cursor into hidden region of the buffer.
+It should work with any package that uses overlays to hide parts
+of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
+
 *** master-mode.el implements a minor mode for scrolling a slave
 buffer without leaving your current buffer, the master buffer.
 
@@ -169,6 +315,58 @@ SQL buffer.
 \f
 * Lisp Changes in Emacs 21.3
 
+** Already true in Emacs 21.1, but not emphasized clearly enough:
+
+Multibyte buffers can now faithfully record all 256 character codes
+from 0 to 255.  As a result, most of the past reasons to use unibyte
+buffers no longer exist.  We only know of three reasons to use them
+now:
+
+1. If you prefer to use unibyte text all of the time.
+
+2. For reading files into temporary buffers, when you want to avoid
+the time it takes to convert the format.
+
+3. For binary files where format conversion would be pointless and
+wasteful.
+
+** If text has a `keymap' property, that keymap takes precedence
+over minor mode keymaps.
+
+** A hex escape in a string forces the string to be multibyte.
+An octal escape makes it unibyte.
+
+** The position after an invisible, intangible character
+is considered an unacceptable value for point;
+intangibility processing effectively treats the following character
+as part of the intangible region even if it is not itself intangible.
+
+Thus, point can go before an invisible, intangible region, but not
+after it.  This prevents C-f and C-b from appearing to stand still on
+the screen.
+
++++
+** define-abbrev now accepts an optional argument SYSTEM-FLAG.  If
+non-nil, this marks the abbrev as a "system" abbrev, which means that
+it won't be stored in the user's abbrevs file if he saves the abbrevs.
+Major modes that predefine some abbrevs should always specify this
+flag.
+
+** Support for Mocklisp has been removed.
+
+** The function insert-string is now obsolete.
+
+** The precedence of file-name-handlers has been changed.
+Instead of blindly choosing the first handler that matches,
+find-file-name-handler now gives precedence to a file-name handler
+that matches near the end of the file name.  More specifically, the
+handler whose (match-beginning 0) is the largest is chosen.
+In case of ties, the old "first matched" rule applies.
+
+** Dense keymaps now handle inheritance correctly.
+Previously a dense keymap would hide all of the simple-char key
+bindings of the parent keymap.
+
 ** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
 If a piece of text with that property gets contextually refontified
 (see jit-lock-defer-contextually), then all of that text will
@@ -188,7 +386,7 @@ property over the second half of the command to force (deferred)
 refontification of `bar' whenever the `e' is added/removed.
 
 ** describe-vector now takes a second argument `describer' which is
-called to print the entries' values.  It default to `princ'.
+called to print the entries' values.  It defaults to `princ'.
 
 ** defcustom and other custom declarations now use a default group
 (the last group defined in the same file) when no :group was given.
@@ -196,9 +394,13 @@ called to print the entries' values.  It default to `princ'.
 ** emacsserver now runs pre-command-hook and post-command-hook when
 it receives a request from emacsclient.
 
-** The default value of paragraph-start and indent-line-function has
-been changed to reflect the one used in text-mode rather than the one
-used in indented-text-mode.
+** The variable `recursive-load-depth-limit' has been deleted.
+Emacs now signals an error if the same file is loaded with more
+than 3 levels of nesting.
+
+** The default values of paragraph-start and indent-line-function have
+been changed to reflect those used in Text mode rather than those used
+in Indented-Text mode.
 
 ** If a major mode function has a non-nil `no-clone-indirect'
 property, `clone-indirect-buffer' signals an error if you use
@@ -208,8 +410,8 @@ it in that buffer.
 `query-replace' and related functions simply ignore
 a match if part of it has a read-only property.
 
-** In `replace-match', the replacement replacement text no longer
-inherits properties from surrounding text.
+** In `replace-match', the replacement text no longer inherits
+properties from surrounding text.
 
 ** New function `buffer-local-value'.
 
@@ -294,11 +496,21 @@ the file is copied to that directory instead of signaling an error.
 ** The variables most-positive-fixnum and most-negative-fixnum
 have been moved from the CL package to the core.
 
+** On MS Windows, locale-coding-system is used to interact with the OS.
+The Windows specific variable w32-system-coding-system, which was
+formerly used for that purpose is now an alias for locale-coding-system.
+
 ** New packages:
 
 *** The new package syntax.el provides an efficient way to find the
 current syntactic context (as returned by parse-partial-sexp).
 
+*** The TCL package tcl-mode.el was replaced by tcl.el.
+This was actually done in Emacs-21.1, and was not documented.
+
+*** The new package Ibuffer provides a powerful, completely
+customizable replacement for buff-menu.el.
+
 \f
 * Installation Changes in Emacs 21.1
 
@@ -469,8 +681,7 @@ if Emacs has been built with XPM image support.  Otherwise monochrome
 icons will be used.
 
 To make the tool bar more useful, we need contributions of extra icons
-for specific modes (with copyright assignments).  Contributions would
-also be useful to touch up some of the PBM icons manually.
+for specific modes (with copyright assignments).
 
 ** Tooltips.
 
@@ -2544,7 +2755,7 @@ will not have any effect when support for this variable is removed.
 
 ** Function assq-delete-all replaces function assoc-delete-all.
 
-** The new function amimate-string, from lisp/play/animate.el
+** The new function animate-string, from lisp/play/animate.el
 allows the animated display of strings.
 
 ** The new function `interactive-form' can be used to obtain the
@@ -2752,11 +2963,6 @@ patterns are checked against file contents instead of file names.
 \f
 * Lisp changes in Emacs 21.1 (see following page for display-related features)
 
-Note that +++ before an item means the Lisp manual has been updated.
---- means that I have decided it does not need to be in the Lisp manual.
-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 package rx.el provides an alternative sexp notation for
 regular expressions.
 
@@ -3760,11 +3966,6 @@ below).
 \f
 * New Lisp-level Display features in Emacs 21.1
 
-Note that +++ before an item means the Lisp manual has been updated.
---- means that I have decided it does not need to be in the Lisp manual.
-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 function tty-suppress-bold-inverse-default-colors can be used
 to make Emacs avoid displaying text with bold black foreground on TTYs.