/[emacs]/emacs/etc/NEWS
ViewVC logotype

Diff of /emacs/etc/NEWS

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.690 by kfstorm, Tue Jun 11 22:33:52 2002 UTC revision 1.690.2.1 by miles, Fri Apr 4 06:19:49 2003 UTC
# Line 1  Line 1 
1  GNU Emacs NEWS -- history of user-visible changes.  2001-03-15  GNU Emacs NEWS -- history of user-visible changes.  2001-03-15
2  Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.  Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
3  See the end for copying conditions.  See the end for copying conditions.
4    
5  Please send Emacs bug reports to bug-gnu-emacs@gnu.org.  Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
# Line 9  Temporary note: Line 9  Temporary note:
9   +++ indicates that the appropriate manual has already been updated.   +++ indicates that the appropriate manual has already been updated.
10   --- means no change in the manuals is called for.   --- means no change in the manuals is called for.
11  When you add a new item, please add it without either +++ or ---  When you add a new item, please add it without either +++ or ---
12  so we will look at it  so we will look at it and add it to the manual.
13    
14    
15  * Installation Changes in Emacs 21.4  * Installation Changes in Emacs 21.4
16    
17    ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
18    when you run configure.  This requires Gtk+ 2.0 or newer.
19    
20    ---
21  ** Emacs can now be built without sound support.  ** Emacs can now be built without sound support.
22    
23    ** The `emacsserver' program has been removed, replaced with elisp code.
24    
25    ---
26  ** Emacs now supports new configure options `--program-prefix',  ** Emacs now supports new configure options `--program-prefix',
27  `--program-suffix' and `--program-transform-name' that affect the names of  `--program-suffix' and `--program-transform-name' that affect the names of
28  installed programs.  installed programs.
29    
30    ---
31  ** By default, Emacs now uses a setgid helper program to update game  ** By default, Emacs now uses a setgid helper program to update game
32  scores.  The directory ${localstatedir}/games/emacs is the normal  scores.  The directory ${localstatedir}/games/emacs is the normal
33  place for game scores to be stored.  This may be controlled by the  place for game scores to be stored.  This may be controlled by the
# Line 33  in each user's home directory. Line 41  in each user's home directory.
41  You no longer need to download a separate tarball in order to build  You no longer need to download a separate tarball in order to build
42  Emacs with Leim.  Emacs with Leim.
43    
44    +++
45    ** The Emacs Lisp Reference Manual is now part of the distribution.
46    
47    The ELisp reference manual in Info format is built as part of the
48    Emacs build procedure and installed together with the Emacs User
49    Manual.  A menu item was added to the menu bar that makes it easy
50    accessible (Help->More Manuals->Emacs Lisp Reference).
51    
52    ---
53    ** The Introduction to Programming in Emacs Lisp manual is now part of
54    the distribution.
55    
56    This manual is now part of the standard distribution and is installed,
57    together with the Emacs User Manual, into the Info directory.  A menu
58    item was added to the menu bar that makes it easy accessible
59    (Help->More Manuals->Introduction to Emacs Lisp).
60    
61    ** Support for Cygwin was added.
62    
63  ---  ---
64  ** Support for AIX 5.1 was added.  ** Support for AIX 5.1 was added.
65    
# Line 49  Emacs with Leim. Line 76  Emacs with Leim.
76  ** Support for MacOS X was added.  ** Support for MacOS X was added.
77  See the files mac/README and mac/INSTALL for build instructions.  See the files mac/README and mac/INSTALL for build instructions.
78    
79    ---
80  ** Support for GNU/Linux systems on X86-64 machines was added.  ** Support for GNU/Linux systems on X86-64 machines was added.
81    
82    ---
83    ** A French translation of the `Emacs Survival Guide' is available.
84    
85    ---
86    ** A French translation of the Emacs Tutorial is available.
87    
88    
89  * Changes in Emacs 21.4  * Changes in Emacs 21.4
90    
91  ** The appearance of the fringes can now be customized, using either  ** The default for the paper size (variable ps-paper-type) is taken
92  the global command M-x fringe-mode, the frame specific command M-x  from the locale.
93  set-fringe-style, the Show/Hide submenu of the top-level Options menu,  
94  or customizing the `fringe-mode' variable.  ** Init file changes
95    
96    You can now put the init files .emacs and .emacs_SHELL under
97    ~/.emacs.d or directly under ~.  Emacs will find them in either place.
98    
99    ** MH-E changes.
100    
101    Upgraded to MH-E version 7.2. There have been major changes since
102    version 5.0.2; see MH-E-NEWS for details.
103    
104    +++
105    ** The `emacsclient' command understands the options `--eval' and
106    `--display' which tell Emacs respectively to evaluate the given elisp
107    expression and to use the given display when visiting files.
108    
109    ** User option `server-mode' can be used to start a server process.
110    
111    +++
112    ** The mode line position information now comes before the major mode.
113    When the file is maintained under version control, that information
114    appears between the position information and the major mode.
115    
116    ** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
117    against its file, so you can see what changes you would be saving.
118    
119    +++
120    ** You can now customize the use of window fringes.  To control this
121    for all frames, use M-x fringe-mode or the Show/Hide submenu of the
122    top-level Options menu, or customize the `fringe-mode' variable.  To
123    control this for a specific frame, use the command M-x
124    set-fringe-style.
125    
126    +++
127  ** There is a new user option `mail-default-directory' that allows you  ** There is a new user option `mail-default-directory' that allows you
128  to specify the value of `default-directory' for mail buffers.  This  to specify the value of `default-directory' for mail buffers.  This
129  directory is used for auto-save files of mail buffers.  It defaults to  directory is used for auto-save files of mail buffers.  It defaults to
130  "~/".  "~/".
131    
132    +++
133    ** When you are root, and you visit a file whose modes specify
134    read-only, the Emacs buffer is now read-only too.  Type C-x C-q if you
135    want to make the buffer writable.  (As root, you will in fact be able
136    to alter the file.)
137    
138    ** The new command `revert-buffer-with-coding-system' (C-x RET r)
139    revisits the current file using a coding system that you specify.
140    
141    ** The new command `recode-file-name' changes the encoding of the name
142    of a file.
143    
144  ---  ---
145  ** ps-print can now print Unicode characters.  ** `ps-print' can now print characters from the mule-unicode charsets.
146    
147  Printing text with characters from the mule-unicode-* sets works with  Printing text with characters from the mule-unicode-* sets works with
148  ps-print, provided that you have installed the appropriate BDF fonts.  ps-print, provided that you have installed the appropriate BDF fonts.
# Line 89  Setting these variables directly does no Line 167  Setting these variables directly does no
167  the Buffers menu is regenerated.  the Buffers menu is regenerated.
168    
169  +++  +++
 ** `C-u C-x =' now displays text properties of the character at point.  
   
170  ** The commands M-x customize-face and M-x customize-face-other-window  ** The commands M-x customize-face and M-x customize-face-other-window
171  now look at the text at point.  If that text has a face specified,  now look at the character after point.  If a face or faces are
172  the commands suggest to customize that face.  specified for that character, the commands by default customize those
173    faces.
174    
175    ** New language environments: French, Ukrainian, Windows-1251, Tajik,
176    Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6,
177    Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian,
178    Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW.  (Set up
179    automatically according to the locale.)
180    
181    ** Indian support has been updated.
182    The in-is13194 coding system is now Unicode-based.  CDAC fonts are
183    assumed.  There is a framework for supporting various
184    Indian scripts, but currently only Devanagari, Malayalam and Tamil are
185    supported.
186    
187    ---
188    ** New input methods: latin-alt-postfix, latin-postfix, latin-prefix,
189    ukrainian-computer, belarusian, bulgarian-bds, russian-computer,
190    vietnamese-telex, lithuanian-numeric, lithuanian-keyboard,
191    latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml,
192    bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript,
193    tamil-inscript.
194    
195  ** Limited support for charset unification has been added.  ---
196  By default, Emacs now knows how to translate latin-N chars between their  ** A new coding system `euc-tw' has been added for traditional Chinese
197  charset and some other latin-N charset or unicode.  You can force a  in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
198  more complete unification by calling (unify-8859-on-decoding-mode 1).  Big 5 is then converted to CNS.
199    
200    ---
201    ** Many new coding systems are available by loading the `code-pages'
202    library.  These include complete versions of most of those in
203    codepage.el, based on Unicode mappings.
204    
205    ** The utf-8 coding system has been enhanced.  Untranslatable utf-8
206    sequences (mostly representing CJK characters) are composed into
207    single quasi-characters.  User option `utf-translate-cjk' arranges to
208    translate many utf-8 CJK character sequences into real Emacs
209    characters in a similar way to the Mule-UCS system.  The utf-8 coding
210    system will now encode characters from most of Emacs's one-dimensional
211    internal charsets, specifically the ISO-8859 ones.
212    
213    ** iso-10646-1 (`Unicode') fonts can be used to display any range of
214    characters encodable by the utf-8 coding system.  Just specify the
215    fontset appropriately.
216    
217    ** New command `ucs-insert' inserts a character specified by its
218    unicode.
219    
220    +++
221    ** Limited support for character `unification' has been added.
222    Emacs now knows how to translate between different representations of
223    the same characters in various Emacs charsets according to standard
224    Unicode mappings.  This applies mainly to characters in the ISO 8859
225    sets plus some other 8-bit sets, but can be extended.  For instance,
226    translation works amongst the Emacs ...-iso8859-... charsets and the
227    mule-unicode-... ones.
228    
229    By default this translation will happen automatically on encoding.
230    Self-inserting characters are translated to make the input conformant
231    with the encoding of the buffer in which it's being used, where
232    possible.
233    
234    You can force a more complete unification with the user option
235    unify-8859-on-decoding-mode.  That maps all the Latin-N character sets
236    into Unicode characters (from the latin-iso8859-1 and
237    mule-unicode-0100-24ff charsets) on decoding.  Note that this mode
238    will often effectively clobber data with an iso-2022 encoding.
239    
240    ** There is support for decoding Greek and Cyrillic characters into
241    either Unicode (the mule-unicode charsets) or the iso-8859 charsets,
242    when possible.  The latter are more space-efficient.  This is
243    controlled by user option utf-fragment-on-decoding.
244    
245    ** The new command `set-file-name-coding-system' (C-x RET F) sets
246    coding system for encoding and decoding file names.  A new menu item
247    (Options->Mule->Set Coding Systems->For File Name) invokes this
248    command.
249    
250  ---  ---
251  ** The scrollbar under Motif has a smoother drag-scrolling.  ** The scrollbar under LessTif or Motif has a smoother drag-scrolling.
252  On the other hand, the size of the thumb does not represent the actual  On the other hand, the size of the thumb does not represent the actual
253  amount of text shown any more (only a crude approximation of it).  amount of text shown any more (only a crude approximation of it).
254    
# Line 130  when Emacs visits them. Line 277  when Emacs visits them.
277  default, all trivial operations involving whole lines are performed  default, all trivial operations involving whole lines are performed
278  automatically.  The game uses faces for better visual feedback.  automatically.  The game uses faces for better visual feedback.
279    
280  ** On X and MS Windows, the blinking cursor's "off" state is now shown  +++
281  as a hollow box or a thin bar.  ** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
282    now shown as a hollow box or a thin bar.  However, you can control how
283    it blinks off by setting the variable `blink-cursor-alist'.
284    
285    
286  +++  +++
287  ** Emacs now supports ICCCM Extended Segments in X selections.  ** Emacs now supports compound-text Extended Segments in X selections.
288    
289  Some versions of X, notably XFree86, use Extended Segments to encode  Some versions of X, notably XFree86, use Extended Segments to encode
290  in X selections characters that belong to character sets which are not  in X selections characters that belong to character sets which are not
291  part of the list of standard charsets supported by the ICCCM spec.  part of the list of approved standard encodings defined by the
292  Examples of such non-standard character sets include ISO 8859-14, ISO  compound text spec.  An example of such non-standard encodings is
293  8859-15, KOI8-R, and BIG5.  The new coding system  BIG5.  The new coding system `compound-text-with-extensions' supports
294  `compound-text-with-extensions' supports these extensions, and is now  these extensions, and is now used by default for encoding and decoding
295  used by default for encoding and decoding X selections.  If you don't  X selections.  If you don't want this support, set
296  want this support, set `selection-coding-system' to `compound-text'.  `selection-coding-system' to `compound-text'.
297    
298  +++  +++
299  ** The parameters of automatic hscrolling can now be customized.  ** The parameters of automatic hscrolling can now be customized.
# Line 158  window so as to center point.  If its va Line 308  window so as to center point.  If its va
308  many columns to scroll.  If the value is a floating-point number, it  many columns to scroll.  If the value is a floating-point number, it
309  gives the fraction of the window's width to scroll the window.  gives the fraction of the window's width to scroll the window.
310    
311    The variable `automatic-hscrolling' was renamed to
312    `auto-hscroll-mode'.  The old name is still available as an alias.
313    
314  +++  +++
315  ** The user option `tex-start-options-string' has been replaced  ** The user option `tex-start-options-string' has been replaced
316  by two new user options: `tex-start-options', which should hold  by two new user options: `tex-start-options', which should hold
# Line 165  command-line options to feed to TeX, and Line 318  command-line options to feed to TeX, and
318  TeX commands to use at startup.  TeX commands to use at startup.
319    
320  +++  +++
 ** The variable `automatic-hscrolling' was renamed to `auto-hscroll-mode'.  
 The old name is still available as an alias.  
   
 +++  
