#+TITLE: Emacs 24.4 News #+OPTIONS: H:2 * Installation Changes in Emacs 24.4 ** Emacs can be compiled with POSIX ACL support. This happens by default if a suitable support library is found at build time, like libacl on GNU/Linux. To prevent this, use the configure option `--without-acl'. ** The configure option --with-crt-dir has been removed. It is no longer needed, as the crt*.o files are no longer linked specially. * Startup Changes in Emacs 24.4 * Changes in Emacs 24.4 +++ ** `apropos-variable' is now `apropos-user-option' `apropos-user-option' shows all user options while `apropos-variable' shows all variables. When called with a universal prefix argument, the two commands swap their behaviors. When `apropos-do-all' is non-nil, they output the same results. +++ ** `eval-defun' on an already defined defcustom calls the :set function, if there is one. ** If the new variable `enable-dir-local-variables' is nil, directory local variables are ignored. May be useful for some modes that want to ignore directory-locals while still respecting file-locals. ** The option `set-mark-default-inactive' has been deleted. This unfinished feature was introduced by accident in Emacs 23.1; simply disabling Transient Mark mode does the same thing. ** `initial-buffer-choice' can now specify a function to set up the initial buffer. ** ACL support has been added. +++ *** Emacs preserves the ACL entries of files when backing up. +++ *** New functions `file-acl' and `set-file-acl' get and set the ACL entries of a file. On GNU/Linux, the POSIX ACL interface is used via libacl. On MS-Windows, the NT Security APIs are used to emulate the POSIX ACL interfaces. ** New option `scroll-bar-adjust-thumb-portion'. Available only on X, this option allows to control over-scrolling using the scroll bar (i.e. dragging the thumb down even when the end of the buffer is visible). * Editing Changes in Emacs 24.4 ** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', bound to and M-, respectively. ** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction. Eg View mode, etc. * Changes in Specialized Modes and Packages in Emacs 24.4 ** Delphi mode is now called OPascal mode. *** All delphi-* variables and functions have been renamed to opascal-*. *** `delphi-newline-always-indents' is not supported any more use `electric-indent-mode' instead. *** `delphi-tab' is gone, replaced by `indent-for-tab-command'. ** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock. ** completing-read-multiple's separator can now be a regexp. The default separator is changed to allow surrounding spaces around the comma. ** Battery *** Battery information via the BSD `apm' utility is now supported. ** cl-lib *** New macro cl-tagbody. +++ *** letf is now just an alias for cl-letf. ** Calc *** Calc by default now uses the Gregorian calendar for all dates, and uses January 1, 1 AD as its day number 1. Previously Calc used the Julian calendar for dates before September 14, 1752, and it used December 31, 1 BC as its day number 1; the new scheme is more consistent with Calendar's calendrical system and day numbering. *** The new variable `calc-gregorian-switch' lets you configure the date when Calc switches from the Julian to the Gregorian calendar. Nil, the default value, means to always use the Gregorian calendar. The value (YEAR MONTH DAY) means to start using the Gregorian calendar on the given date. *** Support for ISO 8601 dates. ** Dired *** New minor mode `dired-hide-details-mode' hides details. ** ERC *** New option `erc-accidental-paste-threshold-seconds'. If set to a number, this can be used to avoid accidentally paste large amounts of data into the ERC input. ** Icomplete is a bit more like IDO. *** key bindings to navigate through and select the completions. *** The icomplete-separator is customizable, and its default has changed. *** Removed icomplete-show-key-bindings. ** Image mode *** New commands `n' (`image-next-file') and `p' (`image-previous-file') visit the next image file and the previous image file in the same directory, respectively. *** New commands to show specific frames of multi-frame images. `f' (`image-next-frame') and `b' (`image-previous-frame') visit the next or previous frame. `F' (`image-goto-frame') shows a specific frame. --- *** The command `image-mode-fit-frame' deletes other windows. When toggling, it restores the frame's previous window configuration. It also has an optional frame argument, which can be used by Lisp callers to fit the image to a frame other than the selected frame. ** Isearch *** `C-x 8 RET' in Isearch mode reads a character by its Unicode name and adds it to the search string. ** MH-E has been updated to MH-E version 8.4. See MH-E-NEWS for details. --- ** The unrmail command converts from BABYL to mboxrd rather than mboxo. Customize `unrmail-mbox-format' to change this. --- ** Similarly, customize `rmail-mbox-format' to influence some minor aspects of how Rmail displays non-MIME messages. +++ ** New function `ses-rename-cell' to give SES cells arbitrary names. ** trace-function was largely rewritten. New features include: - no prompting for the destination buffer, unless a prefix-arg was used. - additionally to prompting for a destination buffer, when a prefix-arg is used, the user can enter a "context", i.e. Lisp expression whose value at the time the function is entered/exited will be printed along with the function name and arguments. Useful to trace the value of (current-buffer) or (point) when the function is invoked. ** New command `delete-duplicate-lines' has two types of operation: when its arg ADJACENT is non-nil (when called interactively with C-u C-u) it works like the utility `uniq'. Otherwise by default it deletes duplicate lines everywhere in the region without regard to adjacency. ** New `cycle-spacing' command allows cycling between having just one space, no spaces, or reverting to the original spacing. Like `just-one-space' command it can handle or ignore newlines and leave different number of spaces. ** Tramp +++ *** New connection method "adb", which allows to access Android devices by the Android Debug Bridge. The variable `tramp-adb-program' can be used to adapt the path of the "adb" program, if needed. *** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2", "scpc" and "rsyncc" are discontinued. The ssh option "ControlMaster=auto" is set automatically in all ssh-based methods, when possible. +++ *** Handlers for `file-acl' and `set-file-acl' for remote machines which support POSIX ACLs. ** Woman *** The commands `woman-default-faces' and `woman-monochrome-faces' are obsolete. Customize the `woman-* faces instead. ** Obsolete packages: *** longlines.el is obsolete; use visual-line-mode instead. *** terminal.el is obsolete; use term.el instead. +++ *** yow.el is obsolete; use fortune.el or cookie1.el instead. --- *** The Info-edit command is obsolete. Editing Info nodes by hand has not been relevant for some time. * New Modes and Packages in Emacs 24.4 ** New nadvice.el package offering lighter-weight advice facilities. It is layered as: - add-function/remove-function which can be used to add/remove code on any function-carrying place, such as process-filters or `-function' hooks. - advice-add/advice-remove to add/remove a piece of advice on a named function, much like `defadvice' does. * Incompatible Lisp Changes in Emacs 24.4 ** Removed inhibit-local-menu-bar-menus. ** frame-local variables that affect redisplay do not work any more. More specifically, the redisplay does not bother to check for a frame-local value when looking up variables. ** nil and "unbound" are indistinguishable in symbol-function. `symbol-function' never signals `void-function' any more. `fboundp' returns non-nil if the symbol was `fset' to nil. ** `defadvice' does not honor the `freeze' flag and cannot advise special-forms any more. ** `dolist' in lexical-binding mode does not bind VAR in RESULT any more. VAR was bound to nil which was not tremendously useful and just lead to spurious warnings about an unused var. ** The return value of `backup-buffer' has changed. The second argument is no longer an SELinux context, instead it is an 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'. * Lisp Changes in Emacs 24.4 ** Support for filesystem notifications. Emacs now supports notifications of filesystem changes, such as creation, modification, and deletion of files. This requires the 'inotify' API on GNU/Linux systems. On MS-Windows systems, this is supported for Windows XP and newer versions. ** Changes in autorevert.el --- *** If Emacs is compiled with file notification support, notifications are used instead of checking the time stamp of the files. You can disable this by setting the user option `auto-revert-use-notify' to nil. Alternatively, a regular expression of directories to be excluded from file notifications can be specified by `auto-revert-notify-exclude-dir-regexp'. --- *** The new user option `auto-revert-remote-files' enables reversion of remote files when set to non-nil. ** Face changes *** The `face-spec-set' is now analogous to `setq' for face specs. Its third arg now accepts values specifying exactly which face spec to set (defface, custom, or user spec), and it directly sets the relevant property using the supplied face spec. *** Face specs set via Custom themes now replace the `defface' spec rather than inheriting from it (as do face specs set via Customize). *** New face characteristic (supports :underline (:style wave)) specifies whether or not the terminal can display a wavy line. ** Image API +++ *** `image-animated-p' is now `image-multi-frame-p'. It returns non-nil for any image that contains multiple frames, whether or not it specifies a frame delay. +++ *** When animating images that do not specify a frame delay, 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. ** time-to-seconds is not obsolete any more. ** New function special-form-p. ** Docstrings can be made dynamic by adding a `dynamic-docstring-function' text-property on the first char. ** The `defalias-fset-function' property lets you catch calls to defalias and redirect them to your own function instead of `fset'. ** The 9th element returned by `file-attributes' is now unspecified. Formerly, it was t if the file's gid would change if file were deleted and recreated. This value has been inaccurate for years on many platforms, and nobody seems to have noticed or cared. ** The function `file-ownership-preserved-p' now has an optional argument GROUP which causes it check for file group too. This can be used in place of the 9th element of `file-attributes'. ** New functions `group-gid' and `group-real-gid'. ** The 6th argument to `copy-file' has been renamed to `preserve-extended-attributes' as it now handles both SELinux context and ACL entries. * Changes in Emacs 24.4 on Non-Free Operating Systems +++ ** 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 directory where Emacs was running. +++ ** The variable `buffer-file-type' is no longer supported. Setting it has no effect, and %t in the mode-line format is ignored. Likewise, `file-name-buffer-file-type-alist' is now obsolete, and modifying it has no effect. --- ** Lock files now work on MS-Windows. This allows to avoid losing your edits if the same file is being edited in another Emacs session or by another user. See the node "Interlocking" in the Emacs User Manual for the details. To disable file locking, customize `create-lockfiles' to nil. ** Improved fullscreen support on Mac OS X. Both native (>= OSX 10.7) and "old style" fullscreen are supported. Customize `ns-use-native-fullscreen' to change style. For >= 10.7 native is the default.