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