diff options
| -rw-r--r-- | doc/misc/ChangeLog | 4 | ||||
| -rw-r--r-- | doc/misc/Makefile.in | 2 | ||||
| -rw-r--r-- | etc/NEWS | 1051 | ||||
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 6 |
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 @@ | |||
| 1 | 2014-06-11 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (INFO_INSTALL): Update for 2013-08-28 DOCMISC_W32 change. | ||
| 4 | |||
| 1 | 2014-06-10 Glenn Morris <rgm@gnu.org> | 5 | 2014-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. |
| 75 | INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_INFO_W32) | 75 | INFO_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, |
| @@ -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. | ||
| 174 | This happens by default if a suitable support library is found at | 173 | This happens by default if a suitable support library is found at |
| 175 | build time, like libacl on GNU/Linux. To prevent this, use the | 174 | build time, like libacl on GNU/Linux. To prevent this, use the |
| 176 | configure option `--disable-acl'. See below for related features. | 175 | configure 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. |
| 180 | This happens by default if a suitable system library is found at | 178 | This happens by default if a suitable system library is found at |
| 181 | build time. To prevent this, use the configure option | 179 | build 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. |
| 183 | This feature is not available for the Nextstep port. | 181 | This 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. |
| 187 | This happens by default if zlib is present, which it normally is. | 184 | This happens by default if zlib is present, which it normally is. |
| 188 | To prevent this, use the configure option `--without-zlib'. | 185 | To prevent this, use the configure option `--without-zlib'. |
| 189 | This provides the function `zlib-decompress-region'; see below for details. | 186 | This 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, |
| 193 | and renamed to `--without-compress-install'. It now prevents compression | 189 | and renamed to `--without-compress-install'. It now prevents compression |
| 194 | of _any_ files during installation. | 190 | of _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. |
| 198 | It is no longer needed, as the crt*.o files are no longer linked specially. | 193 | It 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 |
| 202 | no longer created during installation. | 196 | no 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. | ||
| 206 | This requires pkg-config to be available at build time. | 199 | This 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 |
| 213 | environment variable (either leading, e.g., ":/foo"; trailing, e.g., | 205 | environment 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 | |||
| 218 | including the defaults). (In older versions of Emacs, an empty element | 210 | including the defaults). (In older versions of Emacs, an empty element |
| 219 | was replaced by ".", so use an explicit "." now if that is what you want.) | 211 | was 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, |
| 223 | will instead append, if the argument begins with `:' (or `;' on MS Windows; | 214 | will instead append, if the argument begins with `:' (or `;' on MS Windows; |
| 224 | i.e., `path-separator'). | 215 | i.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 |
| 228 | Emacs executable, any changes to `load-path' that these files make | 218 | Emacs executable, any changes to `load-path' that these files make |
| 229 | will no longer be present after dumping. To affect a permanent change | 219 | will no longer be present after dumping. To affect a permanent change |
| 230 | to `load-path', use the `--enable-locallisppath' option of `configure'. | 220 | to `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 |
| 234 | to set up the initial buffer. | 223 | to 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 | 229 | This requires a suitable support library to be found at build time. |
| 241 | zlib-format compressed data using built-in zlib support, if available. | 230 | On GNU/Linux, the POSIX ACL interface is used via libacl. |
| 231 | On MS-Windows, the NT Security APIs are used to emulate the POSIX interface. | ||
| 232 | ACLs 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 | ||
| 245 | should reject SSL/TLS certificates that GnuTLS determines as invalid. | ||
| 246 | (This option defaults to nil at present, but this is expected to change | ||
| 247 | in 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. | ||
| 251 | If the terminal supports a mouse, clicking on the menu bar, or on | 239 | If the terminal supports a mouse, clicking on the menu bar, or on |
| 252 | sensitive portions of the mode line or header line, will drop down the | 240 | sensitive portions of the mode line or header line, will drop down the |
| 253 | menu defined at that position. Likewise, clicking C-mouse-2 or | 241 | menu defined at that position. Likewise, clicking C-mouse-1, C-mouse-2, or |
| 254 | C-mouse-2 or C-mouse-3 on the text area will pop up the menus defined | 242 | C-mouse-3 on the text area will pop up the menus defined for those locations. |
| 255 | for those locations. | ||
| 256 | 243 | ||
| 257 | If the text terminal does not support a mouse, you can activate the | 244 | If the text terminal does not support a mouse, you can activate the |
| 258 | first menu-bar menu by typing F10, which invokes `menu-bar-open'. | 245 | first menu-bar menu by typing F10, which invokes `menu-bar-open'. |
| 259 | 246 | ||
| 260 | If you want the previous behavior, whereby F10 invoked `tmm-menubar', | 247 | If you want the previous behavior, where F10 invoked `tmm-menubar', |
| 261 | customize the option `tty-menu-open-use-tmm' to a non-nil value. | 248 | customize 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' |
| 263 | is nil.) | 250 | is 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', | 253 | the file to load. If this is non-nil, then when both .el and .elc |
| 267 | a new major mode, with read-only status. Any code that might create | 254 | versions of a file exist, and the caller did not explicitly specify |
| 268 | the *Messages* buffer should call the function `messages-buffer' to do | 255 | which one to load, then the newer file is loaded. The default, nil, |
| 269 | so and set up the mode. | 256 | means to always load the .elc file. |
| 270 | |||
| 271 | +++ | ||
| 272 | ** Emacs can now support ACLs (access control lists). | ||
| 273 | This requires a suitable support library to be found at build time. | ||
| 274 | On GNU/Linux, the POSIX ACL interface is used via libacl. | ||
| 275 | On 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 | ||
| 281 | entries 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 |
| 288 | each physical monitor on multi-monitor setups. | 262 | each 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 |
| 292 | behave consistently among the platforms: they return the pixel width | 265 | behave consistently among the platforms: they return the pixel width |
| 293 | or height for all physical monitors associated with the given display | 266 | or 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. | 273 | zlib-format compressed data using built-in zlib support (if available). |
| 274 | |||
| 275 | ** The *Messages* buffer is created in `messages-buffer-mode', | ||
| 276 | a new major mode, with read-only status. Any code that might create | ||
| 277 | the *Messages* buffer should call the function `messages-buffer' to do | ||
| 278 | so and set up the mode. | ||
| 279 | |||
| 280 | ** The cursor stops blinking after 10 blinks (by default) on X and Nextstep. | ||
| 301 | You can change the default by customizing `blink-cursor-blinks'. | 281 | You 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. |
| 305 | This affects View mode, etc. | 284 | This 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. |
| 309 | Instead it defaults to a function that does what the nil value used to. | 287 | Instead 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' |
| 316 | shows all variables. When called with a universal prefix argument, | 293 | shows all variables. When called with a universal prefix argument, |
| 317 | the two commands swap their behaviors. When `apropos-do-all' is | 294 | the two commands swap their behaviors. When `apropos-do-all' is |
| 318 | non-nil, they output the same results. | 295 | non-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. |
| 325 | Running it on constructors will show a full description of the | 300 | Running it on constructors will show a full description of the |
| 326 | generated class. For generic functions, it will show all | 301 | generated 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 |
| 329 | removed. | 304 | removed. |
| 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. |
| 333 | Use `C-h C-\' (`describe-input-method') instead. | 307 | Use `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 |
| 342 | attribute (via the property-list argument) in order to help | 314 | attribute (via the property-list argument) in order to help |
| 343 | ImageMagick detect the image type. The value should be a MIME | 315 | ImageMagick 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 | ||
| 350 | takes additional arguments for specifying a reference point, wrapping | ||
| 351 | selection around frame borders, and specifying ways to select the | ||
| 352 | minibuffer window. | ||
| 353 | |||
| 354 | +++ | ||
| 355 | *** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', | 320 | *** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', |
| 356 | bound to <f11> and M-<f10>, respectively. | 321 | bound 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'. |
| 360 | These are normal hooks run when an Emacs frame gains or loses input focus. | 324 | These 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 |
| 327 | for specifying a reference point, wrapping the selection around frame | ||
| 328 | borders, 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 |
| 364 | text rows or columns. When maximizing a frame or making it fullscreen, | 331 | text rows or columns. When maximizing a frame or making it fullscreen, |
| 365 | remaining extra pixels are no longer given to the minibuffer, the rightmost | 332 | remaining 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' | |||
| 368 | is non-nil, all frame size changes happen pixelwise and set the | 335 | is non-nil, all frame size changes happen pixelwise and set the |
| 369 | corresponding size hints for the window manager. | 336 | corresponding 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. |
| 373 | Mouse-dragging a mode line or window divider now changes the size of | 339 | Mouse-dragging a mode line or window divider now changes the size of |
| 374 | adjacent windows pixelwise. If the new option `window-resize-pixelwise' | 340 | adjacent windows pixelwise. If the new option `window-resize-pixelwise' |
| @@ -377,12 +343,10 @@ resize windows pixelwise. Most functions for changing or accessing | |||
| 377 | window sizes now have an additional argument that allows changes to apply, | 343 | window sizes now have an additional argument that allows changes to apply, |
| 378 | or values to be returned, in pixels instead of lines/columns. | 344 | or 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 |
| 382 | count partially visible lines or columns if called with a nil PIXELWISE | 347 | count partially visible lines or columns if called with a nil PIXELWISE |
| 383 | argument. | 348 | argument. |
| 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 |
| 387 | dividers between side-by-side/vertically stacked windows customize the | 351 | dividers between side-by-side/vertically stacked windows customize the |
| 388 | frame parameters `right-divider-width' and `bottom-divider-width' to | 352 | frame parameters `right-divider-width' and `bottom-divider-width' to |
| @@ -393,83 +357,67 @@ the appearance of dividers by customizing the faces `window-divider', | |||
| 393 | two are useful to provide a 3D effect, or to better distinguish dividers | 357 | two are useful to provide a 3D effect, or to better distinguish dividers |
| 394 | from surrounding display objects. | 358 | from 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', |
| 398 | components, 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 |
| 404 | text of a window's buffer in pixels. This allows functions like | 366 | text 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 |
| 406 | window to its buffer as it will be displayed. | 368 | window 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. |
| 410 | This behavior is controlled by the new option | 371 | This 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 |
| 416 | options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' | 376 | options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' |
| 417 | control the size of the frame and its position on screen. | 377 | control 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 | 380 | windows and frames. The new option `temp-buffer-max-width' allows you to |
| 421 | and frames. `temp-buffer-resize-mode' is now able to adjust the height | 381 | control the width of temporary buffer windows. Moreover, if the new |
| 422 | and the width of a window displaying a temporary buffer. The new option | 382 | option `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 | 383 | root window of a frame, Temp Buffer Resize Mode will try to adjust the |
| 424 | windows. Moreover, if the new option `fit-frame-to-buffer' is non-nil | 384 | width and/or height of the frame. |
| 425 | and the buffer appears in the root window of a frame, Temp Buffer Resize | ||
| 426 | Mode 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. |
| 430 | As a command, it was a special case of `C-x 2' (`split-window-below'), | 387 | As a command, it was a special case of `C-x 2' (`split-window-below'), |
| 431 | and as such superfluous. After being reimplemented in Lisp, its | 388 | and as such superfluous. After being reimplemented in Lisp, its |
| 432 | interactive form was mistakenly retained. | 389 | interactive 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 |
| 436 | optional argument to return a rounded size value. | 392 | optional 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 | ||
| 440 | windows too. | 395 | windows too. |
| 441 | 396 | ||
| 442 | +++ | ||
| 443 | *** New option `scroll-bar-adjust-thumb-portion'. | 397 | *** New option `scroll-bar-adjust-thumb-portion'. |
| 444 | Available only on X, this option allows to control over-scrolling | 398 | Available only on X, this option allows you to control over-scrolling |
| 445 | using the scroll bar (i.e. dragging the thumb down even when the end | 399 | using the scroll bar (i.e., dragging the thumb down even when the end |
| 446 | of the buffer is visible). | 400 | of 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 | ||
| 451 | buffer. | ||
| 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 | 405 | previously showing that buffer. |
| 455 | `display-buffer' choose or make a window at the bottom of the selected | ||
| 456 | frame. | ||
| 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 | 408 | bottom of the selected frame. |
| 460 | display 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 |
| 464 | caller of `display-buffer' is ready to handle the case of not | 413 | caller of `display-buffer' is ready to handle the case of not displaying |
| 465 | displaying the buffer in a window. | 414 | the 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, |
| 470 | if there is one. | 419 | if 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'), |
| 474 | and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a | 422 | and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a |
| 475 | zero prefix argument. This disables truncation of lists in the output, | 423 | zero 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 |
| 478 | to be printed in other formats (octal, hexadecimal, and character). | 426 | to 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', |
| 489 | because it affects caching of paragraph scanning results as well. | 432 | because it affects caching of paragraph scanning results as well. |
| 490 | There is no reason to set this to nil except for debugging purposes. | 433 | There 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. | 436 | and works for git too, if you fetch the repository notes. |
| 494 | This unfinished feature was introduced by accident in Emacs 23.1; | ||
| 495 | simply 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, |
| 499 | and this variable has been marked obsolete. | 439 | and 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', | ||
| 503 | and 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 | 444 | This unfinished feature was introduced by accident in Emacs 23.1; |
| 507 | the file to load. If this is non-nil, then when both .el and .elc | 445 | simply disabling Transient Mark mode does the same thing. |
| 508 | versions of a file exist, and the caller did not explicitly specify | ||
| 509 | which one to load, then the newer file is loaded. The default, nil, | ||
| 510 | means 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. |
| 519 | Typing RET reindents the current line and indents the new line. | 453 | Typing 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, |
| 521 | additional characters are electric (eg `{'). | 455 | additional 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. |
| 528 | When invoked without a prefix argument, it now activates a transient | 460 | When invoked without a prefix argument, it now activates a transient |
| 529 | mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts | 461 | mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts |
| 530 | the text indentation in the region. Typing any other key resumes | 462 | the text indentation in the region. Typing any other key resumes |
| 531 | normal editing behavior. | 463 | normal 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 |
| 535 | the last step. Its default value is changed to nil, which means a tab | 466 | the last step. Its default value is changed to nil, which means a tab |
| 536 | stop every `tab-width' columns. | 467 | stop every `tab-width' columns. |
| 537 | 468 | ||
| 538 | +++ | ||
| 539 | ** New command `cycle-spacing' acts like a smarter `just-one-space'. | ||
| 540 | When called in succession, it cycles between spacing conventions: | ||
| 541 | one space, no spaces, original spacing. | ||
| 542 | |||
| 543 | +++ | ||
| 544 | ** The new function `fill-single-char-nobreak-p' can stop fill from breaking | ||
| 545 | a line after a one-letter word, which is an error in some typographical | ||
| 546 | conventions. 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. |
| 550 | In other words, if you visit two files that have the same base name, | 470 | In other words, if you visit two files that have the same base name, |
| 551 | then rather than creating buffers basename and basename<2>, | 471 | then rather than creating buffers basename and basename<2>, |
| 552 | Emacs uses basename<dirA> and basename<dirB>. To change this, | 472 | Emacs uses basename<dirA> and basename<dirB>. To change this, |
| 553 | customize `uniquify-buffer-name-style'. Set it to nil for the old behavior. | 473 | customize `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. |
| 557 | Most commands are still unaware of it, but kill/yank do work on the rectangle. | 476 | Most 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'. |
| 561 | If this is non-nil, cursor motion with arrow keys will follow the | 479 | If this is non-nil, cursor motion with arrow keys will follow the |
| 562 | visual order of characters on the screen: <left> always moves to the | 480 | visual order of characters on the screen: <left> always moves to the |
| 563 | left, <right> always moves to the right, disregarding the surrounding | 481 | left, <right> always moves to the right, disregarding the surrounding |
| 564 | bidirectional context. | 482 | bidirectional context. |
| 565 | 483 | ||
| 566 | ** Register changes | 484 | ** New command `delete-duplicate-lines'. |
| 485 | This searches the region for identical lines, and removes all but one | ||
| 486 | copy of each repeated line. The lines need not be sorted. | ||
| 487 | |||
| 488 | ** New command `cycle-spacing' acts like a smarter `just-one-space'. | ||
| 489 | When called in succession, it cycles between spacing conventions: | ||
| 490 | one space, no spaces, original spacing. | ||
| 491 | |||
| 492 | ** `blink-matching-paren' now only highlights the matching open-paren | ||
| 493 | by default, instead of moving the cursor. Set this variable to `jump' to | ||
| 494 | restore the old behavior. | ||
| 495 | |||
| 496 | ** The new function `fill-single-char-nobreak-p' can stop fill from breaking | ||
| 497 | a line after a one-letter word, which is an error in some typographical | ||
| 498 | conventions. 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.) |
| 570 | now display a temporary window after `register-preview-delay' seconds | 503 | now display a temporary window after `register-preview-delay' seconds |
| 571 | that summarizes existing registers. To disable this, set that option to nil. | 504 | that summarizes existing registers. To disable this, set that option to nil. |
| 572 | Interactive commands that read registers and want to make use of this | 505 | Interactive commands that read registers and want to make use of this |
| 573 | should use `register-read-with-preview' to read register names. | 506 | should 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, |
| 578 | plus enhancements like the ability to restore deleted frames. | 510 | plus 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 |
| 580 | key binding.) | 512 | key 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 |
| 584 | macros in registers. | 515 | macros in registers. |
| 585 | 516 | ||
| 586 | +++ | ||
| 587 | ** New command `delete-duplicate-lines'. | ||
| 588 | This searches the region for identical lines, and removes all but one | ||
| 589 | copy of each repeated line. The lines need not be sorted. | ||
| 590 | |||
| 591 | +++ | ||
| 592 | ** `blink-matching-paren' now only highlights the matching open-paren | ||
| 593 | by default, instead of moving cursor. Set this variable to `jump' to | ||
| 594 | enable 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>. | ||
| 601 | Affected 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 | ||
| 616 | Also 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 |
| 625 | display of local variables of the current stack frame. | 523 | display 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 |
| 629 | the lexical environment when evaluating the code in the context at point | 526 | the 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', | ||
| 645 | and `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 |
| 661 | uses January 1, 1 AD as its day number 1. Previously Calc used the | 538 | uses January 1, 1 AD as its day number 1. Previously Calc used the |
| 662 | Julian calendar for dates before September 14, 1752, and it used | 539 | Julian calendar for dates before September 14, 1752, and it used |
| 663 | December 31, 1 BC as its day number 1; the new scheme is more | 540 | December 31, 1 BC as its day number 1; the new scheme is more |
| 664 | consistent with Calendar's calendrical system and day numbering. | 541 | consistent 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', | ||
| 551 | and `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. |
| 679 | It can be set through the new :compile-command slot or the | 565 | It can be set through the new :compile-command slot or the |
| 680 | buffer-local variable `compile-command'. | 566 | buffer-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. |
| 684 | Include directories now support out-of-tree build directories and | 569 | Include directories now support out-of-tree build directories and |
| 685 | target architecture auto-detection. | 570 | target 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". | ||
| 592 | There is a fallback syntax available if you don't have cf-promises or | ||
| 593 | if 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'. |
| 707 | This executes statements while allowing for control transfer to labels. | 598 | This 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'. |
| 716 | Hence, you can now enable it independently from those modes, and from | 605 | Hence, 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. |
| 721 | You can disable `transient-mark-mode' to get the same result. | 609 | You 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". | ||
| 734 | There is a fallback syntax available if you don't have cf-promises or | ||
| 735 | if 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 |
| 744 | after `desktop-auto-save-timeout'. To disable this, customize that option | 619 | after `desktop-auto-save-timeout'. To disable this, customize that option |
| 745 | to nil (or zero). | 620 | to 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. |
| 749 | To disable this, set `desktop-restore-frames' to nil. | 623 | To disable this, set `desktop-restore-frames' to nil. |
| 750 | See also related options `desktop-restore-reuses-frames', | 624 | See 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, |
| 755 | such as file ownership or permissions, are visible in Dired buffers. | 628 | such as file ownership or permissions, are visible in Dired buffers. |
| 756 | See the new options `dired-hide-details-hide-symlink-targets' and | 629 | See 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) |
| 762 | The results display in the mode line. | 634 | The 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. |
| 768 | If non-nil, pairing/skipping only kicks in when that help the balance | 639 | If non-nil, pairing/skipping only kicks in when that help the balance |
| 769 | of parentheses and quotes, i.e. the buffer should end up at least as | 640 | of parentheses and quotes; i.e., the buffer should end up at least as |
| 770 | balanced as before. | 641 | balanced as before. |
| 771 | 642 | ||
| 772 | You can further control this behavior by adjusting the predicates | 643 | You can further control this behavior by adjusting the predicates |
| 773 | stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. | 644 | stored 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. |
| 777 | In `electric-pair-mode', the commands `backward-delete-char' and | 647 | In `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 |
| 779 | that delete the closer when invoked between adjacent pairs. | 649 | that 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. |
| 783 | In `electric-pair-mode', inserting a newline between adjacent pairs | 652 | In `electric-pair-mode', inserting a newline between adjacent pairs |
| 784 | opens an extra newline after point, which is indented if | 653 | opens 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. |
| 789 | This controls if skipping over closing delimiters should jump over any | 657 | This controls if skipping over closing delimiters should jump over any |
| 790 | whitespace slack. Setting it to `chomp' makes it delete this | 658 | whitespace slack. Setting it to `chomp' makes it delete this |
| 791 | whitespace. See also the variable `electric-pair-skip-whitespace-chars'. | 659 | whitespace. 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. |
| 795 | You can customize `electric-pair-text-pairs' and | 662 | You 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 |
| 797 | strings and comments. | 664 | strings and comments. |
| 798 | 665 | ||
| 799 | +++ | ||
| 800 | ** New EPA option `epa-mail-aliases'. | 666 | ** New EPA option `epa-mail-aliases'. |
| 801 | You can set this to a list of email address aliases that `epa-mail-encrypt' | 667 | You can set this to a list of email address aliases that `epa-mail-encrypt' |
| 802 | should use to find keys. | 668 | should 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'. |
| 806 | If set to a number, this can be used to avoid accidentally pasting large | 671 | If set to a number, this can be used to avoid accidentally pasting large |
| 807 | amounts of data into the ERC input. | 672 | amounts 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. |
| 811 | See 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. |
| 817 | Eshell has been able to handle "visual" commands (interactive, | 679 | Eshell has been able to handle "visual" commands (interactive, |
| 818 | non-line oriented commands such as top that require display | 680 | non-line oriented commands such as top that require display |
| @@ -822,121 +684,100 @@ terminal emulator. See `eshell-visual-commands'. | |||
| 822 | This feature has been extended to subcommands and options that make a | 684 | This feature has been extended to subcommands and options that make a |
| 823 | usually line-oriented command a visual command. Typical examples are | 685 | usually 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 |
| 825 | pager by default. See `eshell-visual-subcommands' and | 687 | pager 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. |
| 830 | External su and sudo commands are now the default; the internal, | 690 | External su and sudo commands are now the default; the internal, |
| 831 | Tramp-using variants can still be used by enabling the eshell-tramp | 691 | Tramp-using variants can still be used by enabling the eshell-tramp module. |
| 832 | module. | ||
| 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 | ||
| 696 | should reject SSL/TLS certificates that GnuTLS determines as invalid. | ||
| 697 | (This option defaults to nil at present, but this is expected to change | ||
| 698 | in a future release.) | ||
| 699 | |||
| 700 | ** Hi-Lock | ||
| 701 | |||
| 702 | *** New global command `M-s h .' (`highlight-symbol-at-point') highlights | ||
| 703 | the symbol near point. | ||
| 704 | |||
| 705 | *** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands | ||
| 706 | will cycle through faces in `hi-lock-face-defaults' without prompting. | ||
| 707 | |||
| 837 | ** Icomplete | 708 | ** Icomplete |
| 838 | Icomplete is now more similar to Ido. | 709 | Icomplete 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. |
| 842 | The variable `icomplete-with-completion-tables' (now a user option) | 712 | The variable `icomplete-with-completion-tables' (now a user option) |
| 843 | controls this. To restore the old behavior, set it back to | 713 | controls 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 |
| 848 | from `icomplete-minibuffer-map'. | 717 | from `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 |
| 852 | option (`icomplete-separator'). The default is " | " rather than ",". | 720 | option (`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'. |
| 868 | This means to use virtual buffers if the current ido input does not match | 732 | This means to use virtual buffers if the current ido input does not match |
| 869 | an existing buffer. | 733 | an 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, |
| 873 | which are the brackets to use around the sole remaining completion. | 736 | which 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') |
| 879 | visit the next image file and the previous image file in the same | 741 | visit the next image file and the previous image file in the same |
| 880 | directory, respectively. | 742 | directory, 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 |
| 885 | next or previous frame. `F' (`image-goto-frame') shows a specific frame. | 746 | next 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 |
| 890 | speed up and slow down the animation. `a r' (`image-reverse-speed') | 750 | speed up and slow down the animation. `a r' (`image-reverse-speed') |
| 891 | to reverse it and `a 0' (`image-reset-speed') to reset it. | 751 | to 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. |
| 895 | When toggling, it restores the frame's previous window configuration. | 754 | When toggling, it restores the frame's previous window configuration. |
| 896 | It also has an optional frame argument, which can be used by Lisp | 755 | It also has an optional frame argument, which can be used by Lisp |
| 897 | callers to fit the image to a frame other than the selected frame. | 756 | callers 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 | ||
| 903 | the symbol found near point. | ||
| 904 | |||
| 905 | +++ | ||
| 906 | *** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands | ||
| 907 | will 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 |
| 916 | entries displayed by `Info-index-next', `Info-virtual-index' and | 763 | entries 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 |
| 921 | has not been relevant for some time. | 767 | has 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. |
| 930 | If a declaration spans several lines, variables on the following lines | 774 | If a declaration spans several lines, variables on the following lines |
| 931 | are lined up to the first one. | 775 | are 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-*. |
| 957 | Obsolete aliases exist for those likely to have been used externally. | 796 | Obsolete 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. |
| 961 | Use `electric-indent-mode' instead. | 799 | Use `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. |
| 970 | Maintainers of package archives should consider signing their packages | 806 | Maintainers of package archives should consider signing their packages |
| 971 | to enhance security. | 807 | to 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, |
| 975 | Emacs tries to check package signatures at install time. | 810 | Emacs tries to check package signatures at install time. |
| 976 | The value `allow-unsigned' allows installation of unsigned packages. | 811 | The 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 |
| 980 | Emacs will not try to check signatures. | 814 | Emacs 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 |
| 984 | archives enabled, with more than one offering a package that you want. | 817 | archives 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') |
| 988 | to filter the list of packages by a keyword. | 820 | to 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 |
| 992 | keywords related to the package. Click on a button to see other packages | 823 | keywords related to the package. Click on a button to see other packages |
| 993 | related to that keyword. | 824 | related 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 |
| 997 | repositories, has changed to allow a new (fifth) element in the data | 827 | repositories, has changed to allow a new (fifth) element in the data |
| 998 | vectors, containing an associative list with extra properties. | 828 | vectors, 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 |
| 1000 | display a "Homepage" header.) | 830 | display 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, |
| 1004 | along with the non-SMIE indentation code. | 833 | along 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. |
| 1010 | You can use it as a more permanent *scratch* buffer. | 838 | You 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. |
| 1014 | To use this, add `remember-store-in-files' to the `remember-handler-functions' | 841 | To use this, add `remember-store-in-files' to the `remember-handler-functions' |
| 1015 | option. The files are saved in `remember-data-directory' using | 842 | option. 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 |
| 1022 | how Rmail displays non-MIME messages. | 848 | how 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, |
| 1026 | rather than mboxo. Customize `unrmail-mbox-format' to change this. | 851 | rather 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') |
| 1055 | starts a symbol (identifier) incremental search forward with the | 872 | starts a symbol (identifier) incremental search forward with the |
| 1056 | symbol found near point added to the search string initially. | 873 | symbol 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 |
| 1060 | and adds it to the search string. | 876 | and 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, |
| 1067 | and opens overlays with hidden text when `search-invisible' is `open'. | 881 | and 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 |
| 1072 | backward, `M-s w words M-- M-%' replaces a sequence of words backward. | 885 | backward, `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. |
| 1076 | Set `isearch-allow-prefix' to nil to restore old behavior. | 888 | Set `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 |
| 1085 | of the search string if it contains leading/trailing whitespace. | 895 | of the search string if it contains leading/trailing whitespace. |
| 1086 | In an incremental word search or when using a non-nil LAX argument | 896 | In an incremental word search or when using a non-nil LAX argument |
| 1087 | of `word-search-regexp', the lax matching can also match part of | 897 | of `word-search-regexp', the lax matching can also match part of |
| 1088 | the first word (in addition to the lax matching of the last word). | 898 | the first word (in addition to the lax matching of the last word). |
| 1089 | The same rules are now applied to the symbol search with the difference | 899 | The same rules are now applied to the symbol search, with the difference |
| 1090 | that it matches symbols, and non-symbol characters between symbols. | 900 | that 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. |
| 1097 | All non-ancient Bash versions support this option. | 905 | All 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'. |
| 1111 | The command `smie-config-guess' can help you derive the appropriate | 916 | The command `smie-config-guess' can help you derive the appropriate |
| 1112 | indentation settings, if you provide it with an indented sample file. | 917 | indentation settings, if you provide it with an indented sample file. |
| 1113 | Use `smie-config-save' to save the result. | 918 | Use `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 |
| 1117 | the file's local variables of the form: `eval: (smie-config-local '(RULES))'. | 921 | the 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' | |||
| 1131 | are passed before the logon parameter, as required. The default now | 933 | are passed before the logon parameter, as required. The default now |
| 1132 | includes `-L', to limit the number of logon attempts per invocation. | 934 | includes `-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. |
| 1139 | The Todo mode user manual describes all commands and most user | 939 | The Todo mode user manual describes all commands and most user |
| 1140 | options. To support some of these features, a new file format is | 940 | options. 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 |
| 1171 | the output buffer. Unless you use a prefix argument, they output to | 970 | the 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' |
| 1176 | will prompt for a "context". This is a Lisp expression, whose value at the | 974 | will prompt for a "context". This is a Lisp expression, whose value at the |
| 1177 | time the function is entered/exited is printed along with the function's | 975 | time 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 |
| 1187 | devices by the Android Debug Bridge. The variable `tramp-adb-program' | 981 | devices by the Android Debug Bridge. The variable `tramp-adb-program' |
| 1188 | can be used to adapt the path of the "adb" program, if needed. | 982 | can 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 |
| 985 | that support POSIX ACLs. | ||
| 986 | |||
| 987 | *** Handlers for `file-notify-add-watch' and `file-notify-rm-watch' | ||
| 988 | for 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, |
| 1194 | when possible. See `tramp-use-ssh-controlmaster-options'. | 995 | when possible. See `tramp-use-ssh-controlmaster-options'. |
| 1195 | 996 | ||
| 1196 | +++ | ||
| 1197 | *** Handlers for `file-acl' and `set-file-acl' for remote machines | ||
| 1198 | which support POSIX ACLs. | ||
| 1199 | |||
| 1200 | +++ | ||
| 1201 | *** Handlers for `file-notify-add-watch' and `file-notify-rm-watch' | ||
| 1202 | for 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, |
| 1206 | and allows you to interactively remove cookies. | 998 | and 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 |
| 1212 | whole tree revisions. | 1003 | whole 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 |
| 1216 | controlled tree in a window. | 1006 | controlled 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 |
| 1220 | received with a pull operation. | 1009 | received 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 |
| 1224 | under current version control system. When called with a prefix | 1012 | under current version control system. When called with a prefix |
| 1225 | argument, you can remove a file from the ignored file list. | 1013 | argument, 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' |
| 1237 | are obsolete. Customize the `woman-*' faces instead. | 1022 | are obsolete. Customize the `woman-*' faces instead. |
| 1238 | 1023 | ||
| 1024 | ** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>. | ||
| 1025 | Affected 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 | ||
| 1040 | Also 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. |
| 1270 | It 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'. | ||
| 1274 | This overrides the default word motion commands to treat "symbol_words" | ||
| 1275 | as 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. |
| 1279 | It is layered as: | 1070 | It 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 |
| 1282 | function-carrying place, such as process-filters or `<foo>-function' hooks. | 1073 | any 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 |
| 1285 | function, much like `defadvice' does. | 1076 | function, 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 | |||
| 1290 | frame configuration), both in-session and persistently, and restore it | 1081 | frame configuration), both in-session and persistently, and restore it |
| 1291 | at some point in the future. | 1082 | at 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 |
| 1295 | notifications. It requires that Emacs be compiled with one of the | 1085 | notifications. It requires that Emacs be compiled with one of the |
| 1296 | low-level libraries gfilenotify.c, inotify.c or w32notify.c. | 1086 | low-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 | 1089 | display specified symbols as composed characters. E.g., in Emacs Lisp mode, |
| 1300 | 1090 | this 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.) | ||
| 1304 | If you need to sort arbitrary overlays into priority order, `overlays-at' | ||
| 1305 | can 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. | ||
| 1312 | The 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. | 1093 | This overrides the default word motion commands to treat "symbol_words" |
| 1319 | Some languages match those as »...«, and others as «...», so it is | 1094 | as a single word, similar to what `subword-mode' does. |
| 1320 | better 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 |
| 1328 | transparent, but files that contain unusual characters without | 1101 | transparent, but files that contain unusual characters without |
| @@ -1330,384 +1103,263 @@ specifying an explicit coding system may fail to load with obscure | |||
| 1330 | errors. You should either convert them to utf-8 or add an explicit | 1103 | errors. 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. |
| 1107 | Instead 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. | ||
| 1110 | Overlay priority can be other kinds of Lisp objects. We didn't yet | ||
| 1111 | decide whether other types of values are stable enough, and therefore | ||
| 1112 | don't feel it's right to document them. For now, don't assume in your | ||
| 1113 | code that the values of overlay priority can only be either nil or an | ||
| 1114 | integer, always test them with an appropriate predicate to be one or | ||
| 1115 | the other. If you need to sort arbitrary overlays into priority | ||
| 1116 | order, `overlays-at' can now optionally do this. | ||
| 1117 | You should still only specify integer priorities on overlays you create. | ||
| 1118 | |||
| 1119 | ** The cars of the elements in `interpreter-mode-alist' are now | ||
| 1120 | treated 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. |
| 1335 | It used to disable the minor mode, major mode, and text-property keymaps, | 1123 | It used to disable the minor mode, major mode, and text-property keymaps, |
| 1336 | whereas now it simply has higher precedence. | 1124 | whereas 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 | |
| 1340 | Instead 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. |
| 1129 | The 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. | ||
| 1134 | Some languages match those as »...«, and others as «...», so it is | ||
| 1135 | better 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. |
| 1344 | As was the case in Emacs 22 and before, the decoding of terminal | 1138 | As was the case in Emacs 22 and before, the decoding of terminal |
| 1345 | input, according to `keyboard-coding-system', is not performed in | 1139 | input, 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 |
| 1347 | done before input-decode-map, function-key-map, etc. | 1141 | done 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. | ||
| 1354 | More specifically, redisplay does not bother to check for a frame-local | ||
| 1355 | value 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. |
| 1360 | To determine if a symbol's function definition is void, use `fboundp'. | 1145 | To 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 |
| 1364 | special-forms any more. | 1148 | special-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, |
| 1368 | when lexical binding is enabled. Previously, VAR was bound to nil, | 1151 | when lexical binding is enabled. Previously, VAR was bound to nil, |
| 1369 | which often led to spurious unused-variable warnings. | 1152 | which 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. |
| 1373 | The second argument is no longer an SELinux context, instead it is an | 1155 | The second argument is no longer an SELinux context, instead it is an |
| 1374 | alist of extended attributes as returned by the new function | 1156 | alist 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 |
| 1376 | file using `set-file-extended-attributes'. | 1158 | file 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 |
| 1380 | existing destination; and it sets the file permission bits of a newly | 1161 | existing destination; and it sets the file permission bits of a newly |
| 1381 | created destination to those of the source, masked by the default file | 1162 | created destination to those of the source, masked by the default file |
| 1382 | permissions. To copy the file permission bits, pass t as the | 1163 | permissions. To copy the file permission bits, pass t as the |
| 1383 | PRESERVE-PERMISSIONS argument of `copy-file'. | 1164 | PRESERVE-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. |
| 1387 | Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous | 1167 | Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous |
| 1388 | in the presence of files with negative time stamps. | 1168 | in 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 | 1171 | More specifically, redisplay does not bother to check for a frame-local |
| 1392 | treated as regexps rather than literal strings. | 1172 | value 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 | |
| 1396 | Overlay priority can be other kinds of Lisp objects. We didn't yet | 1176 | ** The option `inhibit-local-menu-bar-menus' has been removed. |
| 1397 | decide whether other types of values are stable enough, and therefore | ||
| 1398 | don't feel it's right to document them. For now, don't assume in your | ||
| 1399 | code that the values of overlay priority can only be either nil or an | ||
| 1400 | integer, always test them with an appropriate predicate to be one or | ||
| 1401 | the 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. | 1182 | and name of global variables, constants, and functions should be separated |
| 1183 | by 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. |
| 1414 | Generic commands are interactive functions whose implementation can be | 1188 | Generic commands are interactive functions whose implementation can be |
| 1415 | selected among several alternatives, as a matter of user preference. | 1189 | selected 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'. | ||
| 1196 | This 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' |
| 1419 | on that symbol will use the associated value as a function to call | 1199 | on that symbol will use the associated value as a function to call |
| 1420 | in place of `fset'. | 1200 | in place of `fset'. |
| 1421 | 1201 | ||
| 1422 | +++ | ||
| 1423 | ** New variable `enable-dir-local-variables'. | 1202 | ** New variable `enable-dir-local-variables'. |
| 1424 | Directory-local variables are ignored if this is nil. This may be | 1203 | Directory-local variables are ignored if this is nil. This may be |
| 1425 | useful for modes that want to ignore directory-locals while still | 1204 | useful for modes that want to ignore directory-locals while still |
| 1426 | respecting file-local variables. | 1205 | respecting 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' |
| 1433 | as a function to call to provide default values. | 1208 | as 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. | ||
| 1217 | To specify that a command should only be called interactively, give it | ||
| 1218 | a non-nil `interactive-only' property. | ||
| 1219 | |||
| 1220 | ** New function `string-suffix-p'. | ||
| 1221 | |||
| 1222 | ** `split-string' now takes an optional argument TRIM. | ||
| 1223 | The value, if non-nil, is a regexp that specifies what to trim from | ||
| 1224 | the 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. |
| 1439 | The default `crm-separator' has been changed to allow surrounding spaces | 1229 | The default `crm-separator' has been changed to allow surrounding spaces |
| 1440 | around the comma. | 1230 | around the comma. |
| 1441 | 1231 | ||
| 1442 | +++ | ||
| 1443 | *** The `common-substring' argument of `display-completion-list', | ||
| 1444 | which has been documented as obsolete since Emacs 23.1, is now _really_ | ||
| 1445 | obsolete, 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 |
| 1455 | completion tables by merging their completions. | 1236 | completion 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' | 1239 | which has been documented as obsolete since Emacs 23.1, is now _really_ |
| 1459 | display specified symbols as composed characters. E.g., in Emacs Lisp mode, | 1240 | obsolete, and no longer advertised. Instead either call |
| 1460 | this 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, | ||
| 1466 | including TTYs. This includes `x-popup-menu', `x-popup-dialog', | ||
| 1467 | `message-box', `yes-or-no-p', etc. | ||
| 1468 | |||
| 1469 | The function `display-popup-menus-p' will now return non-nil for a | ||
| 1470 | display or frame whenever a mouse is supported on that display or | ||
| 1471 | frame. | ||
| 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 | ||
| 1478 | to `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'. | 1247 | This is like `undecided' but prefers UTF-8 on decoding if the text to |
| 1248 | be decoded does not contain any invalid UTF-8 sequences. On encoding, | ||
| 1249 | any 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 | 1252 | Two 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' | 1254 | text that includes null bytes and ISO-2022 escape sequences, respectively. |
| 1487 | *** `bool-vector-intersection' | 1255 | Each of these attributes can be either nil, zero, or t. If t, decoding |
| 1488 | *** `bool-vector-set-difference' | 1256 | text ignores null bytes and ISO-2022 sequences, respectively. If nil, |
| 1489 | *** `bool-vector-not' | 1257 | null bytes cause text to be decoded with no-conversion, and ISO-2022 |
| 1490 | *** `bool-vector-subsetp' | 1258 | sequences cause Emacs to assume the text is encoded in one of the ISO-2022 |
| 1491 | *** `bool-vector-count-consecutive' | 1259 | encodings, 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'. |
| 1261 | The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer | ||
| 1262 | UTF-8 encoding and decoding, whenever possible. | ||
| 1493 | 1263 | ||
| 1494 | +++ | 1264 | These 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 |
| 1266 | and 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'. | ||
| 1507 | This 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 | 1277 | rather than inheriting from it. In other words, setting a face via a |
| 1511 | *** `hash-table-keys' | 1278 | theme now behaves like setting it via Customize: you only need to |
| 1512 | *** `hash-table-values' | 1279 | specify the attributes that you want, you don't need to unset those |
| 1513 | *** `string-blank-p' | 1280 | that 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'. | 1283 | Its third arg now accepts values specifying a face spec type (defface, |
| 1537 | The few hooks that used with-wrapper-hook are replaced as follows: | 1284 | custom, 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. | 1287 | specifies foreground to use if background color is near the foreground |
| 1544 | To specify that a command should only be called interactively, give it | 1288 | color that would otherwise have been used. |
| 1545 | a 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. | 1291 | conveniently prepend/append new face properties. |
| 1549 | The value, if non-nil, is a regexp that specifies what to trim from | ||
| 1550 | the start and end of each substring. | ||
| 1551 | 1292 | ||
| 1552 | +++ | 1293 | *** New face characteristic (supports :underline (:style wave)) |
| 1553 | ** New function `string-suffix-p'. | 1294 | specifies 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. |
| 1559 | Emacs now supports notifications of filesystem changes, such as | 1299 | Emacs now supports notifications of filesystem changes, such as |
| 1560 | creation, modification, and deletion of files. This requires the | 1300 | creation, 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 |
| 1562 | MS-Windows systems, this is supported for Windows XP and newer | 1302 | MS-Windows systems, this is supported for Windows XP and newer. |
| 1563 | versions. | ||
| 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. |
| 1567 | Formerly, it was t if the file's gid would change if file were deleted | 1305 | Formerly, it was t if the file's gid would change if file were deleted |
| 1568 | and recreated. This value has been inaccurate for years on many | 1306 | and recreated. This value has been inaccurate for years on many |
| 1569 | platforms, and nobody seems to have noticed or cared. | 1307 | platforms, 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 |
| 1573 | PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional | 1310 | PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional |
| 1574 | Unix file permission bits as well as SELinux context. | 1311 | Unix 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 |
| 1578 | argument GROUP which causes it check for file group too. This can be | 1314 | argument GROUP which causes it check for file group too. This can be |
| 1579 | used in place of the 9th element of `file-attributes'. | 1315 | used 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 | 1318 | with the same interpretation as the returned value of `visited-file-modtime'. |
| 1583 | argument, 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', | ||
| 1590 | and `revert-buffer-insert-file-contents-function' are no longer nil. | ||
| 1591 | Instead 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 | ||
| 1598 | instead 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 | ||
| 1600 | expression 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 | ||
| 1605 | of 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. | ||
| 1611 | Its third arg now accepts values specifying a face spec type (defface, | ||
| 1612 | custom, or override spec), and the relevant spec is set accordingly. | ||
| 1613 | |||
| 1614 | +++ | ||
| 1615 | *** New function `add-face-text-property', which can be used to | ||
| 1616 | conveniently prepend/append new face properties. | ||
| 1617 | |||
| 1618 | --- | ||
| 1619 | *** Face specs set via Custom themes now replace the `defface' spec | ||
| 1620 | rather than inheriting from it. In other words, setting a face via a | ||
| 1621 | theme now behaves like setting it via Customize: you only need to | ||
| 1622 | specify the attributes that you want, you don't need to unset those | ||
| 1623 | that you don't want. | ||
| 1624 | |||
| 1625 | --- | ||
| 1626 | *** New face characteristic (supports :underline (:style wave)) | ||
| 1627 | specifies whether or not the terminal can display a wavy line. | ||
| 1628 | |||
| 1629 | +++ | ||
| 1630 | *** New face spec attribute :distant-foreground | ||
| 1631 | specifies foreground to use if background color is near the foreground | ||
| 1632 | color 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'. |
| 1638 | It returns non-nil for any image that contains multiple frames, | 1323 | It returns non-nil for any image that contains multiple frames, |
| 1639 | whether or not it specifies a frame delay. | 1324 | whether 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 |
| 1643 | animated images which do not specify a frame delay. | 1327 | animated 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 |
| 1647 | and setting the current frame of a multi-frame image. | 1330 | and 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. | 1335 | instead 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 | 1337 | expression 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'. | 1341 | and `revert-buffer-insert-file-contents-function' are no longer nil. |
| 1675 | This is like `undecided' but prefers UTF-8 on decoding if the text to | 1342 | Instead they default to functions that do what the nil value used to. |
| 1676 | be decoded does not contain any invalid UTF-8 sequences. On encoding, | ||
| 1677 | any 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'. | ||
| 1681 | Two new attributes, `:inhibit-null-byte-detection' and | ||
| 1682 | `:inhibit-iso-escape-detection', determine how to detect encoding of | ||
| 1683 | text that includes null bytes and ISO-2022 escape sequences, | ||
| 1684 | respectively. Each of these attributes can be either nil, zero, or | ||
| 1685 | t. If it is t, decoding text ignores null bytes and, respectively, | ||
| 1686 | ISO-2022 sequences. If it is nil, null bytes cause text to be decoded | ||
| 1687 | with no-conversion and ISO-2022 sequences cause Emacs to assume the | ||
| 1688 | text is encoded in one of the ISO-2022 encodings, such as | ||
| 1689 | iso-2022-7bit. If the value is zero, Emacs consults the variables | ||
| 1690 | inhibit-null-byte-detection and inhibit-iso-escape-detection, which | ||
| 1691 | see. | ||
| 1692 | The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer | ||
| 1693 | UTF-8 encoding and decoding, whenever possible. | ||
| 1694 | 1345 | ||
| 1695 | These 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 | 1347 | of 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'. | 1352 | including TTYs. This includes `x-popup-menu', `x-popup-dialog', |
| 1353 | `message-box', `yes-or-no-p', etc. | ||
| 1705 | 1354 | ||
| 1706 | --- | 1355 | The 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 | 1356 | display or frame whenever a mouse is supported on that display or frame. |
| 1708 | corrected (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 | ||
| 1361 | to `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. |
| 1712 | The lock for DIR/FILE is now _always_ DIR/.#FILE. | 1364 | The lock for DIR/FILE is now _always_ DIR/.#FILE. |
| 1713 | If DIR/.#FILE already exists and is not an Emacs lock file, | 1365 | If DIR/.#FILE already exists and is not an Emacs lock file, |
| @@ -1716,23 +1368,92 @@ numbered lock files DIR/.#FILE.0...). | |||
| 1716 | On file systems that do not support symbolic links, the lock is now a | 1368 | On file systems that do not support symbolic links, the lock is now a |
| 1717 | regular file with contents being what would have been in the symlink. | 1369 | regular 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' |
| 1723 | and functions should be separated by two hyphens if the symbol is not | 1383 | *** `hash-table-values' |
| 1724 | meant 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 | ||
| 1397 | corrected (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'. | ||
| 1430 | The 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. |
| 1439 | To use the old font backend, use the following on the command line: | ||
| 1440 | % defaults write org.gnu.Emacs FontBackend ns | ||
| 1441 | GNUstep 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 | ||
| 1444 | default fullscreen method is now "native" fullscreen. To use the | ||
| 1445 | old 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 | ||
| 1448 | by default. Customize `ns-use-srgb-colorspace' to go back to the old method. | ||
| 1449 | Note 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. |
| 1731 | It is now built by running the same configure script as on all other | 1452 | It is now built by running the same configure script as on all other |
| 1732 | platforms. This requires the MSYS environment and MinGW development | 1453 | platforms. This requires the MSYS environment and MinGW development |
| 1733 | tools. See the updated instructions in nt/INSTALL for details. | 1454 | tools. See the updated instructions in nt/INSTALL for details. |
| 1734 | 1455 | ||
| 1735 | Using the Posix configure script and Makefile's also means a change in | 1456 | Using the Posix configure script and Makefiles also means a change in |
| 1736 | the directory structure of the Emacs installation on Windows. It is | 1457 | the directory structure of the Emacs installation on Windows. It is |
| 1737 | now the same as on GNU and Unix systems. In particular, the auxiliary | 1458 | now the same as on GNU and Unix systems. In particular, the auxiliary |
| 1738 | programs, such as cmdproxy.exe and hexl.exe, are in | 1459 | programs, 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 | |||
| 1744 | directories and will find the files in there automatically; there's no | 1465 | directories and will find the files in there automatically; there's no |
| 1745 | need to set any variables due to this change.) | 1466 | need 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 |
| 1749 | whose names cannot be encoded in the current system codepage. | 1469 | whose 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 | |||
| 1752 | is t, Emacs uses Unicode APIs to pass file names to system calls, | 1472 | is t, Emacs uses Unicode APIs to pass file names to system calls, |
| 1753 | which lifts the limitation of file names to the current locale. | 1473 | which lifts the limitation of file names to the current locale. |
| 1754 | 1474 | ||
| 1755 | +++ | 1475 | ** Lock files now work on MS-Windows. |
| 1476 | This helps to prevent losing your edits if the same file is being | ||
| 1477 | edited in another Emacs session or by another user. See the node | ||
| 1478 | "Interlocking" in the Emacs User Manual for the details. To disable | ||
| 1479 | file 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. |
| 1757 | The backtrace is written to the 'emacs_backtrace.txt' file in the | 1482 | The backtrace is written to the 'emacs_backtrace.txt' file in the |
| 1758 | directory where Emacs was running. | 1483 | directory 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. |
| 1762 | Setting it has no effect, and %t in the mode-line format is ignored. | 1486 | Setting it has no effect, and %t in the mode-line format is ignored. |
| 1763 | Likewise, `file-name-buffer-file-type-alist' is now obsolete, and | 1487 | Likewise, `file-name-buffer-file-type-alist' is now obsolete, and |
| 1764 | modifying it has no effect. | 1488 | modifying it has no effect. |
| 1765 | 1489 | ||
| 1766 | --- | ||
| 1767 | ** Lock files now work on MS-Windows. | ||
| 1768 | This helps to prevent losing your edits if the same file is being | ||
| 1769 | edited in another Emacs session or by another user. See the node | ||
| 1770 | "Interlocking" in the Emacs User Manual for the details. To disable | ||
| 1771 | file locking, customize `create-lockfiles' to nil. | ||
| 1772 | |||
| 1773 | +++ | ||
| 1774 | ** New Core Text based font backend for Mac OS X 10.5 and newer. | ||
| 1775 | To use the old font backend, use the following on the command line: | ||
| 1776 | % defaults write org.gnu.Emacs FontBackend ns | ||
| 1777 | GNUstep 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 | ||
| 1781 | default fullscreen method is now "native" fullscreen. To use the | ||
| 1782 | old 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 | ||
| 1786 | by default. Customize `ns-use-srgb-colorspace' to go back to the old method. | ||
| 1787 | Note 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 @@ | |||
| 1 | 2014-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 | |||
| 1 | 2014-06-11 Jan Djärv <jan.h.d@swipnet.se> | 7 | 2014-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. |