*** empty log message ***
[bpt/emacs.git] / etc / NEWS
index 6375625..ce10e82 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -10,9 +10,79 @@ For older news, see the file ONEWS.
 
 ** `movemail' defaults to supporting POP.  You can turn this off using
 the --without-pop configure option, should that be necessary.
+
+** There are new configure options associated with the support for
+images and toolkit scrollbars.  Use the --help option to list them.
 \f
 * Changes in Emacs 21.1
 
+** Emacs now refuses to load compiled Lisp files which weren't
+compiled with Emacs.  Set `load-dangerous-libraries' to t to change
+this behavior.
+
+The reason for this change is an incompatible change in XEmacs' byte
+compiler.  Files compiled with XEmacs can contain byte codes that let
+Emacs dump core.
+
+** New X resources recognized
+
+*** The X resource `synchronous', class `Synchronous', specifies
+whether Emacs should run in synchronous mode.  Synchronous mode
+is useful for debugging X problems.
+
+Example:
+
+  emacs.synchronous: true
+
+*** The X resource `visualClass, class `VisualClass', specifies the
+visual Emacs should use.  The resource's value should be a string of
+the form `CLASS-DEPTH', where CLASS is the name of the visual class,
+and DEPTH is the requested color depth as a decimal number.  Valid
+visual class names are
+
+  TrueColor
+  PseudoColor
+  DirectColor
+  StaticColor
+  GrayScale
+  StaticGray
+
+Visual class names specified as X resource are case-insensitive, i.e.
+`pseudocolor', `Pseudocolor' and `PseudoColor' all have the same
+meaning.
+
+The program `xdpyinfo' can be used to list the visual classes
+supported on your display, and which depths they have.  If
+`visualClass' is not specified, Emacs uses the display's default
+visual.
+
+Example:
+
+  emacs.visualClass: TrueColor-8
+
+*** The X resource `privateColormap', class `PrivateColormap',
+specifies that Emacs should use a private colormap if it is using the
+default visual, and that visual is of class PseudoColor.  Recognized
+resource values are `true' or `on'.
+
+Example:
+
+  emacs.privateColormap: true
+
+** The menu bar configuration has changed.  The new configuration is
+more CUA-compliant.  The most significant change is that Options is
+now a separate menu-bar item, with Mule and Customize as its submenus.
+
+** User-option `show-cursor-in-non-selected-windows' controls how to
+display the cursor in non-selected windows.  If nil, no cursor is
+shown, if non-nil a hollow box cursor is shown.  This option can
+be customized.
+
+** The variable `echo-keystrokes' may now have a floating point value.
+
+** C-x 5 1 runs the new command delete-other-frames which deletes
+all frames except the selected one.
+
 ** If your init file is compiled (.emacs.elc), `user-init-file' is set
 to the source name (.emacs.el), if that exists, after loading it.
 
@@ -309,6 +379,8 @@ notably at the end of lines.
 All these functions have been rewritten to avoid inserting unwanted
 spaces, and an optional prefix now allows them to behave the old way.
 
+There is a new command M-x replace-rectangle.
+
 ** The new command M-x query-replace-regexp-eval acts like
 query-replace-regexp, but takes a Lisp expression which is evaluated
 after each match to get the replacement text.
@@ -681,6 +753,12 @@ matches are automatically cleared when you end the search.  If it is
 set to nil, you can remove the highlights manually with `M-x
 isearch-lazy-highlight-cleanup'.
 
+** Changes in sort.el
+
+The function sort-numeric-fields interprets numbers starting with `0'
+as octal and numbers starting with `0x' or `0X' as hexadecimal.  The
+new user-option sort-numberic-base can be used to specify a default
+numeric base.
 
 ** Ange-ftp allows you to specify of a port number in remote file
 names cleanly.  It is appended to the host name, separated by a hash
@@ -772,6 +850,57 @@ appropriate for C-style escape sequences in strings.
 
 ** New modes and packages
 
