Extract better font information from the GTK >= 3.2 font chooser.
[bpt/emacs.git] / etc / NEWS
index 9d011df..5b0291a 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -23,12 +23,21 @@ so we will look at it and add it to the manual.
 \f
 * Installation Changes in Emacs 24.2
 
+** New configure option '--without-all' to disable additonal features.
+This disables most of the features that are normally enabled by default.
+
+** New configure option '--enable-link-time-optimization' to utilize
+an appropriate feature provided by GCC since version 4.5.0.
+
 ** New configure option '--enable-gcc-warnings', intended for developers.
 If building with GCC, this enables compile-time checks that warn about
 possibly-questionable C code.  On a recent GNU system there should be
 no warnings; on older and on non-GNU systems the generated warnings
 may be useful.
 
+** The configure option '--disable-maintainer-mode' has been removed,
+as it was confusingly-named and rarely useful.
+
 ---
 ** Emacs uses libtinfo in preference to libncurses, if available.
 
@@ -37,6 +46,20 @@ may be useful.
 /usr/pkg/lib to the linker search path.  You must add them yourself if
 you want them.
 
+---
+** On Mac OS X, configure no longer automatically adds the Fink /sw
+directories to the search path.  You must add them yourself if you want them.
+
+---
+** The standalone scripts rcs-checkin and vcdiff have been removed
+(from the bin and libexec directories, respectively).  The former is
+no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
+
+** The configuration option '--enable-use-lisp-union-type' has been
+renamed to '--enable-check-lisp-object-type', as the resulting
+Lisp_Object type no longer uses a union to implement the compile time
+check that this option enables.
+
 \f
 * Startup Changes in Emacs 24.2
 
@@ -44,9 +67,31 @@ you want them.
 lisp/ directory.  There should not be any there anyway.  If you have
 been adding them there, put them somewhere else, eg site-lisp.
 
+---
+** The `--no-site-lisp' command line option now works for Nextstep builds.
+
 \f
 * Changes in Emacs 24.2
 
+** Help changes
+
+*** `C-h f' (describe-function) can now perform autoloading.
+When this command is called for an autoloaded function whose docstring
+contains a key substitution construct, that function's library is
+automatically loaded, so that the documentation can be shown
+correctly.  To disable this, set `help-enable-auto-load' to nil.
+
+*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
+even after their associated libraries have been loaded (and the
+autoloads have been redefined as functions).
+
+** The function `current-time' now returns extended-format time stamps
+(HIGH LOW USEC PSEC) that use picosecond resolution; the PSEC
+component is new.  PSEC is typically a multiple of 1000 on current
+machines.  Other functions that use this format, such as
+file-attributes and format-time-string, have been changed accordingly.
+Old-format time stamps are still accepted.
+
 ** New functions `system-users', `system-groups' return lists of the user
 name, group names known to the system (where possible).
 
@@ -56,66 +101,251 @@ name, group names known to the system (where possible).
 ** ImageMagick support, if available, is automatically enabled.
 It is no longer necessary to call `imagemagick-register-types'
 explicitly to install ImageMagick image types; that function is called
-automatically when setting `imagemagick-types-inhibit'.
+automatically at startup, or when customizing a relevant imagemagick-
+option.
 
 *** Setting `imagemagick-types-inhibit' to t now disables the use of
-ImageMagick to view images, set
+ImageMagick to view images.  You must call imagemagick-register-types
+afterwards if you do not use customize to change this.
+
+*** The new variable `imagemagick-enabled-types' also affects which
+ImageMagick types are treated as images.  The function
+`imagemagick-filter-types' returns the list of types that will be
+treated as images.
+
+*** Images displayed via ImageMagick now support transparency and the
+:background image spec property.
+
+** Internationalization changes
+
+*** New language environment: Persian.
+
+** Face underlining can now use a wave.
+See the "Face Attributes" section of the Elisp manual.
+
+** New fringe bitmap exclamation-mark.
 
 ** String values for `initial-buffer-choice' also apply to emacsclient
 frames, if emacsclient is only told to open a new frame without
 specifying any file to visit or expression to evaluate.
 
