aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--doc/misc/Makefile.in2
-rw-r--r--etc/NEWS1051
-rw-r--r--src/ChangeLog6
-rw-r--r--src/xdisp.c6
5 files changed, 390 insertions, 679 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 04df41c7d9a..12931661658 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,7 @@
12014-06-11 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in (INFO_INSTALL): Update for 2013-08-28 DOCMISC_W32 change.
4
12014-06-10 Glenn Morris <rgm@gnu.org> 52014-06-10 Glenn Morris <rgm@gnu.org>
2 6
3 * Makefile.in (INFO_EXT): Remove and replace by ".info" throughout. 7 * Makefile.in (INFO_EXT): Remove and replace by ".info" throughout.
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 62f50af0e43..4e9f8f18526 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -72,7 +72,7 @@ INFO_COMMON = ada-mode auth autotype bovine calc ccmode cl \
72 url vhdl-mode vip viper widget wisent woman 72 url vhdl-mode vip viper widget wisent woman
73 73
74## Info files to install on current platform. 74## Info files to install on current platform.
75INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_INFO_W32) 75INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32)
76 76
77## Info files to build on current platform. 77## Info files to build on current platform.
78## This is all of them, even though they might not all get installed, 78## This is all of them, even though they might not all get installed,
diff --git a/etc/NEWS b/etc/NEWS
index 990d3269115..cc29c69a689 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -169,46 +169,38 @@ optional repeat-count argument.
169 169
170* Installation Changes in Emacs 24.4 170* Installation Changes in Emacs 24.4
171 171
172--- 172** Emacs can now be compiled with ACL (access control list) support.
173** Emacs can now be compiled with ACL support.
174This happens by default if a suitable support library is found at 173This happens by default if a suitable support library is found at
175build time, like libacl on GNU/Linux. To prevent this, use the 174build time, like libacl on GNU/Linux. To prevent this, use the
176configure option `--disable-acl'. See below for related features. 175configure option `--disable-acl'. See below for the features this provides.
177 176
178---
179** Emacs can now be compiled with file notification support. 177** Emacs can now be compiled with file notification support.
180This happens by default if a suitable system library is found at 178This happens by default if a suitable system library is found at
181build time. To prevent this, use the configure option 179build time. To prevent this, use the configure option
182`--without-file-notification'. See below for file-notify features. 180`--without-file-notification'. See below for file-notify features.
183This feature is not available for the Nextstep port. 181This feature is not available for the Nextstep port.
184 182
185---
186** Emacs can now be compiled with zlib support. 183** Emacs can now be compiled with zlib support.
187This happens by default if zlib is present, which it normally is. 184This happens by default if zlib is present, which it normally is.
188To prevent this, use the configure option `--without-zlib'. 185To prevent this, use the configure option `--without-zlib'.
189This provides the function `zlib-decompress-region'; see below for details. 186This provides the function `zlib-decompress-region'; see below for details.
190 187
191---
192** The configure option `--without-compress-info' has been generalized, 188** The configure option `--without-compress-info' has been generalized,
193and renamed to `--without-compress-install'. It now prevents compression 189and renamed to `--without-compress-install'. It now prevents compression
194of _any_ files during installation. 190of _any_ files during installation.
195 191
196---
197** The configure option `--with-crt-dir' has been removed. 192** The configure option `--with-crt-dir' has been removed.
198It is no longer needed, as the crt*.o files are no longer linked specially. 193It is no longer needed, as the crt*.o files are no longer linked specially.
199 194
200---
201** Directories passed to configure option `--enable-locallisppath' are 195** Directories passed to configure option `--enable-locallisppath' are
202no longer created during installation. 196no longer created during installation.
203 197
204--- 198** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support.
205** Emacs for NS (Mac OS X, GNUstep) can be built with ImageMagick support.
206This requires pkg-config to be available at build time. 199This requires pkg-config to be available at build time.
207 200
208 201
209* Startup Changes in Emacs 24.4 202* Startup Changes in Emacs 24.4
210 203
211+++
212** When initializing `load-path', an empty element in the EMACSLOADPATH 204** When initializing `load-path', an empty element in the EMACSLOADPATH
213environment variable (either leading, e.g., ":/foo"; trailing, e.g., 205environment variable (either leading, e.g., ":/foo"; trailing, e.g.,
214"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default 206"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default
@@ -218,76 +210,57 @@ This makes it easier to _extend_ the load-path via EMACSLOADPATH
218including the defaults). (In older versions of Emacs, an empty element 210including the defaults). (In older versions of Emacs, an empty element
219was replaced by ".", so use an explicit "." now if that is what you want.) 211was replaced by ".", so use an explicit "." now if that is what you want.)
220 212
221+++
222** The -L option, which normally prepends its argument to load-path, 213** The -L option, which normally prepends its argument to load-path,
223will instead append, if the argument begins with `:' (or `;' on MS Windows; 214will instead append, if the argument begins with `:' (or `;' on MS Windows;
224i.e., `path-separator'). 215i.e., `path-separator').
225 216
226+++
227** If you use either site-load.el or site-init.el to customize the dumped 217** If you use either site-load.el or site-init.el to customize the dumped
228Emacs executable, any changes to `load-path' that these files make 218Emacs executable, any changes to `load-path' that these files make
229will no longer be present after dumping. To affect a permanent change 219will no longer be present after dumping. To affect a permanent change
230to `load-path', use the `--enable-locallisppath' option of `configure'. 220to `load-path', use the `--enable-locallisppath' option of `configure'.
231 221
232+++
233** The user option `initial-buffer-choice' can now specify a function 222** The user option `initial-buffer-choice' can now specify a function
234to set up the initial buffer. 223to set up the initial buffer.
235 224
236 225
237* Changes in Emacs 24.4 226* Changes in Emacs 24.4
238 227
239+++ 228** Support for ACLs (access control lists).
240** New function `zlib-decompress-region', which decompresses gzip- and 229This requires a suitable support library to be found at build time.
241zlib-format compressed data using built-in zlib support, if available. 230On GNU/Linux, the POSIX ACL interface is used via libacl.
231On MS-Windows, the NT Security APIs are used to emulate the POSIX interface.
232ACLs are extended file attributes, used e.g. for finer-grained permissions.
242 233
243+++ 234*** Emacs preserves the ACL entries of files when backing up.
244** New option `gnutls-verify-error', if non-nil, means that Emacs
245should reject SSL/TLS certificates that GnuTLS determines as invalid.
246(This option defaults to nil at present, but this is expected to change
247in a future release.)
248 235
249+++ 236*** New functions `file-acl' and `set-file-acl' get and set file ACLs.
250** Emacs now supports menus on text-mode terminals. 237
238** Support for menus on text-mode terminals.
251If the terminal supports a mouse, clicking on the menu bar, or on 239If the terminal supports a mouse, clicking on the menu bar, or on
252sensitive portions of the mode line or header line, will drop down the 240sensitive portions of the mode line or header line, will drop down the
253menu defined at that position. Likewise, clicking C-mouse-2 or 241menu defined at that position. Likewise, clicking C-mouse-1, C-mouse-2, or
254C-mouse-2 or C-mouse-3 on the text area will pop up the menus defined 242C-mouse-3 on the text area will pop up the menus defined for those locations.
255for those locations.
256 243
257If the text terminal does not support a mouse, you can activate the 244If the text terminal does not support a mouse, you can activate the
258first menu-bar menu by typing F10, which invokes `menu-bar-open'. 245first menu-bar menu by typing F10, which invokes `menu-bar-open'.
259 246
260If you want the previous behavior, whereby F10 invoked `tmm-menubar', 247If you want the previous behavior, where F10 invoked `tmm-menubar',
261customize the option `tty-menu-open-use-tmm' to a non-nil value. 248customize the option `tty-menu-open-use-tmm' to a non-nil value.
262(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm' 249(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm'
263is nil.) 250is nil.)
264 251
265+++ 252** New option `load-prefer-newer' affects how the `load' function chooses
266** The *Messages* buffer is created in `messages-buffer-mode', 253the file to load. If this is non-nil, then when both .el and .elc
267a new major mode, with read-only status. Any code that might create 254versions of a file exist, and the caller did not explicitly specify
268the *Messages* buffer should call the function `messages-buffer' to do 255which one to load, then the newer file is loaded. The default, nil,
269so and set up the mode. 256means to always load the .elc file.
270
271+++
272** Emacs can now support ACLs (access control lists).
273This requires a suitable support library to be found at build time.
274On GNU/Linux, the POSIX ACL interface is used via libacl.
275On MS-Windows, the NT Security APIs are used to emulate the POSIX interface.
276
277+++
278*** Emacs preserves the ACL entries of files when backing up.
279+++
280*** New functions `file-acl' and `set-file-acl' get and set the ACL
281entries of a file.
282 257
283** Multi-monitor support has been added. 258** Multi-monitor support
284 259
285+++
286*** New functions `display-monitor-attributes-list' and 260*** New functions `display-monitor-attributes-list' and
287`frame-monitor-attributes' can be used to obtain information about 261`frame-monitor-attributes' can be used to obtain information about
288each physical monitor on multi-monitor setups. 262each physical monitor on multi-monitor setups.
289 263
290+++
291*** The functions `display-pixel-width' and `display-pixel-height' now 264*** The functions `display-pixel-width' and `display-pixel-height' now
292behave consistently among the platforms: they return the pixel width 265behave consistently among the platforms: they return the pixel width
293or height for all physical monitors associated with the given display 266or height for all physical monitors associated with the given display
@@ -296,31 +269,33 @@ monitor, use the new functions above. Similar notes also apply to
296`x-display-pixel-width', `x-display-pixel-height', `display-mm-width', 269`x-display-pixel-width', `x-display-pixel-height', `display-mm-width',
297`display-mm-height', `x-display-mm-width', and `x-display-mm-height'. 270`display-mm-height', `x-display-mm-width', and `x-display-mm-height'.
298 271
299+++ 272** New function `zlib-decompress-region', which decompresses gzip- and
300** The cursor stops blinking after 10 blinks (by default) on X and NS. 273zlib-format compressed data using built-in zlib support (if available).
274
275** The *Messages* buffer is created in `messages-buffer-mode',
276a new major mode, with read-only status. Any code that might create
277the *Messages* buffer should call the function `messages-buffer' to do
278so and set up the mode.
279
280** The cursor stops blinking after 10 blinks (by default) on X and Nextstep.
301You can change the default by customizing `blink-cursor-blinks'. 281You can change the default by customizing `blink-cursor-blinks'.
302 282
303+++
304** In keymaps where SPC scrolls forward, S-SPC now scrolls backward. 283** In keymaps where SPC scrolls forward, S-SPC now scrolls backward.
305This affects View mode, etc. 284This affects View mode, etc.
306 285
307+++
308** The default value of `make-backup-file-name-function' is no longer nil. 286** The default value of `make-backup-file-name-function' is no longer nil.
309Instead it defaults to a function that does what the nil value used to. 287Instead it defaults to a function that does what the nil value used to.
310 288
311** Help changes 289** Help
312 290
313+++
314*** The command `apropos-variable' is renamed to `apropos-user-option'. 291*** The command `apropos-variable' is renamed to `apropos-user-option'.
315`apropos-user-option' shows all user options while `apropos-variable' 292`apropos-user-option' shows all user options, while `apropos-variable'
316shows all variables. When called with a universal prefix argument, 293shows all variables. When called with a universal prefix argument,
317the two commands swap their behaviors. When `apropos-do-all' is 294the two commands swap their behaviors. When `apropos-do-all' is
318non-nil, they output the same results. 295non-nil, they output the same results.
319 296
320+++
321*** The key `?' now describes prefix bindings, like `C-h'. 297*** The key `?' now describes prefix bindings, like `C-h'.
322 298
323---
324*** The command `describe-function' has been extended for EIEIO. 299*** The command `describe-function' has been extended for EIEIO.
325Running it on constructors will show a full description of the 300Running it on constructors will show a full description of the
326generated class. For generic functions, it will show all 301generated class. For generic functions, it will show all
@@ -328,16 +303,13 @@ implementations together with links to the source. The old commands
328`describe-class', `describe-constructor' and `describe-generic' were 303`describe-class', `describe-constructor' and `describe-generic' were
329removed. 304removed.
330 305
331---
332*** The function `quail-help' is no longer an interactive command. 306*** The function `quail-help' is no longer an interactive command.
333Use `C-h C-\' (`describe-input-method') instead. 307Use `C-h C-\' (`describe-input-method') instead.
334 308
335** ImageMagick 309** ImageMagick
336 310
337+++
338*** ImageMagick images now support the :max-width and :max-height keywords. 311*** ImageMagick images now support the :max-width and :max-height keywords.
339 312
340+++
341*** When using `create-image' with image data, you can pass a :format 313*** When using `create-image' with image data, you can pass a :format
342attribute (via the property-list argument) in order to help 314attribute (via the property-list argument) in order to help
343ImageMagick detect the image type. The value should be a MIME 315ImageMagick detect the image type. The value should be a MIME
@@ -345,21 +317,16 @@ content-type that is found in the new variable `image-format-suffixes'.
345 317
346** Frame and window changes 318** Frame and window changes
347 319
348+++
349*** The function `window-in-direction' introduced in Emacs 24.1 now
350takes additional arguments for specifying a reference point, wrapping
351selection around frame borders, and specifying ways to select the
352minibuffer window.
353
354+++
355*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', 320*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
356bound to <f11> and M-<f10>, respectively. 321bound to <f11> and M-<f10>, respectively.
357 322
358+++
359*** New hooks `focus-in-hook', `focus-out-hook'. 323*** New hooks `focus-in-hook', `focus-out-hook'.
360These are normal hooks run when an Emacs frame gains or loses input focus. 324These are normal hooks run when an Emacs frame gains or loses input focus.
361 325
362+++ 326*** The function `window-in-direction' now takes additional arguments
327for specifying a reference point, wrapping the selection around frame
328borders, and specifying ways to select the minibuffer window.
329
363*** Emacs can now change frame sizes in units of pixels, rather than 330*** Emacs can now change frame sizes in units of pixels, rather than
364text rows or columns. When maximizing a frame or making it fullscreen, 331text rows or columns. When maximizing a frame or making it fullscreen,
365remaining extra pixels are no longer given to the minibuffer, the rightmost 332remaining extra pixels are no longer given to the minibuffer, the rightmost
@@ -368,7 +335,6 @@ areas of the frame's windows. If the new option `frame-resize-pixelwise'
368is non-nil, all frame size changes happen pixelwise and set the 335is non-nil, all frame size changes happen pixelwise and set the
369corresponding size hints for the window manager. 336corresponding size hints for the window manager.
370 337
371+++
372*** Emacs can now change window sizes in units of pixels. 338*** Emacs can now change window sizes in units of pixels.
373Mouse-dragging a mode line or window divider now changes the size of 339Mouse-dragging a mode line or window divider now changes the size of
374adjacent windows pixelwise. If the new option `window-resize-pixelwise' 340adjacent windows pixelwise. If the new option `window-resize-pixelwise'
@@ -377,12 +343,10 @@ resize windows pixelwise. Most functions for changing or accessing
377window sizes now have an additional argument that allows changes to apply, 343window sizes now have an additional argument that allows changes to apply,
378or values to be returned, in pixels instead of lines/columns. 344or values to be returned, in pixels instead of lines/columns.
379 345
380+++
381*** The functions `window-body-height' and `window-body-width' now never 346*** The functions `window-body-height' and `window-body-width' now never
382count partially visible lines or columns if called with a nil PIXELWISE 347count partially visible lines or columns if called with a nil PIXELWISE
383argument. 348argument.
384 349
385+++
386*** Emacs can now draw dividers between adjacent windows. To put 350*** Emacs can now draw dividers between adjacent windows. To put
387dividers between side-by-side/vertically stacked windows customize the 351dividers between side-by-side/vertically stacked windows customize the
388frame parameters `right-divider-width' and `bottom-divider-width' to 352frame parameters `right-divider-width' and `bottom-divider-width' to
@@ -393,83 +357,67 @@ the appearance of dividers by customizing the faces `window-divider',
393two are useful to provide a 3D effect, or to better distinguish dividers 357two are useful to provide a 3D effect, or to better distinguish dividers
394from surrounding display objects. 358from surrounding display objects.
395 359
396+++ 360*** New functions to return the pixel sizes of window components, namely
397*** New functions are provided to return the pixel sizes of window 361`window-scroll-bar-width', `window-mode-line-height',
398components, namely `window-scroll-bar-width', `window-mode-line-height' 362`window-header-line-height', `window-right-divider-width', and
399`window-header-line-height', `window-right-divider-width' and
400`window-bottom-divider-width'. 363`window-bottom-divider-width'.
401 364
402+++
403*** The new function `window-text-pixel-size' returns the size of the 365*** The new function `window-text-pixel-size' returns the size of the
404text of a window's buffer in pixels. This allows functions like 366text of a window's buffer in pixels. This allows functions like
405`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a 367`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a
406window to its buffer as it will be displayed. 368window to its buffer as it will be displayed.
407 369
408+++
409*** `fit-window-to-buffer' can now resize windows in both dimensions. 370*** `fit-window-to-buffer' can now resize windows in both dimensions.
410This behavior is controlled by the new option 371This behavior is controlled by the new option
411`fit-window-to-buffer-horizontally'. The new option 372`fit-window-to-buffer-horizontally'. The new option
412`fit-frame-to-buffer' allows to fit the window's frame to its buffer. 373`fit-frame-to-buffer' allows you to fit the window's frame to its buffer.
413 374
414+++
415*** `fit-frame-to-buffer' now fits frames in both dimensions. The new 375*** `fit-frame-to-buffer' now fits frames in both dimensions. The new
416options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' 376options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes'
417control the size of the frame and its position on screen. 377control the size of the frame and its position on screen.
418 378
419--- 379*** Temp Buffer Resize Mode can now adjust the height and width of
420*** Temp Buffer Resize Mode can now adjust height and width of windows 380windows and frames. The new option `temp-buffer-max-width' allows you to
421and frames. `temp-buffer-resize-mode' is now able to adjust the height 381control the width of temporary buffer windows. Moreover, if the new
422and the width of a window displaying a temporary buffer. The new option 382option `fit-frame-to-buffer' is non-nil and the buffer appears in the
423`temp-buffer-max-width' allows to control the width of temporary buffer 383root window of a frame, Temp Buffer Resize Mode will try to adjust the
424windows. Moreover, if the new option `fit-frame-to-buffer' is non-nil 384width and/or height of the frame.
425and the buffer appears in the root window of a frame, Temp Buffer Resize
426Mode will try to adjust width and/or height of the frame.
427 385
428---
429*** `split-window' is now a non-interactive function, not a command. 386*** `split-window' is now a non-interactive function, not a command.
430As a command, it was a special case of `C-x 2' (`split-window-below'), 387As a command, it was a special case of `C-x 2' (`split-window-below'),
431and as such superfluous. After being reimplemented in Lisp, its 388and as such superfluous. After being reimplemented in Lisp, its
432interactive form was mistakenly retained. 389interactive form was mistakenly retained.
433 390
434+++
435*** The functions `window-size' and `window-total-size' now have an 391*** The functions `window-size' and `window-total-size' now have an
436optional argument to return a rounded size value. 392optional argument to return a rounded size value.
437 393
438+++ 394*** `window-state-put' now allows you to put a window state into internal
439*** `window-state-put' now allows to put a window state into internal
440windows too. 395windows too.
441 396
442+++
443*** New option `scroll-bar-adjust-thumb-portion'. 397*** New option `scroll-bar-adjust-thumb-portion'.
444Available only on X, this option allows to control over-scrolling 398Available only on X, this option allows you to control over-scrolling
445using the scroll bar (i.e. dragging the thumb down even when the end 399using the scroll bar (i.e., dragging the thumb down even when the end
446of the buffer is visible). 400of the buffer is visible).
447 401
448+++ 402*** New display actions functions for `display-buffer':
449*** New basic action function `display-buffer-in-previous-window' has
450`display-buffer' display a buffer in a window previously showing that
451buffer.
452 403
453+++ 404**** `display-buffer-in-previous-window' displays a buffer in a window
454*** New basic action function `display-buffer-at-bottom' has 405previously showing that buffer.
455`display-buffer' choose or make a window at the bottom of the selected
456frame.
457 406
458+++ 407**** `display-buffer-at-bottom' chooses or creates a window at the
459*** New display action function `display-buffer-no-window' to not 408bottom of the selected frame.
460display the buffer in a window. 409
410**** `display-buffer-no-window' to not display the buffer in a window.
461 411
462+++
463*** New display action alist entry `allow-no-window' to indicate the 412*** New display action alist entry `allow-no-window' to indicate the
464caller of `display-buffer' is ready to handle the case of not 413caller of `display-buffer' is ready to handle the case of not displaying
465displaying the buffer in a window. 414the buffer in a window.
466 415
467** Lisp evaluation changes 416** Lisp evaluation changes
468+++ 417
469*** `eval-defun' on an already defined defcustom calls the :set function, 418*** `eval-defun' on an already defined defcustom calls the :set function,
470if there is one. 419if there is one.
471 420
472+++
473*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'), 421*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'),
474and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a 422and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a
475zero prefix argument. This disables truncation of lists in the output, 423zero prefix argument. This disables truncation of lists in the output,
@@ -477,214 +425,150 @@ equivalent to setting `(eval-expression-)print-length' and
477`(eval-expression-)print-level' to nil. Additionally, it causes integers 425`(eval-expression-)print-level' to nil. Additionally, it causes integers
478to be printed in other formats (octal, hexadecimal, and character). 426to be printed in other formats (octal, hexadecimal, and character).
479 427
480---
481*** New hook `eval-expression-minibuffer-setup-hook' run by 428*** New hook `eval-expression-minibuffer-setup-hook' run by
482`eval-expression' on entering the minibuffer. 429`eval-expression' on entering the minibuffer.
483 430
484---
485** `write-region-inhibit-fsync' now defaults to t in batch mode.
486
487+++
488** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans', 431** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans',
489because it affects caching of paragraph scanning results as well. 432because it affects caching of paragraph scanning results as well.
490There is no reason to set this to nil except for debugging purposes. 433There is no reason to set this to nil except for debugging purposes.
491 434
492--- 435** `emacs-bzr-version' has been renamed to `emacs-repository-version',
493** The option `set-mark-default-inactive' has been deleted. 436and works for git too, if you fetch the repository notes.
494This unfinished feature was introduced by accident in Emacs 23.1;
495simply disabling Transient Mark mode does the same thing.
496 437
497---
498** The default value of `comment-use-global-state' is now t, 438** The default value of `comment-use-global-state' is now t,
499and this variable has been marked obsolete. 439and this variable has been marked obsolete.
500 440
501--- 441** `write-region-inhibit-fsync' now defaults to t in batch mode.
502** `emacs-bzr-version' has been renamed to `emacs-repository-version',
503and works for git too, if you fetch the repository notes.
504 442
505+++ 443** The option `set-mark-default-inactive' has been deleted.
506** New option `load-prefer-newer' affects how the `load' function chooses 444This unfinished feature was introduced by accident in Emacs 23.1;
507the file to load. If this is non-nil, then when both .el and .elc 445simply disabling Transient Mark mode does the same thing.
508versions of a file exist, and the caller did not explicitly specify
509which one to load, then the newer file is loaded. The default, nil,
510means to always load the .elc file.
511 446
512 447
513* Editing Changes in Emacs 24.4 448* Editing Changes in Emacs 24.4
514 449
515** Indentation changes 450** Indentation changes
516 451
517+++
518*** `electric-indent-mode' is now enabled by default. 452*** `electric-indent-mode' is now enabled by default.
519Typing RET reindents the current line and indents the new line. 453Typing RET reindents the current line and indents the new line.
520`C-j' inserts a newline but does not indent. In some programming modes, 454`C-j' inserts a newline but does not indent. In some programming modes,
521additional characters are electric (eg `{'). 455additional characters are electric (eg `{').
522 456
523+++
524*** New buffer-local `electric-indent-local-mode'. 457*** New buffer-local `electric-indent-local-mode'.
525 458
526+++
527*** The behavior of `C-x TAB' (`indent-rigidly') has changed. 459*** The behavior of `C-x TAB' (`indent-rigidly') has changed.
528When invoked without a prefix argument, it now activates a transient 460When invoked without a prefix argument, it now activates a transient
529mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts 461mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts
530the text indentation in the region. Typing any other key resumes 462the text indentation in the region. Typing any other key resumes
531normal editing behavior. 463normal editing behavior.
532 464
533+++
534*** `tab-stop-list' is now implicitly extended to infinity by repeating 465*** `tab-stop-list' is now implicitly extended to infinity by repeating
535the last step. Its default value is changed to nil, which means a tab 466the last step. Its default value is changed to nil, which means a tab
536stop every `tab-width' columns. 467stop every `tab-width' columns.
537 468
538+++
539** New command `cycle-spacing' acts like a smarter `just-one-space'.
540When called in succession, it cycles between spacing conventions:
541one space, no spaces, original spacing.
542
543+++
544** The new function `fill-single-char-nobreak-p' can stop fill from breaking
545a line after a one-letter word, which is an error in some typographical
546conventions. To use it, add it to the `fill-nobreak-predicate' hook.
547
548+++
549** Uniquify is enabled by default, with `post-forward-angle-brackets' style. 469** Uniquify is enabled by default, with `post-forward-angle-brackets' style.
550In other words, if you visit two files that have the same base name, 470In other words, if you visit two files that have the same base name,
551then rather than creating buffers basename and basename<2>, 471then rather than creating buffers basename and basename<2>,
552Emacs uses basename<dirA> and basename<dirB>. To change this, 472Emacs uses basename<dirA> and basename<dirB>. To change this,
553customize `uniquify-buffer-name-style'. Set it to nil for the old behavior. 473customize `uniquify-buffer-name-style'. Set it to nil for the old behavior.
554 474
555+++
556** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region. 475** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region.
557Most commands are still unaware of it, but kill/yank do work on the rectangle. 476Most commands are still unaware of it, but kill/yank do work on the rectangle.
558 477
559+++
560** New option `visual-order-cursor-movement'. 478** New option `visual-order-cursor-movement'.
561If this is non-nil, cursor motion with arrow keys will follow the 479If this is non-nil, cursor motion with arrow keys will follow the
562visual order of characters on the screen: <left> always moves to the 480visual order of characters on the screen: <left> always moves to the
563left, <right> always moves to the right, disregarding the surrounding 481left, <right> always moves to the right, disregarding the surrounding
564bidirectional context. 482bidirectional context.
565 483
566** Register changes 484** New command `delete-duplicate-lines'.
485This searches the region for identical lines, and removes all but one
486copy of each repeated line. The lines need not be sorted.
487
488** New command `cycle-spacing' acts like a smarter `just-one-space'.
489When called in succession, it cycles between spacing conventions:
490one space, no spaces, original spacing.
491
492** `blink-matching-paren' now only highlights the matching open-paren
493by default, instead of moving the cursor. Set this variable to `jump' to
494restore the old behavior.
495
496** The new function `fill-single-char-nobreak-p' can stop fill from breaking
497a line after a one-letter word, which is an error in some typographical
498conventions. To use it, add it to the `fill-nobreak-predicate' hook.
499
500** Registers
567 501
568+++
569*** All interactive commands that read a register (`copy-to-register', etc.) 502*** All interactive commands that read a register (`copy-to-register', etc.)
570now display a temporary window after `register-preview-delay' seconds 503now display a temporary window after `register-preview-delay' seconds
571that summarizes existing registers. To disable this, set that option to nil. 504that summarizes existing registers. To disable this, set that option to nil.
572Interactive commands that read registers and want to make use of this 505Interactive commands that read registers and want to make use of this
573should use `register-read-with-preview' to read register names. 506should use `register-read-with-preview' to read register names.
574 507
575+++
576*** New command `frameset-to-register' bound to `C-x r f', replacing 508*** New command `frameset-to-register' bound to `C-x r f', replacing
577`frame-configuration-to-register'. It offers similar functionality, 509`frame-configuration-to-register'. It offers similar functionality,
578plus enhancements like the ability to restore deleted frames. 510plus enhancements like the ability to restore deleted frames.
579(`frame-configuration-to-register' still exists, but no longer has a 511(`frame-configuration-to-register' still exists, but no longer has a
580key binding.) 512key binding.)
581 513
582+++
583*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard 514*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard
584macros in registers. 515macros in registers.
585 516
586+++
587** New command `delete-duplicate-lines'.
588This searches the region for identical lines, and removes all but one
589copy of each repeated line. The lines need not be sorted.
590
591+++
592** `blink-matching-paren' now only highlights the matching open-paren
593by default, instead of moving cursor. Set this variable to `jump' to
594enable the old behavior.
595
596 517
597* Changes in Specialized Modes and Packages in Emacs 24.4 518* Changes in Specialized Modes and Packages in Emacs 24.4
598 519
599+++
600** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
601Affected files:
602~/.emacs.d/timelog replaces ~/.timelog
603~/.emacs.d/vip replaces ~/.vip
604~/.emacs.d/viper replaces ~/.viper
605~/.emacs.d/ido.last replaces ~/.ido.last
606~/.emacs.d/kkcrc replaces ~/.kkcrc
607~/.emacs.d/quickurls replaces ~/.quickurls
608~/.emacs.d/idlwave/ replaces ~/.idlwave/
609~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el
610~/.emacs.d/places replaces ~/.emacs-places
611~/.emacs.d/shadows replaces ~/.shadows
612~/.emacs.d/shadow_todo replaces ~/.shadow_todo
613~/.emacs.d/strokes replaces ~/.strokes
614~/.emacs.d/notes replaces ~/.notes
615~/.emacs.d/type-break replaces ~/.type-break
616Also the following files used by the now obsolete otodo-mode.el:
617~/.emacs.d/todo-do replaces ~/.todo-do
618~/.emacs.d/todo-done replaces ~/.todo-done
619~/.emacs.d/todo-top replaces ~/.todo-top
620
621** Backtrace and debugger 520** Backtrace and debugger
622 521
623+++
624*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the 522*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the
625display of local variables of the current stack frame. 523display of local variables of the current stack frame.
626 524
627+++
628*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes 525*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes
629the lexical environment when evaluating the code in the context at point 526the lexical environment when evaluating the code in the context at point
630(and so allows you to access lexical variables). 527(and so allows you to access lexical variables).
631 528
632---
633*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock. 529*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock.
634 530
635---
636** Battery information can now be retrieved from BSD's `apm' utility. 531** Battery information can now be retrieved from BSD's `apm' utility.
637 532
638---
639** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers. 533** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers.
640 534
641** Calendar and Diary
642
643---
644*** New faces `calendar-weekday-header', `calendar-weekend-header',
645and `calendar-month-header'.
646
647+++
648*** New option `calendar-day-header-array'.
649
650+++
651*** New variable `diary-from-outlook-function', used by the command
652`diary-from-outlook'.
653
654---
655*** The variable `calendar-font-lock-keywords' is obsolete.
656
657** Calc 535** Calc
658 536
659+++
660*** Calc by default now uses the Gregorian calendar for all dates, and 537*** Calc by default now uses the Gregorian calendar for all dates, and
661uses January 1, 1 AD as its day number 1. Previously Calc used the 538uses January 1, 1 AD as its day number 1. Previously Calc used the
662Julian calendar for dates before September 14, 1752, and it used 539Julian calendar for dates before September 14, 1752, and it used
663December 31, 1 BC as its day number 1; the new scheme is more 540December 31, 1 BC as its day number 1; the new scheme is more
664consistent with Calendar's calendrical system and day numbering. 541consistent with Calendar's calendrical system and day numbering.
665 542
666+++
667*** The new option `calc-gregorian-switch' lets you configure if 543*** The new option `calc-gregorian-switch' lets you configure if
668(and when) Calc switches from the Julian to the Gregorian calendar. 544(and when) Calc switches from the Julian to the Gregorian calendar.
669 545
670+++
671*** Support for ISO 8601 dates. 546*** Support for ISO 8601 dates.
672 547
548** Calendar and Diary
549
550*** New faces `calendar-weekday-header', `calendar-weekend-header',
551and `calendar-month-header'.
552
553*** New option `calendar-day-header-array'.
554
555*** New variable `diary-from-outlook-function', used by the command
556`diary-from-outlook'.
557
558*** The variable `calendar-font-lock-keywords' is obsolete.
559
673** CEDET 560** CEDET
674 561
675*** EDE 562*** EDE
676 563
677+++
678**** The cpp-root project now supports executing a compile command. 564**** The cpp-root project now supports executing a compile command.
679It can be set through the new :compile-command slot or the 565It can be set through the new :compile-command slot or the
680buffer-local variable `compile-command'. 566buffer-local variable `compile-command'.
681 567
682+++
683**** Better selection of include directories for the 'linux' project. 568**** Better selection of include directories for the 'linux' project.
684Include directories now support out-of-tree build directories and 569Include directories now support out-of-tree build directories and
685target architecture auto-detection. 570target architecture auto-detection.
686 571
687---
688*** Semantic 572*** Semantic
689 573
690**** Improved detection of used namespaces in current scope in C++. 574**** Improved detection of used namespaces in current scope in C++.
@@ -700,119 +584,97 @@ For example, this enables parsing of macros that open new namespaces.
700 584
701**** Support for 'this' pointer in inline member functions in C++. 585**** Support for 'this' pointer in inline member functions in C++.
702 586
587** CFEngine mode
588
589*** Support for completion, ElDoc, and Flycheck has been added.
590
591*** The current CFEngine syntax is parsed from "cf-promises -s json".
592There is a fallback syntax available if you don't have cf-promises or
593if your version doesn't support that option. See option `cfengine-cf-promises'.
594
703** cl-lib 595** cl-lib
704 596
705+++
706*** New macro `cl-tagbody'. 597*** New macro `cl-tagbody'.
707This executes statements while allowing for control transfer to labels. 598This executes statements while allowing for control transfer to labels.
708 599
709+++
710*** letf is now just an alias for cl-letf. 600*** letf is now just an alias for cl-letf.
711 601
712** CUA mode 602** CUA mode
713 603
714+++
715*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'. 604*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'.
716Hence, you can now enable it independently from those modes, and from 605Hence, you can now enable it independently from those modes, and from
717`transient-mark-mode'. 606`transient-mark-mode'.
718 607
719---
720*** `cua-highlight-region-shift-only' is now obsolete. 608*** `cua-highlight-region-shift-only' is now obsolete.
721You can disable `transient-mark-mode' to get the same result. 609You can disable `transient-mark-mode' to get the same result.
722 610
723+++
724*** CUA's rectangles can now be used without CUA by calling the command 611*** CUA's rectangles can now be used without CUA by calling the command
725`cua-rectangle-mark-mode'. 612`cua-rectangle-mark-mode'.
726 613
727** CFEngine mode
728
729---
730*** Support for completion, ElDoc, and Flycheck has been added.
731
732---
733*** The current CFEngine syntax is parsed from "cf-promises -s json".
734There is a fallback syntax available if you don't have cf-promises or
735if your version doesn't support that option. See option `cfengine-cf-promises'.
736
737---
738** Delete Selection mode can now be used without Transient Mark mode. 614** Delete Selection mode can now be used without Transient Mark mode.
739 615
740** Desktop 616** Desktop
741 617
742+++
743*** `desktop-save-mode' by default now auto-saves an existing desktop file 618*** `desktop-save-mode' by default now auto-saves an existing desktop file
744after `desktop-auto-save-timeout'. To disable this, customize that option 619after `desktop-auto-save-timeout'. To disable this, customize that option
745to nil (or zero). 620to nil (or zero).
746 621
747+++
748*** Desktop now saves and restores the frame/window configuration. 622*** Desktop now saves and restores the frame/window configuration.
749To disable this, set `desktop-restore-frames' to nil. 623To disable this, set `desktop-restore-frames' to nil.
750See also related options `desktop-restore-reuses-frames', 624See also related options `desktop-restore-reuses-frames',
751`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'. 625`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'.
752 626
753+++
754** New Dired minor mode `dired-hide-details-mode' toggles whether details, 627** New Dired minor mode `dired-hide-details-mode' toggles whether details,
755such as file ownership or permissions, are visible in Dired buffers. 628such as file ownership or permissions, are visible in Dired buffers.
756See the new options `dired-hide-details-hide-symlink-targets' and 629See the new options `dired-hide-details-hide-symlink-targets' and
757`dired-hide-details-hide-information-lines' for customizing what to hide. 630`dired-hide-details-hide-information-lines' for customizing what to hide.
758 631
759---
760** You can enable ElDoc inside the `eval-expression' minibuffer with: 632** You can enable ElDoc inside the `eval-expression' minibuffer with:
761 (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode) 633 (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode)
762The results display in the mode line. 634The results display in the mode line.
763 635
764** Electric Pair mode 636** Electric Pair mode
765 637
766+++
767*** New option `electric-pair-preserve-balance', enabled by default. 638*** New option `electric-pair-preserve-balance', enabled by default.
768If non-nil, pairing/skipping only kicks in when that help the balance 639If non-nil, pairing/skipping only kicks in when that help the balance
769of parentheses and quotes, i.e. the buffer should end up at least as 640of parentheses and quotes; i.e., the buffer should end up at least as
770balanced as before. 641balanced as before.
771 642
772You can further control this behavior by adjusting the predicates 643You can further control this behavior by adjusting the predicates
773stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. 644stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'.
774 645
775+++
776*** New option `electric-pair-delete-adjacent-pairs', enabled by default. 646*** New option `electric-pair-delete-adjacent-pairs', enabled by default.
777In `electric-pair-mode', the commands `backward-delete-char' and 647In `electric-pair-mode', the commands `backward-delete-char' and
778`backward-delete-char-untabify' are now bound to electric variants 648`backward-delete-char-untabify' are now bound to electric variants
779that delete the closer when invoked between adjacent pairs. 649that delete the closer when invoked between adjacent pairs.
780 650
781+++
782*** New option `electric-pair-open-newline-between-pairs', enabled by default. 651*** New option `electric-pair-open-newline-between-pairs', enabled by default.
783In `electric-pair-mode', inserting a newline between adjacent pairs 652In `electric-pair-mode', inserting a newline between adjacent pairs
784opens an extra newline after point, which is indented if 653opens an extra newline after point, which is indented if
785`electric-indent-mode' is also set. 654`electric-indent-mode' is also set.
786 655
787+++
788*** New option `electric-pair-skip-whitespace', enabled by default. 656*** New option `electric-pair-skip-whitespace', enabled by default.
789This controls if skipping over closing delimiters should jump over any 657This controls if skipping over closing delimiters should jump over any
790whitespace slack. Setting it to `chomp' makes it delete this 658whitespace slack. Setting it to `chomp' makes it delete this
791whitespace. See also the variable `electric-pair-skip-whitespace-chars'. 659whitespace. See also the variable `electric-pair-skip-whitespace-chars'.
792 660
793---
794*** New variables control the pairing in strings and comments. 661*** New variables control the pairing in strings and comments.
795You can customize `electric-pair-text-pairs' and 662You can customize `electric-pair-text-pairs' and
796`electric-pair-text-syntax-table' to tweak pairing behavior inside 663`electric-pair-text-syntax-table' to tweak pairing behavior inside
797strings and comments. 664strings and comments.
798 665
799+++
800** New EPA option `epa-mail-aliases'. 666** New EPA option `epa-mail-aliases'.
801You can set this to a list of email address aliases that `epa-mail-encrypt' 667You can set this to a list of email address aliases that `epa-mail-encrypt'
802should use to find keys. 668should use to find keys.
803 669
804---
805** New ERC option `erc-accidental-paste-threshold-seconds'. 670** New ERC option `erc-accidental-paste-threshold-seconds'.
806If set to a number, this can be used to avoid accidentally pasting large 671If set to a number, this can be used to avoid accidentally pasting large
807amounts of data into the ERC input. 672amounts of data into the ERC input.
808 673
809+++
810** New ERT macro `skip-unless' allows skipping ERT tests. 674** New ERT macro `skip-unless' allows skipping ERT tests.
811See the ERT manual for details.
812 675
813** Eshell 676** Eshell
814 677
815+++
816*** `eshell' now supports visual subcommands and options. 678*** `eshell' now supports visual subcommands and options.
817Eshell has been able to handle "visual" commands (interactive, 679Eshell has been able to handle "visual" commands (interactive,
818non-line oriented commands such as top that require display 680non-line oriented commands such as top that require display
@@ -822,121 +684,100 @@ terminal emulator. See `eshell-visual-commands'.
822This feature has been extended to subcommands and options that make a 684This feature has been extended to subcommands and options that make a
823usually line-oriented command a visual command. Typical examples are 685usually line-oriented command a visual command. Typical examples are
824"git log" and "git <command> --help", which display their output in a 686"git log" and "git <command> --help", which display their output in a
825pager by default. See `eshell-visual-subcommands' and 687pager by default. See `eshell-visual-subcommands' and `eshell-visual-options'.
826`eshell-visual-options'.
827 688
828---
829*** New Eshell-Tramp module. 689*** New Eshell-Tramp module.
830External su and sudo commands are now the default; the internal, 690External su and sudo commands are now the default; the internal,
831Tramp-using variants can still be used by enabling the eshell-tramp 691Tramp-using variants can still be used by enabling the eshell-tramp module.
832module.
833 692
834---
835** New F90 mode option `f90-smart-end-names'. 693** New F90 mode option `f90-smart-end-names'.
836 694
695** New option `gnutls-verify-error', if non-nil, means that Emacs
696should reject SSL/TLS certificates that GnuTLS determines as invalid.
697(This option defaults to nil at present, but this is expected to change
698in a future release.)
699
700** Hi-Lock
701
702*** New global command `M-s h .' (`highlight-symbol-at-point') highlights
703the symbol near point.
704
705*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
706will cycle through faces in `hi-lock-face-defaults' without prompting.
707
837** Icomplete 708** Icomplete
838Icomplete is now more similar to Ido. 709Icomplete is now more similar to Ido.
839 710
840---
841*** Icomplete by default now applies to all forms of minibuffer completion. 711*** Icomplete by default now applies to all forms of minibuffer completion.
842The variable `icomplete-with-completion-tables' (now a user option) 712The variable `icomplete-with-completion-tables' (now a user option)
843controls this. To restore the old behavior, set it back to 713controls this. To restore the old behavior, set it back to
844'(internal-complete-buffer). 714'(internal-complete-buffer).
845 715
846+++
847*** You can navigate through and select completions using the keys 716*** You can navigate through and select completions using the keys
848from `icomplete-minibuffer-map'. 717from `icomplete-minibuffer-map'.
849 718
850---
851*** The string that separates potential completions is now a customizable 719*** The string that separates potential completions is now a customizable
852option (`icomplete-separator'). The default is " | " rather than ",". 720option (`icomplete-separator'). The default is " | " rather than ",".
853 721
854---
855*** New face `icomplete-first-match'; and new options 722*** New face `icomplete-first-match'; and new options
856`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'. 723`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'.
857 724
858---
859*** The option `icomplete-show-key-bindings' has been removed. 725*** The option `icomplete-show-key-bindings' has been removed.
860 726
861** Ido 727** Ido
862 728
863+++
864*** An Ido user manual is now included. 729*** An Ido user manual is now included.
865 730
866---
867*** The option `ido-use-virtual-buffers' can now take the value `auto'. 731*** The option `ido-use-virtual-buffers' can now take the value `auto'.
868This means to use virtual buffers if the current ido input does not match 732This means to use virtual buffers if the current ido input does not match
869an existing buffer. 733an existing buffer.
870 734
871---
872*** The variable `ido-decorations' can optionally have two new elements, 735*** The variable `ido-decorations' can optionally have two new elements,
873which are the brackets to use around the sole remaining completion. 736which are the brackets to use around the sole remaining completion.
874 737
875** Image mode 738** Image mode
876 739
877+++
878*** New commands `n' (`image-next-file') and `p' (`image-previous-file') 740*** New commands `n' (`image-next-file') and `p' (`image-previous-file')
879visit the next image file and the previous image file in the same 741visit the next image file and the previous image file in the same
880directory, respectively. 742directory, respectively.
881 743
882+++
883*** New commands to show specific frames of multi-frame images. 744*** New commands to show specific frames of multi-frame images.
884`f' (`image-next-frame') and `b' (`image-previous-frame') visit the 745`f' (`image-next-frame') and `b' (`image-previous-frame') visit the
885next or previous frame. `F' (`image-goto-frame') shows a specific frame. 746next or previous frame. `F' (`image-goto-frame') shows a specific frame.
886 747
887+++
888*** New commands to speed up, slow down, or reverse animation. 748*** New commands to speed up, slow down, or reverse animation.
889`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to 749`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to
890speed up and slow down the animation. `a r' (`image-reverse-speed') 750speed up and slow down the animation. `a r' (`image-reverse-speed')
891to reverse it and `a 0' (`image-reset-speed') to reset it. 751to reverse it and `a 0' (`image-reset-speed') to reset it.
892 752
893---
894*** The command `image-mode-fit-frame' deletes other windows. 753*** The command `image-mode-fit-frame' deletes other windows.
895When toggling, it restores the frame's previous window configuration. 754When toggling, it restores the frame's previous window configuration.
896It also has an optional frame argument, which can be used by Lisp 755It also has an optional frame argument, which can be used by Lisp
897callers to fit the image to a frame other than the selected frame. 756callers to fit the image to a frame other than the selected frame.
898 757
899** Hi-Lock
900
901+++
902*** New global command `M-s h .' (`highlight-symbol-at-point') highlights
903the symbol found near point.
904
905+++
906*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
907will cycle through faces in `hi-lock-face-defaults' without prompting.
908
909---
910** New Imenu option `imenu-generic-skip-comments-and-strings'. 758** New Imenu option `imenu-generic-skip-comments-and-strings'.
911 759
912** Info 760** Info
913 761
914---
915*** New Info face `info-index-match', used to highlight matches in index 762*** New Info face `info-index-match', used to highlight matches in index
916entries displayed by `Info-index-next', `Info-virtual-index' and 763entries displayed by `Info-index-next', `Info-virtual-index' and
917`info-apropos'. 764`info-apropos'.
918 765
919---
920*** The Info-edit command is obsolete. Editing Info nodes by hand 766*** The Info-edit command is obsolete. Editing Info nodes by hand
921has not been relevant for some time. 767has not been relevant for some time.
922 768
923** JS Mode 769** JS Mode
924 770
925---
926*** New option `js-switch-indent-offset'. 771*** New option `js-switch-indent-offset'.
927 772
928---
929*** Better indentation of multiple-variable declarations. 773*** Better indentation of multiple-variable declarations.
930If a declaration spans several lines, variables on the following lines 774If a declaration spans several lines, variables on the following lines
931are lined up to the first one. 775are lined up to the first one.
932 776
933---
934*** Recognition and better indentation of continuations in array comprehensions. 777*** Recognition and better indentation of continuations in array comprehensions.
935 778
936+++
937** MH-E has been updated to version 8.5 - see separate MH-E-NEWS file. 779** MH-E has been updated to version 8.5 - see separate MH-E-NEWS file.
938 780
939+++
940** Octave mode 781** Octave mode
941 782
942*** Font locking for Texinfo comments and new keywords. 783*** Font locking for Texinfo comments and new keywords.
@@ -949,67 +790,53 @@ are lined up to the first one.
949 790
950*** Documentation lookup/search. 791*** Documentation lookup/search.
951 792
952+++
953** OPascal mode is the new name for Delphi mode 793** OPascal mode is the new name for Delphi mode
954 794
955---
956*** All delphi-* variables and functions have been renamed to opascal-*. 795*** All delphi-* variables and functions have been renamed to opascal-*.
957Obsolete aliases exist for those likely to have been used externally. 796Obsolete aliases exist for those likely to have been used externally.
958 797
959---
960*** The option `delphi-newline-always-indents' has been removed. 798*** The option `delphi-newline-always-indents' has been removed.
961Use `electric-indent-mode' instead. 799Use `electric-indent-mode' instead.
962 800
963---
964*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'. 801*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'.
965 802
966** Package 803** Package
967 804
968+++
969*** The package library now supports digital signing of packages. 805*** The package library now supports digital signing of packages.
970Maintainers of package archives should consider signing their packages 806Maintainers of package archives should consider signing their packages
971to enhance security. 807to enhance security.
972 808
973+++
974**** If the user option `package-check-signature' is non-nil, 809**** If the user option `package-check-signature' is non-nil,
975Emacs tries to check package signatures at install time. 810Emacs tries to check package signatures at install time.
976The value `allow-unsigned' allows installation of unsigned packages. 811The value `allow-unsigned' allows installation of unsigned packages.
977 812
978+++
979**** The user option `package-unsigned-archives' lists archives where 813**** The user option `package-unsigned-archives' lists archives where
980Emacs will not try to check signatures. 814Emacs will not try to check signatures.
981 815
982+++
983*** New option `package-pinned-packages'. This is useful if you have multiple 816*** New option `package-pinned-packages'. This is useful if you have multiple
984archives enabled, with more than one offering a package that you want. 817archives enabled, with more than one offering a given package that you want.
985 818
986+++
987*** In the `list-packages' buffer, you can use `f' (`package-menu-filter') 819*** In the `list-packages' buffer, you can use `f' (`package-menu-filter')
988to filter the list of packages by a keyword. 820to filter the list of packages by a keyword.
989 821
990+++
991*** In the `describe-package' buffer, there are now buttons listing the 822*** In the `describe-package' buffer, there are now buttons listing the
992keywords related to the package. Click on a button to see other packages 823keywords related to the package. Click on a button to see other packages
993related to that keyword. 824related to that keyword.
994 825
995---
996*** The format of `archive-contents' files, generated by package 826*** The format of `archive-contents' files, generated by package
997repositories, has changed to allow a new (fifth) element in the data 827repositories, has changed to allow a new (fifth) element in the data
998vectors, containing an associative list with extra properties. 828vectors, containing an associative list with extra properties.
999(For example, `describe-package' uses the `:url' extra property to 829(For example, `describe-package' uses the `:url' extra property to
1000display a "Homepage" header.) 830display a "Homepage" header.)
1001 831
1002---
1003** In Prolog mode, `prolog-use-smie' has been removed, 832** In Prolog mode, `prolog-use-smie' has been removed,
1004along with the non-SMIE indentation code. 833along with the non-SMIE indentation code.
1005 834
1006** Remember 835** Remember
1007 836
1008+++
1009*** The new command `remember-notes' creates a buffer that is saved on exit. 837*** The new command `remember-notes' creates a buffer that is saved on exit.
1010You can use it as a more permanent *scratch* buffer. 838You can use it as a more permanent *scratch* buffer.
1011 839
1012+++
1013*** Remember can now store notes in separate files. 840*** Remember can now store notes in separate files.
1014To use this, add `remember-store-in-files' to the `remember-handler-functions' 841To use this, add `remember-store-in-files' to the `remember-handler-functions'
1015option. The files are saved in `remember-data-directory' using 842option. The files are saved in `remember-data-directory' using
@@ -1017,109 +844,84 @@ names specified by `remember-directory-file-name-format'.
1017 844
1018** Rmail 845** Rmail
1019 846
1020+++
1021*** Customize `rmail-mbox-format' to influence some minor aspects of 847*** Customize `rmail-mbox-format' to influence some minor aspects of
1022how Rmail displays non-MIME messages. 848how Rmail displays non-MIME messages.
1023 849
1024---
1025*** The `unrmail' command now converts from BABYL to mboxrd format, 850*** The `unrmail' command now converts from BABYL to mboxrd format,
1026rather than mboxo. Customize `unrmail-mbox-format' to change this. 851rather than mboxo. Customize `unrmail-mbox-format' to change this.
1027 852
1028** Ruby mode 853** Ruby mode
1029 854
1030---
1031*** Improved syntax highlighting and indentation. 855*** Improved syntax highlighting and indentation.
1032 856
1033---
1034*** New `electric-indent-mode' integration. 857*** New `electric-indent-mode' integration.
1035 858
1036---
1037*** New option `ruby-encoding-magic-comment-style'. 859*** New option `ruby-encoding-magic-comment-style'.
1038 860
1039---
1040*** New option `ruby-custom-encoding-magic-comment-template'. 861*** New option `ruby-custom-encoding-magic-comment-template'.
1041 862
1042---
1043*** New option `ruby-align-to-stmt-keywords'. 863*** New option `ruby-align-to-stmt-keywords'.
1044 864
1045---
1046*** New option `ruby-align-chained-calls'. 865*** New option `ruby-align-chained-calls'.
1047 866
1048---
1049*** More Ruby file types have been added to `auto-mode-alist'. 867*** More Ruby file types have been added to `auto-mode-alist'.
1050 868
1051** Search and Replace 869** Search and Replace
1052 870
1053+++
1054*** New global command `M-s .' (`isearch-forward-symbol-at-point') 871*** New global command `M-s .' (`isearch-forward-symbol-at-point')
1055starts a symbol (identifier) incremental search forward with the 872starts a symbol (identifier) incremental search forward with the
1056symbol found near point added to the search string initially. 873symbol found near point added to the search string initially.
1057 874
1058+++
1059*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name 875*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
1060and adds it to the search string. 876and adds it to the search string.
1061 877
1062+++
1063*** `M-s i' in Isearch mode toggles whether search matches invisible text. 878*** `M-s i' in Isearch mode toggles whether search matches invisible text.
1064 879
1065+++
1066*** `query-replace' skips invisible text when `search-invisible' is nil, 880*** `query-replace' skips invisible text when `search-invisible' is nil,
1067and opens overlays with hidden text when `search-invisible' is `open'. 881and opens overlays with hidden text when `search-invisible' is `open'.
1068 882
1069+++ 883*** A negative prefix argument of replacement commands replaces backward.
1070*** A negative prefix arg of replacement commands replaces backward.
1071`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp 884`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp
1072backward, `M-s w words M-- M-%' replaces a sequence of words backward. 885backward, `M-s w words M-- M-%' replaces a sequence of words backward.
1073 886
1074+++
1075*** By default, prefix arguments do not now terminate Isearch mode. 887*** By default, prefix arguments do not now terminate Isearch mode.
1076Set `isearch-allow-prefix' to nil to restore old behavior. 888Set `isearch-allow-prefix' to nil to restore the old behavior.
1077 889
1078+++
1079*** More Isearch commands accept prefix arguments, namely 890*** More Isearch commands accept prefix arguments, namely
1080`isearch-printing-char', `isearch-quote-char', `isearch-yank-word', 891`isearch-printing-char', `isearch-quote-char', `isearch-yank-word',
1081`isearch-yank-line'. 892`isearch-yank-line'.
1082 893
1083+++
1084*** Word search now matches whitespace at the beginning/end 894*** Word search now matches whitespace at the beginning/end
1085of the search string if it contains leading/trailing whitespace. 895of the search string if it contains leading/trailing whitespace.
1086In an incremental word search or when using a non-nil LAX argument 896In an incremental word search or when using a non-nil LAX argument
1087of `word-search-regexp', the lax matching can also match part of 897of `word-search-regexp', the lax matching can also match part of
1088the first word (in addition to the lax matching of the last word). 898the first word (in addition to the lax matching of the last word).
1089The same rules are now applied to the symbol search with the difference 899The same rules are now applied to the symbol search, with the difference
1090that it matches symbols, and non-symbol characters between symbols. 900that it matches symbols, and non-symbol characters between symbols.
1091 901
1092+++
1093** New SES command `ses-rename-cell' allows assignment of names to SES cells. 902** New SES command `ses-rename-cell' allows assignment of names to SES cells.
1094 903
1095---
1096** The shell.el option `explicit-bash-args' includes --noediting by default. 904** The shell.el option `explicit-bash-args' includes --noediting by default.
1097All non-ancient Bash versions support this option. 905All non-ancient Bash versions support this option.
1098 906
1099** Shell Script mode 907** Shell Script mode
1100 908
1101---
1102*** The SMIE indentation engine is now used by default - see `sh-use-smie'. 909*** The SMIE indentation engine is now used by default - see `sh-use-smie'.
1103 910
1104---
1105*** `sh-mode' now has its own setting for `add-log-current-defun-function'. 911*** `sh-mode' now has its own setting for `add-log-current-defun-function'.
1106 912
1107** SMIE 913** SMIE
1108 914
1109+++
1110*** You can customize the SMIE indentation of a mode via `smie-config'. 915*** You can customize the SMIE indentation of a mode via `smie-config'.
1111The command `smie-config-guess' can help you derive the appropriate 916The command `smie-config-guess' can help you derive the appropriate
1112indentation settings, if you provide it with an indented sample file. 917indentation settings, if you provide it with an indented sample file.
1113Use `smie-config-save' to save the result. 918Use `smie-config-save' to save the result.
1114 919
1115+++
1116*** You can customize the SMIE indentation of a file by adding an entry to 920*** You can customize the SMIE indentation of a file by adding an entry to
1117the file's local variables of the form: `eval: (smie-config-local '(RULES))'. 921the file's local variables of the form: `eval: (smie-config-local '(RULES))'.
1118 922
1119+++
1120*** New commands `smie-config-show-indent' and `smie-config-set-indent'. 923*** New commands `smie-config-show-indent' and `smie-config-set-indent'.
1121 924
1122---
1123** SQL mode 925** SQL mode
1124 926
1125*** Improved login monitoring and appropriate response to login failures. 927*** Improved login monitoring and appropriate response to login failures.
@@ -1131,10 +933,8 @@ in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options'
1131are passed before the logon parameter, as required. The default now 933are passed before the logon parameter, as required. The default now
1132includes `-L', to limit the number of logon attempts per invocation. 934includes `-L', to limit the number of logon attempts per invocation.
1133 935
1134---
1135** New Term mode option `term-suppress-hard-newline'. 936** New Term mode option `term-suppress-hard-newline'.
1136 937
1137+++
1138** Todo mode has been rewritten and enhanced. 938** Todo mode has been rewritten and enhanced.
1139The Todo mode user manual describes all commands and most user 939The Todo mode user manual describes all commands and most user
1140options. To support some of these features, a new file format is 940options. To support some of these features, a new file format is
@@ -1166,12 +966,10 @@ or in archive files, undoing or unarchiving done items.
1166 966
1167** Trace 967** Trace
1168 968
1169---
1170*** `trace-function' and `trace-function-background' no longer prompt for 969*** `trace-function' and `trace-function-background' no longer prompt for
1171the output buffer. Unless you use a prefix argument, they output to 970the output buffer. Unless you use a prefix argument, they output to
1172`trace-buffer'. 971`trace-buffer'.
1173 972
1174---
1175*** With a prefix argument, `trace-function' and `trace-function-background' 973*** With a prefix argument, `trace-function' and `trace-function-background'
1176will prompt for a "context". This is a Lisp expression, whose value at the 974will prompt for a "context". This is a Lisp expression, whose value at the
1177time the function is entered/exited is printed along with the function's 975time the function is entered/exited is printed along with the function's
@@ -1179,109 +977,102 @@ name and arguments.
1179 977
1180** Tramp 978** Tramp
1181 979
1182+++
1183*** The experimental url syntax for remote file names has been removed.
1184
1185+++
1186*** New connection method "adb", which allows to access Android 980*** New connection method "adb", which allows to access Android
1187devices by the Android Debug Bridge. The variable `tramp-adb-program' 981devices by the Android Debug Bridge. The variable `tramp-adb-program'
1188can be used to adapt the path of the "adb" program, if needed. 982can be used to adapt the path of the "adb" program, if needed.
1189 983
1190+++ 984*** Handlers for `file-acl' and `set-file-acl' for remote machines
985that support POSIX ACLs.
986
987*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch'
988for remote machines that support filesystem notifications.
989
990*** The experimental url syntax for remote file names has been removed.
991
1191*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2", 992*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2",
1192"scpc" and "rsyncc" are discontinued. The ssh option 993"scpc" and "rsyncc" are discontinued. The ssh option
1193"ControlMaster=auto" is set automatically in all ssh-based methods, 994"ControlMaster=auto" is set automatically in all ssh-based methods,
1194when possible. See `tramp-use-ssh-controlmaster-options'. 995when possible. See `tramp-use-ssh-controlmaster-options'.
1195 996
1196+++
1197*** Handlers for `file-acl' and `set-file-acl' for remote machines
1198which support POSIX ACLs.
1199
1200+++
1201*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch'
1202for remote machines which support filesystem notifications.
1203
1204+++
1205** New URL command `url-cookie-list' displays the current cookies, 997** New URL command `url-cookie-list' displays the current cookies,
1206and allows you to interactively remove cookies. 998and allows you to interactively remove cookies.
1207 999
1208** VC and related modes 1000** VC and related modes
1209 1001
1210+++
1211*** In VC directory mode, `D' displays diffs between VC-controlled 1002*** In VC directory mode, `D' displays diffs between VC-controlled
1212whole tree revisions. 1003whole tree revisions.
1213 1004
1214+++
1215*** In VC directory mode, `L' lists the change log for the current VC 1005*** In VC directory mode, `L' lists the change log for the current VC
1216controlled tree in a window. 1006controlled tree in a window.
1217 1007
1218+++
1219*** In VC directory mode, `I' shows a log of changes that will be 1008*** In VC directory mode, `I' shows a log of changes that will be
1220received with a pull operation. 1009received with a pull operation.
1221 1010
1222+++
1223*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file 1011*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file
1224under current version control system. When called with a prefix 1012under current version control system. When called with a prefix
1225argument, you can remove a file from the ignored file list. 1013argument, you can remove a file from the ignored file list.
1226 1014
1227** VHDL mode 1015** VHDL mode
1228 1016
1229---
1230*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'. 1017*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'.
1231 1018
1232---
1233*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'. 1019*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'.
1234 1020
1235---
1236** The Woman commands `woman-default-faces' and `woman-monochrome-faces' 1021** The Woman commands `woman-default-faces' and `woman-monochrome-faces'
1237are obsolete. Customize the `woman-*' faces instead. 1022are obsolete. Customize the `woman-*' faces instead.
1238 1023
1024** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
1025Affected files:
1026~/.emacs.d/timelog replaces ~/.timelog
1027~/.emacs.d/vip replaces ~/.vip
1028~/.emacs.d/viper replaces ~/.viper
1029~/.emacs.d/ido.last replaces ~/.ido.last
1030~/.emacs.d/kkcrc replaces ~/.kkcrc
1031~/.emacs.d/quickurls replaces ~/.quickurls
1032~/.emacs.d/idlwave/ replaces ~/.idlwave/
1033~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el
1034~/.emacs.d/places replaces ~/.emacs-places
1035~/.emacs.d/shadows replaces ~/.shadows
1036~/.emacs.d/shadow_todo replaces ~/.shadow_todo
1037~/.emacs.d/strokes replaces ~/.strokes
1038~/.emacs.d/notes replaces ~/.notes
1039~/.emacs.d/type-break replaces ~/.type-break
1040Also the following files used by the now obsolete otodo-mode.el:
1041~/.emacs.d/todo-do replaces ~/.todo-do
1042~/.emacs.d/todo-done replaces ~/.todo-done
1043~/.emacs.d/todo-top replaces ~/.todo-top
1044
1239** Obsolete packages 1045** Obsolete packages
1240 1046
1241+++
1242*** iswitchb.el; use icomplete-mode. 1047*** iswitchb.el; use icomplete-mode.
1243 1048
1244---
1245*** longlines.el; use visual-line-mode. 1049*** longlines.el; use visual-line-mode.
1246 1050
1247---
1248*** meese.el. 1051*** meese.el.
1249 1052
1250+++
1251*** sup-mouse.el. 1053*** sup-mouse.el.
1252 1054
1253---
1254*** terminal.el; use term.el instead. 1055*** terminal.el; use term.el instead.
1255 1056
1256---
1257*** the old version of todo-mode.el (renamed to otodo-mode.el). 1057*** the old version of todo-mode.el (renamed to otodo-mode.el).
1258 1058
1259---
1260*** xesam.el (owing to the cancellation of the XESAM project). 1059*** xesam.el (owing to the cancellation of the XESAM project).
1261 1060
1262+++
1263*** yow.el; use fortune.el or cookie1.el instead. 1061*** yow.el; use fortune.el or cookie1.el instead.
1264 1062
1265 1063
1266* New Modes and Packages in Emacs 24.4 1064* New Modes and Packages in Emacs 24.4
1267 1065
1268+++
1269** New package `eww' is a built-in web browser. 1066** New package `eww' is a built-in web browser.
1270It is only available if Emacs is compiled with libxml2 support. 1067(It is only available if Emacs is compiled with libxml2 support.)
1271 1068
1272+++
1273** New minor mode `superword-mode'.
1274This overrides the default word motion commands to treat "symbol_words"
1275as a single word, similar to what `subword-mode' does.
1276
1277+++
1278** New package nadvice.el offers lighter-weight advice facilities. 1069** New package nadvice.el offers lighter-weight advice facilities.
1279It is layered as: 1070It is layered as:
1280 1071
1281*** add-function/remove-function, which can be used to add/remove code on any 1072*** `add-function'/`remove-function', which can be used to add/remove code on
1282function-carrying place, such as process-filters or `<foo>-function' hooks. 1073any function-carrying place, such as process filters or `<foo>-function' hooks.
1283 1074
1284*** advice-add/advice-remove to add/remove a piece of advice on a named 1075*** `advice-add'/`advice-remove' to add/remove a piece of advice on a named
1285function, much like `defadvice' does. 1076function, much like `defadvice' does.
1286 1077
1287** New package frameset.el. 1078** New package frameset.el.
@@ -1290,39 +1081,21 @@ or a subset of the existing frames and windows, somewhat similar to a
1290frame configuration), both in-session and persistently, and restore it 1081frame configuration), both in-session and persistently, and restore it
1291at some point in the future. 1082at some point in the future.
1292 1083
1293+++
1294** New package filenotify.el provides an interface for file system 1084** New package filenotify.el provides an interface for file system
1295notifications. It requires that Emacs be compiled with one of the 1085notifications. It requires that Emacs be compiled with one of the
1296low-level libraries gfilenotify.c, inotify.c or w32notify.c. 1086low-level libraries gfilenotify.c, inotify.c or w32notify.c.
1297 1087
1298 1088** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode'
1299* Incompatible Lisp Changes in Emacs 24.4 1089display specified symbols as composed characters. E.g., in Emacs Lisp mode,
1300 1090this replaces the string "lambda" with the Greek lambda character.
1301+++
1302** Do not assume that the priority of all overlays will be numeric.
1303(You should still only specify integer priorities on overlays you create.)
1304If you need to sort arbitrary overlays into priority order, `overlays-at'
1305can now optionally do this.
1306
1307---
1308** `kill-region' has lost its `yank-handler' optional argument.
1309
1310+++
1311** `(input-pending-p)' no longer runs other timers that are ready to run.
1312The new optional CHECK-TIMERS parameter allows for the prior behavior.
1313
1314+++
1315** `defvar' and `defcustom' in a let-binding affect the "external" default.
1316 1091
1317--- 1092** New minor mode `superword-mode'.
1318** The syntax of ?» and ?« is now punctuation instead of matched parens. 1093This overrides the default word motion commands to treat "symbol_words"
1319Some languages match those as »...«, and others as «...», so it is 1094as a single word, similar to what `subword-mode' does.
1320better for Emacs to stay neutral by default.
1321 1095
1322--- 1096
1323** In compiled Lisp files, the header no longer includes a timestamp. 1097* Incompatible Lisp Changes in Emacs 24.4
1324 1098
1325+++
1326** The default file coding for Emacs Lisp files is now utf-8. 1099** The default file coding for Emacs Lisp files is now utf-8.
1327(See `file-coding-system-alist'.) In most cases, this change is 1100(See `file-coding-system-alist'.) In most cases, this change is
1328transparent, but files that contain unusual characters without 1101transparent, but files that contain unusual characters without
@@ -1330,384 +1103,263 @@ specifying an explicit coding system may fail to load with obscure
1330errors. You should either convert them to utf-8 or add an explicit 1103errors. You should either convert them to utf-8 or add an explicit
1331`coding:' cookie. 1104`coding:' cookie.
1332 1105
1333+++ 1106** Default process filters and sentinels are not nil any more.
1107Instead they default to a function that does what the nil value used to do.
1108
1109** Overlay priority does not have to be nil or a non-negative integer.
1110Overlay priority can be other kinds of Lisp objects. We didn't yet
1111decide whether other types of values are stable enough, and therefore
1112don't feel it's right to document them. For now, don't assume in your
1113code that the values of overlay priority can only be either nil or an
1114integer, always test them with an appropriate predicate to be one or
1115the other. If you need to sort arbitrary overlays into priority
1116order, `overlays-at' can now optionally do this.
1117You should still only specify integer priorities on overlays you create.
1118
1119** The cars of the elements in `interpreter-mode-alist' are now
1120treated as regexps rather than literal strings.
1121
1334** `overriding-terminal-local-map' no longer replaces the local keymaps. 1122** `overriding-terminal-local-map' no longer replaces the local keymaps.
1335It used to disable the minor mode, major mode, and text-property keymaps, 1123It used to disable the minor mode, major mode, and text-property keymaps,
1336whereas now it simply has higher precedence. 1124whereas now it simply has higher precedence.
1337 1125
1338+++ 1126** `kill-region' has lost its `yank-handler' optional argument.
1339** Default process filters and sentinels are not nil any more. 1127
1340Instead they default to a function that does what the nil value used to do. 1128** `(input-pending-p)' no longer runs other timers that are ready to run.
1129The new optional CHECK-TIMERS parameter allows for the prior behavior.
1130
1131** `defvar' and `defcustom' in a let-binding affect the "external" default.
1132
1133** The syntax of ?» and ?« is now punctuation instead of matched parens.
1134Some languages match those as »...«, and others as «...», so it is
1135better for Emacs to stay neutral by default.
1341 1136
1342+++
1343** `read-event' does not return decoded chars in ttys any more. 1137** `read-event' does not return decoded chars in ttys any more.
1344As was the case in Emacs 22 and before, the decoding of terminal 1138As was the case in Emacs 22 and before, the decoding of terminal
1345input, according to `keyboard-coding-system', is not performed in 1139input, according to `keyboard-coding-system', is not performed in
1346`read-event' any more. But unlike in Emacs 22, this decoding is still 1140`read-event' any more. But unlike in Emacs 22, this decoding is still
1347done before input-decode-map, function-key-map, etc. 1141done before `input-decode-map', `function-key-map', etc.
1348
1349---
1350** The option `inhibit-local-menu-bar-menus' has been removed.
1351 1142
1352--- 1143** In `symbol-function', nil and "unbound" are indistinguishable.
1353** Frame-local variables that affect redisplay do not work any more.
1354More specifically, redisplay does not bother to check for a frame-local
1355value when looking up variables.
1356
1357+++
1358** nil and "unbound" are indistinguishable in `symbol-function'.
1359`symbol-function' does not signal a `void-function' error any more. 1144`symbol-function' does not signal a `void-function' error any more.
1360To determine if a symbol's function definition is void, use `fboundp'. 1145To determine if a symbol's function definition is void, use `fboundp'.
1361 1146
1362+++
1363** `defadvice' does not honor the `freeze' flag and cannot advise 1147** `defadvice' does not honor the `freeze' flag and cannot advise
1364special-forms any more. 1148special-forms any more.
1365 1149
1366---
1367** `dolist' no longer binds VAR while evaluating the RESULT form, 1150** `dolist' no longer binds VAR while evaluating the RESULT form,
1368when lexical binding is enabled. Previously, VAR was bound to nil, 1151when lexical binding is enabled. Previously, VAR was bound to nil,
1369which often led to spurious unused-variable warnings. 1152which often led to spurious unused-variable warnings.
1370 1153
1371+++
1372** The return value of `backup-buffer' has changed. 1154** The return value of `backup-buffer' has changed.
1373The second argument is no longer an SELinux context, instead it is an 1155The second argument is no longer an SELinux context, instead it is an
1374alist of extended attributes as returned by the new function 1156alist of extended attributes as returned by the new function
1375`file-extended-attributes'. The attributes can be applied to another 1157`file-extended-attributes'. The attributes can be applied to another
1376file using `set-file-extended-attributes'. 1158file using `set-file-extended-attributes'.
1377 1159
1378+++
1379** By default `copy-file' no longer copies file permission bits to an 1160** By default `copy-file' no longer copies file permission bits to an
1380existing destination; and it sets the file permission bits of a newly 1161existing destination; and it sets the file permission bits of a newly
1381created destination to those of the source, masked by the default file 1162created destination to those of the source, masked by the default file
1382permissions. To copy the file permission bits, pass t as the 1163permissions. To copy the file permission bits, pass t as the
1383PRESERVE-PERMISSIONS argument of `copy-file'. 1164PRESERVE-PERMISSIONS argument of `copy-file'.
1384 1165
1385+++
1386** `visited-file-modtime' now returns -1 for nonexistent files. 1166** `visited-file-modtime' now returns -1 for nonexistent files.
1387Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous 1167Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous
1388in the presence of files with negative time stamps. 1168in the presence of files with negative time stamps.
1389 1169
1390+++ 1170** Frame-local variables that affect redisplay do not work any more.
1391** The cars of the elements in `interpreter-mode-alist' are now 1171More specifically, redisplay does not bother to check for a frame-local
1392treated as regexps rather than literal strings. 1172value when looking up variables.
1393 1173
1394--- 1174** In compiled Lisp files, the header no longer includes a timestamp.
1395** Overlay priority does not have to be nil or a non-negative integer. 1175
1396Overlay priority can be other kinds of Lisp objects. We didn't yet 1176** The option `inhibit-local-menu-bar-menus' has been removed.
1397decide whether other types of values are stable enough, and therefore
1398don't feel it's right to document them. For now, don't assume in your
1399code that the values of overlay priority can only be either nil or an
1400integer, always test them with an appropriate predicate to be one or
1401the other.
1402 1177
1403 1178
1404* Lisp Changes in Emacs 24.4 1179* Lisp Changes in Emacs 24.4
1405 1180
1406+++ 1181** Change to the Emacs Lisp coding conventions: the package descriptor
1407** The second argument of `eval' can now specify a lexical environment. 1182and name of global variables, constants, and functions should be separated
1183by two hyphens if the symbol is not meant to be used by other packages.
1408 1184
1409+++ 1185** The second argument of `eval' can now specify a lexical environment.
1410** New functions `special-form-p' and `macrop'.
1411 1186
1412+++
1413** New macro `define-alternatives' can be used to define generic commands. 1187** New macro `define-alternatives' can be used to define generic commands.
1414Generic commands are interactive functions whose implementation can be 1188Generic commands are interactive functions whose implementation can be
1415selected among several alternatives, as a matter of user preference. 1189selected among several alternatives, as a matter of user preference.
1416 1190
1417+++ 1191** Numeric comparison functions =, <, >, <=, >= can now take many arguments.
1192
1193** New functions `special-form-p' and `macrop'.
1194
1195** New macro `with-eval-after-load'.
1196This is like the old `eval-after-load', but better behaved.
1197
1418** If you give a symbol a `defalias-fset-function' property, `defalias' 1198** If you give a symbol a `defalias-fset-function' property, `defalias'
1419on that symbol will use the associated value as a function to call 1199on that symbol will use the associated value as a function to call
1420in place of `fset'. 1200in place of `fset'.
1421 1201
1422+++
1423** New variable `enable-dir-local-variables'. 1202** New variable `enable-dir-local-variables'.
1424Directory-local variables are ignored if this is nil. This may be 1203Directory-local variables are ignored if this is nil. This may be
1425useful for modes that want to ignore directory-locals while still 1204useful for modes that want to ignore directory-locals while still
1426respecting file-local variables. 1205respecting file-local variables.
1427 1206
1428+++
1429** New function `get-pos-property'.
1430
1431+++
1432** `read-regexp' now uses the new variable `read-regexp-defaults-function' 1207** `read-regexp' now uses the new variable `read-regexp-defaults-function'
1433as a function to call to provide default values. 1208as a function to call to provide default values.
1434 1209
1435** Completion changes 1210** New functions `group-gid' and `group-real-gid'.
1211
1212** New function `get-pos-property'.
1213
1214** New hook `pre-redisplay-function'.
1215
1216** `byte-compile-interactive-only-functions' is now obsolete.
1217To specify that a command should only be called interactively, give it
1218a non-nil `interactive-only' property.
1219
1220** New function `string-suffix-p'.
1221
1222** `split-string' now takes an optional argument TRIM.
1223The value, if non-nil, is a regexp that specifies what to trim from
1224the start and end of each substring.
1225
1226** Completion
1436 1227
1437---
1438*** The separator used by `completing-read-multiple' is now a regexp. 1228*** The separator used by `completing-read-multiple' is now a regexp.
1439The default `crm-separator' has been changed to allow surrounding spaces 1229The default `crm-separator' has been changed to allow surrounding spaces
1440around the comma. 1230around the comma.
1441 1231
1442+++
1443*** The `common-substring' argument of `display-completion-list',
1444which has been documented as obsolete since Emacs 23.1, is now _really_
1445obsolete, and no longer advertised. Instead either call
1446`completion-hilit-commonality' to add the highlighting; or use
1447`completion-all-completions', which returns highlighted strings.
1448
1449+++
1450*** New function `completion-table-with-cache' is a wrapper for 1232*** New function `completion-table-with-cache' is a wrapper for
1451`completion-table-dynamic' that caches the result of the last lookup. 1233`completion-table-dynamic' that caches the result of the last lookup.
1452 1234
1453+++
1454*** New function `completion-table-merge' to combine several 1235*** New function `completion-table-merge' to combine several
1455completion tables by merging their completions. 1236completion tables by merging their completions.
1456 1237
1457+++ 1238*** The `common-substring' argument of `display-completion-list',
1458** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode' 1239which has been documented as obsolete since Emacs 23.1, is now _really_
1459display specified symbols as composed characters. E.g., in Emacs Lisp mode, 1240obsolete, and no longer advertised. Instead either call
1460this replaces the string "lambda" with the Greek lambda character. 1241`completion-hilit-commonality' to add the highlighting; or use
1461 1242`completion-all-completions', which returns highlighted strings.
1462** Terminal changes
1463
1464+++
1465*** Functions to pop up menus and dialogs now work on all terminals,
1466including TTYs. This includes `x-popup-menu', `x-popup-dialog',
1467`message-box', `yes-or-no-p', etc.
1468
1469The function `display-popup-menus-p' will now return non-nil for a
1470display or frame whenever a mouse is supported on that display or
1471frame.
1472
1473+++
1474*** New hook `tty-setup-hook', run at the end of initializing a text terminal.
1475 1243
1476+++ 1244** Encoding and decoding of text
1477*** The hook `term-setup-hook' is obsolete. It is entirely equivalent
1478to `emacs-startup-hook'. See also the new `tty-setup-hook'.
1479 1245
1480+++ 1246*** New coding-system `prefer-utf-8'.
1481** New hook `pre-redisplay-function'. 1247This is like `undecided' but prefers UTF-8 on decoding if the text to
1248be decoded does not contain any invalid UTF-8 sequences. On encoding,
1249any non-ASCII characters are automatically encoded as UTF-8.
1482 1250
1483+++ 1251*** New attributes of coding-systems whose type is `undecided'.
1484** New bool-vector set operation functions 1252Two new attributes, `:inhibit-null-byte-detection' and
1485*** `bool-vector-exclusive-or' 1253`:inhibit-iso-escape-detection', determine how to detect encoding of
1486*** `bool-vector-union' 1254text that includes null bytes and ISO-2022 escape sequences, respectively.
1487*** `bool-vector-intersection' 1255Each of these attributes can be either nil, zero, or t. If t, decoding
1488*** `bool-vector-set-difference' 1256text ignores null bytes and ISO-2022 sequences, respectively. If nil,
1489*** `bool-vector-not' 1257null bytes cause text to be decoded with no-conversion, and ISO-2022
1490*** `bool-vector-subsetp' 1258sequences cause Emacs to assume the text is encoded in one of the ISO-2022
1491*** `bool-vector-count-consecutive' 1259encodings, such as iso-2022-7bit. If zero, Emacs consults the variables
1492*** `bool-vector-count-population' 1260`inhibit-null-byte-detection' and `inhibit-iso-escape-detection'.
1261The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer
1262UTF-8 encoding and decoding, whenever possible.
1493 1263
1494+++ 1264These attributes are only meaningful for coding-systems of type `undecided'.
1495** Comparison functions =, <, >, <=, >= can now take many arguments. 1265(The type of a coding-system is determined by its `:coding-type' attribute
1266and can be accessed by calling the `coding-system-type' function.)
1496 1267
1497** Error-handling changes 1268** Error-handling
1498 1269
1499+++
1500*** New function `define-error'. 1270*** New function `define-error'.
1501 1271
1502+++
1503*** `with-demoted-errors' takes an additional argument `format'. 1272*** `with-demoted-errors' takes an additional argument `format'.
1504 1273
1505+++ 1274** Faces
1506** New macro `with-eval-after-load'.
1507This is like the old `eval-after-load', but better behaved.
1508 1275
1509--- 1276*** Face specs set via Custom themes now replace the `defface' spec
1510** New library subr-x.el with miscellaneous small utility functions 1277rather than inheriting from it. In other words, setting a face via a
1511*** `hash-table-keys' 1278theme now behaves like setting it via Customize: you only need to
1512*** `hash-table-values' 1279specify the attributes that you want, you don't need to unset those
1513*** `string-blank-p' 1280that you don't want.
1514*** `string-empty-p'
1515*** `string-join'
1516*** `string-reverse'
1517*** `string-trim-left'
1518*** `string-trim-right'
1519*** `string-trim'
1520*** `string-remove-prefix'
1521*** `string-remove-suffix'
1522
1523+++
1524** Obsoleted functions
1525*** `log10'
1526*** `dont-compile'
1527*** `lisp-complete-symbol'
1528*** `field-complete'
1529*** `minibuffer-completion-contents'
1530*** `isearch-nonincremental-exit-minibuffer'
1531*** `isearch-filter-visible'
1532*** `generic-make-keywords-list'
1533*** `get-upcase-table' (use `case-table-get-table' instead).
1534 1281
1535+++ 1282*** The function `face-spec-set' is now like `setq' for face specs.
1536** `with-wrapper-hook' is obsoleted by `add-function'. 1283Its third arg now accepts values specifying a face spec type (defface,
1537The few hooks that used with-wrapper-hook are replaced as follows: 1284custom, or override spec), and the relevant spec is set accordingly.
1538*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'.
1539*** `completion-in-region-function' obsoletes `completion-in-region-functions'.
1540*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
1541 1285
1542+++ 1286*** New face spec attribute :distant-foreground
1543** `byte-compile-interactive-only-functions' is now obsolete. 1287specifies foreground to use if background color is near the foreground
1544To specify that a command should only be called interactively, give it 1288color that would otherwise have been used.
1545a non-nil `interactive-only' property.
1546 1289
1547+++ 1290*** New function `add-face-text-property', which can be used to
1548** `split-string' now takes an optional argument TRIM. 1291conveniently prepend/append new face properties.
1549The value, if non-nil, is a regexp that specifies what to trim from
1550the start and end of each substring.
1551 1292
1552+++ 1293*** New face characteristic (supports :underline (:style wave))
1553** New function `string-suffix-p'. 1294specifies whether or not the terminal can display a wavy line.
1554 1295
1555** File-handling changes 1296** File-handling
1556 1297
1557+++
1558*** Support for filesystem notifications. 1298*** Support for filesystem notifications.
1559Emacs now supports notifications of filesystem changes, such as 1299Emacs now supports notifications of filesystem changes, such as
1560creation, modification, and deletion of files. This requires the 1300creation, modification, and deletion of files. This requires the
1561`glib' API, or the 'inotify' API (on GNU/Linux systems only). On 1301`glib' API, or the 'inotify' API (on GNU/Linux systems only). On
1562MS-Windows systems, this is supported for Windows XP and newer 1302MS-Windows systems, this is supported for Windows XP and newer.
1563versions.
1564 1303
1565+++
1566*** The 9th element returned by `file-attributes' is now unspecified. 1304*** The 9th element returned by `file-attributes' is now unspecified.
1567Formerly, it was t if the file's gid would change if file were deleted 1305Formerly, it was t if the file's gid would change if file were deleted
1568and recreated. This value has been inaccurate for years on many 1306and recreated. This value has been inaccurate for years on many
1569platforms, and nobody seems to have noticed or cared. 1307platforms, and nobody seems to have noticed or cared.
1570 1308
1571+++
1572*** The 6th argument to `copy-file' has been renamed to 1309*** The 6th argument to `copy-file' has been renamed to
1573PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional 1310PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional
1574Unix file permission bits as well as SELinux context. 1311Unix file permission bits as well as SELinux context.
1575 1312
1576+++
1577*** The function `file-ownership-preserved-p' now has an optional 1313*** The function `file-ownership-preserved-p' now has an optional
1578argument GROUP which causes it check for file group too. This can be 1314argument GROUP which causes it check for file group too. This can be
1579used in place of the 9th element of `file-attributes'. 1315used in place of the 9th element of `file-attributes'.
1580 1316
1581--- 1317*** The function `set-visited-file-modtime' now accepts a 0 or -1 argument,
1582*** The function `set-visited-file-modtime' now accepts a 0 or -1 1318with the same interpretation as the returned value of `visited-file-modtime'.
1583argument, with the same interpretation as the returned value of
1584`visited-file-modtime'.
1585
1586** Revert and Autorevert changes
1587
1588+++
1589*** The default values of `buffer-stale-function', `revert-buffer-function',
1590and `revert-buffer-insert-file-contents-function' are no longer nil.
1591Instead they default to functions that do what the nil value used to.
1592
1593+++
1594*** `buffer-stale-function' is now used for buffers visiting files too.
1595
1596---
1597*** If Emacs is compiled with file notification support, it uses notifications
1598instead of checking file time stamps. To disable this, set the user option
1599`auto-revert-use-notify' to nil. Alternatively, you can specify a regular
1600expression matching directories to be excluded from file notifications via
1601`auto-revert-notify-exclude-dir-regexp'.
1602
1603---
1604*** The new user option `auto-revert-remote-files' enables reversion
1605of remote files, if set to non-nil.
1606
1607** Face changes
1608
1609+++
1610*** The function `face-spec-set' is now like `setq' for face specs.
1611Its third arg now accepts values specifying a face spec type (defface,
1612custom, or override spec), and the relevant spec is set accordingly.
1613
1614+++
1615*** New function `add-face-text-property', which can be used to
1616conveniently prepend/append new face properties.
1617
1618---
1619*** Face specs set via Custom themes now replace the `defface' spec
1620rather than inheriting from it. In other words, setting a face via a
1621theme now behaves like setting it via Customize: you only need to
1622specify the attributes that you want, you don't need to unset those
1623that you don't want.
1624
1625---
1626*** New face characteristic (supports :underline (:style wave))
1627specifies whether or not the terminal can display a wavy line.
1628
1629+++
1630*** New face spec attribute :distant-foreground
1631specifies foreground to use if background color is near the foreground
1632color that would otherwise have been used.
1633 1319
1634** Image API 1320** Image API
1635 1321
1636+++
1637*** `image-animated-p' is now `image-multi-frame-p'. 1322*** `image-animated-p' is now `image-multi-frame-p'.
1638It returns non-nil for any image that contains multiple frames, 1323It returns non-nil for any image that contains multiple frames,
1639whether or not it specifies a frame delay. 1324whether or not it specifies a frame delay.
1640 1325
1641+++
1642*** New variable `image-default-frame-delay' gives the frame delay for 1326*** New variable `image-default-frame-delay' gives the frame delay for
1643animated images which do not specify a frame delay. 1327animated images which do not specify a frame delay.
1644 1328
1645+++
1646*** New functions `image-current-frame' and `image-show-frame' for getting 1329*** New functions `image-current-frame' and `image-show-frame' for getting
1647and setting the current frame of a multi-frame image. 1330and setting the current frame of a multi-frame image.
1648 1331
1649** EIEIO 1332** Revert and Autorevert
1650 1333
1651+++ 1334*** If Emacs is compiled with file notification support, it uses notifications
1652*** Namespace cleanup by obsolete-aliasing functions to use `eieio-' prefix. 1335instead of checking file time stamps. To disable this, set the user option
1653**** object-name -> eieio-object-name 1336`auto-revert-use-notify' to nil. Alternatively, you can specify a regular
1654**** object-class -> eieio-object-class 1337expression matching directories to be excluded from file notifications via
1655**** object-class-fast -> eieio--object-class 1338`auto-revert-notify-exclude-dir-regexp'.
1656**** object-class-name -> eieio-object-class-name
1657**** object-name-string -> eieio-object-name-string
1658**** object-num-slots -> eieio--object-num-slots
1659**** object-set-name-string -> eieio-object-set-name-string
1660**** class-of -> eieio-object-class
1661**** class-name -> eieio-class-name
1662**** class-parent -> eieio-class-parent
1663**** class-parents -> eieio-class-parents
1664**** class-parents-fast -> eieio-class-parents-fast
1665**** class-children -> eieio-class-children
1666**** class-num-slots -> eieio--class-num-slots
1667**** class-precedence-list -> eieio-class-precedence-list
1668**** class-direct-subclasses -> eieio-class-children
1669**** class-direct-superclasses -> eieio-class-parents
1670
1671** Changes in encoding and decoding of text
1672 1339
1673--- 1340*** The default values of `buffer-stale-function', `revert-buffer-function',
1674*** New coding-system `prefer-utf-8'. 1341and `revert-buffer-insert-file-contents-function' are no longer nil.
1675This is like `undecided' but prefers UTF-8 on decoding if the text to 1342Instead they default to functions that do what the nil value used to.
1676be decoded does not contain any invalid UTF-8 sequences. On encoding,
1677any non-ASCII characters are automatically encoded as UTF-8.
1678 1343
1679--- 1344*** `buffer-stale-function' is now used for buffers visiting files too.
1680*** New attributes of coding-systems whose type is `undecided'.
1681Two new attributes, `:inhibit-null-byte-detection' and
1682`:inhibit-iso-escape-detection', determine how to detect encoding of
1683text that includes null bytes and ISO-2022 escape sequences,
1684respectively. Each of these attributes can be either nil, zero, or
1685t. If it is t, decoding text ignores null bytes and, respectively,
1686ISO-2022 sequences. If it is nil, null bytes cause text to be decoded
1687with no-conversion and ISO-2022 sequences cause Emacs to assume the
1688text is encoded in one of the ISO-2022 encodings, such as
1689iso-2022-7bit. If the value is zero, Emacs consults the variables
1690inhibit-null-byte-detection and inhibit-iso-escape-detection, which
1691see.
1692The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer
1693UTF-8 encoding and decoding, whenever possible.
1694 1345
1695These attributes are only meaningful for coding-systems of type 1346*** The new user option `auto-revert-remote-files' enables reversion
1696`undecided'. (The type of a coding-system is determined by its 1347of remote files, if non-nil.
1697`:coding-type' attribute and can be accessed by calling the
1698`coding-system-type' function.)
1699 1348
1700--- 1349** Terminal
1701** The `time-to-seconds' alias to `float-time' is no longer marked obsolete.
1702 1350
1703+++ 1351*** Functions to pop up menus and dialogs now work on all terminals,
1704** New functions `group-gid' and `group-real-gid'. 1352including TTYs. This includes `x-popup-menu', `x-popup-dialog',
1353`message-box', `yes-or-no-p', etc.
1705 1354
1706--- 1355The function `display-popup-menus-p' will now return non-nil for a
1707** The spelling of the rx.el category `chinese-two-byte' has been 1356display or frame whenever a mouse is supported on that display or frame.
1708corrected (the first 'e' was missing). 1357
1358*** New hook `tty-setup-hook', run at the end of initializing a text terminal.
1359
1360*** The hook `term-setup-hook' is obsolete. It is entirely equivalent
1361to `emacs-startup-hook'. See also the new `tty-setup-hook'.
1709 1362
1710---
1711** Minor internal changes to the details of lock files. 1363** Minor internal changes to the details of lock files.
1712The lock for DIR/FILE is now _always_ DIR/.#FILE. 1364The lock for DIR/FILE is now _always_ DIR/.#FILE.
1713If DIR/.#FILE already exists and is not an Emacs lock file, 1365If DIR/.#FILE already exists and is not an Emacs lock file,
@@ -1716,23 +1368,92 @@ numbered lock files DIR/.#FILE.0...).
1716On file systems that do not support symbolic links, the lock is now a 1368On file systems that do not support symbolic links, the lock is now a
1717regular file with contents being what would have been in the symlink. 1369regular file with contents being what would have been in the symlink.
1718 1370
1719** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4 1371** New bool-vector set operation functions:
1372*** `bool-vector-exclusive-or'
1373*** `bool-vector-union'
1374*** `bool-vector-intersection'
1375*** `bool-vector-set-difference'
1376*** `bool-vector-not'
1377*** `bool-vector-subsetp'
1378*** `bool-vector-count-consecutive'
1379*** `bool-vector-count-population'
1720 1380
1721+++ 1381** New library subr-x.el with miscellaneous small utility functions:
1722*** The package descriptor and name of global variables, constants, 1382*** `hash-table-keys'
1723and functions should be separated by two hyphens if the symbol is not 1383*** `hash-table-values'
1724meant to be used by other packages. 1384*** `string-blank-p'
1385*** `string-empty-p'
1386*** `string-join'
1387*** `string-reverse'
1388*** `string-trim-left'
1389*** `string-trim-right'
1390*** `string-trim'
1391*** `string-remove-prefix'
1392*** `string-remove-suffix'
1393
1394** The `time-to-seconds' alias to `float-time' is no longer marked obsolete.
1395
1396** The spelling of the rx.el category `chinese-two-byte' has been
1397corrected (the first 'e' was missing).
1398
1399** EIEIO namespace cleanup, obsolete-aliasing functions to use `eieio-' prefix:
1400*** object-name -> eieio-object-name
1401*** object-class -> eieio-object-class
1402*** object-class-fast -> eieio--object-class
1403*** object-class-name -> eieio-object-class-name
1404*** object-name-string -> eieio-object-name-string
1405*** object-num-slots -> eieio--object-num-slots
1406*** object-set-name-string -> eieio-object-set-name-string
1407*** class-of -> eieio-object-class
1408*** class-name -> eieio-class-name
1409*** class-parent -> eieio-class-parent
1410*** class-parents -> eieio-class-parents
1411*** class-parents-fast -> eieio-class-parents-fast
1412*** class-children -> eieio-class-children
1413*** class-num-slots -> eieio--class-num-slots
1414*** class-precedence-list -> eieio-class-precedence-list
1415*** class-direct-subclasses -> eieio-class-children
1416*** class-direct-superclasses -> eieio-class-parents
1417
1418** Obsoleted functions
1419*** `log10'
1420*** `dont-compile'
1421*** `lisp-complete-symbol'
1422*** `field-complete'
1423*** `minibuffer-completion-contents'
1424*** `isearch-nonincremental-exit-minibuffer'
1425*** `isearch-filter-visible'
1426*** `generic-make-keywords-list'
1427*** `get-upcase-table' (use `case-table-get-table' instead).
1428
1429** `with-wrapper-hook' is obsoleted by `add-function'.
1430The few hooks that used with-wrapper-hook are replaced as follows:
1431*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'.
1432*** `completion-in-region-function' obsoletes `completion-in-region-functions'.
1433*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
1725 1434
1726 1435
1727* Changes in Emacs 24.4 on Non-Free Operating Systems 1436* Changes in Emacs 24.4 on Non-Free Operating Systems
1728 1437
1729--- 1438** New Core Text based font backend for Mac OS X 10.5 and newer.
1439To use the old font backend, use the following on the command line:
1440 % defaults write org.gnu.Emacs FontBackend ns
1441GNUstep and Mac OS X 10.4 use the old font backend.
1442
1443** Improved fullscreen support on Mac OS X 10.7 and newer, where the
1444default fullscreen method is now "native" fullscreen. To use the
1445old style fullscreen, customize `ns-use-native-fullscreen' to nil.
1446
1447** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so
1448by default. Customize `ns-use-srgb-colorspace' to go back to the old method.
1449Note that this does not apply to images.
1450
1730** The procedure for building Emacs on MS-Windows has changed. 1451** The procedure for building Emacs on MS-Windows has changed.
1731It is now built by running the same configure script as on all other 1452It is now built by running the same configure script as on all other
1732platforms. This requires the MSYS environment and MinGW development 1453platforms. This requires the MSYS environment and MinGW development
1733tools. See the updated instructions in nt/INSTALL for details. 1454tools. See the updated instructions in nt/INSTALL for details.
1734 1455
1735Using the Posix configure script and Makefile's also means a change in 1456Using the Posix configure script and Makefiles also means a change in
1736the directory structure of the Emacs installation on Windows. It is 1457the directory structure of the Emacs installation on Windows. It is
1737now the same as on GNU and Unix systems. In particular, the auxiliary 1458now the same as on GNU and Unix systems. In particular, the auxiliary
1738programs, such as cmdproxy.exe and hexl.exe, are in 1459programs, such as cmdproxy.exe and hexl.exe, are in
@@ -1744,7 +1465,6 @@ files are in share/emacs/VERSION/etc. (Emacs knows about all these
1744directories and will find the files in there automatically; there's no 1465directories and will find the files in there automatically; there's no
1745need to set any variables due to this change.) 1466need to set any variables due to this change.)
1746 1467
1747+++
1748** Emacs on Windows 2000 and later can now access files and directories 1468** Emacs on Windows 2000 and later can now access files and directories
1749whose names cannot be encoded in the current system codepage. 1469whose names cannot be encoded in the current system codepage.
1750 1470
@@ -1752,40 +1472,21 @@ The new variable `w32-unicode-filenames' controls this feature: if it
1752is t, Emacs uses Unicode APIs to pass file names to system calls, 1472is t, Emacs uses Unicode APIs to pass file names to system calls,
1753which lifts the limitation of file names to the current locale. 1473which lifts the limitation of file names to the current locale.
1754 1474
1755+++ 1475** Lock files now work on MS-Windows.
1476This helps to prevent losing your edits if the same file is being
1477edited in another Emacs session or by another user. See the node
1478"Interlocking" in the Emacs User Manual for the details. To disable
1479file locking, customize `create-lockfiles' to nil.
1480
1756** The "generate a backtrace on fatal error" feature now works on MS Windows. 1481** The "generate a backtrace on fatal error" feature now works on MS Windows.
1757The backtrace is written to the 'emacs_backtrace.txt' file in the 1482The backtrace is written to the 'emacs_backtrace.txt' file in the
1758directory where Emacs was running. 1483directory where Emacs was running.
1759 1484
1760+++
1761** The variable `buffer-file-type' is no longer supported. 1485** The variable `buffer-file-type' is no longer supported.
1762Setting it has no effect, and %t in the mode-line format is ignored. 1486Setting it has no effect, and %t in the mode-line format is ignored.
1763Likewise, `file-name-buffer-file-type-alist' is now obsolete, and 1487Likewise, `file-name-buffer-file-type-alist' is now obsolete, and
1764modifying it has no effect. 1488modifying it has no effect.
1765 1489
1766---
1767** Lock files now work on MS-Windows.
1768This helps to prevent losing your edits if the same file is being
1769edited in another Emacs session or by another user. See the node
1770"Interlocking" in the Emacs User Manual for the details. To disable
1771file locking, customize `create-lockfiles' to nil.
1772
1773+++
1774** New Core Text based font backend for Mac OS X 10.5 and newer.
1775To use the old font backend, use the following on the command line:
1776 % defaults write org.gnu.Emacs FontBackend ns
1777GNUstep and Mac OS X 10.4 use the old font backend.
1778
1779---
1780** Improved fullscreen support on Mac OS X 10.7 and newer, where the
1781default fullscreen method is now "native" fullscreen. To use the
1782old style fullscreen, customize `ns-use-native-fullscreen' to nil.
1783
1784---
1785** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so
1786by default. Customize `ns-use-srgb-colorspace' to go back to the old method.
1787Note that this does not apply to images.
1788
1789 1490
1790* Installation Changes in Emacs 24.3 1491* Installation Changes in Emacs 24.3
1791 1492
diff --git a/src/ChangeLog b/src/ChangeLog
index 6733cf176ca..0e2af2d766e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12014-06-11 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
4 matching overlay strings with 'cursor' property against buffer
5 positions traversed in the glyph row. (Bug#17744)
6
12014-06-11 Jan Djärv <jan.h.d@swipnet.se> 72014-06-11 Jan Djärv <jan.h.d@swipnet.se>
2 8
3 * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst 9 * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
diff --git a/src/xdisp.c b/src/xdisp.c
index c592e0c3116..54a8c8beb8f 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14413,7 +14413,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
14413 pos_after, 0); 14413 pos_after, 0);
14414 14414
14415 if (prop_pos >= pos_before) 14415 if (prop_pos >= pos_before)
14416 bpos_max = prop_pos - 1; 14416 bpos_max = prop_pos;
14417 } 14417 }
14418 if (INTEGERP (chprop)) 14418 if (INTEGERP (chprop))
14419 { 14419 {
@@ -14487,7 +14487,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
14487 pos_after, 0); 14487 pos_after, 0);
14488 14488
14489 if (prop_pos >= pos_before) 14489 if (prop_pos >= pos_before)
14490 bpos_max = prop_pos - 1; 14490 bpos_max = prop_pos;
14491 } 14491 }
14492 if (INTEGERP (chprop)) 14492 if (INTEGERP (chprop))
14493 { 14493 {
@@ -14517,7 +14517,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
14517 GLYPH_BEFORE and GLYPH_AFTER. */ 14517 GLYPH_BEFORE and GLYPH_AFTER. */
14518 if (!((row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end) 14518 if (!((row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end)
14519 && BUFFERP (glyph->object) && glyph->charpos == pt_old) 14519 && BUFFERP (glyph->object) && glyph->charpos == pt_old)
14520 && !(bpos_max < pt_old && pt_old <= bpos_covered)) 14520 && !(bpos_max <= pt_old && pt_old <= bpos_covered))
14521 { 14521 {
14522 /* An empty line has a single glyph whose OBJECT is zero and 14522 /* An empty line has a single glyph whose OBJECT is zero and
14523 whose CHARPOS is the position of a newline on that line. 14523 whose CHARPOS is the position of a newline on that line.