X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/2ed909207ee7afb93284d113526071e83fc1a5c1..750ae9b2e9d07b3f6f92ab8e87113db22a8fa1fa:/etc/NEWS diff --git a/etc/NEWS b/etc/NEWS index f5ab7c60ce..a0e5d72c8e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -15,10 +15,10 @@ You can narrow news to a specific version by calling `view-emacs-news' with a prefix argument or by typing C-u C-h C-n. Temporary note: -+++ indicates that the appropriate manual has already been updated. ---- means no change in the manuals is called for. -When you add a new item, please add it without either +++ or --- -so we will look at it and add it to the manual. ++++ indicates that all necessary updates to the manuals in doc/ are complete. +--- means no change in the manuals is needed. +When you add a new item, use the appropriate mark if you know it applies, +otherwise leave it unmarked. * Installation Changes in Emacs 24.4 @@ -29,45 +29,64 @@ build time, like libacl on GNU/Linux. To prevent this, use the configure option `--disable-acl'. ** Emacs can be compiled with file notification support. -The configure option `--with-file-notification=LIB' enables file -notification support in Emacs. This option's value should be `yes', -`no', `gfile', `inotify' or `w32'. `yes' is a synonym for `w32' on -MS-Windows, and for `gfile' otherwise. The default value is `yes'. +This happens by default if a suitable system library is found at +build time. To prevent this, use the configure option +`--with-file-notification-no'. See below for file-notify features. +FIXME? This feature is not available for the Nextstep port. (?) + +** The configure option `without-compress-info' has been generalized, +and renamed to `without-compress-install'. It now prevents compression +of _any_ files during installation. ** The configure option --with-crt-dir has been removed. It is no longer needed, as the crt*.o files are no longer linked specially. -** Emacs for MS-Windows can now be built by running the configure script -using the MSYS environment and MinGW development tools. -This is from now on the preferred method of building Emacs on -MS-Windows. The Windows-specific configure.bat and makefile.w32-in -files are deprecated. See the file nt/INSTALL.MSYS for detailed -instructions. - -Using the Posix configure script and Makefile's also means a change in -the directory structure of the Emacs installation on Windows. It is -now the same as on GNU and Unix systems. In particular, the auxiliary -programs, such as cmdproxy.exe and hexl.exe, are in -libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs -version), version-independent site-lisp is in share/emacs/site-lisp, -version-specific Lisp files are in share/emacs/VERSION/lisp and in -share/emacs/VERSION/site-lisp, Info docs are in share/info, and data -files are in share/emacs/VERSION/etc. (Emacs knows about all these -directories and will find the files in there automatically; there's no -need to set any variables due to this change.) - ** Directories passed to configure option `--enable-locallisppath' are no longer created during installation. +** Emacs can be compiled with zlib support. If this library is present +(which it normally is on most systems), the function +`zlib-decompress-region' becomes available, which can decompress gzip- +and zlib-format compressed data. + +--- +** Emacs for NS (OSX, GNUStep) can be built with ImageMagick support. +pkg-config is required to find ImageMagick libraries. + +** For OSX >= 10.5, the Core text based font backend from the Mac port is used. +For GNUStep and OSX 10.4 the old backend is used. +To use the old backend by default, do on the command line: +% defaults write org.gnu.Emacs FontBackend ns + * Startup Changes in Emacs 24.4 * Changes in Emacs 24.4 ++++ +** Emacs now supports menus on text-mode terminals. +If the terminal supports a mouse, clicking on the menu bar, or on +sensitive portions of the mode line or header line, will drop down the +menu defined at that position. Likewise, clicking C-mouse-2 or +C-mouse-2 or C-mouse-3 on the text area will pop up the menus defined +for those locations. + +If the text terminal does not support a mouse, you can activate the +first menu-bar menu by typing F10, which invokes `menu-bar-open'. + +If you want the previous behavior, whereby F10 invoked `tmm-menubar', +customize the option `tty-menu-open-use-tmm' to a non-nil value. +(Typing M-` will always invoke `tmm-menubar', even if +`tty-menu-open-use-tmm' is nil.) + ** Key ? also describes prefix bindings like C-h. ++++ +** `cache-long-line-scans' has been renamed to `cache-long-scans' +because it affects caching of paragraph scanning results as well. + +++ ** `apropos-variable' is now `apropos-user-option' `apropos-user-option' shows all user options while `apropos-variable' @@ -90,6 +109,18 @@ simply disabling Transient Mark mode does the same thing. ** `initial-buffer-choice' can now specify a function to set up the initial buffer. +** The *Messages* buffer is created in a new major mode `messages-buffer-mode', +and read-only. Code that might create the *Messages* buffer should +call the function `messages-buffer' to do so and set the mode. + +** `remember-notes' creates a buffer whose content is saved on kill-emacs. +You may think of it as a *scratch* buffer whose content is preserved. +In fact, it was designed as a replacement for *scratch* buffer and can +be used that way by setting `initial-buffer-choice' to `remember-notes' +and `remember-notes-buffer-name' to "*scratch*". Without the second +change, *scratch* buffer will still be there for notes that do not +need to be preserved. + ** `write-region-inhibit-fsync' now defaults to t in batch mode. ** ACL support has been added. @@ -117,9 +148,44 @@ used to conveniently prepend/append new face attributes to text. `frame-monitor-attributes' can be used to obtain information about each physical monitor on multi-monitor setups. +*** The functions `display-pixel-width' and `display-pixel-height' now +behave consistently among the platforms: they return the pixel width +or height for all physical monitors associated with the given display +as just they were on X11. To get information for each physical +monitor, use the new functions above. Similar notes also apply to +`x-display-pixel-width', `x-display-pixel-height', `display-mm-width', +`display-mm-height', `x-display-mm-width', and `x-display-mm-height'. + +** New macro `alternatives-define' can be used to define generic commands. +Generic commands are interactive functions whose implementation can be +selected among several alternatives, as a matter of user preference. + +** The blink cursor stops blinking after 10 blinks (default) on X and NS. +You can change the default by customizing the variable blink-cursor-blinks. +Also timers for blinking are stopped when no blinking is done, so Emacs does +not consume CPU cycles. + +** New command `frameset-to-register' is now bound to `C-x r f', replacing +`frame-configuration-to-register'. It offers similar functionality, plus +some enhancements, like the ability to restore deleted frames. Command +`frame-configuration-to-register' is still available, but unbound. + +** The command `quail-help' is deleted. Use `C-h C-\' +(`describe-input-method') instead. + +** The default value of `comment-use-global-state' is changed to t, +and this variable has been marked obsolete. + * Editing Changes in Emacs 24.4 +** C-x TAB enters a transient interactive mode. +You can then use the left/right cursor keys to move the block of text. + +** `tab-stop-list' is now implicitly extended to infinity by repeating +the last step. Its default value is changed to nil which means a tab +stop every `tab-width' columns. + ** `split-window' is no longer a command, just a non-interactive function. As a command it was a special case of `split-window-below', and as such superfluous. After being reimplemented in Lisp, its interactive form @@ -131,6 +197,15 @@ bound to and M-, respectively. ** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction. Eg View mode, etc. ++++ +** New option `visual-order-cursor-movement'. +If this is non-nil, cursor motion with arrow keys will follow the +visual order of characters on the screen: always moves to the +left, always moves to the right, disregarding the surrounding +bidirectional context. + +** All register commands can now show help with preview. + ** New command `kmacro-to-register' to store keyboard macros in registers. ** Shell Script mode @@ -141,6 +216,10 @@ You can pick the name of the function and the variables with `C-x 4 a'. * Changes in Specialized Modes and Packages in Emacs 24.4 +** The debugger's `e' command evaluates the code in the context at point. +This includes using the lexical environment at point, which means that +`e' now lets you access lexical variables as well. + ** `eshell' now supports visual subcommands and options Eshell has been able to handle "visual" commands (interactive, non-line oriented commands such as top that require display @@ -162,9 +241,8 @@ You can use the new function `remember-store-in-files' within the See `remember-data-directory' and `remember-directory-file-name-format' for new options related to this function. -** `ido-decorations' has been slightly extended to give a bit more control. -** More packages look for ~/.emacs.d/ additionally to ~/.. +* More packages look for ~/.emacs.d/ additionally to ~/.. Affected files: ~/.emacs.d/timelog replaces ~/.timelog ~/.emacs.d/vip replaces ~/.vip @@ -203,12 +281,41 @@ The default separator is changed to allow surrounding spaces around the comma. *** Battery information via the BSD `apm' utility is now supported. +** Buffer Menu + +*** `M-s a C-o' shows lines matching a regexp in marked buffers using Occur. + ** Calendar and Diary +*** New faces: `calendar-weekday-header', `calendar-weekend-header', +`calendar-month-header'. + +*** New option `calendar-day-header-array'. + +*** The variable `calendar-font-lock-keywords' is obsolete. + +++ *** New variable `diary-from-outlook-function', used by the command `diary-from-outlook'. +** VC and related modes + +*** In VC directory mode, `D' displays diffs between VC-controlled +whole tree revisions. + +*** In VC directory mode, `L' lists the change log for the current VC +controlled tree in a window. + +*** In VC directory mode, `I' shows a log of changes that will be +received with a pull operation. + +*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file +under current version control system. When called with a prefix +argument, you can remove a file from the ignored file list. + +*** `cvs-append-to-ignore' has been renamed to `vc-cvs-append-to-ignore' +because it is moved to vc-cvs.el. + ** cl-lib *** New macro cl-tagbody. @@ -237,8 +344,10 @@ on the given date. *** `desktop-auto-save-timeout' defines the number of seconds between auto-saves of the desktop. -*** `desktop-save-windows' enables saving and restoring the window/frame -configuration. +*** `desktop-restore-frames', enabled by default, allows saving and +restoring the frame/window configuration (frameset). Additional options +`desktop-restore-in-current-display', `desktop-restore-reuses-frames' +and `desktop-restore-forces-onscreen' offer further customization. ** Dired @@ -250,6 +359,22 @@ configuration. If set to a number, this can be used to avoid accidentally paste large amounts of data into the ERC input. +** EPA + +*** New option `epa-mail-aliases'. + +You can set this to a list of alias expansions for keys to use +in `epa-mail-encrypt'. + +If one element of the variable's value is ("foo@bar.com" "foo@hello.org"), +that means: when one of the recipients of the message being encrypted +is `foo@bar.com', encrypt the message for `foo@hello.org' instead. + +If one element of the variable's value is ("foo@bar.com"), +that means: when one of the recipients of the message being encrypted +is `foo@bar.com', ignore that name as regards encryption. +This is useful to avoid a query when you have no key for that name. + --- ** New F90 mode option `f90-smart-end-names'. @@ -257,6 +382,15 @@ amounts of data into the ERC input. *** key bindings to navigate through and select the completions. *** The icomplete-separator is customizable, and its default has changed. *** Removed icomplete-show-key-bindings. +*** Icomplete-mode by defaults applies to all forms of minibuffer completion. +(setq icomplete-with-completion-tables '(internal-complete-buffer)) +will revert to the old behavior. + + +** Ido +*** Ido has a manual now. +*** `ido-use-virtual-buffers' takes a new value 'auto. +*** `ido-decorations' has been slightly extended to give a bit more control. ** Image mode @@ -268,6 +402,8 @@ directory, respectively. `f' (`image-next-frame') and `b' (`image-previous-frame') visit the next or previous frame. `F' (`image-goto-frame') shows a specific frame. +*** New commands to speed up, slow down, or reverse animation. + --- *** The command `image-mode-fit-frame' deletes other windows. When toggling, it restores the frame's previous window configuration. @@ -362,7 +498,7 @@ New features include: - support for multiple todo files and archive files of done items; - renaming, reordering, moving, merging, and deleting categories; - sortable tabular summaries of categories and the types of items they contain; -- cross-categorial lists of items filtered by specific criteria; +- cross-category lists of items filtered by specific criteria; - more fine-grained interaction with the Emacs diary, by being able to decide for each todo item whether it appears in the Fancy Diary display; - highly flexible new item insertion and item editing; @@ -370,6 +506,7 @@ New features include: archive files, undoing or unarchiving done items; - reprioritizing items by inputting a numerical priority; - extensive customizability of operation and display, including numerous faces. +The Todo mode user manual describes all commands and most user options. To support some of these features, a new file format is used, which is incompatible with the old format; however, you can convert old todo and done item files to the new format on initializing the first new todo file, or at any @@ -378,6 +515,8 @@ todo-mode.el has been made obsolete and renamed otodo-mode.el. ** Tramp +*** The experimental url syntax for remote file names is withdrawn. + +++ *** New connection method "adb", which allows to access Android devices by the Android Debug Bridge. The variable `tramp-adb-program' @@ -392,6 +531,10 @@ when possible. *** Handlers for `file-acl' and `set-file-acl' for remote machines which support POSIX ACLs. ++++ +*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch' +for remote machines which support filesystem notifications. + ** VHDL mode *** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'. @@ -401,15 +544,24 @@ which support POSIX ACLs. ** Woman *** The commands `woman-default-faces' and `woman-monochrome-faces' -are obsolete. Customize the `woman-* faces instead. +are obsolete. Customize the `woman-*' faces instead. ** Eshell -*** Added Eshell-TRAMP module +*** Added Eshell-Tramp module External su and sudo commands are now the default; the internal, -TRAMP-using variants can still be used by enabling the eshell-tramp +Tramp-using variants can still be used by enabling the eshell-tramp module. +** Package + +*** The format of `archive-contents' files, generated by package +repositories, has changed to allow a new (fifth) element, containing +an associative list with extra properties. + +*** `describe-package' buffer uses the `:url' extra property to +display a `Homepage' header, if it's present. + ** New term.el option `term-suppress-hard-newline'. ** Obsolete packages: @@ -432,6 +584,13 @@ module. *** The Info-edit command is obsolete. Editing Info nodes by hand has not been relevant for some time. +** Shell + +*** `explicit-bash-args' now always defaults to use --noediting. +During initialization, Emacs no longer expends a process to decide +whether it is safe to use Bash's --noediting option. These days +--noediting is ubiquitous; it was introduced in 1996 in Bash version 2. + * New Modes and Packages in Emacs 24.4 @@ -447,9 +606,22 @@ It is layered as: - advice-add/advice-remove to add/remove a piece of advice on a named function, much like `defadvice' does. +** New frameset.el package. +It provides a set of operations to save a frameset (the state of all +or a subset of the existing frames and windows, somewhat similar to a +frame configuration), both in-session and persistently, and restore it +at some point in the future. + ++++ +** The package filenotify.el provides an interface for file system +notifications. It requires, that Emacs is compiled with one of the +low-level libraries gfilenotify.c, inotify.c or w32notify.c. + * Incompatible Lisp Changes in Emacs 24.4 +** `defvar' and `defcustom' in a let-binding affect the "external" default. + ** The syntax of ?» and ?« is now punctuation instead of matched parens. Some languages match those as »...« and others as «...» so better stay neutral. @@ -494,9 +666,48 @@ alist of extended attributes as returned by the new function `file-extended-attributes'. The attributes can be applied to another file using `set-file-extended-attributes'. +** `visited-file-modtime' now returns -1 for nonexistent files. +Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous +in the presence of files with negative time stamps. + +** The cars of the elements in `interpreter-mode-alist' are now treated +as regexps rather than literal strings. Technically this is an +incompatible change, but unless you are using interpreter-mode-alist +for something (not just adding elements to it), it ought not to affect you. + * Lisp Changes in Emacs 24.4 ++++ +** Functions that pop up menus and dialogs now work on all terminal types, +including TTYs. +This includes `x-popup-menu', `x-popup-dialog', `message-box', +`yes-or-no-p', etc. + +The function `display-popup-menus-p' will now return non-nil for a +display or frame whenever a mouse is supported on that display or +frame. + +** New bool-vector set operation functions: +*** `bool-vector-exclusive-or' +*** `bool-vector-union' +*** `bool-vector-intersection' +*** `bool-vector-set-difference' +*** `bool-vector-not' +*** `bool-vector-subsetp' +*** `bool-vector-count-matches' +*** `bool-vector-count-matches-at' + +** Comparison functions =, <, >, <=, >= now take many arguments. + +** The second argument of `eval' can now be a lexical-environment. + +** `with-demoted-errors' takes an additional argument `format'. ++++ +** New function `define-error'. + +** New hook `tty-setup-hook'. + +++ ** New macro with-eval-after-load. Like eval-after-load, but better behaved. @@ -516,6 +727,9 @@ The few hooks that used with-wrapper-hook are replaced as follows: *** `completion-in-region-function' obsoletes `completion-in-region-functions'. *** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'. +** `split-string' now takes an optional argument TRIM. +The value, if non-nil, is a regexp that specifies what to trim from +the start and end of each substring. ** `get-upcase-table' is obsoleted by the new `case-table-get-table'. @@ -568,8 +782,42 @@ Emacs uses `image-default-frame-delay'. *** New functions `image-current-frame' and `image-show-frame' for getting and setting the current frame of a multi-frame image. +*** You can change the speed of animated images. + +** Changes in encoding and decoding of text + +--- +*** New coding-system `prefer-utf-8'. +This is like `undecided' but prefers UTF-8 on decoding if the text to +be decoded does not contain any invalid UTF-8 sequences. On encoding, +any non-ASCII characters are automatically encoded as UTF-8. + +--- +*** New attributes of coding-systems whose type is `undecided'. +Two new attributes, `:inhibit-null-byte-detection' and +`:inhibit-iso-escape-detection', determine how to detect encoding of +text that includes null bytes and ISO-2022 escape sequences, +respectively. Each of these attributes can be either nil, zero, or +t. If it is t, decoding text ignores null bytes and, respectively, +ISO-2022 sequences. If it is nil, null bytes cause text to be decoded +with no-conversion and ISO-2022 sequences cause Emacs to assume the +text is encoded in one of the ISO-2022 encodings, such as +iso-2022-7bit. If the value is zero, Emacs consults the variables +inhibit-null-byte-detection and inhibit-iso-escape-detection, which +see. +The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer +UTF-8 encoding and decoding, whenever possible. + +These attributes are only meaningful for coding-systems of type +`undecided'. (The type of a coding-system is determined by its +`:coding-type' attribute and can be accessed by calling the +`coding-system-type' function.) + +** The function `set-visited-file-modtime' now accepts a 0 or -1 argument +with the same interpretation as the returned value of `visited-file-modtime'. + ** time-to-seconds is not obsolete any more. -** New function special-form-p. +** New functions special-form-p and macrop. ** Docstrings can be made dynamic by adding a `dynamic-docstring-function' text-property on the first char. @@ -602,6 +850,11 @@ used in place of the 9th element of `file-attributes'. `preserve-extended-attributes' as it now handles both SELinux context and ACL entries. +** The `common-substring' argument of display-completion-list is obsolete. +Either use `completion-all-completions' which already returns highlighted +strings (including for partial or substring completion) or call +`completion-hilit-commonality' to add the highlight. + ** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4 *** The package descriptor and name of global variables, constants, @@ -611,6 +864,23 @@ meant to be used by other packages. * Changes in Emacs 24.4 on Non-Free Operating Systems +** The procedure for building Emacs on MS-Windows has changed. +It is now built by running the same configure script as on all other +platforms. This requires the MSYS environment and MinGW development +tools. See the updated instructions in nt/INSTALL for details. + +Using the Posix configure script and Makefile's also means a change in +the directory structure of the Emacs installation on Windows. It is +now the same as on GNU and Unix systems. In particular, the auxiliary +programs, such as cmdproxy.exe and hexl.exe, are in +libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs +version), version-independent site-lisp is in share/emacs/site-lisp, +version-specific Lisp files are in share/emacs/VERSION/lisp and in +share/emacs/VERSION/site-lisp, Info docs are in share/info, and data +files are in share/emacs/VERSION/etc. (Emacs knows about all these +directories and will find the files in there automatically; there's no +need to set any variables due to this change.) + +++ ** The "generate a backtrace on fatal error" feature now works on MS Windows. The backtrace is written to the 'emacs_backtrace.txt' file in the @@ -730,6 +1000,10 @@ treated as images. *** ImageMagick images now support the :max-width and :max-height keywords. +*** Some data types aren't auto-detected by ImageMagick. Adding +:format to `create-image' may help if the content type is in the +new variable `image-format-suffixes'. + ** Minibuffer *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the @@ -1019,7 +1293,7 @@ file at point. `DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion') mark/unmark/flag all files in the active region. -*** The minibuffer default for `=' (`dired-diff) has changed. +*** The minibuffer default for `=' (`dired-diff') has changed. It is now the backup file for the file at point, if one exists. In Transient Mark mode the default is the file at the active mark.