321  ** New display feature: focus follows mouse.  If you set the variable  ** New display feature: focus follows mouse.  If you set the variable
322  mouse-autoselect-window to non-nil value, moving the mouse to a different  mouse-autoselect-window to non-nil value, moving the mouse to a different
323  Emacs window will select that window (minibuffer window can be selected  Emacs window will select that window (minibuffer window can be selected
324  only when it is active).  The default is nil, so that this feature is not  only when it is active).  The default is nil, so that this feature is not
325  enabled.  enabled.
326    
327  ** The new command `describe-text-at' pops up a buffer with description  +++
328  of text properties, overlays, and widgets at point, and lets you get  ** The new command `describe-char' (C-u C-x =) pops up a buffer with
329  more information about them, by clicking on mouse-sensitive areas or  description various information about a character, including its
330  moving there and pressing RET.  encodings and syntax, its text properties, overlays, and widgets at
331    point.  You can get more information about some of them, by clicking
332    on mouse-sensitive areas or moving there and pressing RET.
333    
334  +++  +++
335  ** The new command `multi-occur' is just like `occur', except it can  ** The new command `multi-occur' is just like `occur', except it can
# Line 215  the mode line of the currently selected Line 366  the mode line of the currently selected
366  The new variable `mode-line-in-non-selected-windows' controls whether  The new variable `mode-line-in-non-selected-windows' controls whether
367  the `mode-line-inactive' face is used.  the `mode-line-inactive' face is used.
368    
369    ---
370  ** A menu item "Show/Hide" was added to the top-level menu "Options".  ** A menu item "Show/Hide" was added to the top-level menu "Options".
371  This menu allows you to turn various display features on and off (like  This menu allows you to turn various display features on and off (such
372  tool bar and the menu bar itself).  You can also move the vertical  as the fringes, the tool bar, the speedbar, and the menu bar itself).
373  scroll bar to either side here or turn it off completely.  There is also  You can also move the vertical scroll bar to either side here or turn
374  a menu-item to toggle displaying of current date and time, current line  it off completely.  There is also a menu-item to toggle displaying of
375  and column number in the mode-line.  current date and time, current line and column number in the
376    mode-line.
377    
378    ---
379  ** Speedbar has moved from the "Tools" top level menu to "Show/Hide".  ** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
380    
381  +++  +++
# Line 252  argument it toggles the mode. Line 406  argument it toggles the mode.
406  Turning off PC-Selection mode restores the global key bindings  Turning off PC-Selection mode restores the global key bindings
407  that were replaced by turning on the mode.  that were replaced by turning on the mode.
408    
409    +++
410  ** Emacs now displays a splash screen by default even if command-line  ** Emacs now displays a splash screen by default even if command-line
411  arguments were given.  The new command-line option --no-splash  arguments were given.  The new command-line option --no-splash
412  disables the splash screen; see also the variable  disables the splash screen; see also the variable
# Line 289  When Emacs is invoked on a window system Line 444  When Emacs is invoked on a window system
444  whose width, height, or both width and height take up the entire  whose width, height, or both width and height take up the entire
445  screen size.  (For now, this does not work with some window managers.)  screen size.  (For now, this does not work with some window managers.)
446    
447  ** Info-index finally offers completion.  ---
448    ** Info-index offers completion.
 ** shell-mode now supports programmable completion using `pcomplete'.  
449    
450    ---
451  ** Emacs now tries to set up buffer coding systems for HTML/XML files  ** Emacs now tries to set up buffer coding systems for HTML/XML files
452  automatically.  This is accomplished using the general mechanism of a  automatically.
 new variable called `auto-coding-functions', which you may add to.  If  
 the coding system is detected incorrectly, you may use coding: tags to  
 override them.  
453    
454  ** The new command `comint-input-previous-argument' in comint-derived  +++
455    ** The new command `comint-insert-previous-argument' in comint-derived
456  modes (shell-mode etc) inserts arguments from previous command lines,  modes (shell-mode etc) inserts arguments from previous command lines,
457  like bash's `ESC .' binding.  It is bound by default to `C-c .', but  like bash's `ESC .' binding.  It is bound by default to `C-c .', but
458  otherwise behaves quite similarly to the bash version.  otherwise behaves quite similarly to the bash version.
459    
460  ** 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.  
   