++++
+** You can prevent the creation of lock files by setting `create-lockfiles'
+to nil.  Use with caution, and only if you really need to.
+
++++
 ** Using "unibyte: t" in Lisp source files is obsolete.
 Use "coding: raw-text" instead.
 
+** Mode line changes
+
+*** New option `mode-line-default-help-echo' specifies the help text
+(shown in a tooltip or in the echo area) for any part of the mode line
+that does not have its own specialized help text.
+
+*** You can now click mouse-3 in the coding system indicator to
+invokes `set-buffer-file-coding-system'.
+
++++
+** Setting `enable-remote-dir-locals' to non-nil allows directory
+local variables on remote hosts.
+
++++
+** `insert-char' is now a command, and `ucs-insert' an obsolete alias
+for it.
+
+** The entry for PCL-CVS has been removed from the Tools menu.
+The PCL-CVS commands are still available via the keyboard.
+
 \f
 * Editing Changes in Emacs 24.2
 
+** New option `delete-trailing-lines' specifies whether the M-x
+delete-trailing-whitespace command should delete trailing lines at the
+end of the buffer.  It defaults to t.
+
+** Search changes
+
+*** Global `M-s _' starts a symbol (identifier) incremental search,
+and `M-s _' in Isearch toggles symbol search mode.
+`M-s c' in Isearch toggles search case-sensitivity.
+
 ** M-x move-to-column, if called interactively with no prefix arg, now
 prompts for a column number.
 
 ** `mouse-avoidance-banish-position' can now be used to customize
 `mouse-avoidance-mode' further.
 
+** `C-u M-=' now counts lines/words/characters in the entire buffer.
+
 ** `C-M-f' and `C-M-b' will now move to the path name separator
 character when doing minibuffer filename prompts.
 
 ** `goto-char' is now bound to `M-g c'.
 
+** New command `C-x r M-w' (copy-rectangle-as-kill).
+It copies the region-rectangle as the last rectangle kill.
+
+** New input method `vietnamese-vni'.
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 24.2
 
-** reStructuredText mode
+** Term changes
+
+The variables `term-default-fg-color' and `term-default-bg-color' are
+now deprecated in favor of the `term-face' face, that you can
+customize.  Also, it is now possible to customize how are displayed the
+ANSI terminal colors and styles by customizing the corresponding
+`term-color-<COLOR>', `term-color-underline' and `term-color-bold'
+faces.
+
+** CL
+*** CL's main entry is now (require 'cl-lib).
+`cl-lib' is like the old `cl' except that it uses the namespace cleanly,
+i.e. all its definitions have the "cl-" prefix (and internal definitions use
+the "cl--" prefix).
+
+If `cl' provided a feature under the name `foo', then `cl-lib' provides it
+under the name `cl-foo' instead, with the exceptions of the few definitions
+that had to use `foo*' to avoid conflicts with pre-existing Elisp entities,
+which have not been renamed to `cl-foo*' but just `cl-foo'.
+
+The old `cl' is now deprecated and is just a bunch of aliases that
+provide the old non-prefixed names.
+
+*** `cl-flet' is not like `flet' (which is deprecated).
+Instead it obeys the behavior of Common-Lisp's `flet'.
+
+*** `cl-labels' is slightly different from `labels'.
+The difference is that it relies on the `lexical-binding' machinery (as opposed
+to the `lexical-let' machinery used previously) to capture definitions in
+closures, so such closures will only work if `lexical-binding' is in use.
+
+*** `progv' was rewritten to use the `let' machinery.
+A side effect is that vars without corresponding value are bound to nil
+rather than making them unbound.
+
+** Desktop
+
+*** `desktop-path' no longer includes the "." directory.  Desktop
+files are now located in ~/.emacs.d by default.
+
+** Python mode
+
+A new version of python.el, which provides several new features, including:
+per-buffer shells, better indentation, Python 3 support, and improved
+shell-interaction compatible with iPython (and virtually any other
+text based shell).
+
+*** Some user options have been replaced/renamed:
+Old defcustom:                | New defcustom:
+python-indent                 | python-indent-offset
+python-guess-indent           | python-indent-guess-indent-offset
+python-pdbtrack-do-tracking-p | python-pdbtrack-activate
+python-use-skeletons          | python-skeleton-autoinsert
+
+*** Some user options have been removed:
+
+**** `python-indent-string-contents': Strings are never indented.
+
+**** `python-honour-comment-indentation':
+Comments are never considered as indentation markers themselves.
+
+**** `python-continuation-offset': Indentation is automatically
+calculated in a pep8 compliant way depending on the context.
+
+**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist':
+Have no direct mapping as the shell interaction is completely different.
+
+**** `python-python-command', `python-jython-command':
+Replaced by `python-shell-interpreter'.
 
-*** Major merge with upstream development.
+**** `inferior-python-filter-regexp', `python-remove-cwd-from-path',
+`python-pdbtrack-minor-mode-string', `python-source-modes':
+No longer relevant.
 
