* doc/misc/msdog.texi (ls in Lisp): Update for ls-lisp.el changes.
[bpt/emacs.git] / etc / NEWS
CommitLineData
29b7722a 1GNU Emacs NEWS -- history of user-visible changes.
5b87ad55 2
eb199145 3Copyright (C) 2010 Free Software Foundation, Inc.
5b87ad55 4See the end of the file for license conditions.
a933dad1 5
893db5bc 6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
9a21d88b
KS
7If possible, use M-x report-emacs-bug.
8
eb199145 9This file is about changes in Emacs version 24.
9a21d88b 10
eb199145
GM
11See files NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18,
12and NEWS.1-17 for changes in older Emacs versions.
9a21d88b
KS
13
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.
3f7194ed 16
adce950d
CY
17
18Temporary note:
19 +++ indicates that the appropriate manual has already been updated.
20 --- means no change in the manuals is called for.
21When you add a new item, please add it without either +++ or ---
22so we will look at it and add it to the manual.
23
24\f
eb199145 25* Installation Changes in Emacs 24.1
09e18d03 26
338648ad
GM
27** Configure links against libselinux if it is found.
28You can disable this by using --without-selinux.
29
30---
31** By default, the installed Info and man pages are compressed.
32You can disable this by configuring --without-compress-info.
33
aded53ff
GM
34---
35** There are new configure options:
36--with-mmdf, --with-mail-unlink, --with-mailhost.
37These provide no new functionality, they just remove the need to edit
38lib-src/Makefile by hand in order to use the associated features.
39
e547b051 40---
30c4d8dc 41** Emacs can be compiled against Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
e547b051
J
42to configure. Note that other libraries used by Emacs, RSVG and GConf,
43also depend on Gtk+. You can disable them with --without-rsvg and
44--without-gconf.
45
d9170db5
DN
46** There is a new configure option --enable-use-lisp-union-type.
47This is only useful for Emacs developers to debug certain types of bugs.
b2957ea8 48This is not a new feature; only the configure flag is new.
d9170db5 49
d064e6a6
EZ
50---
51** New translation of the Emacs Tutorial in Hebrew is available
52Type `C-u C-h t' to choose it in case your language setup doesn't
53automatically select it.
54
0bfd685e 55\f
eb199145 56* Startup Changes in Emacs 24.1
4a263588 57
198a7a97
CY
58** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte
59command line arguments no longer have any effect. (They were declared
60obsolete in Emacs 23.)
61
0bfd685e 62\f
eb199145 63* Changes in Emacs 24.1
7841339b 64
2a847524
CY
65** emacsclient changes
66
67*** New emacsclient argument --parent-id ID can be used to open a
0191e222
CY
68client frame in parent X window ID, via XEmbed. This works like the
69--parent-id argument to Emacs.
70
2a847524
CY
71*** If emacsclient shuts down as a result of Emacs signalling an
72error, its exit status is 1.
73
902a6d8d
SM
74** Completion can cycle, depending on completion-cycle-threshold.
75
2372f278
SM
76** auto-mode-case-fold is now enabled by default.
77
f4b6ba46
EZ
78+++
79** Emacs now supports display and editing of bidirectional text.
f4b6ba46
EZ
80
81See the node "Bidirectional Editing" in the Emacs Manual for some
82initial documentation.
83
84To turn this on in any given buffer, set the buffer-local variable
85`bidi-display-reordering' to a non-nil value. The default is nil.
86
87The buffer-local variable `bidi-paragraph-direction', if non-nil,
88forces each paragraph in the buffer to have its base direction
89according to the value of this variable. Possible values are
90`right-to-left' and `left-to-right'. If the value is nil (the
91default), Emacs determines the base direction of each paragraph from
92its text, as specified by the Unicode Bidirectional Algorithm.
93
d20e1419
EZ
94The function `current-bidi-paragraph-direction' returns the actual
95value of paragraph base direction at point.
96
f4b6ba46
EZ
97Reordering of bidirectional text for display in Emacs is a "Full
98bidirectionality" class implementation of the Unicode Bidirectional
99Algorithm.
100
46759717
EZ
101Note that some advanced display features, such as overlay strings and
102`display' text properties, do not yet work correctly when
103bidirectional text is reordered for display.
104
303500aa 105** GTK scroll-bars are now placed on the right by default.
52834b6b
CY
106Use `set-scroll-bar-mode' to change this.
107
20fe03ad 108** GTK tool bars can have just text, just images or images and text.
d8004abe 109Customize `tool-bar-style' to choose style. On a Gnome desktop, the default
20fe03ad
JD
110is taken from the desktop settings.
111
8b2dd508
JD
112** GTK tool bars can be placed on the left/right or top/bottom of the frame.
113The frame-parameter tool-bar-position controls this. It takes the values
1c0d77cc 114top, left, right or bottom. The Options => Show/Hide menu has entries
8b2dd508
JD
115for this.
116
8740c12d 117** ImageMagick support.
b2fa3a09
GM
118It is now possible to use the ImageMagick library to load many new
119image formats in Emacs. By default, Emacs links with the ImageMagick
120libraries if they are present at build time. To disable this, use
8ea189f7 121the configure option `--without-imagemagick'.
16a91140 122
8740c12d
GM
123The new function `imagemagick-types' returns a list of image file
124extensions that your installation of ImageMagick supports. The
125function `imagemagick-register-types' enables ImageMagick support for
b2957ea8 126these image types, minus those listed in `imagemagick-types-inhibit'.
16a91140 127
8740c12d 128See the Emacs Lisp Reference Manual for more information.
16a91140 129
3a46642b
J
130** The colors for selected text (the region face) are taken from the GTK
131theme when Emacs is built with GTK.
132
aa1859f5
J
133** Emacs uses GTK tooltips by default if built with GTK. You can turn that
134off by customizing x-gtk-use-system-tooltips.
135
1ecb2d3f 136** Lucid menus and dialogs can display antialiased fonts if Emacs is built
a6ac7fc4
JD
137with Xft. To change font, use X resource faceName, for example:
138Emacs.pane.menubar.faceName: Courier-12
139Set faceName to none and use font to use the old X fonts.
99852628 140
917794d5
CY
141** On graphical displays, the mode-line no longer ends in dashes.
142
b7d65a5f
GM
143** Basic SELinux support has been added.
144This requires Emacs to be linked with libselinux at build time.
145
d8004abe
GM
146*** Emacs preserves the SELinux file context when backing up, and
147optionally when copying files. To this end, copy-file has an extra
148optional argument, and backup-buffer and friends include the SELinux
149context in their return values.
b7d65a5f
GM
150
151*** The new functions file-selinux-context and set-file-selinux-context
152get and set the SELinux context of a file.
153
a5bee597
MA
154*** Tramp offers handlers for file-selinux-context and set-file-selinux-context
155for remote machines which support SELinux.
156
9c524fcb 157** The function kill-emacs is now run upon receipt of the signals SIGTERM
383ebd15 158and SIGHUP, and upon SIGINT in batch mode.
9c524fcb
GM
159
160** kill-emacs-hook is now also run in batch mode.
161
79ce172a 162** New scrolling commands `scroll-up-command' and `scroll-down-command'
7b05466f
JL
163(bound to C-v/[next] and M-v/[prior]) does not signal errors at top/bottom
164of buffer at first key-press (instead moves to top/bottom of buffer)
165when a new variable `scroll-error-top-bottom' is non-nil.
79ce172a 166
5a97d2da
JL
167** New scrolling commands `scroll-up-line' and `scroll-down-line'
168scroll a line instead of full screen.
169
a4b000fb 170** New property `scroll-command' should be set on a command's symbol to
b2957ea8 171define it as a scroll command affected by `scroll-preserve-screen-position'.
9013a7f8 172
f1a5d776
CY
173** Trash changes
174
175*** `delete-by-moving-to-trash' now only affects commands that specify
176trashing. This avoids inadvertently trashing temporary files.
177
178*** Calling `delete-file' or `delete-directory' with a prefix argument
179now forces true deletion, regardless of `delete-by-moving-to-trash'.
180
f0bf7c8e
JL
181** New option `list-colors-sort' defines the color sort order
182for `list-colors-display'.
183
44198b6e
CY
184** An Emacs Lisp package manager is now included.
185This is a convenient way to download and install additional packages,
42d9cffa 186from a package repository at elpa.gnu.org.
cb6c4991
CY
187
188*** `M-x list-packages' shows a list of packages, which can be
189selected for installation.
190
191*** New command `describe-package', bound to `C-h P'.
44198b6e
CY
192
193*** By default, all installed packages are loaded and activated
194automatically when Emacs starts up. To disable this, set
195`package-enable-at-startup' to nil. To change which packages are
196loaded, customize `package-load-list'.
197
f065864f
CY
198** Custom Themes
199
200*** `M-x customize-themes' lists Custom themes which can be enabled.
201
782b5e8d
CY
202*** New option `custom-theme-load-path' is the load path for themes.
203Emacs no longer looks for custom themes in `load-path'. The default
204is to search in `custom-theme-directory', followed by a built-in theme
205directory named "themes/" in `data-directory'.
206
4ddf410a
MA
207** The user option `remote-file-name-inhibit-cache' controls whether
208the remote file-name cache is used for read access.
209
17284e30
GM
210** The standalone programs lib-src/digest-doc and sorted-doc have been
211replaced with Lisp commands `doc-file-to-man' and `doc-file-to-info'.
212
0bfd685e 213\f
eb199145 214* Editing Changes in Emacs 24.1
b350bdf2 215
a982c7ec
CY
216** completion-at-point is now an alias for complete-symbol.
217
b9229673
CY
218** Deletion changes
219
220*** New option `delete-active-region'.
221If non-nil, C-d, [delete], and DEL delete the region if it is active
222and no prefix argument is given. If set to `kill', these commands
223kill instead.
224
225*** New command `delete-forward-char', bound to C-d and [delete].
42d9cffa
CY
226This is meant for interactive use, and obeys `delete-active-region'.
227The command `delete-char' does not obey `delete-active-region'.
b9229673
CY
228
229*** `delete-backward-char' is now a Lisp function.
230Apart from obeying `delete-active-region', its behavior is unchanged.
231However, the byte compiler now warns if it is called from Lisp; you
232should use delete-char with a negative argument instead.
233
234*** The option `mouse-region-delete-keys' has been deleted.
235
f9d71b42
CY
236** Selection changes.
237
7c23dd44 238The default handling of clipboard and primary selections has been
42d9cffa
CY
239changed to conform with other X applications. The exact changes are
240described below; in short, mouse commands to select and paste text now
241use the primary selection, while all other commands for killing and
242yanking text now use the clipboard.
7c23dd44 243
42d9cffa
CY
244*** Merely selecting text (e.g. with drag-mouse-1) does not add it to
245the kill-ring. On systems with a primary selection separate from the
246clipboard (such as X), the selected text is put in the primary
247selection.
248
249*** mouse-2 is now bound to `mouse-yank-primary', which pastes from
250the primary selection regardless of the contents of the kill-ring.
251
252*** Commands that kill text or copy it to the kill-ring (M-w, C-w,
253C-k, etc.) also put the killed text into the clipboard. This change
254also means that the "Copy", "Cut", and "Paste" items in the "Edit"
255menu are now exactly equivalent to, respectively M-w, C-w, and C-y.
256
257*** Yank commands, such as C-y and M-y, retrieve text from the
258clipboard if it is available.
259
260*** The above changes are reflected in the following new defaults:
261
262**** `select-active-regions' now defaults to t.
d1b08c88 263It also accepts a new value, `only', which means to only set the
7c23dd44
CY
264primary selection for temporarily active regions (usually made by
265mouse-dragging or shift-selection).
266
42d9cffa 267**** `mouse-2' is now bound to `mouse-yank-primary'.
7c9b11be 268Previously, it was bound to `mouse-yank-at-click' (which is now
4c0f50c9 269unbound by default).
f9d71b42 270
42d9cffa
CY
271**** `x-select-enable-clipboard' now defaults to t on all platforms.
272Note that this variable was already non-nil by default on MS-Windows,
273which does not support the primary selection between applications.
f9d71b42 274
42d9cffa 275**** `x-select-enable-primary' now defaults to nil.
7c9b11be
EZ
276This variable exists only on X; its default value was t in previous
277versions.
2490cbbc 278
42d9cffa
CY
279**** `mouse-drag-copy-region' now defaults to nil.
280
281*** To return to the previous behavior, where mouse commands use the
282clipboard, change `mouse-drag-copy-region' and (on X only)
283`x-select-enable-primary' to t. If you don't want Emacs to put the
284text into the clipboard, only to the primary selection, additionally
285set `x-select-enable-clipboard' to nil.
f9d71b42 286
084e6df3
JD
287*** Support for X cut buffers has been removed.
288
9bae34bf 289\f
eb199145 290* Changes in Specialized Modes and Packages in Emacs 24.1
efeb796b 291
b879a6e2
SM
292** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
293
360ac530 294** FIXME: xdg-open for browse-url and reportbug, 2010/08.
0ac3effe 295
b3671a51
JL
296** Archive Mode has basic support to browse 7z archives.
297
8a8d54cd
VD
298** ERC changes
299
300*** New vars `erc-autojoin-timing' and `erc-autojoin-delay'.
301If the value of `erc-autojoin-timing' is 'ident, ERC autojoins after a
302successful NickServ identification, or after `erc-autojoin-delay'
303seconds. The default value, 'ident, means to autojoin immediately
304after connecting.
305
5c0c0f77
LMI
306*** New variable `erc-coding-system-precedence': If we use `undecided'
307as the server coding system, this variable will then be consulted.
308The default is to decode strings that can be decoded as utf-8 as
309utf-8, and do the normal `undecided' decoding for the rest.
310
27d3cd56
CY
311** In ido-mode, C-v is no longer bound to ido-toggle-vc.
312The reason is that this interferes with cua-mode.
313
c1e25821 314** partial-completion-mode is now obsolete.
79ccd68f
SM
315You can get a comparable behavior with:
316(setq completion-styles '(partial-completion initials))
317(setq completion-pcm-complete-word-inserts-delimiters t)
c1e25821 318
18c812bd 319** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
b2957ea8 320
1d83b0e9
GM
321** server can listen on a specific port using the server-port option.
322
cf16af42
GM
323** Calendar, Diary, and Appt
324
325---
326*** The obsolete (since Emacs 22.1) method of enabling the appt package
327by adding appt-make-list to diary-hook has been removed. Use appt-activate.
328
329---
330*** Some appt variables (obsolete since Emacs 22.1) have been removed:
331appt-issue-message (use the function appt-activate)
332appt-visible/appt-msg-window (use the variable appt-display-format)
333
334---
335*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
336view-diary-entries, list-diary-entries, show-all-diary-entries
337
52834b6b
CY
338** Customize
339
340*** Customize buffers now contain a search field.
341The search is performed using `customize-apropos'.
42d9cffa 342To turn off the search field, set custom-search-field to nil.
52834b6b
CY
343
344*** Custom options now start out hidden if at their default values.
345Use the arrow to the left of the option name to toggle visibility.
346
347*** custom-buffer-sort-alphabetically now defaults to t.
348
349*** The color widget now has a "Choose" button, which allows you to
350choose a color via list-colors-display.
351
f5d6548a
JL
352** Dired-x
353
354*** dired-jump and dired-jump-other-window called with a prefix argument
355read a file name from the minibuffer instead of using buffer-file-name.
356
8117868f
DN
357** Directory local variables can apply to file-less buffers.
358For example, adding "(diff-mode . ((mode . whitespace)))" to your
d8004abe 359.dir-locals.el file, will turn on `whitespace-mode' for *vc-diff* buffers.
8117868f 360
7492acc9
MM
361** SQL Mode enhancements.
362
30c4d8dc
MM
363*** Several variables have been marked as safe local variables. The
364variables `sql-product', `sql-user', `sql-server', `sql-database' and
365`sql-port' can now be safely used as local variables.
7492acc9 366
9250002f
MM
367*** `sql-dialect' is a synonym for `sql-product'.
368
74790210 369*** Added ability to login with a port on MySQL and Postgres.
7492acc9 370The custom variable `sql-port' can be specified for connection to
74790210
MM
371MySQL or Postgres servers. By default, the port is not listed in
372either login parameter, but will be added to the command line if set
373to a non-zero value.
7492acc9 374
9250002f
MM
375*** Dynamic selection of product in an SQL interactive session.
376If you use `sql-product-interactive' to start an SQL interactive
377session it uses the current value of `sql-product'. Preceding the
378invocation with C-u will force it to ask for the product before
379creating the session.
380
381*** Renaming a SQL interactive buffer when it is created.
382Prefixing the SQL interactive commands (`sql-sqlite', `sql-postgres',
383`sql-mysql', etc.) with C-u will force a new interactive session to be
384started and will prompt for the new name. This will reduce the need
385for `sql-rename-buffer' is most common use cases.
386
3bd2cfef
MM
387*** Command continuation prompts in SQL interactive mode are suppressed.
388Multiple line commands in SQL interactive mode, generate command
389continuation prompts which needlessly confuse the output. These
390prompts are now filtered out from the output. This change impacts
391multiple line SQL statements entered with C-j between each line,
392statements yanked into the buffer and statements sent with
393`sql-send-*' functions.
394
7492acc9
MM
395*** Custom variables control prompting for login parameters.
396Each supported product has a custom variable `sql-*-login-params'
397which is a list of the parameters to be prompted for before a
398connection is established.
399
74790210
MM
400The lists consist of the following five tokens: `user', `password',
401`database', `server', and `port'. The order in which they appear is
402the order in which they are prompted. The tokens symbols can be
403replaced by a sublist starting with the token and followed by a plist
404which control the prompting for values. The tokens `user',
405`database', and `server' each can take a property of :default which
406specifies the value to be used if no value is entered. The
407`database', `server', and `port' tokens handle the :completion
408property which restricts the entry to either one of the values in the
409list or to one of the values returned by the function provided as the
410property value. The `database' and `server' tokens also accept the
411:file property whose value is a regexp to identify useful file names.
412
413 (user :default DEF)
414 (database :default DEF
415 :file FILEPAT
416 :completion COMPLETE)
417 (server :default DEF
418 :file FILEPAT
419 :completion COMPLETE)
420
421The FILEPAT when :file is specified is a regexp that will match valid
422file names (without the directory portion). Generally these strings
423will be of the form ".+\.SUF" where SUF is the desired file suffix.
424
425When :completion is specified, the COMPLETE corresponds to the
426PREDICATE argument to the `completing-read' function (a list of
427possible values or a function returning such a list).
5474c40f 428
30c4d8dc
MM
429*** Added `sql-connection-alist' to record login parameter values.
430An alist for recording different username, database and server
431values. If there are multiple databases that you connect to the
432parameters needed can be stored in this alist.
433
434For example, the following might be set in the user's init.el:
435
436 (setq sql-connection-alist
437 '((dev (sql-product 'sqlite)
438 (sql-database "/home/mmaug/dev.db"))
439 (prd (sql-product 'oracle)
440 (sql-user "mmaug")
441 (sql-database "iprd2a"))))
442
443This defines two connections named "dev" and "prd".
444
445*** Added `sql-connect' to use predefined connections.
446Sets the login parameters based on the values in the
447`sql-connection-alist' and start a SQL interactive session. Any
448values specified in the connection will not be prompted for.
449
450In the example above, if the user were to invoke M-x sql-connect, they
451would be prompted for the connection. The user can respond with
452either "dev" or "prd". The "dev" connection would connect to the
453SQLite database without prompting; the "prd" connection would prompt
454for the users password and then connect to the Oracle database.
455
d26b0ea9 456**** Added SQL->Start... submenu when connections are defined.
b2957ea8 457When connections have been defined, there is a submenu available that
d26b0ea9
MM
458allows the user to select one to start a SQLi session. The "Start
459SQLi Session" item moves to the "Start..." submenu when cnnections
460have been defined.
461
462**** Added "Save Connection" menu item in SQLi buffers.
463When a SQLi session is not started by a connection then
464`sql-save-connection' will gather the login params specified for the
465session and save them as a new connection.
466
74790210
MM
467*** List database objects and details.
468Once a SQL interactive session has been started, you can get a list of
469the objects in the database and see details of those objects. The
470objects shown and the details available are product specific.
471
472**** List all objects.
473Using `M-x sql-list-all', `C-c C-l a' or selecting "SQL->List all
474objects" will list all the objects in the database. At a minimum it
475lists the tables and views in the database. Preceeding the command by
476universal argument may provide additional details or extend the
477listing to include other schemas objects. The list will appear in a
478separate window in view-mode.
479
480**** List Table details.
481Using `M-x sql-list-table', `C-c C-l t' or selecting "SQL->List Table
482details" will ask for the name of a database table or view and display
483the list of columns in the relation. Preceeding the comand with the
484universal argument may provide additional details about each column.
485The list will appear in a separate window in view-mode.
486
7492acc9
MM
487*** Added option `sql-send-terminator'.
488When set makes sure that each command sent with `sql-send-*' commands
489are properly terminated and submitted to the SQL processor.
490
491*** Added option `sql-oracle-scan-on'.
492When set commands sent to Oracle's SQL*Plus are scanned for strings
30c4d8dc
MM
493starting with an ampersand and the user is asked for replacement text.
494In general, the SQL*Plus option SCAN should always be set OFF under
495SQL interactive mode and this option used in its place.
7492acc9
MM
496
497*** SQL interactive mode will replace tabs with spaces.
498This prevents the comand interpretter for MySQL and Postgres from
499listing object name completions when being sent text via
500`sql-send-*' functions.
501
502*** An API for manipulating SQL product definitions has been added.
503
5e418f17
JL
504** s-region.el is now declared obsolete, superceded by shift-select-mode
505enabled by default in 23.1.
506
691cf4a0
NR
507** gdb-mi
508
509*** GDB User Interface migrated to GDB Machine Interface and now
510supports multithread non-stop debugging and debugging of several
511threads simultaneously.
512
37221432
MA
513** D-Bus
514
515*** It is possible now, to access alternative buses than the default
516system or session bus.
517
459bba37
MA
518** Tramp
519
520*** The following access methods are discontinued: "ssh1_old",
521"ssh2_old", "scp1_old", "scp2_old" and "fish".
522
eb199145
GM
523\f
524* New Modes and Packages in Emacs 24.1
d445b3f8 525
3b843809
SM
526** New global minor modes electric-pair-mode and electric-indent-mode.
527
d02c9bcd
SM
528** pcase.el provides the ML-style pattern matching macro `pcase'.
529
5ad4bef5
SM
530** smie.el is a package providing a simple generic indentation engine.
531
7725ebb7
MA
532** secrets.el is an implementation of the Secret Service API, an
533interface to password managers like GNOME Keyring or KDE Wallet. The
065f2743
MA
534Secret Service API requires D-Bus for communication. The command
535`secrets-show-secrets' offers a buffer with a visualization of the
536secrets.
7725ebb7 537
f9e78150
MA
538** notifications.el provides an implementation of the Desktop
539Notifications API. It requires D-Bus for communication.
540
eb199145
GM
541\f
542* Incompatible Lisp Changes in Emacs 24.1
6dfcbe31 543
c4d17d50
SM
544** Remove obsolete name `e' (use `float-e' instead).
545
288cf4e9
SM
546** A backquote not followed by a space is now always treated as new-style.
547
fd5c9dfa 548** Test for special mode-class was moved from view-file to view-buffer.
288cf4e9
SM
549FIXME: This only says what was changed, but not what are the
550programmer-visible consequences.
fd5c9dfa 551
3b7e1d5f
SM
552** Passing a nil argument to a minor mode function now turns the mode
553 ON unconditionally.
6431f2e6
CY
554
555** During startup, Emacs no longer adds entries for `menu-bar-lines'
556and `tool-bar-lines' to `default-frame-alist' and
557`initial-frame-alist'. With these alist entries omitted, `make-frame'
558checks the value of the variable `menu-bar-mode'/`tool-bar-mode' to
559determine whether to create a menu-bar or tool-bar, respectively.
560If the alist entries are added, they override the value of
561`menu-bar-mode'/`tool-bar-mode'.
562
fe0aa820
CY
563** Regions created by mouse dragging are now normal active regions,
564similar to the ones created by shift-selection. In previous Emacs
565versions, these regions were delineated by `mouse-drag-overlay', which
566has now been removed.
d6d8ee7a 567
4583e796
GM
568** cl.el no longer provides `cl-19'.
569
3226d6ca
GM
570** The following functions and aliases, obsolete since at least Emacs 21.1,
571have been removed:
572comint-kill-output, decompose-composite-char, outline-visible,
573internal-find-face, internal-get-face, frame-update-faces,
574frame-update-face-colors, x-frob-font-weight, x-frob-font-slant,
575x-make-font-bold, x-make-font-demibold, x-make-font-unbold
576x-make-font-italic, x-make-font-oblique, x-make-font-unitalic
577x-make-font-bold-italic, mldrag-drag-mode-line, mldrag-drag-vertical-line,
922ad43e
GM
578iswitchb-default-keybindings, char-bytes, isearch-return-char,
579make-local-hook
3226d6ca
GM
580
581** The following variables and aliases, obsolete since at least Emacs 21.1,
582have been removed:
6aecca99
GM
583checkdoc-minor-keymap, vc-header-alist, directory-sep-char,
584font-lock-defaults-alist
3226d6ca 585
7b0e3048
GM
586** The following files, obsolete since at least Emacs 21.1, have been removed:
587sc.el, x-menu.el, rnews.el, rnewspost.el
588
33658d4e
CY
589** FIXME finder-inf.el changes.
590
eb199145
GM
591\f
592* Lisp changes in Emacs 24.1
9097e8af 593
2e288d54
JB
594** `image-library-alist' is renamed to `dynamic-library-alist'.
595The variable is now used to load all kind of supported dynamic libraries,
596not just image libraries. The previous name is still available as an
597obsolete alias.
598
cf38dd42
SM
599** New variable syntax-propertize-function to set syntax-table properties.
600Replaces font-lock-syntactic-keywords which are now obsolete.
601This allows syntax-table properties to be set independently from font-lock:
602just call syntax-propertize to make sure the text is propertized.
603Together with this new variable come a new hook
604syntax-propertize-extend-region-functions, as well as two helper functions:
605syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
606as-is; and syntax-propertize-rules which provides a new way to specify
607syntactic rules.
608
a2e5caf7
SM
609** New hook post-self-insert-hook run at the end of self-insert-command.
610
7cf78aac 611+++
c5683ceb 612** Syntax tables support a new "comment style c" additionally to style b.
4e2db1fe 613** frame-local variables cannot be let-bound any more.
10dcc561 614** prog-mode is a new major-mode meant to be the parent of programming mode.
f44379e7
SM
615** define-minor-mode accepts a new keyword :variable.
616
b2957ea8 617** `delete-file' and `delete-directory' now accept optional arg TRASH.
f1a5d776
CY
618Trashing is performed if TRASH and `delete-by-moving-to-trash' are
619both non-nil. Interactively, TRASH defaults to t, unless a prefix
620argument is supplied (see Trash changes, above).
53967e09 621
8f92b8ad
SM
622** buffer-substring-filters is obsoleted by filter-buffer-substring-functions.
623
00278747
SM
624** New completion style `substring'.
625
9317e499
CY
626** `facemenu-read-color' is now an alias for `read-color'.
627The command `read-color' now requires a match for a color name or RGB
628triplet, instead of signalling an error if the user provides a invalid
629input.
630
631
00fe2df1
JL
632** Image API
633
634*** When the image type is one of listed in `image-animated-types'
1546c559 635and the number of sub-images in the image is more than one, then the
00fe2df1
JL
636new function `create-animated-image' creates an animated image where
637sub-images are displayed successively with the duration defined by
638`image-animate-max-time' and the delay between sub-images defined
639by the Graphic Control Extension of the image.
640
1546c559
JL
641*** `image-extension-data' is renamed to `image-metadata'.
642
71c17aec
LMI
643** XML and HTML parsing
644
645*** If Emacs is compiled with libxml2 support (which is the default),
4b9832a6
CY
646two new Emacs Lisp-level functions are defined:
647`xml-parse-html-string-internal' (which will parse "real world" HTML)
648and `xml-parse-string-internal' (which parses XML). Both return an
649Emacs Lisp parse tree.
650
651FIXME: These should be front-ended by xml.el.
652
cf16af42 653** FIXME GnuTLS
71c17aec 654
a6020335
MH
655** Isearch
656
657*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
658
9326ba26
CY
659** Progress reporters can now "spin".
660The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can
661now be nil, or omitted. This makes a "non-numeric" reporter. Each
662time you call `progress-reporter-update' on that progress reporter,
663with a nil or omitted VALUE argument, the reporter message is
664displayed with a "spinning bar".
665
eb199145
GM
666\f
667* Changes in Emacs 24.1 on non-free operating systems
d53a60a6 668
04779484
JB
669** New configure.bat option --enable-checking builds emacs with extra
670runtime checks.
671
e3aef5c6
CS
672** New configure.bat option --distfiles to specify files to be
673 included in binary distribution
674
675** New make target `dist' to create binary disttribution for Windows
676 platform
677
05197f40 678\f
a933dad1 679----------------------------------------------------------------------
5b87ad55 680This file is part of GNU Emacs.
a933dad1 681
ab73e885 682GNU Emacs is free software: you can redistribute it and/or modify
5b87ad55 683it under the terms of the GNU General Public License as published by
ab73e885
GM
684the Free Software Foundation, either version 3 of the License, or
685(at your option) any later version.
5b87ad55
GM
686
687GNU Emacs is distributed in the hope that it will be useful,
688but WITHOUT ANY WARRANTY; without even the implied warranty of
689MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
690GNU General Public License for more details.
a933dad1 691
5b87ad55 692You should have received a copy of the GNU General Public License
ab73e885 693along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
a933dad1 694
05197f40 695\f
a933dad1
DL
696Local variables:
697mode: outline
698paragraph-separate: "[ \f]*$"
699end: