`--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.
** 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
+
\f
* Startup Changes in Emacs 24.4
++++
+** When initializing `load-path', an empty element in the EMACSLOADPATH
+environment variable (either leading, e.g., ":/foo"; trailing, e.g.,
+"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default
+load-path (the one that would have been used if EMACSLOADPATH was unset).
+This makes it easier to _extend_ the load-path via EMACSLOADPATH
+(previously, EMACSLOADPATH had to specify the complete load-path,
+including the defaults). (In older versions of Emacs, an empty element
+was replaced by ".", so use an explicit "." now if that is what you want.)
+
++++
+** The -L option, which normally prepends its argument to load-path,
+will instead append, if the argument begins with `:' (or `;' on MS Windows;
+i.e., `path-separator').
+
\f
* 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.
+++
** `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
`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.
+** New macro `define-alternatives' 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.
+** New hooks `focus-in-hook', `focus-out-hook'.
+These are normal hooks run when an Emacs frame gains or loses input focus.
+
** 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
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.
+
+** `fill-single-char-nobreak-p' prevents fill from breaking a line after
+a 1-letter word, which is an error according to Polish and
+Czech typography rules. To globally enable this feature, evaluate:
+
+ (add-hook 'fill-nobreak-predicate 'fill-single-char-nobreak-p)
+
\f
* Editing Changes in Emacs 24.4
+** `electric-indent-mode' is enabled by default.
+
+** Uniquify is enabled by default.
+
+** Command `rectangle-mark-mode' bound to C-x SPC makes a rectangular region.
+Most commands are still unaware of it, but kill/yank do work on the rectangle.
+
+** 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
left, <right> 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
\f
* Changes in Specialized Modes and Packages in Emacs 24.4
+** The backtrace debugger can display local vars with `v'.
+
+** prolog-use-smie has been removed, along with the non-SMIE indentation code.
+
+** SMIE indentation can be customized via `smie-config'.
+The customization can be guessed by Emacs by providing a sample indented
+file and letting SMIE learn from it.
+
+** sh-script now uses its SMIE indentation algorithm by default.
+
** 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.
*** In VC directory mode, `L' lists the change log for the current VC
controlled tree in a window.
-*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a
-file under current version control system.
+*** 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
*** 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.
+
+
+** New features for Octave mode:
+*** Font locking for texinfo comments and new keywords
+*** Completion in Octave file buffers
+*** Eldoc support
+*** Jump to definition
+*** Documentation lookup/search
+*** Code cleanup and various bug fixes
** Ido
*** Ido has a manual now.
`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.
** 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'
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 in the data
+vectors, 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:
+*** Iswitchb is made obsolete by icomplete-mode.
+
*** longlines.el is obsolete; use visual-line-mode instead.
+++
whether it is safe to use Bash's --noediting option. These days
--noediting is ubiquitous; it was introduced in 1996 in Bash version 2.
++++
+** There is a new macro `skip-unless' for skipping ERT tests. See the manual.
+
+** Imenu
+
+*** New option `imenu-generic-skip-comments-and-strings'.
+
+** Ruby mode
+
+*** New option `ruby-encoding-magic-comment-style'.
+
+*** New option `ruby-custom-encoding-magic-comment-template'.
+
+*** New mode menu.
+
+*** Improved syntax highlighting and indentation.
+
+*** Add more Ruby file types to `auto-mode-alist'.
+
+** JS Mode
+
+*** Better indentation of multiple-variable declarations.
+If declaration spans several lines, variables on the following lines
+are lined up to the first one.
+
+*** We now recognize and better indent continuations in array
+comprehensions.
+
+*** New option `js-switch-indent-offset`.
+
\f
* New Modes and Packages in Emacs 24.4
\f
* Incompatible Lisp Changes in Emacs 24.4
+** `kill-region' lost its `yank-handler' optional argument.
+
+** `(input-pending-p)' no longer runs other timers which are ready to
+run. The new optional CHECK-TIMERS param allows for the prior behavior.
+
** `defvar' and `defcustom' in a let-binding affect the "external" default.
** The syntax of ?» and ?« is now punctuation instead of matched parens.
** `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.
+
\f
* Lisp Changes in Emacs 24.4
+** New function get-pos-property.
+
+** New hook `pre-redisplay-function'.
+
++++
+** 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-consecutive'
+*** `bool-vector-count-population'
+
+** 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.
+** New library helpers.el for misc helper functions
+*** `hash-table-keys'
+*** `hash-table-values'
+*** `string-blank-p`
+*** `string-empty-p`
+*** `string-join`
+*** `string-reverse`
+*** `string-trim-left'
+*** `string-trim-right'
+*** `string-trim'
+
** Obsoleted functions:
*** `log10'
*** `dont-compile'
*** `completion-in-region-function' obsoletes `completion-in-region-functions'.
*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
+** `byte-compile-interactive-only-functions' is now obsolete.
+It has been replaced by the symbol property 'interactive-only.
+
** `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.
+** New function `string-suffix-p'.
+
** `get-upcase-table' is obsoleted by the new `case-table-get-table'.
** Support for filesystem notifications.
*** New face characteristic (supports :underline (:style wave))
specifies whether or not the terminal can display a wavy line.
+*** New face spec attribute :distant-foreground
+specifies foreground to use if background color is near the foreground
+color that would otherwise have been used.
+
** Image API
+++
*** 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
---
`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,
\f
* Changes in Emacs 24.4 on Non-Free Operating Systems
-** 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.
+** 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
directories and will find the files in there automatically; there's no
need to set any variables due to this change.)
++++
+** Emacs on Windows 2000 and later can now access files and directories
+whose names cannot be encoded in the current system codepage.
+
+The new variable `w32-unicode-filenames' controls this feature: if it
+is t, Emacs uses Unicode APIs to pass file names to system calls,
+which lifts the limitation of file names to the current locale.
+
+++
** 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
*** 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
*** New option `switch-to-buffer-preserve-window-point' to restore a
window's point when switching buffers.
+*** New display action function `display-buffer-no-window' to not
+display the buffer in a window.
+
+*** New display action alist entry `allow-no-window' to indicate the
+caller of `display-buffer' is ready to handle the case of not
+displaying the buffer in a window.
+
*** New display action alist entries `window-height' and `window-width'
specify the size of new windows created by `display-buffer'.