461  ** Changes in C-h bindings:  ** Changes in C-h bindings:
462    
463  C-h e displays the *Messages* buffer.  C-h e displays the *Messages* buffer.
# Line 357  to new-kill-line, these commands now rep Line 492  to new-kill-line, these commands now rep
492  - C-h w and C-h f new-kill-line reports:  - C-h w and C-h f new-kill-line reports:
493    new-kill-line is on C-k    new-kill-line is on C-k
494    
495    +++
496  ** C-w in incremental search now grabs either a character or a word,  ** C-w in incremental search now grabs either a character or a word,
497  making the decision in a heuristic way.  This new job is done by the  making the decision in a heuristic way.  This new job is done by the
498  command `isearch-yank-word-or-char'.  To restore the old behavior,  command `isearch-yank-word-or-char'.  To restore the old behavior,
499  bind C-w to `isearch-yank-word' in `isearch-mode-map'.  bind C-w to `isearch-yank-word' in `isearch-mode-map'.
500    
501    +++
502  ** Yanking text now discards certain text properties that can  ** Yanking text now discards certain text properties that can
503  be inconvenient when you did not expect them.  The variable  be inconvenient when you did not expect them.  The variable
504  `yank-excluded-properties' specifies which ones.  Insertion  `yank-excluded-properties' specifies which ones.  Insertion
505  of register contents and rectangles also discards these properties.  of register contents and rectangles also discards these properties.
506    
507    +++
508  ** Occur, Info, and comint-derived modes now support using  ** Occur, Info, and comint-derived modes now support using
509  M-x font-lock-mode to toggle fontification.  The variable  M-x font-lock-mode to toggle fontification.  The variable
510  `Info-fontify' is no longer applicable; to disable fontification,  `Info-fontify' is no longer applicable; to disable fontification,
511  remove `turn-on-font-lock' from `Info-mode-hook'.  remove `turn-on-font-lock' from `Info-mode-hook'.
512    
513  ** The Emacs Lisp byte-compiler now displays the actual line and  +++
 character position of errors, where possible.  Additionally, the form  
 of its warning and error messages have been brought more in line with  
 the output of other GNU tools.  
   
514  ** M-x grep now tries to avoid appending `/dev/null' to the command line  ** M-x grep now tries to avoid appending `/dev/null' to the command line
515  by using GNU grep `-H' option instead.  M-x grep will automatically  by using GNU grep `-H' option instead.  M-x grep will automatically
516  detect whether this is possible or not the first time it is invoked.  detect whether this is possible or not the first time it is invoked.
# Line 384  When `-H' is used, the grep command line Line 518  When `-H' is used, the grep command line
518  unchanged to the system to execute, which allows more complicated  unchanged to the system to execute, which allows more complicated
519  command lines to be used than was possible before.  command lines to be used than was possible before.
520    
521    ---
522  ** The face-customization widget has been reworked to be less confusing.  ** The face-customization widget has been reworked to be less confusing.
523  In particular, when you enable a face attribute using the corresponding  In particular, when you enable a face attribute using the corresponding
524  check-box, there's no longer a redundant `*' option in value selection  check-box, there's no longer a redundant `*' option in value selection
# Line 392  sense for the attribute.  When an attrib Line 527  sense for the attribute.  When an attrib
527  its check-box, then the (now ignored, but still present temporarily in  its check-box, then the (now ignored, but still present temporarily in
528  case you re-select the attribute) value is hidden.  case you re-select the attribute) value is hidden.
529    
530  ** In GUD mode when talking to GDB, C-x C-a C-j "jumps" the program  +++
531    ** When you set or reset a variable's value in a Customize buffer,
532    the previous value becomes the "backup value" of the variable.
533    You can go back to that backup value by selecting "Use Backup Value"
534    under the "[State]" button.
535    
536    ** The new customization type `float' specifies numbers with floating
537    point (no integers are allowed).
538    
539    +++
540    ** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
541  counter to the specified source line (the one where point is).  counter to the specified source line (the one where point is).
542    
543    ---
544  ** GUD mode improvements for jdb:  ** GUD mode improvements for jdb:
545    
546  *** Search for source files using jdb classpath and class  *** Search for source files using jdb classpath and class
# Line 431  counter to the specified source line (th Line 577  counter to the specified source line (th
577    
578  *** Do not allow debugger output history variable to grow without bounds.  *** Do not allow debugger output history variable to grow without bounds.
579    
580    +++
581  ** hide-ifdef-mode now uses overlays rather than selective-display  ** hide-ifdef-mode now uses overlays rather than selective-display
582  to hide its text.  This should be mostly transparent but slightly  to hide its text.  This should be mostly transparent but slightly
583  changes the behavior of motion commands line C-e and C-p.  changes the behavior of motion commands line C-e and C-p.
584    
585    +++
586  ** In Dired's ! command (dired-do-shell-command), `*' and `?' now  ** In Dired's ! command (dired-do-shell-command), `*' and `?' now
587  control substitution of the file names only when they are surrounded  control substitution of the file names only when they are surrounded
588  by whitespace.  This means you can now use them as shell wildcards  by whitespace.  This means you can now use them as shell wildcards
# Line 442  too.  If you want to use just plain `*' Line 590  too.  If you want to use just plain `*'
590  doublequotes make no difference in the shell, but they prevent  doublequotes make no difference in the shell, but they prevent
591  special treatment in `dired-do-shell-command'.  special treatment in `dired-do-shell-command'.
592    
593    +++
594  ** Dired's v command now runs external viewers to view certain  ** Dired's v command now runs external viewers to view certain
595  types of files.  The variable `dired-view-command-alist' controls  types of files.  The variable `dired-view-command-alist' controls
596  what external viewers to use and when.  what external viewers to use and when.
597    
598    +++
599  ** Unquoted `$' in file names do not signal an error any more when  ** Unquoted `$' in file names do not signal an error any more when
600  the corresponding environment variable does not exist.  the corresponding environment variable does not exist.
601  Instead, the `$ENVVAR' text is left as is, so that `$$' quoting  Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
602  is only rarely needed.  is only rarely needed.
603    
604    ---
605  ** jit-lock can now be delayed with `jit-lock-defer-time'.  ** jit-lock can now be delayed with `jit-lock-defer-time'.
606    
607  If this variable is non-nil, its value should be the amount of Emacs  If this variable is non-nil, its value should be the amount of Emacs
# Line 466  each time, so you can mark the next two Line 617  each time, so you can mark the next two
617  for example.  This feature also works for mark-end-of-sentence, if you  for example.  This feature also works for mark-end-of-sentence, if you
618  bind that to a key.  bind that to a key.
619    
620    +++
621  ** Some commands do something special in Transient Mark mode when the  ** Some commands do something special in Transient Mark mode when the
622  mark is active--for instance, they limit their operation to the  mark is active--for instance, they limit their operation to the
623  region.  Even if you don't normally use Transient Mark mode, you might  region.  Even if you don't normally use Transient Mark mode, you might
624  want to get this behavior from a particular command.  There are two  want to get this behavior from a particular command.  There are two
625  ways you can enable Transient Mark mode temporarily, and activate the  ways you can enable Transient Mark mode and activate the mark, for one
626  mark, for one command only.  command only.
627    
628  One is to type C-SPC C-SPC; this also sets the mark.  The other is to  One method is to type C-SPC C-SPC; this enables Transient Mark mode
629  type C-u C-x C-x, which does not alter the region.  and sets the mark at point.  The other method is to type C-u C-x C-x.
630    This enables Transient Mark mode temporarily but does not alter the
631  After these commands, Transient Mark mode remains enabled  mark or the region.
632  until you deactivate the mark--typically with a command that  
633  alters the buffer, or typing C-g.  After these commands, Transient Mark mode remains enabled until you
634    deactivate the mark.  That typically happens when you type a command
635    that alters the buffer, but you can also deactivate the mark by typing
636    C-g.
637    
638    +++
639  ** A prefix argument is no longer required to repeat a jump to a  ** A prefix argument is no longer required to repeat a jump to a
640  previous mark, i.e. C-u C-SPC C-SPC C-SPC ... will cycle through the  previous mark, i.e. C-u C-SPC C-SPC C-SPC ... will cycle through the
641  mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.  mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.
642    
643    +++
644  ** In the *Occur* buffer, `o' switches to it in another window, and  ** In the *Occur* buffer, `o' switches to it in another window, and
645  C-o displays the current line's occurrence in another window without  C-o displays the current line's occurrence in another window without
646  switching to it.  switching to it.
647    
648    +++
649  ** When you specify a frame size with --geometry, the size applies to  ** When you specify a frame size with --geometry, the size applies to
650  all frames you create.  A position specified with --geometry only  all frames you create.  A position specified with --geometry only
651  affects the initial frame.  affects the initial frame.
# Line 501  paragraphs. Line 659  paragraphs.
659  ** In Dired, the w command now copies the current line's file name  ** In Dired, the w command now copies the current line's file name
660  into the kill ring.  into the kill ring.
661    
662    +++
663  ** The variables dired-free-space-program and dired-free-space-args  ** The variables dired-free-space-program and dired-free-space-args
664  have been renamed to directory-free-space-program and  have been renamed to directory-free-space-program and
665  directory-free-space-args, and they now apply whenever Emacs puts a  directory-free-space-args, and they now apply whenever Emacs puts a
666  directory listing into a buffer.  directory listing into a buffer.
667    
668    ---
669  ** mouse-wheels can now scroll a specific fraction of the window  ** mouse-wheels can now scroll a specific fraction of the window
670  (rather than a fixed number of lines) and the scrolling is `progressive'.  (rather than a fixed number of lines) and the scrolling is `progressive'.
671    
672  ** The keyboard-coding-system is now automatically set based on  ** Unexpected yanking of text due to accidental clicking on the mouse
673  your current locale settings.  If it turns out that your terminal  wheel button (typically mouse-2) during wheel scrolling is now avoided.
674  does not support the encoding implied by your locale (for example,  This behaviour can be customized via the mouse-wheel-click-event and
675  it inserts non-ASCII chars if you hit M-i), you will need to add  mouse-wheel-inhibit-click-time variables.
   
         (set-keyboard-coding-system nil)  