+*** The new command M-x re-builder offers a convenient interface for
+authoring regular expressions with immediate visual feedback.
+
+The buffer from which the command was called becomes the target for
+the regexp editor popping up in a separate window.  Matching text in
+the target buffer is immediately color marked during the editing.
+Each sub-expression of the regexp will show up in a different face so
+even complex regexps can be edited and verified on target data in a
+single step.
+
+On displays not supporting faces the matches instead blink like
+matching parens to make them stand out.  On such a setup you will
+probably also want to use the sub-expression mode when the regexp
+contains such to get feedback about their respective limits.
+
+*** glasses-mode is a minor mode that makes
+unreadableIdentifiersLikeThis readable.  It works as glasses, without
+actually modifying content of a buffer.
+
+*** The package ebnf2ps translates an EBNF to a syntactic chart in
+PostScript.
+
+Currently accepts ad-hoc EBNF, ISO EBNF and Bison/Yacc.
+
+The ad-hoc default EBNF syntax has the following elements:
+
+    ;          comment (until end of line)
+    A          non-terminal
+    "C"                terminal
+    ?C?                special
+    $A         default non-terminal
+    $"C"       default terminal
+    $?C?       default special
+    A = B.     production (A is the header and B the body)
+    C D                sequence (C occurs before D)
+    C | D      alternative (C or D occurs)
+    A - B      exception (A excluding B, B without any non-terminal)
+    n * A      repetition (A repeats n (integer) times)
+    (C)                group (expression C is grouped together)
+    [C]                optional (C may or not occurs)
+    C+         one or more occurrences of C
+    {C}+       one or more occurrences of C
+    {C}*       zero or more occurrences of C
+    {C}                zero or more occurrences of C
+    C / D      equivalent to: C {D C}*
+    {C || D}+  equivalent to: C {D C}*
+    {C || D}*  equivalent to: [C {D C}*]
+    {C || D}   equivalent to: [C {D C}*]
+
+Please, see ebnf2ps documentation for EBNF syntax and how to use it.
+
 *** The package align.el will align columns within a region, using M-x
 align.  Its mode-specific rules, based on regular expressions,
 determine where the columns should be split.  In C and C++, for
@@ -786,6 +915,13 @@ list-buffers or electric-buffer-list.  Use M-x bs-show to display a
 buffer menu with this package.  You can use M-x bs-customize to
 customize the package.
 