-*** Nearly all keys are rebound making room for more keys and comply
-better to usage in other modes. Bindings are described with C-c C-h.
+*** Some commands have been replaced:
+Old command               | New command
+python-insert-class       | python-skeleton-class
+python-insert-def         | python-skeleton-def
+python-insert-for         | python-skeleton-for
+python-insert-if          | python-skeleton-if
+python-insert-try/except  | python-skeleton-try
+python-insert-try/finally | python-skeleton-try
+python-insert-while       | python-skeleton-while
+python-find-function      | python-nav-jump-to-defun
+python-next-statement     | python-nav-forward-sentence
+python-previous-statement | python-nav-backward-sentence
+python-send-buffer        | python-shell-send-buffer
+python-send-defun         | python-shell-send-defun
+python-send-region        | python-shell-send-region
+python-send-region-and-go | Emulate with python-shell-send-region and
+                            python-shell-switch-to-shell
+python-send-string        | python-shell-send-string
+python-switch-to-python   | python-shell-switch-to-shell
+python-describe-symbol    | python-eldoc-at-point
 
-*** Major revision of indentation. Now works very similar to other
-modes. TAB is your friend.
+** VHDL mode
 
-*** Major revision of filling. Works fine with most of
-reStructuredText syntax. Auto-filling is also supported.
+*** The free software compiler GHDL is supported (and now the default).
+
+*** Support for the VHDL-AMS packages has been added/updated.
+
+*** Updated to the 2002 revision of the VHDL standard.
+
+*** Accepts \r and \f as whitespace.
+
+** Diff mode
+
+Faces for changes now use the same diff color scheme as in modern VCSes
+where deletions are displayed in red (new faces `diff-refine-removed'
+and `smerge-refined-removed' and new definition of `diff-removed'),
+insertions in green (new faces `diff-refine-added' and
+`smerge-refined-added' and new definition of `diff-added').
+The variable `diff-use-changed-face' defines whether to use
+the face `diff-changed', or `diff-removed' and `diff-added'
+to highlight changes in context diffs.
+
+** Ediff now uses the same color scheme as Diff mode
+on high color displays.
+
+** Flymake uses fringe bitmaps to indicate errors and warnings.
+See flymake-fringe-indicator-position, flymake-error-bitmap and
+flymake-warning-bitmap.
+
+** `sh-script'
+*** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair.
+*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
+*** `sh-use-smie' lets you choose a new indentation and navigation code.
+
+** reStructuredText mode
+
+*** Rebind nearly all keys making room for more keys and complying
+better to usage in other modes.  Describe bindings with C-c C-h.
+
+*** Major revision of indentation working very similar to other
+modes.  TAB is your friend.
+
+*** Major revision of filling working fine with most of
+reStructuredText syntax.  Support auto-filling.
 
 *** Major revision of comment handling.
 
-*** Major revision of fontification. Now works with `jit-lock-mode'.
-Thanks to Stefan Monnier for help.
+*** Major revision of fontification working with `jit-lock-mode'.
 
-*** reStructuredText syntax is covered more closely in many cases.
-Among other things this improves the experience for Sphinx users.
+*** Cover reStructuredText syntax more closely.  Improve
+the experience for Sphinx users.
 
 *** `rst-insert-list' inserts new list or continues existing lists.
-Based on code by Wei-Wei Guo.
 
-*** Customization is extended, corrected and improved.
+*** Extend correct and improve customization.
 
 *** Negative prefix argument always works for `rst-adjust'.
 
-*** Window configuration is reset after displaying TOC.
+*** Reset window configuration after displaying TOC.
 
-*** There is a package version in `rst-version'
+*** Package version in `rst-version'.
 
 ** New `derived-mode' filter for Ibuffer, bound to `/ M'.
 `/ m' is now bound to filter by used-mode, which used to be bound to `/ M'.