676    
677  to your .emacs to revert to the old behavior.  +++
678    ** The keyboard-coding-system is now automatically set based on your
679  ** A new coding system `euc-tw' has been added for traditional Chinese  current locale settings if you are not using a window system.  This
680  in CNS encoding; it accepts both Big 5 and CNS as input; on saving,  may mean that the META key doesn't work but generates non-ASCII
681  Big 5 is then converted to CNS.  characters instead, depending on how the terminal (or terminal
682    emulator) works.  Use `set-keyboard-coding-system' (or customize
683    keyboard-coding-system) if you prefer META to work (the old default)
684    or if the locale doesn't describe the character set actually generated
685    by the keyboard.  See Info node `Single-Byte Character Support'.
686    
687  +++  +++
688  ** Emacs now reads the standard abbrevs file ~/.abbrev_defs  ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
# Line 529  modified buffers, it saves the abbrevs t Line 691  modified buffers, it saves the abbrevs t
691  can do this either silently or asking for confirmation first,  can do this either silently or asking for confirmation first,
692  according to the value of `save-abbrevs'.  according to the value of `save-abbrevs'.
693    
694    +++
695  ** Display of hollow cursors now obeys the buffer-local value (if any)  ** Display of hollow cursors now obeys the buffer-local value (if any)
696  of `cursor-in-non-selected-windows' in the buffer that the cursor  of `cursor-in-non-selected-windows' in the buffer that the cursor
697  appears in.  appears in.
698    
699    ** The variable `cursor-in-non-selected-windows' can now be set to any
700    of the recognized cursor types.
701    
702    +++
703  ** The default values of `tooltip-delay' and `tooltip-hide-delay'  ** The default values of `tooltip-delay' and `tooltip-hide-delay'
704  were changed.  were changed.
705    
706    ---
707  ** On terminals whose erase-char is ^H (Backspace), Emacs  ** On terminals whose erase-char is ^H (Backspace), Emacs
708  now uses normal-erase-is-backspace-mode.  now uses normal-erase-is-backspace-mode.
709    
710    ---
711  ** The variable `auto-save-file-name-transforms' now has a third element that  ** The variable `auto-save-file-name-transforms' now has a third element that
712  controls whether or not the function `make-auto-save-file-name' will  controls whether or not the function `make-auto-save-file-name' will
713  attempt to construct a unique auto-save name (e.g. for remote files).  attempt to construct a unique auto-save name (e.g. for remote files).
714    
715    +++
716    ** Diary sexp entries can have custom marking in the calendar.
717    Diary sexp functions which only apply to certain days (such as
718    `diary-block' or `diary-cyclic' now take an optional parameter MARK,
719    which is the name of a face or a single-character string indicating
720    how to highlight the day in the calendar display.  Specifying a
721    single-character string as @var{mark} places the character next to the
722    day in the calendar.  Specifying a face highlights the day with that
723    face.  This lets you have different colors or markings for vacations,
724    appointments, paydays or anything else using a sexp.
725    
726  ** VC Changes  ** VC Changes
727    
728    *** The key C-x C-q no longer checks files in or out, it only changes
729    the read-only state of the buffer (toggle-read-only).  We made this
730    change because we held a poll and found that many users were unhappy
731    with the previous behavior.  If you do prefer this behavior, you
732    can bind `vc-toggle-read-only' to C-x C-q in your .emacs:
733    
734        (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
735    
736    The function `vc-toggle-read-only' will continue to exist.
737    
738    +++
739  *** There is a new user option `vc-cvs-global-switches' that allows  *** There is a new user option `vc-cvs-global-switches' that allows
740  you to specify switches that are passed to any CVS command invoked  you to specify switches that are passed to any CVS command invoked
741  by VC.  These switches are used as "global options" for CVS, which  by VC.  These switches are used as "global options" for CVS, which
# Line 567  currently highlighted regions in an infe Line 758  currently highlighted regions in an infe
758  then it reverts to the old behavior and asks the user to select regions for  then it reverts to the old behavior and asks the user to select regions for
759  comparison.  comparison.
760    
761    *** The new command `ediff-backup' compares a file with its most recent
762    backup using `ediff'.  If you specify the name of a backup file,
763    `ediff-backup' compares it with the file of which it is a backup.
764    
765    +++
766  ** Etags changes.  ** Etags changes.
767    
768  *** In Prolog, etags creates tags for rules in addition to predicates.  *** New regular expressions features
769    
770    **** New syntax for regular expressions, multi-line regular expressions.
771    The syntax --ignore-case-regexp=/regex/ is now undocumented and retained
772    only for backward compatibility.  The new equivalent syntax is
773    --regex=/regex/i.  More generally, it is --regex=/TAGREGEX/TAGNAME/MODS,
774    where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or
775    more characters among `i' (ignore case), `m' (multi-line) and `s'
776    (single-line).  The `m' and `s' modifiers behave as in Perl regular
777    expressions: `m' allows regexps to match more than one line, while `s'
778    (which implies `m') means that `.' matches newlines.  The ability to
779    span newlines allows writing of much more powerful regular expressions
780    and rapid prototyping for tagging new languages.
781    
782    **** Regular expressions can use char escape sequences as in Gcc.
783    The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v,
784    respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL,
785    CR, TAB, VT,
786    
787    **** Regular expressions can be bound to a given language.
788    The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags
789    only for files of language LANGUAGE, and ignored otherwise.  This is
790    particularly useful when storing regexps in a file.
791    
792    **** Regular expressions can be read from a file.
793    The --regex=@regexfile option means read the regexps from a file, one
794    per line.  Lines beginning with space or tab are ignored.
795    
796    *** New language parsing features
797    
798    **** The `::' qualifier triggers C++ parsing in C file.
799    Previously, only the `template' and `class' keywords had this effect.
800    
801  *** In Perl, packages are tags.  **** In Perl, packages are tags.
802  Subroutine tags are named from their package.  You can jump to sub tags  Subroutine tags are named from their package.  You can jump to sub tags
803  as you did before, by the sub name, or additionally by looking for  as you did before, by the sub name, or additionally by looking for
804  package::sub.  package::sub.
805    
806  *** New default keywords for TeX.  **** New language PHP.
807    Tags are functions, classes and defines.
808    If the --members option is specified to etags, tags are vars also.
809    
810    **** New language HTML.
811    Title and h1, h2, h3 are tagged.  Also, tags are generated when name= is
812    used inside an anchor and whenever id= is used.
813    
814    **** New default keywords for TeX.
815  The new keywords are def, newcommand, renewcommand, newenvironment and  The new keywords are def, newcommand, renewcommand, newenvironment and
816  renewenvironment.  renewenvironment.
817    
818  *** New language PHP: tags are functions, classes and defines.  **** In Makefiles, constants are tagged.
819  If the --members option is specified to etags, tags are vars also.  If you want the old behavior instead, thus avoiding to increase the
820    size of the tags file, use the --no-globals option.
821    
822    **** In Prolog, etags creates tags for rules in addition to predicates.
823    
824  *** Honour #line directives.  *** Honour #line directives.
825  When Etags parses an input file that contains C preprocessor's #line  When Etags parses an input file that contains C preprocessor's #line
# Line 590  specified in those directives.  This is Line 828  specified in those directives.  This is
828  created from Cweb source files.  When Etags tags the generated file, it  created from Cweb source files.  When Etags tags the generated file, it
829  writes tags pointing to the source file.  writes tags pointing to the source file.
830    
831  *** New option --parse-stdin=FILE  *** New option --parse-stdin=FILE.
832  This option is mostly useful when calling etags from programs.  It can  This option is mostly useful when calling etags from programs.  It can
833  be used (only once) in place of a file name on the command line.  Etags  be used (only once) in place of a file name on the command line.  Etags
834  will read from standard input and mark the produced tags as belonging to  will read from standard input and mark the produced tags as belonging to
835  the file FILE.  the file FILE.
836    
 *** Regular expressions can use char escape sequences as in Gcc  
 These are the escapes \a, \b, \d, \e, \f, \n, \r, \t, \v.  
   
837  +++  +++
838  ** The command line option --no-windows has been changed to  ** The command line option --no-windows has been changed to
839  --no-window-system.  The old one still works, but is deprecated.  --no-window-system.  The old one still works, but is deprecated.
840    
841    +++
842  ** The command `list-text-properties-at' has been deleted because  ** The command `list-text-properties-at' has been deleted because
843  C-u C-x = gives the same information and more.  C-u C-x = gives the same information and more.
844    
845    +++
846  ** `buffer-menu' and `list-buffers' now list buffers whose names begin  ** `buffer-menu' and `list-buffers' now list buffers whose names begin
847  with a space, if they visit files.  with a space, when those buffers are visiting files.  Normally buffers
848    whose names begin with space are omitted.
849    
850    +++
851  ** You can now customize fill-nobreak-predicate to control where  ** You can now customize fill-nobreak-predicate to control where
852  filling can break lines.  We provide two sample predicates,  filling can break lines.  We provide two sample predicates,
853  fill-single-word-nobreak-p and fill-french-nobreak-p.  fill-single-word-nobreak-p and fill-french-nobreak-p.
854    
855    +++
856  ** New user option `add-log-always-start-new-record'.  ** New user option `add-log-always-start-new-record'.
857  When this option is enabled, M-x add-change-log-entry will always  When this option is enabled, M-x add-change-log-entry will always
858  start a new record regardless of when the last record is.  start a new record regardless of when the last record is.
859    
860  ** New user option `sgml-xml'.  +++
861    ** SGML mode has indentation and supports XML syntax.
862    The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
863  When this option is enabled, SGML tags are inserted in XML style,  When this option is enabled, SGML tags are inserted in XML style,
864  i.e., there is always a closing tag.  i.e., there is always a closing tag.
865  When not customized, it becomes buffer-local when it can be inferred  By default, its setting is inferred on a buffer-by-buffer basis
866  from the file name or buffer contents.  from the file name or buffer contents.
867    
868  ** `xml-mode' is now an alias for `smgl-mode', which has XML support.  +++
869    ** `xml-mode' is now an alias for `sgml-mode', which has XML support.
870    
871    +++
872  ** New user option `isearch-resume-enabled'.  ** New user option `isearch-resume-enabled'.
873  This option can be disabled, to avoid the normal behaviour of isearch  This option can be disabled, to avoid the normal behavior of isearch
874  which puts calls to `isearch-resume' in the command history.  which puts calls to `isearch-resume' in the command history.
875    
876  ---  ---
# Line 635  initial-major-mode, which normally is li Line 879  initial-major-mode, which normally is li
879  instead of using default-major-mode.  instead of using default-major-mode.
880    
881  ---  ---
882  ** Lisp-mode now uses font-lock-doc-face for the docstrings.  ** Lisp mode now uses font-lock-doc-face for the docstrings.
883    
884  ** perl-mode has a new variable `perl-indent-continued-arguments'.  ---
885    ** Perl mode has a new variable `perl-indent-continued-arguments'.
886    
887  ** fortran-mode has a new variable `fortran-directive-re'.  +++
888    ** Fortran mode has a new variable `fortran-directive-re'.
889    Adapt this to match the format of any compiler directives you use.
890    Lines that match are never indented, and are given distinctive font-locking.
891    
892  ** f90-mode has new navigation commands `f90-end-of-block',  ---
893    ** F90 mode has new navigation commands `f90-end-of-block',
894  `f90-beginning-of-block', `f90-next-block', `f90-previous-block'.  `f90-beginning-of-block', `f90-next-block', `f90-previous-block'.
895    
896  ** prolog-mode has a new variable `prolog-font-lock-keywords'  ---
897    ** Prolog mode has a new variable `prolog-font-lock-keywords'
898  to support use of font-lock.  to support use of font-lock.
899    
900    +++
901  ** `special-display-buffer-names' and `special-display-regexps' now  ** `special-display-buffer-names' and `special-display-regexps' now
902  understand two new boolean pseudo-frame-parameters `same-frame' and  understand two new boolean pseudo-frame-parameters `same-frame' and
903  `same-window'.  `same-window'.
904    
905  ** When pure storage overflows while dumping, Emacs now prints how  +++
 much pure storage it will approximately need.  
   
906  ** M-x setenv now expands environment variables of the form `$foo' and  ** M-x setenv now expands environment variables of the form `$foo' and
907  `${foo}' in the specified new value of the environment variable.  To  `${foo}' in the specified new value of the environment variable.  To
908  include a `$' in the value, use `$$'.  include a `$' in the value, use `$$'.
# Line 667  which do not end in a slash are never co Line 916  which do not end in a slash are never co
916  candidate is a directory.  candidate is a directory.
917    
918  +++  +++
919    ** The completion commands TAB, SPC and ? in the minibuffer apply only
920    to the text before point.  If there is text in the buffer after point,
921    it remains unchanged.
922    
923    +++
924  ** New user option `inhibit-startup-buffer-menu'.  ** New user option `inhibit-startup-buffer-menu'.
925  When loading many files, for instance with `emacs *', Emacs normally  When loading many files, for instance with `emacs *', Emacs normally
926  displays a buffer menu.  This option turns the buffer menu off.  displays a buffer menu.  This option turns the buffer menu off.
# Line 674  displays a buffer menu.  This option tur Line 928  displays a buffer menu.  This option tur
928  ---  ---
929  ** Rmail now displays 5-digit message ids in its summary buffer.  ** Rmail now displays 5-digit message ids in its summary buffer.
930    
 ** When using M-x revert-buffer in a compilation buffer to rerun a  
 compilation, it is now made sure that the compilation buffer is reused  
 in case it has been renamed.  
   
931  ---  ---
932  ** On MS Windows, the "system caret" now follows the cursor.  ** On MS Windows, the "system caret" now follows the cursor.
933  This enables Emacs to work better with programs that need to track  This enables Emacs to work better with programs that need to track
# Line 688  the cursor, for example screen magnifier Line 938  the cursor, for example screen magnifier
938  See the Emacs 21.1 NEWS entry for tooltips for details.  See the Emacs 21.1 NEWS entry for tooltips for details.
939    
940  ---  ---
941  ** Some images are now supported on Windows.  ** Images are now supported on MS Windows.
942  PBM and XBM images are supported, other formats which require external  PBM and XBM images are supported out of the box. Other image formats
943  libraries may be supported in future.  depend on external libraries.  All of these libraries have been ported
944    to Windows, and can be found in both source and binary form at
945    http://gnuwin32.sourceforge.net/.  Note that libpng also depends on
946    zlib, and tiff depends on the version of jpeg that it was compiled
947    against.
948    
949    ---
950    ** Sound is now supported on MS Windows.
951    WAV format is supported on all versions of Windows, other formats such
952    as AU, AIFF and MP3 may be supported in the more recent versions of
953    Windows, or when other software provides hooks into the system level
954    sound support for those formats.
955    
956    ---
957    ** Different shaped mouse pointers are supported on MS Windows.
958    The mouse pointer changes shape depending on what is under the pointer.
959    
960    ---
961  ** Pointing devices with more than 3 buttons are now supported on MS Windows.  ** Pointing devices with more than 3 buttons are now supported on MS Windows.
962  The new variable `w32-pass-extra-mouse-buttons-to-system' controls  The new variable `w32-pass-extra-mouse-buttons-to-system' controls
963  whether Emacs should handle the extra buttons itself (the default), or  whether Emacs should handle the extra buttons itself (the default), or
964  pass them to Windows to be handled with system-wide functions.  pass them to Windows to be handled with system-wide functions.
965    
966    +++
967  ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).  ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
968  The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',  The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
969  and `x-super-keysym' can be used to choose which keysyms Emacs should  and `x-super-keysym' can be used to choose which keysyms Emacs should
# Line 705  Meta and Alt: Line 972  Meta and Alt:
972      (setq x-alt-keysym 'meta)      (setq x-alt-keysym 'meta)
973      (setq x-meta-keysym 'alt)      (setq x-meta-keysym 'alt)
974    
975  ---  * New modes and packages in 21.4
 ** A French translation of the `Emacs Survival Guide' is available.  
976    
977  ---  ---
978  ** A French translation of the Emacs Tutorial is available.  ** Ido mode is now part of the Emacs distribution.
979    
980  ** When emacs is configured to use `xaw3d' scroll-bars, emacs will  The ido (interactively do) package is an extension of the iswitchb
981  tell the scroll-bar library which colors to use for the bevels, to  package to do interactive opening of files and directories in addition
982  prevent the library from using dithering.  to interactive buffer switching.  Ido is a superset of iswitchb (with
983    a few exceptions), so don't enable both packages.
984    
985  ** New modes and packages  ---
986    ** CUA mode is now part of the Emacs distribution.
987    
988  *** The new cua package provides CUA-like keybindings using C-x for  The new cua package provides CUA-like keybindings using C-x for
989  cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.  cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.
990  With cua, the region can be set and extended using shifted movement  With cua, the region can be set and extended using shifted movement
991  keys (like pc-selection-mode) and typed text replaces the active  keys (like pc-selection-mode) and typed text replaces the active
# Line 754  kill, copy, yank, and undo.  If you want Line 1022  kill, copy, yank, and undo.  If you want
1022  want the C-x, C-c, C-v, and C-z bindings, you may customize the  want the C-x, C-c, C-v, and C-z bindings, you may customize the
1023  `cua-enable-cua-keys' variable.  `cua-enable-cua-keys' variable.
1024    
1025  *** The new keypad setup package provides simplified configuration  Note: This version of cua mode is not backwards compatible with older
1026  of the numeric keypad which is available on most keyboards.  versions of cua.el and cua-mode.el.  To ensure proper operation, you
1027    must remove older versions of cua.el or cua-mode.el as well as the
1028    loading and customization of those packages from the .emacs file.
1029    
1030    ** The new keypad setup package provides several common bindings for
1031    the numeric keypad which is available on most keyboards.  The numeric
1032    keypad typically has the digits 0 to 9, a decimal point, keys marked
1033    +, -, /, and *, an Enter key, and a NumLock toggle key.  The keypad
1034    package only controls the use of the digit and decimal keys.
1035    
1036    By customizing the variables `keypad-setup', `keypad-shifted-setup',
1037    `keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
1038    using the function `keypad-setup', you can rebind all digit keys and
1039    the decimal key of the keypad in one step for each of the four
1040    possible combinations of the Shift key state (not pressed/pressed) and
1041    the NumLock toggle state (off/on).
1042    
1043    The choices for the keypad keys in each of the above states are:
1044    `Plain numeric keypad' where the keys generates plain digits,
1045    `Numeric keypad with decimal key' where the character produced by the
1046    decimal key can be customized individually (for internationalization),
1047    `Numeric Prefix Arg' where the keypad keys produce numeric prefix args
1048    for emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
1049    where the keys work like (shifted) arrow keys, home/end, etc., and
1050    `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
1051    are left unspecified and can be bound individually through the global
1052    or local keymaps.
1053    
1054    ** The new kmacro package provides a simpler user interface to
1055    emacs' keyboard macro facilities.
1056    
1057    Basically, it uses two function keys (default F3 and F4) like this:
1058    F3 starts a macro, F4 ends the macro, and pressing F4 again executes
1059    the last macro.  While defining the macro, F3 inserts a counter value
1060    which automatically increments every time the macro is executed.
1061    
1062    There is now a keyboard macro ring which stores the most recently
1063    defined macros.
1064    
1065    The C-x C-k sequence is now a prefix for the kmacro keymap which
1066    defines bindings for moving through the keyboard macro ring,
1067    C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e,
1068    manipulating the macro counter and format via C-x C-k C-c,
1069    C-x C-k C-a, and C-x C-k C-f.  See the commentary in kmacro.el
1070    for more commands.
1071    
1072    The normal macro bindings C-x (, C-x ), and C-x e now interfaces to
1073    the keyboard macro ring.
1074    
1075    The C-x e command now automatically terminates the current macro
1076    before calling it, if used while defining a macro.
1077    
1078    In addition, when ending or calling a macro with C-x e, the macro can
1079    be repeated immediately by typing just the `e'.  You can customize
1080    this behaviour via the variable kmacro-call-repeat-key and
1081    kmacro-call-repeat-with-arg.
1082    
1083    Keyboard macros can now be debugged and edited interactively.
1084    C-x C-k SPC will step through the last keyboard macro one key sequence
1085    at a time, prompting for the actions to take.
1086    
1087    ---
1088    ** The old Octave mode bindings C-c f and C-c i have been changed
1089    to C-c C-f and C-c C-i.  The C-c C-i subcommands now have duplicate
1090    bindings on control characters--thus, C-c C-i C-b is the same as
1091    C-c C-i b, and so on.
1092    
1093    ** The printing package is now part of the Emacs distribution.
1094    
1095    If you enable the printing package by including (require 'printing) in
1096    the .emacs file, the normal Print item on the File menu is replaced
1097    with a Print sub-menu which allows you to preview output through
1098    ghostview, use ghostscript to print (if you don't have a PostScript
1099    printer) or send directly to printer a PostScript code generated by
1100    `ps-print' package.  Use M-x pr-help for more information.
1101    
1102  +++  +++
1103  *** Calc is now part of the Emacs distribution.  ** Calc is now part of the Emacs distribution.
1104    
1105  Calc is an advanced desk calculator and mathematical tool written in  Calc is an advanced desk calculator and mathematical tool written in
1106  Emacs Lisp.  Its documentation is in a separate manual; within Emacs,  Emacs Lisp.  Its documentation is in a separate manual; within Emacs,
# Line 766  type "C-h i m calc RET" to read that man Line 1108  type "C-h i m calc RET" to read that man
1108  available in `etc/calccard.tex' and `etc/calccard.ps'.  available in `etc/calccard.tex' and `etc/calccard.ps'.
1109    
1110  +++  +++
1111  *** The Emacs Lisp Reference Manual is now part of the distribution.  ** Tramp is now part of the distribution.
1112    
1113  The ELisp reference manual in Info format is built as part of the  This package is similar to Ange-FTP: it allows you to edit remote
1114  Emacs build procedure and installed together with the Emacs User  files.  But whereas Ange-FTP uses FTP to access the remote host,
1115  Manual.  A menu item was added to the menu bar that makes it easy  Tramp uses a shell connection.  The shell connection is always used
1116  accessible (Help->More Manuals->Emacs Lisp Reference).  for filename completion and directory listings and suchlike, but for
1117    the actual file transfer, you can choose between the so-called
1118    `inline' methods (which transfer the files through the shell
1119    connection using base64 or uu encoding) and the `out-of-band' methods
1120    (which invoke an external copying program such as `rcp' or `scp' or
1121    `rsync' to do the copying).
1122    
1123  ---  Shell connections can be acquired via `rsh', `ssh', `telnet' and also
1124  ** Indentation of simple and extended loop forms has been added to the  `su' and `sudo'.
 cl-indent package.  The new user options  
 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and  
 `lisp-simple-loop-indentation' can be used to customize the  
 indentation of keywords and forms in loop forms.  
1125    
1126  ---  ---
1127  ** Indentation of backquoted forms has been made customizable in the  ** The new global minor mode `file-name-shadow-mode' modifies the way
1128  cl-indent package.  See the new user option `lisp-backquote-indentation'.  filenames being entered by the user in the minibuffer are displayed, so
1129    that it's clear when part of the entered filename will be ignored due to
1130    emacs' filename parsing rules.  The ignored portion can be made dim,
1131    invisible, or otherwise less visually noticable.  The display method may
1132    be displayed by customizing the variable `file-name-shadow-properties'.
1133    
1134  ---  ---
1135  *** The Introduction to Programming in Emacs Lisp manual is now part of  ** The ruler-mode.el library provides a minor mode for displaying an
 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 new global minor mode `read-file-name-electric-shadow-mode'  
 modifies the way filenames being entered by the user in the minibuffer are  
 displayed, so that it's clear when part of the entered filename will be  
 ignored due to emacs' filename parsing rules.  The ignored portion can be  
 made dim, invisible, or otherwise less visually noticable.  The display  
 method may be displayed by customizing the variable  
 `read-file-name-electric-shadow-properties'.  
   
 *** The ruler-mode.el library provides a minor mode for displaying an  
