From 09e18d034a977f6e227377b2e2ce4ce8336dfedd Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 24 Jun 2008 17:27:10 +0000 Subject: [PATCH] Re-order items. --- etc/NEWS | 918 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 465 insertions(+), 453 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index ee7f402d9c7..813f7eb99ca 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -27,47 +27,134 @@ so we will look at it and add it to the manual. * Installation Changes in Emacs 23.1 ** The default X toolkit is now Gtk+, rather than Lucid. +The configure option `--with-gtk' has been removed. Gtk is now the +default toolkit, but you can use --with-x-toolkit=gtk if necessary. -** Fonts are handled by new code capable of dealing with multiple font -backends. This requires the freetype and fontconfig libraries, and -supports local fonts (fonts installed on the machine where Emacs is -running). Additionally, the Xft library can be used for antialiasing -support, the otf library for complex text layout by OpenType fonts, -and the m17n library for text shaping. Emacs now accepts font names -supplied in the fontconfig format (e.g. "monospace-12:bold") and GTK -format (e.g. "Monospace Bold 12"). +** New font code. +Fonts are handled by new code capable of dealing with multiple font +backends. This requires the freetype and fontconfig libraries -** The new configuration option "--with-dbus" enables D-Bus language -bindings for Emacs. +*** Emacs now accepts font names supplied in the fontconfig format +(e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12"). + +*** Added support for local fonts (fonts installed on the machine +where Emacs is running). + +*** Added support for the Xft library for antialiasing. + +*** Added support for the otf library for complex text layout by +OpenType fonts. + +*** Added support for the m17n library for text shaping. + +** Changes to image support + +*** configure now checks for libgif before libungif when searching for +a GIF library. + +*** Emacs now supports the SVG image format through librsvg2. ** The Mac Carbon port is no longer supported. Instead, use... [FIXME what?] -** configure now checks for libgif before libungif when searching for -a GIF library. - -** Support for systems without alloca has been removed. - -** Support for Sun windows has been removed. +** The new configuration option "--with-dbus" enables D-Bus language +bindings for Emacs. ** Support for many obsolete platforms has been removed. See the list at the end of etc/MACHINES for details. +*** Support for systems without alloca has been removed. + +*** Support for Sun windows has been removed. + ** The `emacstool' utility has been removed. ** The configure options `--with-gcc', `--without-gcc' have been removed. Configure will use gcc by default. Set the CC environment variable if you need control over which C compiler is used. -** The configure option `--with-gtk' has been removed. Gtk is now the -default toolkit, but you can use --with-x-toolkit=gtk if necessary. +** The refcards are now shipped as PDF files. + +** Emacs 23 comes with a new set of default icons. +Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png. +The Emacs 22 icon is available as `emacs22.png' in the same location. * Changes in Emacs 23.1 -** `underline-minimum-offset' keeps the underline away from the baseline. +** Improved X Window System support -** Info displays breadcrumbs in the header of the page. -See Info-breadcrumbs-depth to control it. +*** Emacs now supports using both X displays and ttys in one session. +With an Emacs server active (M-x server-start), `emacsclient -t' +creates a tty frame connected to the running emacs server. You can +use any number of different ttys. `emacsclient -c' creates a new X11 +frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set). + +You can test for the presence of this feature in your Lisp code by +testing for the `multi-tty' feature. + +**** Emacsclient can now open new terminal frames. +Now, the default behavior is to open a new Emacs frame by default. +Use the -c option to get the old behavior of opening files in the +currently selected Emacs frame. + +*** The new command close-display-connection closes a connection to a +remote display. + +*** Emacs now supports the XEmbed specification. +You can embed Emacs in another application on X11. The new command line +option --parent-id is used to pass the parent window id to Emacs. See +http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html +for details about XEmbed. + +*** Emacs can now set the frame opacity. +The opacity of a frame can be controlled by setting the `alpha' frame +parameter. This only takes effect on a compositing window manager for +the X Window System, such as Compiz, Beryl and Compiz Fusion. + +The alpha parameter should be an integer between 0 (transparent) and +100 (opaque), or a float number between 0.0 and 1.0. It can also be a +cons cell (ACTIVE . INACTIVE), where ACTIVE is the opacity of an +active frame and INACTIVE is the opactity of non-active frames. + +The variable `frame-alpha-lower-limit' defines a lower bound for the +opacity; the default is 20. + +** Internationalization changes + +*** The Emacs character set is now a superset of Unicode. +(It has about four times the code space, which should be plenty). + +The internal encoding used for buffers and strings is now +Unicode-based and called `utf-8-emacs'. This encoding is backwards +compatible with Unicode's UTF-8 encoding. The internal encoding +previously used by Emacs, `emacs-mule', is still available. + +During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files. +As a result, byte-compiled files containing non-ASCII characters can't +be read by earlier versions of Emacs. Files compiled by Emacs 20, 21, +or 22 are loaded correctly as emacs-mule (whether or not they contain +multibyte characters). This takes somewhat more time, so it may be +worth recompiling existing .elc files which don't need to be shared +with older Emacsen. + +*** There are new coding systems/aliases; see M-x list-coding-systems. + +*** There is a new charset implementation with many new charsets. +See M-x list-character-sets. New charsets can be defined conveniently +as tables of unicodes. + +**** The dimension of a charset is now 1, 2, 3, or 4, and the size of +each dimension is no longer limited to 94 or 96. + +**** A dynamic charset priority list is used to infer the charset of +characters for display. + +*** There are new language environments for Chinese-GBK, +Chinese-GB18030, Khmer, Bengali, Punjabi, Gujarati, Oriya, Telugu, +Sinhala, and TaiViet. + +*** The minor modes unify-8859-on-encoding-mode and +unify-8859-on-decoding-mode are obsolete. ** Emacs now supports serial port access on GNU/Linux, Unix, and Windows. `serial-term' starts an interactive terminal, @@ -75,186 +162,34 @@ Windows. `serial-term' starts an interactive terminal, interface. The serial port can be configured at runtime with the mode-line mouse menu. -** Apropos -*** `apropos-library' describes the elements defined in a given library. -*** Set `apropos-compact-layout' is you want a more compact (but wider) layout. - -** scroll-preserve-screen-position also preserves the column position. -** Completion. -*** `completion-styles' can be customized to choose your favorite completion. -*** The default completion styles include a form of partial-completion. -*** The new command `minibuffer-force-complete chooses one of the possible -completions, rather than stopping at the common prefix. -*** `completion-auto-help' can be set to `lazy' to list the completions only -if you repeat the completion. This was already supported in -`partial-completion-mode'. - -** Emacs now supports using both X displays and ttys in one session. -Start the server (M-x server-start). Then `emacsclient -t' creates a -tty frame connected to the running emacs server. You can also use any -number of different ttys. `emacsclient -c' creates a new X11 frame on -the current $DISPLAY or a tty frame if $DISPLAY is not set. - -You can test for the presence of this feature in your Lisp code by -testing for the `multi-tty' feature. - -** The Emacs character set is now a superset of Unicode. -(It has about four times the code space, which should be plenty). - -The internal encoding used for buffers and strings is now -Unicode-based and called `utf-8-emacs'. utf-8-emacs is backwards -compatible with the UTF-8 encoding of Unicode. The `emacs-mule' -coding system can still read and write data in the old internal encoding. - -Since the internal encoding is also used by default for byte-compiled -files -- i.e. the normal coding system for byte-compiled Lisp files is -now utf-8-Emacs -- Lisp containing non-ASCII characters which is -compiled by Emacs 23 can't be read by earlier versions of Emacs. Files -compiled by Emacs 20, 21, or 22 are loaded correctly as emacs-mule -(whether or not they contain multibyte characters), which makes loading -them somewhat slower than Emacs 23-compiled files. Thus it may be worth -recompiling existing .elc files which don't need to be shared with older -Emacsen. - -** There are assorted new coding systems/aliases -- see M-x list-coding-systems. - -** There is a new charset implementation with many new charsets. -See M-x list-character-sets. New charsets can be defined conveniently -as tables of unicodes. - -The dimension of a charset is now 1, 2, 3, or 4, and the size of each -dimension is no longer limited to 94 or 96. - -A dynamic charset priority list is used to infer the charset of -characters for display. - -** There are new Chinese-GBK, Chinese-GB18030, Khmer, Bengali, -Punjabi, Gujarati, Oriya, Telugu, Sinhala, and TaiViet language -environments. - -** Emacs now supports the XEmbed specification. -You can embed Emacs in another application on X11. The new command line option ---parent-id is used to pass the parent window id to Emacs. See -http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html -for details about XEmbed. - -** Controlling the frame opacity -The opacity of a frame can now be controlled by setting -the `alpha' frame parameter, on a compositing window manager -(e.g. Compiz, Beryl and Compiz Fusion) for the X Window System. - -The alpha parameter should be an integer between 0 (transparent) and -100 (opaque) or a float number between 0.0 and 1.0. Optionally, the -opacity can be set by a cons cell; the first item controls the -opacity of an active frame, and the second item controls that of -non-active frames. - - (set-frame-parameter nil 'alpha 80) - (set-frame-parameter nil 'alpha 0.8) - (set-frame-parameter nil 'alpha '(100 70)) ; ( []) - (set-frame-parameter nil 'alpha nil) - -Note that the threshold opacity of a frame is defined by the variable -`frame-alpha-lower-limit' (default 20), so that the user may not lose -control of the frame. - -** Emacs comes with a new set of default icons. -Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png. -The Emacs 22 icon is available as `emacs22.png' in the same location. - -** Built-in functions (subr) can now have an interactive specification -that is not a prompt string. If the `intspec' parameter of a `DEFUN' -starts with a `(', the string is evaluated as a Lisp form. - -** set-file-modes is now interactive and can take the mode value in -symbolic notation thanks to auxiliary functions. - -** Changes affecting display-buffer -*** New value nil for split-height-threshold inhibits vertical splitting -unless there's no other window. -*** New option split-width-threshold controls horizontal splitting. -*** A window can be split horizontally even when it's not full-width. -*** New option split-window-preferred-function can be set to a function -to override the default splitting mechanism of display-buffer. - ** Menu Bar changes -*** The Options menu contains a new entry to turn on Longlines mode. - *** In the Options menu, the "Set Default Font" item applies the selected font to the `default' face on all frames, not just the -current frame. This font setting will be saved if the "Save Options" -item is used. Furthermore, if Emacs is compiled with both GTK and +current frame. Furthermore, if Emacs is compiled with both GTK and Fontconfig support, the "Set Default Font" item uses the GTK font selection dialog instead of an Emacs pop-up menu. -** Emacsclient has been extended to support opening a new terminal -frame. Its behavior has been changed to open a new Emacs frame by -default. Use the -c option to get the old behavior of opening files in -the currently selected Emacs frame. +*** The font setting chosen by "Set Default Font" is saved if the +"Save Options" item is used. -** The refcards are now shipped as PDF files. +*** The Options menu contains a new entry to turn on Longlines mode. -** Emacs now supports the SVG image format through librsvg2. +** Mode-line changes -** If you set find-file-confirm-nonexistent-file to t, then C-x C-f -requires confirmation before opening a non-existent file. +*** The mode-line displays a `@', instead of `-', if the +default-directory for the current buffer is on a remote machine. -** If the gpm mouse server is running and t-mouse-mode enabled, Emacs uses a -Unix socket in a GNU/Linux console to talk to server, rather than faking events -using the client program mev. This C level approach provides mouse -highlighting, and help echoing in the minibuffer. +*** The mode-line displays a mode menu when mouse-1 is clicked on a +minor mode, in the same way as it already did for major modes. -** Recentering changes +*** The `mode-line-emphasis' face is used to highlight certain +mode-line information (e.g. waiting for a VC command to finish). -*** The new variable next-error-recenter specifies how next-error should -recenter the visited source file. Its value can be a number (for example, -0 for top line, -1 for bottom line), or nil for no recentering. - -*** New command recenter-top-bottom moves the current line to window -center, top and bottom on successive invokations. - -*** C-l is bound to the new command recenter-top-bottom, rather than recenter. - -** The mode-line displays a `@' if the default-directory for the current buffer -is on a remote machine, or a hyphen otherwise. - -** The mode-line displays a mode menu when mouse-1 is clicked on a minor mode, -in the same way as it already did for major modes. - -** The new command balance-windows-area balances windows both vertically -and horizontally. - -** The new command close-display-connection can be used to close a connection -to a remote display, e.g. because the display is about to become unreachable. - -** The command shell prompts for the default directory, when it is -called with a prefix, and the default directory is a remote file name. -This is because some file name handlers (like ange-ftp) are not able to -run processes remotely. - -** The new command `display-time-world' starts an updating time display -using several time zones, in a buffer. - -** Directory-local variables are now found in .dir-settings.el. See -also `set-directory-project' and `define-project-bindings'. - -** The new function `format-seconds' converts a number of seconds into a -readable string of days, hours, etc. - -** The new variables `before-init-time' and `after-init-time' record the -value of `current-time' before and after Emacs loads the init files. - -** The new function `emacs-uptime' returns the uptime of an Emacs instance. - -** The new function `emacs-init-time' returns the duration of the -Emacs initialization. - -** The minor modes unify-8859-on-encoding-mode, unify-8859-on-decoding-mode -are obsolete. - -** The new commands `pp-macroexpand-expression' and `pp-macroexpand-last-sexp' -pretty-print macro expansions. +** Directory-local variables can now be defined. +By default, Emacs looks in .dir-settings.el for directory-local +variables. For more information, see `set-directory-project' and +`define-project-bindings'. * Startup Changes in Emacs 23.1 @@ -293,29 +228,26 @@ identical. * Editing Changes in Emacs 23.1 -** Mark changes +** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now +invokes `suspend-frame'. This change is for compatibility with the +new multi-tty support (see `Improved X Window System support' above). +** Mark changes +++ *** Transient Mark mode is now on by default. - +++ *** mark-even-if-inactive now defaults to t - +++ *** When Transient Mark mode is on, C-SPC C-SPC pushes a mark without activating it. - +++ *** When Transient Mark mode is on, M-q now fills the region if the region is active. Otherwise, it fills the current paragraph. - +++ *** When Transient Mark mode is on, M-$ now checks spelling of the region if the region is active. Otherwise, it checks spelling of the word at point. - *** When Transient Mark mode is on, TAB now indents the region if the region is active. - *** `use-empty-active-region' controls whether an empty active region in Transient Mark mode should make commands operate on that empty region. @@ -334,35 +266,12 @@ shift-translated, or after commands that would ordinarily deactivate the mark in Transient Mark mode (e.g., any command that modifies the buffer). -+++ -** C-M-% now shows replacement as it would look in the buffer, with -`\N' and `\&' substituted according to the match. Old behavior can be -restored by customizing `query-replace-show-replacement'. - -** C-z now invokes `suspend-frame', C-x C-c now invokes -`save-buffers-kill-terminal'. - -** New command kill-matching-buffers kills buffers whose name matches a regexp. - -** You can disable kill ring commands from accessing the primary selection -by setting `x-select-enable-primary' to nil. - -** If `select-active-regions' is t, setting the mark automatically -makes the new region into the primary selection (for interaction with -other window applications). If you enable this, you might want to bind -`mouse-yank-primary' to Mouse-2. - -** If `yank-pop-change-selection' is t, rotating the kill ring -also updates the selection or clipboard to the current yank, -just as M-w would do so with the text it copies to the kill ring. - ** Minibuffer changes -*** Minibuffer input of shell commands now comes with completion. - -*** Operations like C-x b and C-x C-f which use switch-to-buffer do not fail -any more when used in a minibuffer or a dedicated window. Instead, they -fallback on using pop-to-buffer which will use some other window. +*** Operations like C-x b and C-x C-f, which use switch-to-buffer, do +not fail any more when used in a minibuffer or a dedicated window. +Instead, they fallback on using pop-to-buffer, which will use some +other window. *** When M-n in the minibuffer reaches the end of the list of defaults, it adds the completion list to the end, so next M-n continues putting @@ -371,15 +280,16 @@ incremental search commands as well: C-s or C-M-s starts searching the default values and after the end of defaults they continue searching minibuffer completion items. -*** In C-x d, if you type M-n you get the visited file name of the -current buffer. +*** Minibuffer input of shell commands now comes with completion. -*** A list of default commands extracted from mailcap according to -file extensions are available in the list of default values -accessible by M-n in the minibuffer that reads a shell command -for M-! (shell-command) and fills a list of commands for the current -file, and in Dired for ! (dired-do-shell-command) that fills a list of -commands for the intersection of file types of marked Dired files. +*** In the `C-x d' (Dired) prompt, typing M-n gives the visited file +name of the current buffer. + +*** In the M-! (shell-command) prompt, M-n provides some default commands. +These are guessed using the file extension of the current file, based +on the file-handlers specified in the operating system's `mailcap' +file. The ! command in Dired (dired-do-shell-command) works +similarly, using the file displayed on the current line. *** A list of regexp default values is available via M-n for `occur', `keep-lines', `flush-lines' and `how-many'. This list includes the active @@ -394,11 +304,6 @@ element, it wraps to the last history element, and the forward search wraps to the first history element. When the search is terminated, the history element containing the search string becomes the current. -** New faces - -*** `mode-line-emphasis' is used to highlight certain mode-line information; -for example while waiting for a VC command to finish. - ** Face changes *** The new function `face-all-attributes' returns an alist describing @@ -410,24 +315,110 @@ changed via face remapping (see below). *** FIXME face-remap +** Primary selection changes + +*** If `select-active-regions' is t, setting the mark automatically +makes the new region into the primary selection (for interaction with +other window applications). If you enable this, you might want to +bind `mouse-yank-primary' to Mouse-2. + +*** You can disable kill ring commands from accessing the primary selection +by setting `x-select-enable-primary' to nil. + +** Completion changes + +*** `completion-styles' can be customized to choose your favorite +completion style. + +*** The default completion styles include a form of partial-completion. + +*** The new command `minibuffer-force-complete' chooses one of the +possible completions, rather than stopping at the common prefix. + +*** `completion-auto-help' can be set to `lazy' to list the completions only +if you repeat the completion. This was already supported in +`partial-completion-mode'. + +** Miscellaneous changes: + +*** C-l is bound to the new command recenter-top-bottom, rather than recenter. +This moves the current line to window center, top and bottom on +successive invokations. + +*** scroll-preserve-screen-position also preserves the column position. + +*** The new command balance-windows-area balances windows both +vertically and horizontally. + +*** If `yank-pop-change-selection' is t, rotating the kill ring also +updates the selection or clipboard to the current yank, just as M-w +would do so with the text it copies to the kill ring. + ++++ +*** C-M-% now shows replacement as it would look in the buffer, with +`\N' and `\&' substituted according to the match. Old behavior can be +restored by customizing `query-replace-show-replacement'. + +*** The command shell prompts for the default directory, when it is +called with a prefix and the default directory is a remote file name. +This is because some file name handlers (like ange-ftp) are not able to +run processes remotely. + +*** The new command kill-matching-buffers kills buffers whose name +matches a regexp. + +*** The new commands `pp-macroexpand-expression' and `pp-macroexpand-last-sexp' +pretty-print macro expansions. + * New Modes and Packages in Emacs 23.1 -** rst-mode for ReSTructured-Text files. - ** FIXME add details of new packages imported from lisp/gnus. [Maybe some information from doc/misc/gnus-coding.texi can be reused] -** The package doc-view.el has been added. It supports viewing of PDF, -PostScript and DVI documents inside an Emacs buffer by converting the -document to a set of PNG images first. One can also search for a -regular expression in the document. The commentary of the file explains -its usage. +** Auto Composition Mode is a minor mode that composes characters +automatically when they are displayed. It is globally on by default. +It uses `auto-composition-function' (default `auto-compose-chars'). -** The nXML package has been added. It is a new mode for editing XML -documents. nXML mode allows a schema to be associated with the XML -document being edited. nXML mode uses Relax NG as its schema -language. The schema is used to provide two key features: +** Bubbles, a new game, is similar to SameGame. + +** bug-reference.el provides clickable links to bug reports. + +** copyright.el adds utilities for specifying copyright holders' names. + +*** Only copyright lines with holders matching copyright-names-regexp +will be considered for update. + +*** The Copyright package looks for copyright at the end of the buffer +if `copyright-at-end-flag' is non-nil (change-log-mode sets this). + +** dbus.el provides D-Bus language bindings. +D-Bus is an inter-process communication mechanism for applications +residing on the same host, based on messages. See the manual for +details. + +** Doc View Mode supports viewing of PDF, PostScript and DVI documents +inside an Emacs buffer. It works by converting the document to a set +of PNG images first. One can also search for a regular expression in +the document. The commentary in doc-view.el explains its usage. + +** EasyPG is an all-in-one GnuPG interface. +It includes GnuPG keyring browser, cryptographic operations on regions +and files, and automatic encryption of *.gpg files. For details, see +the EasyPG Assistant User's Manual. + +** json.el is a library for parsing and generating JSON +(JavaScript Object Notation), a lightweight data-interchange format. + +** linum.el is a new minor mode to display line numbers for the +current buffer. + +** minibuffer-indicate-depth-mode shows the minibuffer depth in the prompt. + +** nXML Mode +This is a new mode for editing XML documents. It allows a schema to +be associated with the XML document being edited, using Relax NG as +the schema language. The schema is used to provide two key features: *** Continuous validation. nXML validates as you type, highlighting any invalid parts of your document. @@ -436,59 +427,31 @@ any invalid parts of your document. attribute name or data value by using information about what is allowed by the schema in that context. -** A new game called `bubbles' has been added. This is a version of -the "Same Game" with configurable difficulty level. +** proced.el provides a Dired-like interface for operating on processes. +Proced makes an Emacs buffer containing a listing of the current +processes (using ps(1)). You can use the normal Emacs commands to +move around in this buffer, and special Proced commands to operate on +the processes listed. -** minibuffer-indicate-depth-mode shows the minibuffer depth in the prompt. +** Remember Mode is a mode for jotting down things to remember. +Notes can be saved to a Diary file. For details, see the Remember +Manual. -** Remember Mode (remember.el) is now included with Emacs. It is a -mode for quickly jotting down things to remember. Included with -remember.el is a backend that can save notes to a Diary file. Please -consult the Remember Manual for usage details. +** RST mode is a major mode for editing ReSTructured-Text files. -** D-Bus language bindings for Elisp are provided by the package -dbus.el and by extensions to the C modules of Emacs. D-Bus is an -inter-process communication mechanism for applications residing on the -same host, based on messages. See the manual for further details. +** A new `whitespace' package has been installed, and the pre-existing one +renamed to `old-whitespace'. +[FIXME someone explain why this is good, if it is...] ** zeroconf.el offers service discovery and service publishing interfaces according to the zeroconf specification. It communicates with Avahi, a zeroconf implementation, via D-Bus messages on systems which have installed this software. -** EasyPG is now part of the Emacs distribution. It is an all-in-one -GnuPG interface which includes GnuPG keyring browser, cryptographic -operations on regions and files, and automatic encryption of *.gpg -files. See the EasyPG Assistant User's Manual for further details. - -** json.el is now included with Emacs. It is a library for parsing -and generating JSON (JavaScript Object Notation). JSON is a -lightweight data-interchange format. - -** Auto Composition Mode is a minor mode that composes characters -automatically when they are displayed. It is globally on by default. -It uses `auto-composition-function' (default `auto-compose-chars'). - -** The package linum.el is now included with Emacs. It it a new minor -mode to display line numbers for the current buffer. - -** proced.el has been added. It operates on processes like dired. -Proced makes an Emacs buffer containing a listing of the current processes -(using ps(1)). You can use the normal Emacs commands to move around in -this buffer, and special Proced commands to operate on the processes listed. - -** bug-reference.el provides clickable links to bug reports. - * Changes in Specialized Modes and Packages in Emacs 23.1 -** Icomplete: `icomplete-prospects-height' supercedes `icomplete-prospects-length'. - -** A new `whitespace' package has been installed, and the pre-existing one -renamed to `old-whitespace'. -[FIXME someone explain why this is good, if it is...] - -** abbrev was rewritten in Elisp and extended with more flexibility. +** Abbrev has been rewritten in Elisp and extended with more flexibility. *** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put, abbrev-table-p, abbrev-insert, abbrev-table-menu. *** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'. @@ -502,6 +465,90 @@ renamed to `old-whitespace'. `:parents', `:case-fixed', `:enable-function', `:regexp', `abbrev-table-modiff'. +** Apropos +*** `apropos-library' describes the elements defined in a given library. +*** Set `apropos-compact-layout' is you want a more compact (but wider) layout. + +** Archive Mode has basic support to browse Rar archives. + +** BibTeX mode + +*** New command `bibtex-initialize' (re)initializes BibTeX buffers. + +*** New `bibtex-entry-format' options `whitespace', `braces', and +`string', disabled by default. + +*** New variable `bibtex-cite-matcher-alist' contains rules to +identify cited keys in BibTeX entries, used by `bibtex-find-crossref'. + +*** Command `bibtex-url' allows multiple URLs per entry. + +** Calendar and diary + ++++ +*** There is a new date style, `iso', essentially year/month/day. +The variable `european-calendar-style' is obsolete - use `calendar-date-style'. +Similarly, the commands `american-calendar' and `european-calendar' +should be replaced by `calendar-set-date-style'. + ++++ +*** The calendar namespace has been rationalized. +All functions and variables now begin with a `calendar-', `diary-', or +`holiday-' prefix. The various calendar systems have secondary +prefixes, eg `calendar-french-'. The old names you are likely to use +directly still exist, for the time being, as aliases, but please start +using the new names. + +*** The function `holiday-chinese' computes holidays on the Chinese calendar. +It has been used to add items to the list `holiday-oriental-holidays'. + +*** `diary-remind' accepts a negative number -DAYS as a shorthand for +the list (1 2 ... DAYS). + +** Compile and grep modes + +*** The mode-line entry for the *compilation* and *grep* buffer is color coded. +It has different colors for to show that: (a) the command is still +running, (b) successful completion, (c) error. + +*** compilation-auto-jump-to-first-error tells `compile' to jump to +the first error encountered during compilations. + +** Custom ++++ +*** defcustom accepts new keyword arguments, `:safe' and `:risky', which +set a variable's `safe-local-variable' and `risky-local-variable' property. + +** Diff mode + +*** diff-refine-hunk highlights word-level details of changes in a diff hunk. +It's used automatically as you move through hunks, see +diff-auto-refine. It is bound to `C-c C-b'. + +*** diff-add-change-log-entries-other-window iterates through the diff +buffer and tries to create ChangeLog entries for each change. +It is bound to `C-x 4 A'. + +** Fortran +*** The variable `fortran-line-length' can change the fixed-form line-length. + +*** In Fortran mode, M-; is now bound to the standard comment-dwim, +rather than fortran-indent-comment. + ++++ +*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax. + +** Gnus + +*** The Gnus package has been updated +There are many news features, bug fixes and improvements; see the file +GNUS-NEWS or the node "No Gnus" in the Gnus manual for details. + +*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for +saving articles drafts and ~/.newsrc.eld. These file may not be read +correctly in Emacs 22 and below. If you want to Gnus across different Emacs +versions, you may set `mm-auto-save-coding-system' to `emacs-mule'. + ** Help mode *** New macro `with-help-window' should set up help windows better than `with-output-to-temp-buffer' with `print-help-return-message'. @@ -510,10 +557,7 @@ window shall be automatically selected when invoking help. *** New variable `help-window-point-marker' permits to specify new position of point in help window (for example in `view-lossage'). -** view-remove-frame-by-deleting is now by default t -since users found iconification of view-mode frames distracting. - -** Isearch mode +** Isearch *** New command `isearch-occur' bound to `M-s o' in isearch mode runs `occur' with the current search string. @@ -534,41 +578,58 @@ documentation of the given isearch key sequence, `C-h m' displays documentation of isearch mode. All the rest Help commands exit isearch mode and execute their global definitions. -** archive-mode has basic support to browse Rar archives. +*** When started in the minibuffer, Isearch searches in the minibuffer +history. See `Minibuffer changes', above. -** talk.el has been extended for multiple tty support. +** Python +*** The file etc/emacs.py now supports both Python 2 and 3, meaning +that either version can be used as inferior Python by python.el. -** Compile and grep modes +*** Python mode now has `pdbtrack' functionality. When using pdb to +debug a Python program, pdbtrack notices the pdb prompt and displays +the source file and line that the program is stopped at, much the same +way as gud-mode does for debugging C programs with gdb. -*** The mode-line entry for the *compilation* and *grep* buffer is color coded. -It has different colors for to show that: (a) the command is still -running, (b) successful completion, (c) error. +** T-mouse Mode -*** compilation-auto-jump-to-first-error tells `compile' to jump to -the first error encountered during compilations. - -** In the `copyright' package, you can specify your copyright holders' names. -Only copyright lines with holders matching copyright-names-regexp will be -considered for update. - -** The `copyright' package looks for copyright at the end of the buffer -if `copyright-at-end-flag' is non-nil (change-log-mode sets this). - -** eldoc highlights the function argument under point -with the face `eldoc-highlight-function-argument'. - -** hide-ifdef-mode permits to shadow ifdef-blocks instead of hiding them. -See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. +*** If the gpm mouse server is running and t-mouse-mode is enabled, +Emacs uses a Unix socket in a GNU/Linux console to talk to server, +rather than faking events using the client program mev. This C level +approach provides mouse highlighting and help echoing in the +minibuffer. +++ -** defcustom accepts new keyword arguments, `:safe' and `:risky', which -set a variable's `safe-local-variable' and `risky-local-variable' property. +** Tramp -** Etags changes -*** The --members option is now the default. +*** New connection methods. +The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have +been introduced. There are also new so-called gateway methods +"tunnel" and "socks". -Use --no-members if you want the old default behaviour of not tagging -struct members in C, members variables in C++ and variables in PHP. +*** Multihop syntax has been removed. +The pseudo-method "multi" has been removed. Instead of, multi hops +can be specified by the new variable `tramp-default-proxies-alist'. + +*** More default settings. +Default values can be set via the variables `tramp-default-user', +`tramp-default-user-alist' and `tramp-default-host'. + +*** Connection information is cached. +In order to reduce connection setup, information about used +connections are kept persistent in a file. The name of this file is +defined in the variable `tramp-persistency-file-name'. + +*** Control of remote processes. +Running processes on a remote host can be controlled by settings in +`tramp-remote-path' and `tramp-remote-process-environment'. + +*** Success of remote copy is checked. +When the variable `file-precious-flag' is set, the success of a remote +file copy is checked via the file's checksum. + +*** Passwords can be read from an authentification file. +Tramp uses the package `auth-source' to read passwords from a file, if +necessary. ** VC @@ -612,159 +673,74 @@ by typing the D key or using the "Changeset Diff" menu entry. *** VC Support for Meta-CVS has been removed for lack of maintainer able to update it to the new VC. -** smerge-refine highlights word-level details of changes in conflict. -It's used automatically as you move through conflicts, see smerge-auto-refine. - -** Diff mode - -*** diff-refine-hunk highlights word-level details of changes in a diff hunk. -It's used automatically as you move through hunks, see -diff-auto-refine. It is bound to `C-c C-b'. - -*** diff-add-change-log-entries-other-window iterates through the diff -buffer and tries to create ChangeLog entries for each change. -It is bound to `C-x 4 A'. - -** log-edit now has a command bound to C-c C-d to show the diff for -the files involved. - -** In Change Log mode, the new function `change-log-find-file', bound to -C-c C-f, finds the file associated with the current log entry. - -** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs. - -** The appearance of superscript and subscript in TeX is more customizable. -See the documentation of the variables: tex-fontify-script, -tex-font-script-display, tex-suscript-height-ratio, and -tex-suscript-height-minimum. - -** BibTeX mode - -*** New command `bibtex-initialize' (re)initializes BibTeX buffers. - -*** New `bibtex-entry-format' options `whitespace', `braces', and -`string', disabled by default. - -*** New variable `bibtex-cite-matcher-alist' contains rules to -identify cited keys in BibTeX entries, used by `bibtex-find-crossref'. - -*** Command `bibtex-url' allows multiple URLs per entry. - -+++ -** Tramp - -*** New connection methods. -The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have -been introduced. There are also new so-called gateway methods -"tunnel" and "socks". - -*** Multihop syntax has been removed. -The pseudo-method "multi" has been removed. Instead of, multi hops -can be specified by the new variable `tramp-default-proxies-alist'. - -*** More default settings. -Default values can be set via the variables `tramp-default-user', -`tramp-default-user-alist' and `tramp-default-host'. - -*** Connection information is cached. -In order to reduce connection setup, information about used -connections are kept persistent in a file. The name of this file is -defined in the variable `tramp-persistency-file-name'. - -*** Control of remote processes. -Running processes on a remote host can be controlled by settings in -`tramp-remote-path' and `tramp-remote-process-environment'. - -*** Success of remote copy is checked. -When the variable `file-precious-flag' is set, the success of a remote -file copy is checked via the file's checksum. - -*** Passwords can be read from an authentification file. -Tramp uses the package `auth-source' to read passwords from a file, if -necessary. - -** Calendar and diary - -+++ -*** There is a new date style, `iso', essentially year/month/day. -The variable `european-calendar-style' is obsolete - use `calendar-date-style'. -Similarly, the commands `american-calendar' and `european-calendar' -should be replaced by `calendar-set-date-style'. - -+++ -*** The calendar namespace has been rationalized. -All functions and variables now begin with a `calendar-', `diary-', or -`holiday-' prefix. The various calendar systems have secondary -prefixes, eg `calendar-french-'. The old names you are likely to use -directly still exist, for the time being, as aliases, but please start -using the new names. - -*** The function `holiday-chinese' computes holidays on the Chinese calendar. -It has been used to add items to the list `holiday-oriental-holidays'. - -*** `diary-remind' accepts a negative number -DAYS as a shorthand for -the list (1 2 ... DAYS). - -** Miscellaneous programming mode changes - -*** The file etc/emacs.py now supports both Python 2 and 3, meaning -that either version can be used as inferior Python by python.el. - -*** Python mode now has `pdbtrack' functionality. When using pdb to -debug a Python program, pdbtrack notices the pdb prompt and displays -the source file and line that the program is stopped at, much the same -way as gud-mode does for debugging C programs with gdb. - -*** The variable `fortran-line-length' can change the fixed-form line-length. - -*** In Fortran mode, M-; is now bound to the standard comment-dwim, -rather than fortran-indent-comment. - -+++ -*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax. - -*** The function `gdb' only works with the graphical interface now. -Use `gud-gdb' if you want the (old) text command mode. - -** Gnus package - -*** The Gnus package has been updated - -*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for -saving articles drafts and ~/.newsrc.eld. These file may not be read -correctly in Emacs 22 and below. If you want to Gnus across different Emacs -versions, you may set `mm-auto-save-coding-system' to `emacs-mule'. - -*** There are many news features, bug fixes and improvements. - -See the file GNUS-NEWS or the node "No Gnus" in the Gnus manual for details. - ** Miscellaneous -*** goto-address.el provides two new minor modes, goto-address-mode and -goto-address-prog-mode, which buttonize URLS and email addresses. +*** In Change Log mode, the new command C-c C-f (change-log-find-file) +finds the file associated with the current log entry. *** comint-mode uses `start-file-process' now (see Lisp Changes). If `default-directory' is a remote file name, subprocesses are started on the corresponding remote system. -*** C-x C-q in dired-mode now runs the command wdired-change-to-wdired-mode, +*** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode, and C-x C-q in wdired-mode exits it with asking a question about saving changes. +*** Eldoc highlights the function argument under point +with the face `eldoc-highlight-function-argument'. + +*** In Etags, the --members option is now the default. +Use --no-members if you want the old default behaviour of not tagging +struct members in C, members variables in C++ and variables in PHP. + +*** The `gdb' command only works with the graphical interface now. +Use `gud-gdb' if you want the (old) text command mode. + +*** goto-address.el provides two new minor modes, goto-address-mode and +goto-address-prog-mode, which buttonize URLS and email addresses. + *** The new command `eshell/info' runs info in an eshell buffer. -*** The pcmpl-unix package supports hostname completion for ssh and scp. - -*** WoMan tries to add locale-specific manual page directories to the -search path. This can be disabled by setting `woman-locale' to nil. - *** The new variable `ffap-rfc-directories' specifies a list of local directories in which `ffap-rfc' will first search for RFCs. +*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them. +See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. + +*** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'. + +*** Info displays breadcrumbs in the header of the page. +See Info-breadcrumbs-depth to control it. + +*** In Log Edit mode, C-c C-d now shows the diff for the files involved. + *** net-utils has an `iwconfig' command, similar to the existing `ifconfig'. It is used to configure wireless interfaces. +*** The pcmpl-unix package supports hostname completion for ssh and scp. + +*** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs. + +*** smerge-refine highlights word-level details of changes in conflict. +It's used automatically as you move through conflicts, see smerge-auto-refine. + +*** talk.el has been extended for multiple tty support. + +*** A new command `display-time-world' has been added to the Time +package. It creates a buffer with an updating time display using +several time zones. + +*** The appearance of superscript and subscript in TeX is more customizable. +See the documentation of the variables: tex-fontify-script, +tex-font-script-display, tex-suscript-height-ratio, and +tex-suscript-height-minimum. + +*** view-remove-frame-by-deleting is now by default t +since users found iconification of view-mode frames distracting. + +*** WoMan tries to add locale-specific manual page directories to the +search path. This can be disabled by setting `woman-locale' to nil. + * Changes in Emacs 23.1 on non-free operating systems @@ -870,6 +846,41 @@ functions and variables (formerly used for Tamil script). * Lisp Changes in Emacs 23.1 +** The new variable next-error-recenter specifies how next-error should +recenter the visited source file. Its value can be a number (for example, +0 for top line, -1 for bottom line), or nil for no recentering. + +** Emacs session information + +*** The new variables `before-init-time' and `after-init-time' record the +value of `current-time' before and after Emacs loads the init files. + +*** The new function `emacs-uptime' returns the uptime of an Emacs instance. + +*** The new function `emacs-init-time' returns the duration of the +Emacs initialization. + +** The new function `format-seconds' converts a number of seconds into a +readable string of days, hours, etc. + +** set-file-modes is now interactive and can take the mode value in +symbolic notation thanks to auxiliary functions. + +** If you set find-file-confirm-nonexistent-file to t, then C-x C-f +requires confirmation before opening a non-existent file. + +** Built-in functions (subr) can now have an interactive specification +that is not a prompt string. If the `intspec' parameter of a `DEFUN' +starts with a `(', the string is evaluated as a Lisp form. + +** Changes affecting display-buffer +*** New value nil for split-height-threshold inhibits vertical splitting +unless there's no other window. +*** New option split-width-threshold controls horizontal splitting. +*** A window can be split horizontally even when it's not full-width. +*** New option split-window-preferred-function can be set to a function +to override the default splitting mechanism of display-buffer. + ** The variable window-point-insertion-type determines the insertion-type of the marker used for window-point. @@ -1184,6 +1195,7 @@ local-function-key-map variables, and uses them instead of the global keymaps to set up translations and function key sequences relevant to a specific terminal device. +*** `underline-minimum-offset' keeps the underline away from the baseline. ** You can now also pass the value of the `invisible' property to invisible-p to check whether it would cause the text to be invisible. Convenient when