@@ -129,6 +359,12 @@ see the `apropos' Custom group for details.
 **** The old options whose values specified faces to use were removed
 (i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
 
+** Buffer Menu
+This package has been rewritten to use Tabulated List mode.
+
+*** Option `Buffer-menu-buffer+size-width' is now obsolete.
+Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
+
 ** Calendar
 
 *** The calendars produced by cal-html include holidays.
@@ -145,6 +381,24 @@ these commands now).
 ** erc will look up server/channel names via auth-source and use the
 channel keys found, if any.
 
+** Dired
+
+*** `dired-do-async-shell-command' executes each file sequentially
+if the command ends in `;' (when operating on multiple files).
+Otherwise, it executes the command on each file in parallel.
+
+** Shell
+
+*** New option `async-shell-command-buffer' specifies what buffer to use
+for a new asynchronous shell command when the default output buffer
+`*Async Shell Command*' is already taken by another running command.
+
+** FFAP
+
+*** The option `ffap-url-unwrap-remote' can now be a list of strings,
+specifying URL types which should be converted to remote file names at
+the FFAP prompt.  The default is now '("ftp").
+
 ** Follow mode
 
 *** The obsolete variable `follow-mode-off-hook' has been removed.
@@ -162,6 +416,15 @@ closing brackets to be aligned with the line of the opening bracket.
 
 ** which-function-mode now applies to all applicable major modes by default.
 
+** Tramp
+
++++
+*** The syntax has been extended in order to allow ad-hoc proxy
+definitions.  See the manual for details.
+
++++
+*** Remote processes are now supported also on remote Windows host.
+
 ** D-Bus
 
 +++
@@ -197,11 +460,28 @@ details.
 The function `notifications-get-capabilities' returns the supported
 server properties.
 
+** Package Menu
+
+*** Newly-available packages are listed in the Package Menu as "new",
+and sorted above the other "available" packages by default.
+
 ** Tabulated List and packages derived from it
 
 *** New command `tabulated-list-sort', bound to `S', sorts the column
 at point, or the Nth column if a numeric prefix argument is given.
 
+** URL
+
+*** Structs made by `url-generic-parse-url' have nil `attributes' slot.
+Previously, this slot stored semicolon-separated attribute-value pairs
+appended to some imap URLs, but this is not compatible with RFC 3986.
+So now the `filename' slot stores the entire path and query components
+and the `attributes' slot is always nil.
+
+*** New function `url-encode-url' for encoding a URI string.
+The `url-retrieve' function now uses this to encode its URL argument,
+in case that is not properly encoded.
+
 ** Obsolete packages:
 
 *** assoc.el
@@ -211,23 +491,41 @@ inefficiency, and not namespace-clean.
 
 *** bruce.el
 
+*** ledit.el
+
 *** mailpost.el
 
 *** mouse-sel.el
 
 *** patcomp.el
 
+*** cust-print.el
+
 \f
 * New Modes and Packages in Emacs 24.2
 \f
 * Incompatible Lisp Changes in Emacs 24.2
 
+** The function `x-select-font' can return a font spec, instead of a
+font name as a string.  Whether it returns a font spec or a font name
+depends on the graphical library.
+
+** If the NEWTEXT arg to `replace-match' contains a substring "\?",
+that substring is inserted literally even if the LITERAL arg is
+non-nil, instead of causing an error to be signaled.
+
 +++
 ** Docstrings starting with `*' no longer indicate user options.
 Only variables defined using `defcustom' are considered user options.
 The function `user-variable-p' is now an obsolete alias for
 `custom-variable-p'.
 