+*** calculator.el is a small calculator package that is intended to
+replace desktop calculators such as xcalc and calc.exe.  Actually, it
+is not too small - it has more features than most desktop calculators,
+and can be customized easily to get many more functions.  It should
+not be confused with "calc" which is a much bigger mathematical tool
+which answers different needs.
+
 *** The minor modes cwarn-mode and global-cwarn-mode highlights
 suspicious C and C++ constructions.  Currently, assignments inside
 expressions, semicolon following `if', `for' and `while' (except, of
@@ -892,6 +1028,15 @@ specific to Message mode.
 viewing/editing context diffs (patches).  It is selected for files
 with extension `.diff', `.diffs', `.patch' and `.rej'.
 
+*** EUDC, the Emacs Unified Directory Client, provides a common user
+interface to access directory servers using different directory
+protocols.  It has a separate manual.
+
+*** autoconf.el provides a major mode for editing configure.in files
+for Autoconf, selected automatically.
+
+*** windmove.el
+
 ** Withdrawn packages
 
 *** mldrag.el has been removed.  mouse.el provides the same
@@ -908,6 +1053,57 @@ 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.
 
+** Emacs' reader supports CL read syntax for integers in bases
+other than 10.
+
+*** `#BINTEGER' or `#bINTEGER' reads INTEGER in binary (radix 2).
+INTEGER optionally contains a sign.
+
+  #b1111 
+    => 15
+  #b-1111 
+    => -15
+
+*** `#OINTEGER' or `#oINTEGER' reads INTEGER in octal (radix 8).
+
+  #o666 
+    => 438
+
+*** `#XINTEGER' or `#xINTEGER' reads INTEGER in hexadecimal (radix 16).
+
+  #xbeef 
+    => 48815
+
+*** `#RADIXrINTEGER' reads INTEGER in radix RADIX, 2 <= RADIX <= 36.
+
+  #2R-111 
+    => -7
+  #25rah 
+    => 267
+
+** The function documentation-property now evaluates the value of
+the given property to obtain a a string if it doesn't refer to etc/DOC
+and isn't a string.
+
++++
+** The last argument of `define-key-after' defaults to t for convenience.
+
+** The new function `replace-regexp-in-string' replaces all matches
+for a regexp in a string.
+
+** `mouse-position' now runs the abnormal hook
+`mouse-position-function'.
+
+** The function string-to-number now returns a float for numbers
+that don't fit into a Lisp integer.
+
+** The variable keyword-symbols-constants-flag has been removed.
+Keywords are now always considered constants.
+
++++
+** The new function `delete-and-extract-region' deletes text and
+returns it.
+
 ** The function `clear-this-command-keys' now also clears the vector
 returned by function `recent-keys'.
 
@@ -952,8 +1148,8 @@ saved table is restored, even in case of an abnormal exit.  Value is
 what BODY returns.
 
 +++
-** Regular expressions now support Perl's non-greedy *? +? and ??
-operators.
+** Regular expressions now support intervals \{n,m\} as well as
+Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
 
 +++
 ** The optional argument BUFFER of function file-local-copy has been
@@ -1022,7 +1218,8 @@ as the place that holds the list to be changed.
 
 ** New dolist and dotimes macros.
 
-The dolist and dotimes macros of Common Lisp are now available.
+Simple versions of the dolist and dotimes macros of Common Lisp
+are now defined in Emacs Lisp.
 
 (dolist (VAR LIST [RESULT]) BODY...)
       Execute body once for each element of LIST,
@@ -1738,6 +1935,18 @@ modify their color-related behavior.
 The primitives `color-gray-p' and `color-supported-p' also work for
 any frame type.
 
+** Platform-independent functions to describe display capabilities.
+
+The new functions `display-mouse-p', `display-popup-menus-p',
+`display-graphic-p', `display-selections-p', `display-screens',
+`display-pixel-width', `display-pixel-height', `display-mm-width',
+`display-mm-height', `display-backing-store', `display-save-under',
+`display-planes', `display-color-cells', `display-visual-class', and
+`display-grayscale-p' describe the basic capabilities of a particular
+display.  Lisp programs should call these functions instead of testing
+the value of the variables `window-system' or `system-type', or calling
+platform-specific functions such as `x-display-pixel-width'.
+
 +++
 ** The minibuffer prompt is now actually inserted in the minibuffer.
 
@@ -2515,6 +2724,13 @@ temporarily to nil, for example
 
 Likewise, an attempt to split a fixed-height window vertically,
 or a fixed-width window horizontally results in a error.
+
+** The cursor-type frame parameter is now supported on MS-DOS
+terminals.  When Emacs starts, it by default changes the cursor shape
+to a solid box, as it does on Unix.  The `cursor-type' frame parameter
+overrides this as it does on Unix, except that the bar cursor is
+horizontal rather than vertical (since the MS-DOS display doesn't
+support a vertical-bar cursor).
 ^L
 * Emacs 20.5 is a bug-fix release with no user-visible changes.
 
@@ -2659,6 +2875,18 @@ current codepage when it starts.
 
 ** Mail changes
 
+*** When mail is sent using compose-mail (C-x m), and if
+`mail-send-nonascii' is set to the new default value `mime',
+appropriate MIME headers are added.  The headers are added only if
+non-ASCII characters are present in the body of the mail, and no other
+MIME headers are already present.  For example, the following three
+headers are added if the coding system used in the *mail* buffer is
+latin-1:
+
+  MIME-version: 1.0
+  Content-type: text/plain; charset=iso-8859-1
+  Content-Transfer-Encoding: 8bit
+
 *** The new variable default-sendmail-coding-system specifies the
 default way to encode outgoing mail.  This has higher priority than
 default-buffer-file-coding-system but has lower priority than
@@ -5441,6 +5669,11 @@ Use M-x dsssl-mode.
 
 ** Changes to the emacsclient program
 
+*** If a socket can't be found, and environment variables LOGNAME or
+USER are set, emacsclient now looks for a socket based on the UID
+associated with the name.  That is an emacsclient running as root
+can connect to an Emacs server started by a non-root user.
+
 *** The emacsclient program now accepts an option --no-wait which tells
 it to return immediately without waiting for you to "finish" the
 buffer in Emacs.