1136  "active" ruler in the header line.  You can use the mouse to visually  "active" ruler in the header line.  You can use the mouse to visually
1137  change the `fill-column', `window-margins' and `tab-stop-list'  change the `fill-column', `window-margins' and `tab-stop-list'
1138  settings.  settings.
1139    
1140  *** The minor mode Reveal mode makes text visible on the fly as you  ---
1141    ** The minor mode Reveal mode makes text visible on the fly as you
1142  move your cursor into hidden region of the buffer.  move your cursor into hidden region of the buffer.
1143  It should work with any package that uses overlays to hide parts  It should work with any package that uses overlays to hide parts
1144  of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...  of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
# Line 814  of a buffer, such as outline-minor-mode, Line 1146  of a buffer, such as outline-minor-mode,
1146  There is also Global Reveal mode which affects all buffers.  There is also Global Reveal mode which affects all buffers.
1147    
1148  ---  ---
1149  *** The new package ibuffer provides a powerful, completely  ** The new package ibuffer provides a powerful, completely
1150  customizable replacement for buff-menu.el.  customizable replacement for buff-menu.el.
1151    
1152    ** The new package table.el implements editable, WYSIWYG, embedded
1153    `text tables' in Emacs buffers.  It simulates the effect of putting
1154    these tables in a special major mode.  The package emulates WYSIWYG
1155    table editing available in modern word processors.  The package also
1156    can generate a table source in typesetting and markup languages such
1157    as latex and html from the visually laid out text table.
1158    
1159    +++
1160    ** SES mode (ses-mode) is a new major mode for creating and editing
1161    spreadsheet files.  Besides the usual Emacs features (intuitive command
1162    letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
1163    viral immunity and import/export of tab-separated values.
1164    
1165  ---  ---
1166  ** Support for `magic cookie' standout modes has been removed.  ** Support for `magic cookie' standout modes has been removed.
1167  Emacs will still work on terminals that require magic cookies in order  Emacs will still work on terminals that require magic cookies in order
1168  to use standout mode, however they will not be able to display  to use standout mode, however they will not be able to display
1169  mode-lines in inverse-video.  mode-lines in inverse-video.
1170    
1171    ---
1172    ** The obsolete C mode (c-mode.el) has been removed to avoid problems
1173    with Custom.
1174    
1175    ** New package benchmark.el contains simple support for convenient
1176    timing measurements of code (including the garbage collection component).
1177    
1178    
1179  * Lisp Changes in Emacs 21.4  * Lisp Changes in Emacs 21.4
1180    
1181    ** `set-fontset-font', `fontset-info', `fontset-font' now operate on
1182    the default fontset if the argument NAME is nil..
1183    
1184    ** The escape sequence \s is now interpreted as a SPACE character,
1185    unless it is followed by a `-' in a character constant (e.g. ?\s-A),
1186    in which case it is still interpreted as the super modifier.
1187    In strings, \s is always interpreted as a space.
1188    
1189    ** New function `set-process-filter-multibyte' sets the multibyteness
1190    of a string given to a process's filter.
1191    
1192    ** New function `process-filter-multibyte-p' returns t if
1193    a string given to a process's filter is multibyte.
1194    
1195    ** A filter function of a process is called with a multibyte string if
1196    the filter's multibyteness is t.  That multibyteness is decided by the
1197    value of `default-enable-multibyte-characters' when the process is
1198    created and can be changed later by `set-process-filter-multibyte'.
1199    
1200    ** If a process's coding system is raw-text or no-conversion and its
1201    buffer is multibyte, the output of the process is at first converted
1202    to multibyte by `string-to-multibyte' then inserted in the buffer.
1203    Previously, it was converted to multibyte by `string-as-multibyte',
1204    which was not compatible with the behaviour of file reading.
1205    
1206    ** New function `string-to-multibyte' converts a unibyte string to a
1207    multibyte string with the same individual character codes.
1208    
1209    ** New variables `gc-elapsed' and `gcs-done' provide extra information
1210    on garbage collection.
1211    
1212    ** New function `decode-coding-inserted-region' decodes a region as if
1213    it is read from a file without decoding.
1214    
1215    ** New function `optimize-char-coding-system-table' can be called
1216    after making changes to `char-coding-system-table'.
1217    
1218    ** New function `langinfo' accesses locale information.
1219    
1220    ** `save-selected-window' now saves and restores the selected window
1221    of every frame.  This way, it restores everything that can be changed
1222    by calling `select-window'.
1223    
1224    ** `easy-menu-define' now allows you to use nil for the symbol name
1225    if you don't need to give the menu a name.  If you install the menu
1226    into other keymaps right away (MAPS is non-nil), it usually doesn't
1227    need to have a name.
1228    
1229    ** Byte compiler changes:
1230    
1231    *** `(featurep 'xemacs)' is treated by the compiler as nil.  This
1232    helps to avoid noisy compiler warnings in code meant to run under both
1233    Emacs and XEmacs and may sometimes make the result significantly more
1234    efficient.  Since byte code from recent versions of XEmacs won't
1235    generally run in Emacs and vice versa, this optimization doesn't lose
1236    you anything.
1237    
1238    *** You can avoid warnings for possibly-undefined symbols with a
1239    simple convention that the compiler understands.  (This is mostly
1240    useful in code meant to be portable to different Emacs versions.)
1241    Write forms like the following, or code that macroexpands into such
1242    forms:
1243    
1244      (if (fboundp 'foo) <then> <else>)
1245      (if (boundp 'foo) <then> <else)
1246    
1247    In the first case, using `foo' as a function inside the <then> form
1248    won't produce a warning if it's not defined as a function, and in the
1249    second case, using `foo' as a variable won't produce a warning if it's
1250    unbound.  The test must be in exactly one of the above forms (after
1251    macro expansion), but such tests may be nested.  Note that `when' and
1252    `unless' expand to `if', but `cond' doesn't.
1253    
1254    ** New translation table `translation-table-for-input'.
1255    
1256    +++
1257    ** `load-history' can now have elements of the form (t . FUNNAME),
1258    which means FUNNAME was previously defined as an autoload (before the
1259    current file redefined it).
1260    
1261    ** New Lisp library testcover.el works with edebug to help you determine
1262    whether you've tested all your Lisp code.  Function testcover-start
1263    instruments all functions in a given file.  Then test your code.  Function
1264    testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to
1265    show where coverage is lacking.  Command testcover-next-mark (bind it to
1266    a key!) will move point forward to the next spot that has a splotch.
1267    
1268    *** Normally, a red splotch indicates the form was never completely evaluated;
1269    a brown splotch means it always evaluated to the same value.  The red
1270    splotches are skipped for forms that can't possibly complete their evaluation,
1271    such as `error'.  The brown splotches are skipped for forms that are expected
1272    to always evaluate to the same value, such as (setq x 14).
1273    
1274    *** For difficult cases, you can add do-nothing macros to your code to help
1275    out the test coverage tool.  The macro 1value suppresses a brown splotch for
1276    its argument.  The macro noreturn suppresses a red splotch.
1277    
1278    +++
1279    ** New function unsafep returns nil if the given Lisp form can't possibly
1280    do anything dangerous; otherwise it returns a reason why the form might be
1281    unsafe (calls dangerous function, alters global variable, etc).
1282    
1283    ** When you are printing using print-continuous-numbering,
1284    if no objects have had to be recorded in print-number-table,
1285    all elements of print-number-table are nil.
1286    
1287    ** When using non-toolkit scroll bars with the default width,
1288    the scroll-bar-width frame parameter value is nil.
1289    
1290    ** The new function copy-abbrev-table returns a new abbrev table that
1291    is a copy of a given abbrev table.
1292    
1293    +++
1294    ** The option --script FILE runs Emacs in batch mode and loads FILE.
1295    It is useful for writing Emacs Lisp shell script files, because they
1296    can start with this line:
1297    
1298       #!/usr/bin/emacs --script
1299    
1300    ** A function's docstring can now hold the function's usage info on
1301    its last line.  It should match the regexp "\n\n(fn.*)\\'".
1302    
1303    ** New CCL functions `lookup-character' and `lookup-integer' access
1304    hash tables defined by the Lisp function `define-translation-hash-table'.
1305    
1306    ** The new function `minibufferp' returns non-nil if its optional buffer
1307    argument is a minibuffer.  If the argument is omitted it defaults to
1308    the current buffer.
1309    
1310    ** There is a new Warnings facility; see the functions `warn'
1311    and `display-warning'.
1312    
1313    ** The functions all-completions and try-completion now accept lists
1314    of strings as well as hash-tables additionally to alists, obarrays
1315    and functions.  Furthermore, the function `test-completion' is now
1316    exported to Lisp.
1317    
1318    ** When pure storage overflows while dumping, Emacs now prints how
1319    much pure storage it will approximately need.
1320    
1321    ** The new variable `auto-coding-functions' lets you specify functions
1322    to examine a file being visited and deduce the proper coding system
1323    for it.  (If the coding system is detected incorrectly for a specific
1324    file, you can put a `coding:' tags to override it.)
1325    
1326    ** The new function `merge-coding-systems' fills in unspecified aspects
1327    of one coding system from another coding system.
1328    
1329    ** The variable `safe-local-eval-forms' specifies a list of forms that
1330    are ok to evaluate when they appear in an `eval' local variables
1331    specification.  Normally Emacs asks for confirmation before evaluating
1332    such a form, but if the form appears in this list, no confirmation is
1333    needed.
1334    
1335    ** If a function has a non-nil `safe-local-eval-function' property,
1336    that means it is ok to evaluate some calls to that function when it
1337    appears in an `eval' local variables specification.  If the property
1338    is t, then any form calling that function with constant arguments is
1339    ok.  If the property is a function or list of functions, they are called
1340    with the form as argument, and if any returns t, the form is ok to call.
1341    
1342    If the form is not "ok to call", that means Emacs asks for
1343    confirmation as before.
1344    
1345    ** Controlling the left and right fringe widths.
1346    
1347    The left and right fringe widths can now be controlled by setting the
1348    `left-fringe' and `right-fringe' frame parameters to an integer value
1349    specifying the width in pixels.  Setting the width to 0 effectively
1350    removes the corresponding fringe.
1351    
1352    The actual fringe widths may deviate from the specified widths, since
1353    the combined fringe widths must match an integral number of columns.
1354    The extra width is distributed evenly between the left and right fringe.
1355    For force a specific fringe width, specify the width as a negative
1356    integer (if both widths are negative, only the left fringe gets the
1357    specified width).
1358    
1359    Setting the width to nil (the default), restores the default fringe
1360    width which is the minimum number of pixels necessary to display any
1361    of the currently defined fringe bitmaps.  The width of the built-in
1362    fringe bitmaps is 8 pixels.
1363    
1364    +++
1365    ** Renamed file hooks to follow the convention:
1366    find-file-hooks to find-file-hook,
1367    find-file-not-found-hooks to find-file-not-found-functions,
1368    write-file-hooks to write-file-functions,
1369    write-contents-hooks to write-contents-functions.
1370    Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
1371    
1372    ** The new variable `delete-frame-functions' replaces `delete-frame-hook'.
1373    It was renamed to follow the naming conventions for abnormal hooks.  The old
1374    name remains available as an alias, but has been marked obsolete.
1375    
1376  ** The `read-file-name' function now takes an additional argument which  ** The `read-file-name' function now takes an additional argument which
1377  specifies a predicate which the file name read must satify.  The  specifies a predicate which the file name read must satify.  The
1378  new variable `read-file-name-predicate' contains the predicate argument  new variable `read-file-name-predicate' contains the predicate argument
# Line 839  to override the internal read-file-name Line 1386  to override the internal read-file-name
1386  `read-file-name' to read a directory name; when used, completion  `read-file-name' to read a directory name; when used, completion
1387  will only show directories.  will only show directories.
1388    
1389  ** The New lisp library fringe.el controls the apperance of fringes.  ** The new function `file-remote-p' tests a file name and returns
1390    non-nil if it specifies a remote file (one that Emacs accesses using
1391    its own special methods and not directly through the file system).
1392    
1393    ** When a Lisp file uses CL functions at run-time, compiling the file
1394    now issues warnings about these calls, unless the file performs
1395    (require 'cl) when loaded.
1396    
1397    ** The new Lisp library fringe.el controls the apperance of fringes.
1398    
1399  ** The `defmacro' form may contain declarations specifying how to  ** The `defmacro' form may contain declarations specifying how to
1400  indent the macro in Lisp mode and how to debug it with Edebug.  The  indent the macro in Lisp mode and how to debug it with Edebug.  The
# Line 860  declaration specifiers supported are: Line 1415  declaration specifiers supported are:
1415  ** Interactive commands can be remapped through keymaps.  ** Interactive commands can be remapped through keymaps.
1416    
1417  This is an alternative to using defadvice or substitute-key-definition  This is an alternative to using defadvice or substitute-key-definition
1418  to modify the behaviour of a key binding using the normal keymap  to modify the behavior of a key binding using the normal keymap
1419  binding and lookup functionality.  binding and lookup functionality.
1420    
1421  When a key sequence is bound to a command, and that command is  When a key sequence is bound to a command, and that command is
# Line 896  The following changes have been made to Line 1451  The following changes have been made to
1451    to definition DEF in keymap MAP.  The definition is not limited to    to definition DEF in keymap MAP.  The definition is not limited to
1452    another command; it can be anything accepted for a normal binding.    another command; it can be anything accepted for a normal binding.
1453    
1454  - The new function `remap-command' returns the binding for a remapped  - The new function `command-remapping' returns the binding for a
1455    command in the current keymaps, or nil if it isn't remapped.    remapped command in the current keymaps, or nil if not remapped.
1456    
1457  - key-binding now remaps interactive commands unless the optional  - key-binding now remaps interactive commands unless the optional
1458    third argument NO-REMAP is non-nil.    third argument NO-REMAP is non-nil.
# Line 997  The new function `remove-list-of-text-pr Line 1552  The new function `remove-list-of-text-pr
1552  as `remove-text-properties'.  The only difference is that it takes  as `remove-text-properties'.  The only difference is that it takes
1553  a list of property names as argument rather than a property list.  a list of property names as argument rather than a property list.
1554    
1555  ** New functions insert-for-yank and insert-buffer-substring-as-yank.  ** New function insert-for-yank.
1556    
1557    This function normally works like `insert' but removes the text
1558    properties in the `yank-excluded-properties' list.  However, if the
1559    inserted text has a `yank-handler' text property on the first
1560    character of the string, the insertion of the text may be modified in
1561    a number of ways.  See the description of `yank-handler' below.
1562    
1563  These functions work like `insert' and `insert-buffer-substring', but  ** New function insert-buffer-substring-as-yank.
1564  removes the text properties in the `yank-excluded-properties' list.  
1565    This function works like `insert-buffer-substring', but removes the
1566    text properties in the `yank-excluded-properties' list.
1567    
1568  ** New function insert-buffer-substring-no-properties.  ** New function insert-buffer-substring-no-properties.
1569    
1570    This function is like insert-buffer-substring, but removes all
1571    text properties from the inserted substring.
1572    
1573    ** New `yank-handler' text property may be used to control how
1574    previously killed text on the kill-ring is reinserted.
1575    
1576    The value of the yank-handler property must be a list with one to five
1577    elements with the following format:
1578      (FUNCTION PARAM NOEXCLUDE UNDO).
1579    
1580    The `insert-for-yank' function looks for a yank-handler property on
1581    the first character on its string argument (typically the first
1582    element on the kill-ring).  If a yank-handler property is found,
1583    the normal behaviour of `insert-for-yank' is modified in various ways:
1584    
1585      When FUNCTION is present and non-nil, it is called instead of `insert'
1586    to insert the string.  FUNCTION takes one argument--the object to insert.
1587      If PARAM is present and non-nil, it replaces STRING as the object
1588    passed to FUNCTION (or `insert'); for example, if FUNCTION is
1589    `yank-rectangle', PARAM should be a list of strings to insert as a
1590    rectangle.
1591      If NOEXCLUDE is present and non-nil, the normal removal of the
1592    yank-excluded-properties is not performed; instead FUNCTION is
1593    responsible for removing those properties.  This may be necessary
1594    if FUNCTION adjusts point before or after inserting the object.
1595      If UNDO is present and non-nil, it is a function that will be called
1596    by `yank-pop' to undo the insertion of the current object.  It is
1597    called with two arguments, the start and end of the current region.
1598    FUNCTION may set `yank-undo-function' to override the UNDO value.
1599    
1600    *** The functions kill-new, kill-append, and kill-region now has an
1601    optional third argument to specify the yank-handler text property
1602    to put on the killed text.
1603    
1604    *** The function yank-pop will now use a non-nil value of the variable
1605    `yank-undo-function' (instead of delete-region) to undo the previous
1606    yank or yank-pop command (or a call to insert-for-yank).  The function
1607    insert-for-yank automatically sets that variable according to the UNDO
1608    element of the string argument's yank-handler text property if present.
1609    
1610  ** New function display-supports-face-attributes-p may be used to test  ** New function display-supports-face-attributes-p may be used to test
1611  whether a given set of face attributes is actually displayable.  whether a given set of face attributes is actually displayable.
1612    
# Line 1011  A new predicate `supports' has also been Line 1614  A new predicate `supports' has also been
1614  specification language, which can be used to do this test for faces  specification language, which can be used to do this test for faces
1615  defined with defface.  defined with defface.
1616    
1617    ** face-attribute, face-foreground, face-background, and face-stipple now
1618    accept a new optional argument, INHERIT, which controls how face
1619    inheritance is used when determining the value of a face attribute.
1620    
1621    ** New functions face-attribute-relative-p and merge-face-attribute
1622    help with handling relative face attributes.
1623    
1624    ** Enhancements to process support
1625    
1626    *** Function list-processes now has an optional argument; if non-nil,
1627    only the processes whose query-on-exit flag is set are listed.
1628    
1629    *** New set-process-query-on-exit-flag and process-query-on-exit-flag
1630    functions.  The existing process-kill-without-query function is still
1631    supported, but new code should use the new functions.
1632    
1633    *** Function signal-process now accepts a process object or process
1634    name in addition to a process id to identify the signalled process.
1635    
1636    *** Processes now have an associated property list where programs can
1637    maintain process state and other per-process related information.
1638    
1639    The new functions process-get and process-put are used to access, add,
1640    and modify elements on this property list.
1641    
1642    The new low-level functions process-plist and set-process-plist are
1643    used to access and replace the entire property list of a process.
1644    
1645    
1646  ** Enhanced networking support.  ** Enhanced networking support.
1647    
1648  *** There is a new `make-network-process' function which supports  *** There is a new `make-network-process' function which supports
# Line 1022  create a stream or datagram server insid Line 1654  create a stream or datagram server insid
1654  - A server can open on a random port using :service t arg.  - A server can open on a random port using :service t arg.
1655  - Local sockets are supported using :family 'local arg.  - Local sockets are supported using :family 'local arg.
1656  - Non-blocking connect is supported using :nowait t arg.  - Non-blocking connect is supported using :nowait t arg.
1657    - The process' property list may be initialized using :plist PLIST arg;
1658      a copy of the server process' property list is automatically inherited
1659      by new client processes created to handle incoming connections.
1660    
1661  To test for the availability of a given feature, use featurep like this:  To test for the availability of a given feature, use featurep like this:
1662    (featurep 'make-network-process '(:type datagram))    (featurep 'make-network-process '(:type datagram))
# Line 1031  To test for the availability of a given Line 1666  To test for the availability of a given
1666  *** New function open-network-stream-nowait.  *** New function open-network-stream-nowait.
1667    
1668  This function initiates a non-blocking connect and returns immediately  This function initiates a non-blocking connect and returns immediately
1669  before the connection is established.  The filter and sentinel  without waiting for the connection to be established.  It takes the
1670  functions can be specified as arguments to open-network-stream-nowait.  filter and sentinel functions as arguments; when the non-blocking
1671  When the non-blocking connect completes, the sentinel is called with  connect completes, the sentinel is called with a status string
1672  the status matching "open" or "failed".  matching "open" or "failed".
1673    
1674  *** New function open-network-stream-server.  *** New function open-network-stream-server.
1675  MORE INFO NEEDED HERE.  
1676    This function creates a network server process for a TCP service.
1677    When a client connects to the specified service, a new subprocess
1678    is created to handle the new connection, and the sentinel function
1679    is called for the new process.
1680    
1681  *** New functions process-datagram-address and set-process-datagram-address.  *** New functions process-datagram-address and set-process-datagram-address.
1682  MORE INFO NEEDED HERE.  
1683    These functions are used with datagram-based network processes to get
1684    and set the current address of the remote partner.
1685    
1686    *** New function format-network-address.
1687    
1688    This function reformats the lisp representation of a network address
1689    to a printable string.  For example, an IP address A.B.C.D and port
1690    number P is represented as a five element vector [A B C D P], and the
1691    printable string returned for this vector is "A.B.C.D:P".  See the doc
1692    string for other formatting options.
1693    
1694  *** By default, the function process-contact still returns (HOST SERVICE)  *** By default, the function process-contact still returns (HOST SERVICE)
1695  for a network process.  Using the new optional KEY arg, the complete list  for a network process.  Using the new optional KEY arg, the complete list
# Line 1056  the fifth is the port number. Line 1705  the fifth is the port number.
1705  connections are accepted in the stopped state.  For a client process,  connections are accepted in the stopped state.  For a client process,
1706  no input is received in the stopped state.  no input is received in the stopped state.
1707    
1708  *** Function list-processes now has an optional argument; if non-nil,  ** New function copy-tree.
 only the processes whose query-on-exit flag is set are listed.  
   
 *** New set-process-query-on-exit-flag and process-query-on-exit-flag  
 functions.  The existing process-kill-without-query function is still  
 supported, but new code should use the new functions.  
1709    
1710  ** New function substring-no-properties.  ** New function substring-no-properties.
1711    
# Line 1121  or the header line. Line 1765  or the header line.
1765  ** New function format-mode-line.  ** New function format-mode-line.
1766    
1767  This returns the mode-line or header-line of the selected (or a  This returns the mode-line or header-line of the selected (or a
1768  specified) window as a string without text properties.  specified) window as a string with or without text properties.
1769    
1770  ** New functions `lax-plist-get' and `lax-plist-put'.  ** New functions `lax-plist-get' and `lax-plist-put'.
1771    
# Line 1130  compare the property name using `equal' Line 1774  compare the property name using `equal'
1774    
1775  ** New function `tool-bar-local-item-from-menu'  ** New function `tool-bar-local-item-from-menu'
1776    
1777  The `tool-bar-add-item-from-menu' most not be used (as previously  The `tool-bar-add-item-from-menu' must not be used (as previously
1778  recommended) for making entries in the tool bar for local keymaps.  recommended) for making entries in the tool bar for local keymaps.
1779  Instead, use the function `tool-bar-local-item-from-menu', which lets  Instead, use the function `tool-bar-local-item-from-menu', which lets
1780  you specify the map to use as an argument.  you specify the map to use as an argument.
# Line 1160  Reference manual for more detailed docum Line 1804  Reference manual for more detailed docum
1804  ** Mode line display ignores text properties in the value  ** Mode line display ignores text properties in the value
1805  of a variable whose `risky-local-variables' property is nil.  of a variable whose `risky-local-variables' property is nil.
1806    
1807    ---
1808    ** Indentation of simple and extended loop forms has been added to the
1809    cl-indent package.  The new user options
1810    `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and
1811    `lisp-simple-loop-indentation' can be used to customize the
1812    indentation of keywords and forms in loop forms.
1813    
1814    ---
1815    ** Indentation of backquoted forms has been made customizable in the
1816    cl-indent package.  See the new user option `lisp-backquote-indentation'.
1817    
1818  ** Already true in Emacs 21.1, but not emphasized clearly enough:  ** Already true in Emacs 21.1, but not emphasized clearly enough:
1819    
1820  Multibyte buffers can now faithfully record all 256 character codes  Multibyte buffers can now faithfully record all 256 character codes
# Line 1240  refontification of `bar' whenever the `e Line 1895  refontification of `bar' whenever the `e
1895  ** describe-vector now takes a second argument `describer' which is  ** describe-vector now takes a second argument `describer' which is
1896  called to print the entries' values.  It defaults to `princ'.  called to print the entries' values.  It defaults to `princ'.
1897    
 ** face-attribute, face-foreground, face-background, and face-stipple now  
 accept a new optional argument, INHERIT, which controls how face  
 inheritance is used when determining the value of a face attribute.  
   
1898  ** defcustom and other custom declarations now use a default group  ** defcustom and other custom declarations now use a default group
1899  (the last group defined in the same file) when no :group was given.  (the last group defined in the same file) when no :group was given.
1900    
# Line 1277  This function returns the buffer-local b Line 1928  This function returns the buffer-local b
1928  in buffer BUFFER.  If VARIABLE does not have a buffer-local binding in  in buffer BUFFER.  If VARIABLE does not have a buffer-local binding in
1929  buffer BUFFER, it returns the default value of VARIABLE instead.  buffer BUFFER, it returns the default value of VARIABLE instead.
1930    
 ** 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.  
   
1931  ** New function `text-clone-create'.  Text clones are chunks of text  ** New function `text-clone-create'.  Text clones are chunks of text
1932  that are kept identical by transparently propagating changes from one  that are kept identical by transparently propagating changes from one
1933  clone to the other.  clone to the other.
# Line 1300  or `bg:COLOR' has been removed.  Lisp pr Line 1947  or `bg:COLOR' has been removed.  Lisp pr
1947  are used by define-derived-mode to make sure the mode hook for the  are used by define-derived-mode to make sure the mode hook for the
1948  parent mode is run at the end of the child mode.  parent mode is run at the end of the child mode.
1949    
1950    ** define-derived-mode by default creates a new empty abbrev table.
1951    It does not copy abbrevs from the parent mode's abbrev table.
1952    
1953    +++
1954  ** `provide' and `featurep' now accept an optional second argument  ** `provide' and `featurep' now accept an optional second argument
1955  to test/provide subfeatures.  Also `provide' now checks `after-load-alist'  to test/provide subfeatures.  Also `provide' now checks `after-load-alist'
1956  and run any code associated with the provided feature.  and run any code associated with the provided feature.
# Line 1318  accepts a float as UID parameter. Line 1969  accepts a float as UID parameter.
1969    
1970  ** `define-key-after' now accepts keys longer than 1.  ** `define-key-after' now accepts keys longer than 1.
1971    
 ** `define-derived-mode' now accepts nil as the parent.  
   
1972  ** The local variable `no-byte-compile' in elisp files is now obeyed.  ** The local variable `no-byte-compile' in elisp files is now obeyed.
1973    
1974    ** The Emacs Lisp byte-compiler now displays the actual line and
1975    character position of errors, where possible.  Additionally, the form
1976    of its warning and error messages have been brought more in line with
1977    the output of other GNU tools.
1978    
1979  ** New functions `keymap-prompt' and `current-active-maps'.  ** New functions `keymap-prompt' and `current-active-maps'.
1980    
1981  ** New function `describe-buffer-bindings'.  ** New function `describe-buffer-bindings'.
# Line 1331  searching for an executable resp. an eli Line 1985  searching for an executable resp. an eli
1985    
1986  ** Variable aliases have been implemented:  ** Variable aliases have been implemented:
1987    
1988  - Macro: defvaralias ALIAS-VAR BASE-VAR  - Function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
1989    
1990    This function defines the symbol ALIAS-VAR as a variable alias for
1991    symbol BASE-VAR.  This means that retrieving the value of ALIAS-VAR
1992    returns the value of BASE-VAR, and changing the value of ALIAS-VAR
1993    changes the value of BASE-VAR.
1994    
1995  This defines the symbol ALIAS-VAR as a variable alias for symbol  DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
1996  BASE-VAR.  This means that retrieving the value of ALIAS-VAR returns  the same documentation as BASE-VAR.
 the value of BASE-VAR, and changing the value of ALIAS-VAR changes the  
 value of BASE-VAR.  
1997    
1998  - Function: indirect-variable VARIABLE  - Function: indirect-variable VARIABLE
1999    
# Line 1369  using the text properties (esp. the face Line 2026  using the text properties (esp. the face
2026  *** The new package syntax.el provides an efficient way to find the  *** The new package syntax.el provides an efficient way to find the
2027  current syntactic context (as returned by parse-partial-sexp).  current syntactic context (as returned by parse-partial-sexp).
2028    
2029    *** The new package bindat.el provides functions to unpack and pack
2030    binary data structures, such as network packets, to and from Lisp
2031    data structures.
2032    
2033  *** The TCL package tcl-mode.el was replaced by tcl.el.  *** The TCL package tcl-mode.el was replaced by tcl.el.
2034  This was actually done in Emacs-21.1, and was not documented.  This was actually done in Emacs-21.1, and was not documented.
2035    
# Line 2788  added. Line 3449  added.
3449  *** An "alignment error" bug was fixed when a manual spelling  *** An "alignment error" bug was fixed when a manual spelling
3450  correction is made and re-checked.  correction is made and re-checked.
3451    
3452  *** An Italian, Portuguese, and Slovak dictionary definition has been added.  *** Italian, Portuguese, and Slovak dictionary definitions have been added.
3453    
3454  *** Region skipping performance has been vastly improved in some  *** Region skipping performance has been vastly improved in some
3455  cases.  cases.
# Line 3197  containing diff3-style conflict markers, Line 3858  containing diff3-style conflict markers,
3858    
3859  *** hl-line.el provides `hl-line-mode', a minor mode to highlight the  *** hl-line.el provides `hl-line-mode', a minor mode to highlight the
3860  current line in the current buffer.  It also provides  current line in the current buffer.  It also provides
3861  `global-hl-line-mode' to provide the same behaviour in all buffers.  `global-hl-line-mode' to provide the same behavior in all buffers.
3862    
3863  *** ansi-color.el translates ANSI terminal escapes into text-properties.  *** ansi-color.el translates ANSI terminal escapes into text-properties.
3864    
# Line 4004  CHAR Line 4665  CHAR
4665       `chinse-two-byte'                  (\\cC)       `chinse-two-byte'                  (\\cC)
4666       `greek-two-byte'                   (\\cG)       `greek-two-byte'                   (\\cG)
4667       `japanese-hiragana-two-byte'       (\\cH)       `japanese-hiragana-two-byte'       (\\cH)
4668       `indian-tow-byte'                  (\\cI)       `indian-two-byte'                  (\\cI)
4669       `japanese-katakana-two-byte'       (\\cK)       `japanese-katakana-two-byte'       (\\cK)
4670       `korean-hangul-two-byte'           (\\cN)       `korean-hangul-two-byte'           (\\cN)
4671       `cyrillic-two-byte'                (\\cY)       `cyrillic-two-byte'                (\\cY)
# Line 4047  CHAR Line 4708  CHAR
4708    
4709  `(minimal-match SEXP)'  `(minimal-match SEXP)'
4710       produce a non-greedy regexp for SEXP.  Normally, regexps matching       produce a non-greedy regexp for SEXP.  Normally, regexps matching
4711       zero or more occurrances of something are \"greedy\" in that they       zero or more occurrences of something are \"greedy\" in that they
4712       match as much as they can, as long as the overall regexp can       match as much as they can, as long as the overall regexp can
4713       still match.  A non-greedy regexp matches as little as possible.       still match.  A non-greedy regexp matches as little as possible.
4714    
4715  `(maximal-match SEXP)'  `(maximal-match SEXP)'
4716       produce a greedy regexp for SEXP.   This is the default.       produce a greedy regexp for SEXP.  This is the default.
4717    
4718  `(zero-or-more SEXP)'  `(zero-or-more SEXP)'
4719       matches zero or more occurrences of what SEXP matches.       matches zero or more occurrences of what SEXP matches.
# Line 4097  CHAR Line 4758  CHAR
4758       matches N to M occurrences of what SEXP matches.       matches N to M occurrences of what SEXP matches.
4759    
4760  `(eval FORM)'  `(eval FORM)'
4761        evaluate FORM and insert result.   If result is a string,        evaluate FORM and insert result.  If result is a string,
4762        `regexp-quote' it.        `regexp-quote' it.
4763    
4764  `(regexp REGEXP)'  `(regexp REGEXP)'
# Line 5475  support strings as DATA, some types allo Line 6136  support strings as DATA, some types allo
6136  **** XBM, image type `xbm'.  **** XBM, image type `xbm'.
6137    
6138  XBM images don't require an external library.  Additional image  XBM images don't require an external library.  Additional image
6139  properties supported are  properties supported are:
6140    
6141  `:foreground FG'  `:foreground FG'
6142    
6143  FG must be a string specifying the image foreground color, or nil  FG must be a string specifying the image foreground color, or nil
6144  meaning to use the default.  Default is the frame's foreground.  meaning to use the default.  Default is the frame's foreground color.
6145    
6146  `:background BG'  `:background BG'
6147    
6148  BG must be a string specifying the image foreground color, or nil  BG must be a string specifying the image background color, or nil
6149  meaning to use the default.  Default is the frame's background color.  meaning to use the default.  Default is the frame's background color.
6150    
6151  XBM images can be constructed from data instead of file.  In this  XBM images can be constructed from data instead of file.  In this
# Line 5540  to display compressed images. Line 6201  to display compressed images.
6201    
6202  PBM images don't require an external library.  Color, gray-scale and  PBM images don't require an external library.  Color, gray-scale and
6203  mono images are supported.  Additional image properties supported for  mono images are supported.  Additional image properties supported for
6204  mono images are  mono images are:
6205    
6206  `:foreground FG'  `:foreground FG'
6207    
6208  FG must be a string specifying the image foreground color, or nil  FG must be a string specifying the image foreground color, or nil
6209  meaning to use the default.  Default is the frame's foreground.  meaning to use the default.  Default is the frame's foreground color.
6210    
6211  `:background FG'  `:background FG'
6212    
6213  BG must be a string specifying the image foreground color, or nil  BG must be a string specifying the image background color, or nil
6214  meaning to use the default.  Default is the frame's background color.  meaning to use the default.  Default is the frame's background color.
6215    
6216  **** JPEG, image type `jpeg'  **** JPEG, image type `jpeg'
6217    
6218  Support for JPEG images requires the external library `libjpeg',  Support for JPEG images requires the external library `libjpeg',
6219  package `jpegsrc.v6a.tar.gz', or later.  Additional image properties  package `jpegsrc.v6a.tar.gz', or later.  There are no additional image
6220  are:  properties defined.
6221    
6222  **** TIFF, image type `tiff'  **** TIFF, image type `tiff'
6223    
# Line 8251  write a file, it uses the specified codi Line 8912  write a file, it uses the specified codi
8912  If the immediately following command does not use the coding system,  If the immediately following command does not use the coding system,
8913  then C-x RET c ultimately has no effect.  then C-x RET c ultimately has no effect.
8914    
8915  For example,  C-x RET c iso-8859-1 RET C-x C-f temp RET  For example, C-x RET c iso-8859-1 RET C-x C-f temp RET
8916  visits the file `temp' treating it as ISO Latin-1.  visits the file `temp' treating it as ISO Latin-1.
8917    
8918  *** You can specify the coding system for a file using the -*-  *** You can specify the coding system for a file using the -*-
# Line 9314  the new variable lazy-lock-defer-context Line 9975  the new variable lazy-lock-defer-context
9975  non-nil, changes to the buffer will cause subsequent lines in the buffer to be  non-nil, changes to the buffer will cause subsequent lines in the buffer to be
9976  refontified after lazy-lock-defer-time seconds of idle time.  If nil, then only  refontified after lazy-lock-defer-time seconds of idle time.  If nil, then only
9977  the modified lines will be refontified; this is the same as the previous Lazy  the modified lines will be refontified; this is the same as the previous Lazy
9978  Lock mode behaviour and the behaviour of Font Lock mode.  Lock mode behavior and the behavior of Font Lock mode.
9979    
9980  This feature is useful in modes where strings or comments can span lines.  This feature is useful in modes where strings or comments can span lines.
9981  For example, if a string or comment terminating character is deleted, then if  For example, if a string or comment terminating character is deleted, then if
# Line 10619  select one of those items. Line 11280  select one of those items.
11280  ----------------------------------------------------------------------  ----------------------------------------------------------------------
11281  Copyright information:  Copyright information:
11282    
11283  Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.  Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
11284    
11285     Permission is granted to anyone to make or distribute verbatim copies     Permission is granted to anyone to make or distribute verbatim copies
11286     of this document as received, in any medium, provided that the     of this document as received, in any medium, provided that the

Legend:
Removed from v.1.690  
changed lines
  Added in v.1.690.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26