++++
+** The return values of `defalias', `defun' and `defmacro' have changed,
+and are now undefined.  For backwards compatibility, defun and
+defmacro currently return the name of the newly defined function/macro
+but this should not be relied upon.
+
 ** `face-spec-set' no longer sets frame-specific attributes when the
 third argument is a frame (that usage was obsolete since Emacs 22.2).
 
@@ -236,20 +534,75 @@ third argument is a frame (that usage was obsolete since Emacs 22.2).
 but keywords or keyword-string pairs.  The old argument list will
 still be supported for Emacs 24.x.
 
+** Spelling changes.
+Some Lisp symbols have been renamed to avoid problems with spelling
+that is incorrect or inconsistent with how Emacs normally spells a word.
+
+*** Renamed functions
+
+**** hangul-input-method-inactivate -> hangul-input-method-deactivate
+**** inactivate-input-method -> deactivate-input-method
+**** quail-inactivate -> quail-deactivate
+**** robin-inactivate -> robin-deactivate
+**** viper-inactivate-input-method -> viper-deactivate-input-method
+**** viper-inactivate-input-method-action ->
+     viper-deactivate-input-method-action
+**** ucs-input-inactivate -> ucs-input-deactivate
+
+*** Renamed hooks
+The old hooks are still supported for backward compatibility, but they
+are deprecated and will be removed eventually.
+
+**** input-method-inactivate-hook -> input-method-deactivate-hook
+**** robin-inactivate-hook -> robin-deactivate-hook
+**** quail-inactivate-hook -> quail-deactivate-hook
+
+*** Renamed Lisp variables
+
+**** follow-deactive-menu -> follow-inactive-menu
+**** inactivate-current-input-method-function ->
+     deactivate-current-input-method-function
+
 ** The following obsolete variables and varaliases have been removed:
 
 *** `facemenu-unlisted-faces'
 *** `rmail-decode-mime-charset'
+*** `last-input-char' and `last-command-char'
 
 \f
 * Lisp changes in Emacs 24.2
 
+** New functions `autoloadp' and `autoload-do-load'.
+
+** New function `posnp' to test if an object is a `posn'.
+
+** `function-get' fetches the property of a function, following aliases.
+
+** `toggle-read-only' accepts a second argument specifying whether to
+print a message, if called from Lisp.
+
+** CL-style generalized variables are now in core Elisp.
+`setf' is autoloaded and `push' and `pop' accept generalized variables.
+
+** `defun' also accepts a (declare DECLS) form, like `defmacro'.
+The interpretation of the DECLS is determined by `defun-declarations-alist'.
+
+** `macro-declaration-function' is obsolete, use `macro-declarations-alist'.
+
 ** New function `set-temporary-overlay-map'.
 
 ** New macros `setq-local' and `defvar-local'.
 
 ** New error type and new function `user-error'.  Doesn't trigger the debugger.
 
+** Window changes
+
+*** The functions get-lru-window, get-mru-window and get-largest-window
+now accept a third argument to avoid choosing the selected window.
+
+*** New display action alist `inhibit-switch-frame', if non-nil, tells
+display action functions to avoid changing which frame is selected.
+
 ** Completion
 
 *** New function `completion-table-with-quoting' to handle completion
@@ -264,7 +617,12 @@ table, but with a different prefix.
 must be in the range 1000..9999.  It now works with any year supported
 by the underlying C implementation.
 
+** New function file-name-base.
+
+** New function `tty-top-frame' returns the topmost frame of a text terminal.
+
 ** `automount-dir-prefix' is obsolete.
+** `buffer-has-markers-at' is obsolete.
 \f
 * Changes in Emacs 24.2 on non-free operating systems
 
@@ -273,6 +631,12 @@ by the underlying C implementation.
 *** --without-libxml2 omits support for libxml2, even if its presence
 is detected.
 
+** When invoked with the -nw switch to run on the Windows text-mode terminal,
+Emacs now supports mouse highlight, help-echo (in the echo area), and
+mouse-autoselect-window.
+
+** On MS-Windows Vista and later Emacs now supports symbolic links.
+
 \f
 * Installation Changes in Emacs 24.1
 
@@ -419,7 +783,8 @@ terminal coding system.  The new option `glyphless-char-display-control'
 specifies how to display them: as a hexadecimal code in a box, a thin
 1-pixel space, an empty box, etc.
 
-*** New input methods: farsi, farsi-translit, bulgarian-alt-phonetic.
+*** New input methods for Farsi and Bulgarian
+(farsi-isiri-9147, farsi-transliterate-banan, bulgarian-alt-phonetic).
 
 *** `nobreak-char-display' now also highlights Unicode hyphen chars
 (U+2010 and U+2011).
@@ -840,7 +1205,7 @@ buffer was used.
 The search is performed using `customize-apropos'.
 To turn off the search field, set `custom-search-field' to nil.
 
-*** Custom options now start out hidden if at their default values.
+*** Options in customize group buffers start out hidden if not customized.
 Use the arrow to the left of the option name to toggle visibility.
 
 *** custom-buffer-sort-alphabetically now defaults to t.