104 |
--- |
--- |
105 |
** Building with -DENABLE_CHECKING does not automatically build with union |
** Building with -DENABLE_CHECKING does not automatically build with union |
106 |
types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. |
types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. |
107 |
|
|
108 |
|
--- |
109 |
|
** When pure storage overflows while dumping, Emacs now prints how |
110 |
|
much pure storage it will approximately need. |
111 |
|
|
112 |
* Startup Changes in Emacs 22.1 |
* Startup Changes in Emacs 22.1 |
113 |
|
|
185 |
modified buffers, it saves the abbrevs too if they have changed. It |
modified buffers, it saves the abbrevs too if they have changed. It |
186 |
can do this either silently or asking for confirmation first, |
can do this either silently or asking for confirmation first, |
187 |
according to the value of `save-abbrevs'. |
according to the value of `save-abbrevs'. |
188 |
|
|
189 |
|
* Incompatible Editing Changes in Emacs 22.1 |
190 |
|
|
191 |
|
+++ |
192 |
|
** M-g is now a prefix key. |
193 |
|
M-g g and M-g M-g run goto-line. |
194 |
|
M-g n and M-g M-n run next-error (like C-x `). |
195 |
|
M-g p and M-g M-p run previous-error. |
196 |
|
|
197 |
|
+++ |
198 |
|
** C-u M-g M-g switches to the most recent previous buffer, |
199 |
|
and goes to the specified line in that buffer. |
200 |
|
|
201 |
|
When goto-line starts to execute, if there's a number in the buffer at |
202 |
|
point then it acts as the default argument for the minibuffer. |
203 |
|
|
204 |
|
+++ |
205 |
|
** The old bindings C-M-delete and C-M-backspace have been deleted, |
206 |
|
since there are situations where one or the other will shut down |
207 |
|
the operating system or your X server. |
208 |
|
|
209 |
|
+++ |
210 |
|
** line-move-ignore-invisible now defaults to t. |
211 |
|
|
212 |
|
+++ |
213 |
|
** When the undo information of the current command gets really large |
214 |
|
(beyond the value of `undo-outer-limit'), Emacs discards it and warns |
215 |
|
you about it. |
216 |
|
|
217 |
|
+++ |
218 |
|
** `apply-macro-to-region-lines' now operates on all lines that begin |
219 |
|
in the region, rather than on all complete lines in the region. |
220 |
|
|
221 |
|
+++ |
222 |
|
** A prefix argument is no longer required to repeat a jump to a |
223 |
|
previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the |
224 |
|
mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. |
225 |
|
|
226 |
|
+++ |
227 |
|
** The info-search bindings on C-h C-f, C-h C-k and C-h C-i |
228 |
|
have been moved to C-h F, C-h K and C-h S. |
229 |
|
|
230 |
|
+++ |
231 |
|
** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. |
232 |
|
|
233 |
|
See below under "incremental search changes". |
234 |
|
|
235 |
|
--- |
236 |
|
** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. |
237 |
|
|
238 |
|
Since the default input is the current directory, this has the effect |
239 |
|
of specifying the current directory. Normally that means to visit the |
240 |
|
directory with Dired. |
241 |
|
|
242 |
|
+++ |
243 |
|
** The completion commands TAB, SPC and ? in the minibuffer apply only |
244 |
|
to the text before point. If there is text in the buffer after point, |
245 |
|
it remains unchanged. |
246 |
|
|
247 |
|
+++ |
248 |
|
** M-o now is the prefix key for setting text properties; |
249 |
|
M-o M-o requests refontification. |
250 |
|
|
251 |
|
+++ |
252 |
|
** You can now follow links by clicking Mouse-1 on the link. |
253 |
|
|
254 |
|
See below for more details. |
255 |
|
|
256 |
|
+++ |
257 |
|
** In Dired's ! command (dired-do-shell-command), `*' and `?' now |
258 |
|
control substitution of the file names only when they are surrounded |
259 |
|
by whitespace. This means you can now use them as shell wildcards |
260 |
|
too. If you want to use just plain `*' as a wildcard, type `*""'; the |
261 |
|
doublequotes make no difference in the shell, but they prevent |
262 |
|
special treatment in `dired-do-shell-command'. |
263 |
|
|
264 |
* Editing Changes in Emacs 22.1 |
* Editing Changes in Emacs 22.1 |
265 |
|
|
268 |
On 32bit machines, it is now 256M (i.e. 268435455). |
On 32bit machines, it is now 256M (i.e. 268435455). |
269 |
|
|
270 |
+++ |
+++ |
|
** The mode line position information now comes before the major mode. |
|
|
When the file is maintained under version control, that information |
|
|
appears between the position information and the major mode. |
|
|
|
|
|
+++ |
|
271 |
** M-g is now a prefix key. |
** M-g is now a prefix key. |
272 |
M-g g and M-g M-g run goto-line. |
M-g g and M-g M-g run goto-line. |
273 |
M-g n and M-g M-n run next-error (like C-x `). |
M-g n and M-g M-n run next-error (like C-x `). |
274 |
M-g p and M-g M-p run previous-error. |
M-g p and M-g M-p run previous-error. |
275 |
|
|
276 |
+++ |
+++ |
277 |
** M-o now is the prefix key for setting text properties; |
** C-u M-g M-g switches to the most recent previous buffer, |
|
M-o M-o requests refontification. |
|
|
|
|
|
+++ |
|
|
** C-u M-x goto-line now switches to the most recent previous buffer, |
|
278 |
and goes to the specified line in that buffer. |
and goes to the specified line in that buffer. |
279 |
|
|
280 |
When goto-line starts to execute, if there's a number in the buffer at |
When goto-line starts to execute, if there's a number in the buffer at |
281 |
point then it acts as the default argument for the minibuffer. |
point then it acts as the default argument for the minibuffer. |
282 |
|
|
283 |
+++ |
+++ |
|
** You can now switch buffers in a cyclic order with C-x C-left and |
|
|
(prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right |
|
|
can be used as well. |
|
|
|
|
|
+++ |
|
284 |
** The old bindings C-M-delete and C-M-backspace have been deleted, |
** The old bindings C-M-delete and C-M-backspace have been deleted, |
285 |
since there are situations where one or the other will shut down |
since there are situations where one or the other will shut down |
286 |
the operating system or your X server. |
the operating system or your X server. |
287 |
|
|
288 |
+++ |
+++ |
289 |
** `undo-only' does an undo which does not redo any previous undo. |
** line-move-ignore-invisible now defaults to t. |
290 |
|
|
291 |
+++ |
+++ |
292 |
** When the undo information of the current command gets really large |
** When the undo information of the current command gets really large |
294 |
you about it. |
you about it. |
295 |
|
|
296 |
+++ |
+++ |
297 |
** M-SPC (just-one-space) when given a numeric argument N |
** `apply-macro-to-region-lines' now operates on all lines that begin |
298 |
converts whitespace around point to N spaces. |
in the region, rather than on all complete lines in the region. |
299 |
|
|
300 |
+++ |
+++ |
301 |
** line-move-ignore-invisible now defaults to t. |
** You can now switch buffers in a cyclic order with C-x C-left and |
302 |
|
(prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right |
303 |
|
can be used as well. |
304 |
|
|
305 |
|
+++ |
306 |
|
** `undo-only' does an undo which does not redo any previous undo. |
307 |
|
|
308 |
|
+++ |
309 |
|
** M-SPC (just-one-space) when given a numeric argument N |
310 |
|
converts whitespace around point to N spaces. |
311 |
|
|
312 |
--- |
--- |
313 |
** New commands to operate on pairs of open and close characters: |
** New commands to operate on pairs of open and close characters: |
329 |
in Indented-Text mode. |
in Indented-Text mode. |
330 |
|
|
331 |
+++ |
+++ |
332 |
** Movement commands `beginning-of-buffer', `end-of-buffer', |
** M-x setenv now expands environment variable references. |
|
`beginning-of-defun', `end-of-defun' do not set the mark if the mark |
|
|
is already active in Transient Mark mode. |
|
|
|
|
|
+++ |
|
|
** `apply-macro-to-region-lines' now operates on all lines that begin |
|
|
in the region, rather than on all complete lines in the region. |
|
333 |
|
|
334 |
+++ |
Substrings of the form `$foo' and `${foo}' in the specified new value |
335 |
** M-x setenv now expands environment variables of the form `$foo' and |
now refer to the value of environment variable foo. To include a `$' |
336 |
`${foo}' in the specified new value of the environment variable. To |
in the value, use `$$'. |
|
include a `$' in the value, use `$$'. |
|
337 |
|
|
338 |
+++ |
+++ |
339 |
** Unquoted `$' in file names do not signal an error any more when |
** `special-display-buffer-names' and `special-display-regexps' now |
340 |
the corresponding environment variable does not exist. |
understand two new boolean pseudo-frame-parameters `same-frame' and |
341 |
Instead, the `$ENVVAR' text is left as is, so that `$$' quoting |
`same-window'. |
|
is only rarely needed. |
|
342 |
|
|
343 |
+++ |
+++ |
344 |
** The default for the paper size (variable ps-paper-type) is taken |
** The default for the paper size (variable ps-paper-type) is taken |
352 |
mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. |
mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. |
353 |
|
|
354 |
+++ |
+++ |
355 |
*** Marking commands extend the region when invoked multiple times. If |
*** Marking commands extend the region when invoked multiple times. |
356 |
you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or |
|
357 |
C-M-h (mark-defun) repeatedly, the marked region extends each time, so |
If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h |
358 |
you can mark the next two sexps with M-C-SPC M-C-SPC, for example. |
(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region |
359 |
This feature also works for mark-end-of-sentence, if you bind that to |
extends each time, so you can mark the next two sexps with M-C-SPC |
360 |
a key. It also extends the region when the mark is active in Transient |
M-C-SPC, for example. This feature also works for |
361 |
Mark mode, regardless of the last command. To start a new region with |
mark-end-of-sentence, if you bind that to a key. It also extends the |
362 |
one of marking commands in Transient Mark mode, you can deactivate the |
region when the mark is active in Transient Mark mode, regardless of |
363 |
active region with C-g, or set the new mark with C-SPC. |
the last command. To start a new region with one of marking commands |
364 |
|
in Transient Mark mode, you can deactivate the active region with C-g, |
365 |
|
or set the new mark with C-SPC. |
366 |
|
|
367 |
+++ |
+++ |
368 |
*** M-h (mark-paragraph) now accepts a prefix arg. |
*** M-h (mark-paragraph) now accepts a prefix arg. |
369 |
|
|
370 |
With positive arg, M-h marks the current and the following paragraphs; |
With positive arg, M-h marks the current and the following paragraphs; |
371 |
if the arg is negative, it marks the current and the preceding |
if the arg is negative, it marks the current and the preceding |
372 |
paragraphs. |
paragraphs. |
389 |
that alters the buffer, but you can also deactivate the mark by typing |
that alters the buffer, but you can also deactivate the mark by typing |
390 |
C-g. |
C-g. |
391 |
|
|
392 |
|
+++ |
393 |
|
*** Movement commands `beginning-of-buffer', `end-of-buffer', |
394 |
|
`beginning-of-defun', `end-of-defun' do not set the mark if the mark |
395 |
|
is already active in Transient Mark mode. |
396 |
|
|
397 |
** Help command changes: |
** Help command changes: |
398 |
|
|
399 |
+++ |
+++ |
489 |
match is listed first, and the calculated score is shown for each |
match is listed first, and the calculated score is shown for each |
490 |
matching item. |
matching item. |
491 |
|
|
|
** Window selection changes: |
|
|
|
|
|
+++ |
|
|
*** `special-display-buffer-names' and `special-display-regexps' now |
|
|
understand two new boolean pseudo-frame-parameters `same-frame' and |
|
|
`same-window'. |
|
|
|
|
492 |
** Incremental Search changes: |
** Incremental Search changes: |
493 |
|
|
494 |
+++ |
+++ |
552 |
** File operation changes: |
** File operation changes: |
553 |
|
|
554 |
+++ |
+++ |
555 |
|
*** Unquoted `$' in file names do not signal an error any more when |
556 |
|
the corresponding environment variable does not exist. |
557 |
|
Instead, the `$ENVVAR' text is left as is, so that `$$' quoting |
558 |
|
is only rarely needed. |
559 |
|
|
560 |
|
+++ |
561 |
*** In processing a local variables list, Emacs strips the prefix and |
*** In processing a local variables list, Emacs strips the prefix and |
562 |
suffix are from every line before processing all the lines. |
suffix are from every line before processing all the lines. |
563 |
|
|
638 |
prompt string. |
prompt string. |
639 |
|
|
640 |
--- |
--- |
641 |
*** Enhanced visual feedback in *Completions* buffer. |
*** Enhanced visual feedback in `*Completions*' buffer. |
642 |
|
|
643 |
Completions lists use faces to highlight what all completions |
Completions lists use faces to highlight what all completions |
644 |
have in common and where they begin to differ. |
have in common and where they begin to differ. |
672 |
|
|
673 |
** Redisplay changes: |
** Redisplay changes: |
674 |
|
|
675 |
|
+++ |
676 |
|
*** The mode line position information now comes before the major mode. |
677 |
|
When the file is maintained under version control, that information |
678 |
|
appears between the position information and the major mode. |
679 |
|
|
680 |
*** Easy to overlook single character negation is now font-locked. |
*** Easy to overlook single character negation is now font-locked. |
681 |
You can use the new variable `font-lock-negation-char-face' and the face of |
You can use the new variable `font-lock-negation-char-face' and the face of |
682 |
the same name to customize this. Currently the cc-modes, sh-script-mode, |
the same name to customize this. Currently the cc-modes, sh-script-mode, |
708 |
`auto-hscroll-mode'. The old name is still available as an alias. |
`auto-hscroll-mode'. The old name is still available as an alias. |
709 |
|
|
710 |
*** Moving or scrolling through images (and other lines) taller that |
*** Moving or scrolling through images (and other lines) taller that |
711 |
the window now works sensible, by automatically adjusting the window's |
the window now works sensibly, by automatically adjusting the window's |
712 |
vscroll property. |
vscroll property. |
713 |
|
|
714 |
+++ |
+++ |
796 |
** Font-Lock changes: |
** Font-Lock changes: |
797 |
|
|
798 |
+++ |
+++ |
799 |
|
*** M-o now is the prefix key for setting text properties; |
800 |
|
M-o M-o requests refontification. |
801 |
|
|
802 |
|
+++ |
803 |
*** All modes now support using M-x font-lock-mode to toggle |
*** All modes now support using M-x font-lock-mode to toggle |
804 |
fontification, even those such as Occur, Info, and comint-derived |
fontification, even those such as Occur, Info, and comint-derived |
805 |
modes that do their own fontification in a special way. |
modes that do their own fontification in a special way. |
842 |
jit-lock-context-time determines the delay after which contextual |
jit-lock-context-time determines the delay after which contextual |
843 |
refontification takes place. |
refontification takes place. |
844 |
|
|
845 |
** Menu Bar changes: |
** Menu support: |
846 |
|
|
847 |
--- |
--- |
848 |
*** A menu item "Show/Hide" was added to the top-level menu "Options". |
*** A menu item "Show/Hide" was added to the top-level menu "Options". |
856 |
--- |
--- |
857 |
*** Speedbar has moved from the "Tools" top level menu to "Show/Hide". |
*** Speedbar has moved from the "Tools" top level menu to "Show/Hide". |
858 |
|
|
859 |
|
--- |
860 |
|
*** You can exit dialog windows and menus by typing C-g. |
861 |
|
|
862 |
|
--- |
863 |
|
*** The menu item "Open File..." has been split into two items, "New File..." |
864 |
|
and "Open File...". "Open File..." now opens only existing files. This is |
865 |
|
to support existing GUI file selection dialogs better. |
866 |
|
|
867 |
|
+++ |
868 |
|
*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be |
869 |
|
disabled by customizing the variable `use-file-dialog'. |
870 |
|
|
871 |
|
--- |
872 |
|
*** The pop up menus for Lucid now stay up if you do a fast click and can |
873 |
|
be navigated with the arrow keys (like Gtk+, Mac and W32). |
874 |
|
|
875 |
|
+++ |
876 |
|
*** The Lucid menus can display multilingual text in your locale. You have |
877 |
|
to explicitly specify a fontSet resource for this to work, for example |
878 |
|
`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. |
879 |
|
|
880 |
|
--- |
881 |
|
*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing |
882 |
|
ESC, like they do for Gtk+, Mac and W32. |
883 |
|
|
884 |
|
+++ |
885 |
|
*** For Gtk+ version 2.4, you can make Emacs use the old file dialog |
886 |
|
by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use |
887 |
|
the new dialog. |
888 |
|
|
889 |
** Mouse changes: |
** Mouse changes: |
890 |
|
|
891 |
+++ |
+++ |
1295 |
buffers to search by their filename. Internally, Occur mode has been |
buffers to search by their filename. Internally, Occur mode has been |
1296 |
rewritten, and now uses font-lock, among other changes. |
rewritten, and now uses font-lock, among other changes. |
1297 |
|
|
1298 |
|
** Grep changes: |
1299 |
|
|
1300 |
+++ |
+++ |
1301 |
** Grep has been decoupled from compilation mode setup. |
*** Grep has been decoupled from compilation mode setup. |
1302 |
|
|
1303 |
There's a new separate package grep.el, with its own submenu and |
There's a new separate package grep.el, with its own submenu and |
1304 |
customization group. |
customization group. |
1343 |
unchanged to the system to execute, which allows more complicated |
unchanged to the system to execute, which allows more complicated |
1344 |
command lines to be used than was possible before. |
command lines to be used than was possible before. |
1345 |
|
|
|
** Emacs server changes: |
|
|
|
|
|
+++ |
|
|
*** You can have several Emacs servers on the same machine. |
|
|
|
|
|
% emacs --eval '(setq server-name "foo")' -f server-start & |
|
|
% emacs --eval '(setq server-name "bar")' -f server-start & |
|
|
% emacsclient -s foo file1 |
|
|
% emacsclient -s bar file2 |
|
|
|
|
|
+++ |
|
|
*** The `emacsclient' command understands the options `--eval' and |
|
|
`--display' which tell Emacs respectively to evaluate the given elisp |
|
|
expression and to use the given display when visiting files. |
|
|
|
|
|
+++ |
|
|
*** User option `server-mode' can be used to start a server process. |
|
|
|
|
|
** Menu support: |
|
|
|
|
|
--- |
|
|
*** Dialogs and menus pop down if you type C-g. |
|
|
|
|
|
--- |
|
|
*** The menu item "Open File..." has been split into two items, "New File..." |
|
|
and "Open File...". "Open File..." now opens only existing files. This is |
|
|
to support existing GUI file selection dialogs better. |
|
|
|
|
|
+++ |
|
|
*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be |
|
|
disabled by customizing the variable `use-file-dialog'. |
|
|
|
|
1346 |
** X Windows Support: |
** X Windows Support: |
1347 |
|
|
1348 |
+++ |
+++ |
1377 |
On the other hand, the size of the thumb does not represent the actual |
On the other hand, the size of the thumb does not represent the actual |
1378 |
amount of text shown any more (only a crude approximation of it). |
amount of text shown any more (only a crude approximation of it). |
1379 |
|
|
|
--- |
|
|
*** The pop up menus for Lucid now stay up if you do a fast click and can |
|
|
be navigated with the arrow keys (like Gtk+, Mac and W32). |
|
|
|
|
|
+++ |
|
|
*** The Lucid menus can display multilingual text in your locale. You have |
|
|
to explicitly specify a fontSet resource for this to work, for example |
|
|
`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. |
|
|
|
|
|
--- |
|
|
*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing |
|
|
ESC, like they do for Gtk+, Mac and W32. |
|
|
|
|
|
+++ |
|
|
*** For Gtk+ version 2.4, you can make Emacs use the old file dialog |
|
|
by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use |
|
|
the new dialog. |
|
|
|
|
1380 |
** Xterm support: |
** Xterm support: |
1381 |
|
|
1382 |
--- |
--- |
1421 |
--- |
--- |
1422 |
*** There's a new support for colors on `rxvt' terminal emulator. |
*** There's a new support for colors on `rxvt' terminal emulator. |
1423 |
|
|
1424 |
* New modes and packages in Emacs 22.1 |
* New Modes and Packages in Emacs 22.1 |
1425 |
|
|
1426 |
+++ |
+++ |
1427 |
** New package benchmark.el contains simple support for convenient |
** New package benchmark.el contains simple support for convenient |
1694 |
+++ |
+++ |
1695 |
** The wdired.el package allows you to use normal editing commands on Dired |
** The wdired.el package allows you to use normal editing commands on Dired |
1696 |
buffers to change filenames, permissions, etc... |
buffers to change filenames, permissions, etc... |
1697 |
|
|
1698 |
|
--- |
1699 |
|
** The TCL package tcl-mode.el was replaced by tcl.el. |
1700 |
|
This was actually done in Emacs-21.1, and was not documented. |
1701 |
|
|
1702 |
|
** The new package bindat.el provides functions to unpack and pack |
1703 |
|
binary data structures, such as network packets, to and from Lisp |
1704 |
|
data structures. |
1705 |
|
|
1706 |
|
+++ |
1707 |
|
** The new package button.el implements simple and fast `clickable buttons' |
1708 |
|
in emacs buffers. `buttons' are much lighter-weight than the `widgets' |
1709 |
|
implemented by widget.el, and can be used by lisp code that doesn't |
1710 |
|
require the full power of widgets. Emacs uses buttons for such things |
1711 |
|
as help and apropos buffers. |
1712 |
|
|
1713 |
|
--- |
1714 |
|
** master-mode.el implements a minor mode for scrolling a slave |
1715 |
|
buffer without leaving your current buffer, the master buffer. |
1716 |
|
|
1717 |
|
It can be used by sql.el, for example: the SQL buffer is the master |
1718 |
|
and its SQLi buffer is the slave. This allows you to scroll the SQLi |
1719 |
|
buffer containing the output from the SQL buffer containing the |
1720 |
|
commands. |
1721 |
|
|
1722 |
|
This is how to use sql.el and master.el together: the variable |
1723 |
|
sql-buffer contains the slave buffer. It is a local variable in the |
1724 |
|
SQL buffer. |
1725 |
|
|
1726 |
|
(add-hook 'sql-mode-hook |
1727 |
|
(function (lambda () |
1728 |
|
(master-mode t) |
1729 |
|
(master-set-slave sql-buffer)))) |
1730 |
|
(add-hook 'sql-set-sqli-hook |
1731 |
|
(function (lambda () |
1732 |
|
(master-set-slave sql-buffer)))) |
1733 |
|
|
1734 |
|
+++ |
1735 |
|
** New Lisp library testcover.el works with edebug to help you determine |
1736 |
|
whether you've tested all your Lisp code. Function testcover-start |
1737 |
|
instruments all functions in a given file. Then test your code. Function |
1738 |
|
testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to |
1739 |
|
show where coverage is lacking. Command testcover-next-mark (bind it to |
1740 |
|
a key!) will move point forward to the next spot that has a splotch. |
1741 |
|
|
1742 |
|
Normally, a red splotch indicates the form was never completely |
1743 |
|
evaluated; a brown splotch means it always evaluated to the same |
1744 |
|
value. The red splotches are skipped for forms that can't possibly |
1745 |
|
complete their evaluation, such as `error'. The brown splotches are |
1746 |
|
skipped for forms that are expected to always evaluate to the same |
1747 |
|
value, such as (setq x 14). |
1748 |
|
|
1749 |
|
For difficult cases, you can add do-nothing macros to your code to |
1750 |
|
help out the test coverage tool. The macro `noreturn' suppresses a |
1751 |
|
red splotch. It is an error if the argument to `noreturn' does |
1752 |
|
return. The macro 1value suppresses a brown splotch for its argument. |
1753 |
|
This macro is a no-op except during test-coverage -- then it signals |
1754 |
|
an error if the argument actually returns differing values. |
1755 |
|
|
1756 |
* Changes in specialized modes and packages: |
* Changes in Specialized Modes and Packages in Emacs 22.1: |
1757 |
|
|
1758 |
+++ |
+++ |
1759 |
** In Outline mode, hide-body no longer hides lines at the top |
** In Outline mode, hide-body no longer hides lines at the top |
1797 |
When this option is enabled, M-x add-change-log-entry always |
When this option is enabled, M-x add-change-log-entry always |
1798 |
starts a new record regardless of when the last record is. |
starts a new record regardless of when the last record is. |
1799 |
|
|
|
+++ |
|
|
** There is a new user option `mail-default-directory' that allows you |
|
|
to specify the value of `default-directory' for mail buffers. This |
|
|
directory is used for auto-save files of mail buffers. It defaults to |
|
|
"~/". |
|
|
|
|
|
+++ |
|
|
** Emacs can now indicate in the mode-line the presence of new e-mail |
|
|
in a directory or in a file. See the documentation of the user option |
|
|
`display-time-mail-directory'. |
|
|
|
|
1800 |
--- |
--- |
1801 |
** PO translation files are decoded according to their MIME headers |
** PO translation files are decoded according to their MIME headers |
1802 |
when Emacs visits them. |
when Emacs visits them. |
1803 |
|
|
1804 |
** Info mode: |
** Info mode changes: |
1805 |
|
|
1806 |
+++ |
+++ |
1807 |
*** A numeric prefix argument of `info' selects an Info buffer |
*** A numeric prefix argument of `info' selects an Info buffer |
1885 |
`eval-print-last-sexp' (C-j) and some edebug evaluation functions. |
`eval-print-last-sexp' (C-j) and some edebug evaluation functions. |
1886 |
|
|
1887 |
+++ |
+++ |
1888 |
** CC Mode changes. |
** CC mode changes. |
1889 |
|
|
1890 |
*** Font lock support. |
*** Font lock support. |
1891 |
CC Mode now provides font lock support for all its languages. This |
CC Mode now provides font lock support for all its languages. This |
2627 |
"checkout", "update" or "commit". That means using cvs diff options |
"checkout", "update" or "commit". That means using cvs diff options |
2628 |
-rBASE -rHEAD. |
-rBASE -rHEAD. |
2629 |
|
|
2630 |
|
+++ |
2631 |
|
** There is a new user option `mail-default-directory' that allows you |
2632 |
|
to specify the value of `default-directory' for mail buffers. This |
2633 |
|
directory is used for auto-save files of mail buffers. It defaults to |
2634 |
|
"~/". |
2635 |
|
|
2636 |
|
+++ |
2637 |
|
** Emacs can now indicate in the mode-line the presence of new e-mail |
2638 |
|
in a directory or in a file. See the documentation of the user option |
2639 |
|
`display-time-mail-directory'. |
2640 |
|
|
2641 |
** Rmail changes: |
** Rmail changes: |
2642 |
|
|
2643 |
--- |
--- |
2853 |
the stroke directly to a string to insert. This is convenient for |
the stroke directly to a string to insert. This is convenient for |
2854 |
using strokes as an input method. |
using strokes as an input method. |
2855 |
|
|
2856 |
|
** Emacs server changes: |
2857 |
|
|
2858 |
|
+++ |
2859 |
|
*** You can have several Emacs servers on the same machine. |
2860 |
|
|
2861 |
|
% emacs --eval '(setq server-name "foo")' -f server-start & |
2862 |
|
% emacs --eval '(setq server-name "bar")' -f server-start & |
2863 |
|
% emacsclient -s foo file1 |
2864 |
|
% emacsclient -s bar file2 |
2865 |
|
|
2866 |
|
+++ |
2867 |
|
*** The `emacsclient' command understands the options `--eval' and |
2868 |
|
`--display' which tell Emacs respectively to evaluate the given elisp |
2869 |
|
expression and to use the given display when visiting files. |
2870 |
|
|
2871 |
|
+++ |
2872 |
|
*** User option `server-mode' can be used to start a server process. |
2873 |
|
|
2874 |
--- |
--- |
2875 |
** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
2876 |
|
|
2918 |
--- |
--- |
2919 |
** cplus-md.el has been removed to avoid problems with Custom. |
** cplus-md.el has been removed to avoid problems with Custom. |
2920 |
|
|
2921 |
* Changes for non-free operating systems |
* Changes in Emacs 22.1 on non-free operating systems |
2922 |
|
|
2923 |
+++ |
+++ |
2924 |
** Passing resources on the command line now works on MS Windows. |
** Passing resources on the command line now works on MS Windows. |
2993 |
* Incompatible Lisp Changes in Emacs 22.1 |
* Incompatible Lisp Changes in Emacs 22.1 |
2994 |
|
|
2995 |
+++ |
+++ |
|
** The new interactive-specification `G' reads a file name |
|
|
much like `F', but if the input is a directory name (even defaulted), |
|
|
it returns just the directory name. |
|
|
|
|
|
+++ |
|
2996 |
** `suppress-keymap' now works by remapping `self-insert-command' to |
** `suppress-keymap' now works by remapping `self-insert-command' to |
2997 |
the command `undefined'. (In earlier Emacs versions, it used |
the command `undefined'. (In earlier Emacs versions, it used |
2998 |
`substitute-key-definition' to rebind self inserting characters to |
`substitute-key-definition' to rebind self inserting characters to |
3002 |
** Mode line display ignores text properties as well as the |
** Mode line display ignores text properties as well as the |
3003 |
:propertize and :eval forms in the value of a variable whose |
:propertize and :eval forms in the value of a variable whose |
3004 |
`risky-local-variable' property is nil. |
`risky-local-variable' property is nil. |
3005 |
|
|
3006 |
|
--- |
3007 |
|
** Support for Mocklisp has been removed. |
3008 |
|
|
3009 |
* Lisp Changes in Emacs 22.1 |
* Lisp Changes in Emacs 22.1 |
3010 |
|
|
3011 |
** New function `locate-file' searches for a file in a list of directories. |
** General Lisp changes: |
|
`locate-file' accepts a name of a file to search (a string), and two |
|
|
lists: a list of directories to search in and a list of suffixes to |
|
|
try; typical usage might use `exec-path' and `load-path' for the list |
|
|
of directories, and `exec-suffixes' and `load-suffixes' for the list |
|
|
of suffixes. The function also accepts a predicate argument to |
|
|
further filter candidate files. |
|
3012 |
|
|
3013 |
One advantage of using this function is that the list of suffixes in |
+++ |
3014 |
`exec-suffixes' is OS-dependant, so this function will find |
*** The function `eql' is now available without requiring the CL package. |
|
executables without polluting Lisp code with OS dependancies. |
|
3015 |
|
|
3016 |
+++ |
+++ |
3017 |
** The default value of `sentence-end' is now defined using the new |
*** `makehash' is now obsolete. Use `make-hash-table' instead. |
|
variable `sentence-end-without-space', which contains such characters |
|
|
that end a sentence without following spaces. |
|
3018 |
|
|
3019 |
The function `sentence-end' should be used to obtain the value of the |
+++ |
3020 |
variable `sentence-end'. If the variable `sentence-end' is nil, then |
*** If optional third argument APPEND to `add-to-list' is non-nil, a |
3021 |
this function returns the regexp constructed from the variables |
new element gets added at the end of the list instead of at the |
3022 |
`sentence-end-without-period', `sentence-end-double-space' and |
beginning. This change actually occurred in Emacs-21.1, but was not |
3023 |
`sentence-end-without-space'. |
documented. |
3024 |
|
|
3025 |
+++ |
+++ |
3026 |
** The argument to forward-word, backward-word, forward-to-indentation |
*** New function `copy-tree' makes a copy of a tree, recursively copying |
3027 |
and backward-to-indentation is now optional, and defaults to 1. |
both cars and cdrs. |
3028 |
|
|
3029 |
+++ |
+++ |
3030 |
** If a command sets transient-mark-mode to `only', that |
*** New function `delete-dups' destructively removes `equal' |
3031 |
enables Transient Mark mode for the following command only. |
duplicates from a list. Of several `equal' occurrences of an element |
3032 |
During that following command, the value of transient-mark-mode |
in the list, the first one is kept. |
|
is `identity'. If it is still `identity' at the end of the command, |
|
|
it changes to nil. |
|
3033 |
|
|
3034 |
+++ |
+++ |
3035 |
** The new hook `before-save-hook' is invoked by `basic-save-buffer' |
*** `declare' is now a macro. This change was made mostly for |
3036 |
before saving buffers. This allows packages to perform various final |
documentation purposes and should have no real effect on Lisp code. |
|
tasks, for example; it can be used by the copyright package to make |
|
|
sure saved files have the current year in any copyright headers. |
|
3037 |
|
|
3038 |
+++ |
+++ |
3039 |
** If a buffer sets buffer-save-without-query to non-nil, |
*** The new function `rassq-delete-all' deletes all elements from an |
3040 |
save-some-buffers will always save that buffer without asking |
alist whose cdr is `eq' to a specified value. |
3041 |
(if it's modified). |
|
3042 |
|
+++ |
3043 |
|
*** The function `number-sequence' returns a list of equally-separated |
3044 |
|
numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). |
3045 |
|
By default, the separation is 1, but you can specify a different separation |
3046 |
|
as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). |
3047 |
|
|
3048 |
|
+++ |
3049 |
|
*** The variables `most-positive-fixnum' and `most-negative-fixnum' |
3050 |
|
hold the largest and smallest possible integer values. |
3051 |
|
|
3052 |
|
+++ |
3053 |
|
*** The flags, width, and precision options for %-specifications in function |
3054 |
|
`format' are now documented. Some flags that were accepted but not |
3055 |
|
implemented (such as "*") are no longer accepted. |
3056 |
|
|
3057 |
|
+++ |
3058 |
|
*** Functions `get' and `plist-get' no longer signals an error for |
3059 |
|
a malformed property list. They also detect cyclic lists. |
3060 |
|
|
3061 |
|
+++ |
3062 |
|
*** The new functions `lax-plist-get' and `lax-plist-put' are like |
3063 |
|
`plist-get' and `plist-put', except that they compare the property |
3064 |
|
name using `equal' rather than `eq'. |
3065 |
|
|
3066 |
|
+++ |
3067 |
|
*** The new variable `print-continuous-numbering', when non-nil, says |
3068 |
|
that successive calls to print functions should use the same |
3069 |
|
numberings for circular structure references. This is only relevant |
3070 |
|
when `print-circle' is non-nil. |
3071 |
|
|
3072 |
|
When you bind `print-continuous-numbering' to t, you should |
3073 |
|
also bind `print-number-table' to nil. |
3074 |
|
|
3075 |
|
+++ |
3076 |
|
*** New function `macroexpand-all' expands all macros in a form. |
3077 |
|
|
3078 |
|
It is similar to the Common-Lisp function of the same name. |
3079 |
|
One difference is that it guarantees to return the original argument |
3080 |
|
if no expansion is done, which can be tested using `eq'. |
3081 |
|
|
3082 |
|
+++ |
3083 |
|
*** The function `atan' now accepts an optional second argument. |
3084 |
|
|
3085 |
|
When called with 2 arguments, as in `(atan Y X)', `atan' returns the |
3086 |
|
angle in radians between the vector [X, Y] and the X axis. (This is |
3087 |
|
equivalent to the standard C library function `atan2'.) |
3088 |
|
|
3089 |
|
+++ |
3090 |
|
*** A function's doc string can now specify the calling pattern. |
3091 |
|
|
3092 |
|
You put this in the doc string's last line, which should match the |
3093 |
|
regexp "\n\n(fn.*)\\'". |
3094 |
|
|
3095 |
|
+++ |
3096 |
|
*** New macro `with-local-quit' temporarily sets `inhibit-quit' to nil. |
3097 |
|
|
3098 |
|
This is for use around potentially blocking or long-running code in |
3099 |
|
timers and `post-command-hook' functions. |
3100 |
|
|
3101 |
|
*** `define-obsolete-function-alias' |
3102 |
|
combines `defalias' and `make-obsolete'. |
3103 |
|
|
3104 |
|
+++ |
3105 |
|
*** New function `unsafep' returns nil if the given Lisp form can't |
3106 |
|
possibly do anything dangerous; otherwise it returns a reason why the |
3107 |
|
form might be unsafe (calls unknown function, alters global variable, |
3108 |
|
etc). |
3109 |
|
|
3110 |
|
** Lisp code indentation features: |
3111 |
|
|
3112 |
|
+++ |
3113 |
|
*** The `defmacro' form can contain declarations specifying how to |
3114 |
|
indent the macro in Lisp mode and how to debug it with Edebug. The |
3115 |
|
syntax of defmacro has been extended to |
3116 |
|
|
3117 |
|
(defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) |
3118 |
|
|
3119 |
|
DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The |
3120 |
|
declaration specifiers supported are: |
3121 |
|
|
3122 |
|
(indent INDENT) |
3123 |
|
Set NAME's `lisp-indent-function' property to INDENT. |
3124 |
|
|
3125 |
|
(edebug DEBUG) |
3126 |
|
Set NAME's `edebug-form-spec' property to DEBUG. (This is |
3127 |
|
equivalent to writing a `def-edebug-spec' for the macro. |
3128 |
|
|
3129 |
|
--- |
3130 |
|
*** cl-indent now allows customization of Indentation of backquoted forms. |
3131 |
|
|
3132 |
|
See the new user option `lisp-backquote-indentation'. |
3133 |
|
|
3134 |
|
--- |
3135 |
|
*** cl-indent now handles indentation of simple and extended `loop' forms. |
3136 |
|
|
3137 |
|
The new user options `lisp-loop-keyword-indentation', |
3138 |
|
`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can |
3139 |
|
be used to customize the indentation of keywords and forms in loop |
3140 |
|
forms. |
3141 |
|
|
3142 |
|
+++ |
3143 |
|
** Variable aliases: |
3144 |
|
|
3145 |
|
*** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] |
3146 |
|
|
3147 |
|
This function defines the symbol ALIAS-VAR as a variable alias for |
3148 |
|
symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR |
3149 |
|
returns the value of BASE-VAR, and changing the value of ALIAS-VAR |
3150 |
|
changes the value of BASE-VAR. |
3151 |
|
|
3152 |
|
DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has |
3153 |
|
the same documentation as BASE-VAR. |
3154 |
|
|
3155 |
|
*** indirect-variable VARIABLE |
3156 |
|
|
3157 |
|
This function returns the variable at the end of the chain of aliases |
3158 |
|
of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not |
3159 |
|
defined as an alias, the function returns VARIABLE. |
3160 |
|
|
3161 |
|
It might be noteworthy that variables aliases work for all kinds of |
3162 |
|
variables, including buffer-local and frame-local variables. |
3163 |
|
|
3164 |
|
+++ |
3165 |
|
*** The macro `define-obsolete-variable-alias' combines `defvaralias' and |
3166 |
|
`make-obsolete-variable'. |
3167 |
|
|
3168 |
|
** defcustom changes: |
3169 |
|
|
3170 |
|
+++ |
3171 |
|
*** defcustom and other custom declarations now use a default group |
3172 |
|
(the last prior group defined in the same file) when no :group was given. |
3173 |
|
|
3174 |
|
--- |
3175 |
|
*** The new customization type `float' specifies numbers with floating |
3176 |
|
point (no integers are allowed). |
3177 |
|
|
3178 |
|
** String changes: |
3179 |
|
|
3180 |
|
+++ |
3181 |
|
*** The escape sequence \s is now interpreted as a SPACE character, |
3182 |
|
unless it is followed by a `-' in a character constant (e.g. ?\s-A), |
3183 |
|
in which case it is still interpreted as the super modifier. |
3184 |
|
In strings, \s is always interpreted as a space. |
3185 |
|
|
3186 |
|
+++ |
3187 |
|
*** A hex escape in a string forces the string to be multibyte. |
3188 |
|
An octal escape makes it unibyte. |
3189 |
|
|
3190 |
|
+++ |
3191 |
|
*** `split-string' now includes null substrings in the returned list if |
3192 |
|
the optional argument SEPARATORS is non-nil and there are matches for |
3193 |
|
SEPARATORS at the beginning or end of the string. If SEPARATORS is |
3194 |
|
nil, or if the new optional third argument OMIT-NULLS is non-nil, all |
3195 |
|
empty matches are omitted from the returned list. |
3196 |
|
|
3197 |
|
+++ |
3198 |
|
*** New function `string-to-multibyte' converts a unibyte string to a |
3199 |
|
multibyte string with the same individual character codes. |
3200 |
|
|
3201 |
|
+++ |
3202 |
|
*** New function `substring-no-properties returns a substring without |
3203 |
|
text properties. |
3204 |
|
|
3205 |
|
+++ |
3206 |
|
*** The new function `assoc-string' replaces `assoc-ignore-case' and |
3207 |
|
`assoc-ignore-representation', which are still available, but have |
3208 |
|
been declared obsolete. |
3209 |
|
|
3210 |
|
** Buffer/variable changes: |
3211 |
|
|
3212 |
|
+++ |
3213 |
|
*** The new function `buffer-local-value' returns the buffer-local |
3214 |
|
binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not |
3215 |
|
have a buffer-local binding in buffer BUFFER, it returns the default |
3216 |
|
value of VARIABLE instead. |
3217 |
|
|
3218 |
|
+++ |
3219 |
|
** There is a new facility for displaying warnings to the user. |
3220 |
|
|
3221 |
|
See the functions `warn' and `display-warning' . |
3222 |
|
|
3223 |
|
+++ |
3224 |
|
** Progress reporters. |
3225 |
|
|
3226 |
|
These provide a simple and uniform way for commands to present |
3227 |
|
progress messages for the user. |
3228 |
|
|
3229 |
|
See the new functions `make-progress-reporter', |
3230 |
|
`progress-reporter-update', `progress-reporter-force-update', |
3231 |
|
`progress-reporter-done', and `dotimes-with-progress-reporter'. |
3232 |
|
|
3233 |
|
** Buffer positions: |
3234 |
|
|
3235 |
|
+++ |
3236 |
|
*** Function `compute-motion' now calculates the usable window |
3237 |
|
width if the WIDTH argument is nil. If the TOPOS argument is nil, |
3238 |
|
the usable window height and width is used. |
3239 |
|
|
3240 |
|
+++ |
3241 |
|
*** The `line-move', `scroll-up', and `scroll-down' functions will now |
3242 |
|
modify the window vscroll to scroll through display rows that are |
3243 |
|
taller that the height of the window, for example in the presense of |
3244 |
|
large images. To disable this feature, Lisp code can bind the new |
3245 |
|
variable `auto-window-vscroll' to nil. |
3246 |
|
|
3247 |
|
+++ |
3248 |
|
*** The argument to `forward-word', `backward-word', |
3249 |
|
`forward-to-indentation' and `backward-to-indentation' is now |
3250 |
|
optional, and defaults to 1. |
3251 |
|
|
3252 |
|
+++ |
3253 |
|
*** Lisp code can now test if a given buffer position is inside a |
3254 |
|
clickable link with the new function `mouse-on-link-p'. This is the |
3255 |
|
function used by the new `mouse-1-click-follows-link' functionality. |
3256 |
|
|
3257 |
|
+++ |
3258 |
|
*** New function `line-number-at-pos' returns the line number of the |
3259 |
|
current line in the current buffer, or if optional buffer position is |
3260 |
|
given, line number of corresponding line in current buffer. |
3261 |
|
|
3262 |
|
+++ |
3263 |
|
*** `field-beginning' and `field-end' now accept an additional optional |
3264 |
|
argument, LIMIT. |
3265 |
|
|
3266 |
|
+++ |
3267 |
|
*** Function `pos-visible-in-window-p' now returns the pixel coordinates |
3268 |
|
and partial visiblity state of the corresponding row, if the PARTIALLY |
3269 |
|
arg is non-nil. |
3270 |
|
|
3271 |
|
+++ |
3272 |
|
*** New functions `posn-at-point' and `posn-at-x-y' return |
3273 |
|
click-event-style position information for a given visible buffer |
3274 |
|
position or for a given window pixel coordinate. |
3275 |
|
|
3276 |
|
** Text modification: |
3277 |
|
|
3278 |
|
+++ |
3279 |
|
*** The new function `insert-buffer-substring-as-yank' works like |
3280 |
|
`insert-buffer-substring', but removes the text properties in the |
3281 |
|
`yank-excluded-properties' list. |
3282 |
|
|
3283 |
|
+++ |
3284 |
|
*** The new function `insert-buffer-substring-no-properties' is like |
3285 |
|
insert-buffer-substring, but removes all text properties from the |
3286 |
|
inserted substring. |
3287 |
|
|
3288 |
|
+++ |
3289 |
|
*** The new function `filter-buffer-substring' extracts a buffer |
3290 |
|
substring, passes it through a set of filter functions, and returns |
3291 |
|
the filtered substring. It is used instead of `buffer-substring' or |
3292 |
|
`delete-and-extract-region' when copying text into a user-accessible |
3293 |
|
data structure, like the kill-ring, X clipboard, or a register. The |
3294 |
|
list of filter function is specified by the new variable |
3295 |
|
`buffer-substring-filters'. For example, Longlines mode uses |
3296 |
|
`buffer-substring-filters' to remove soft newlines from the copied |
3297 |
|
text. |
3298 |
|
|
3299 |
|
+++ |
3300 |
|
*** Function `translate-region' accepts also a char-table as TABLE |
3301 |
|
argument. |
3302 |
|
|
3303 |
|
+++ |
3304 |
|
*** The new translation table `translation-table-for-input' |
3305 |
|
is used for customizing self-insertion. The character to |
3306 |
|
be inserted is translated through it. |
3307 |
|
|
3308 |
|
--- |
3309 |
|
*** Text clones. |
3310 |
|
|
3311 |
|
The new function `text-clone-create'. Text clones are chunks of text |
3312 |
|
that are kept identical by transparently propagating changes from one |
3313 |
|
clone to the other. |
3314 |
|
|
3315 |
|
--- |
3316 |
|
*** The function `insert-string' is now obsolete. |
3317 |
|
|
3318 |
|
** Syntax table changes: |
3319 |
|
|
3320 |
|
+++ |
3321 |
|
*** The macro `with-syntax-table' does not copy the table any more. |
3322 |
|
|
3323 |
|
+++ |
3324 |
|
*** The new function `syntax-after' returns the syntax code |
3325 |
|
of the character after a specified buffer position, taking account |
3326 |
|
of text properties as well as the character code. |
3327 |
|
|
3328 |
|
+++ |
3329 |
|
*** `syntax-class' extracts the class of a syntax code (as returned |
3330 |
|
by syntax-after). |
3331 |
|
|
3332 |
|
*** The new package `syntax.el' provides an efficient way to find the |
3333 |
|
current syntactic context (as returned by `parse-partial-sexp'). |
3334 |
|
|
3335 |
|
** GC changes: |
3336 |
|
|
3337 |
|
+++ |
3338 |
|
*** New variables `gc-elapsed' and `gcs-done' provide extra information |
3339 |
|
on garbage collection. |
3340 |
|
|
3341 |
|
+++ |
3342 |
|
*** Functions from `post-gc-hook' are run at the end of garbage |
3343 |
|
collection. The hook is run with GC inhibited, so use it with care. |
3344 |
|
|
3345 |
|
** Buffer-related changes: |
3346 |
|
|
3347 |
--- |
--- |
3348 |
** list-buffers-noselect now takes an additional argument, BUFFER-LIST. |
*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. |
3349 |
If it is non-nil, it specifies which buffers to list. |
If it is non-nil, it specifies which buffers to list. |
3350 |
|
|
3351 |
+++ |
+++ |
3352 |
** The kill-buffer-hook is now permanent-local. |
*** `kill-buffer-hook' is now a permanent local. |
3353 |
|
|
3354 |
|
** Local variables lists: |
3355 |
|
|
3356 |
|
+++ |
3357 |
|
*** Text properties in local variables. |
3358 |
|
|
3359 |
|
A file local variables list cannot specify a string with text |
3360 |
|
properties--any specified text properties are discarded. |
3361 |
|
|
3362 |
|
+++ |
3363 |
|
*** The variable `safe-local-eval-forms' specifies a list of forms that |
3364 |
|
are ok to evaluate when they appear in an `eval' local variables |
3365 |
|
specification. Normally Emacs asks for confirmation before evaluating |
3366 |
|
such a form, but if the form appears in this list, no confirmation is |
3367 |
|
needed. |
3368 |
|
|
3369 |
|
--- |
3370 |
|
*** If a function has a non-nil `safe-local-eval-function' property, |
3371 |
|
that means it is ok to evaluate some calls to that function when it |
3372 |
|
appears in an `eval' local variables specification. If the property |
3373 |
|
is t, then any form calling that function with constant arguments is |
3374 |
|
ok. If the property is a function or list of functions, they are called |
3375 |
|
with the form as argument, and if any returns t, the form is ok to call. |
3376 |
|
|
3377 |
|
If the form is not "ok to call", that means Emacs asks for |
3378 |
|
confirmation as before. |
3379 |
|
|
3380 |
|
** Abbrev changes: |
3381 |
|
|
3382 |
|
*** The new function copy-abbrev-table returns a new abbrev table that |
3383 |
|
is a copy of a given abbrev table. |
3384 |
|
|
3385 |
|
+++ |
3386 |
|
*** define-abbrev now accepts an optional argument SYSTEM-FLAG. If |
3387 |
|
non-nil, this marks the abbrev as a "system" abbrev, which means that |
3388 |
|
it won't be stored in the user's abbrevs file if he saves the abbrevs. |
3389 |
|
Major modes that predefine some abbrevs should always specify this |
3390 |
|
flag. |
3391 |
|
|
3392 |
|
** Undo changes: |
3393 |
|
|
3394 |
|
+++ |
3395 |
|
*** An element of buffer-undo-list can now have the form (apply FUNNAME |
3396 |
|
. ARGS), where FUNNAME is a symbol other than t or nil. That stands |
3397 |
|
for a high-level change that should be undone by evaluating (apply |
3398 |
|
FUNNAME ARGS). |
3399 |
|
|
3400 |
|
These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) |
3401 |
|
which indicates that the change which took place was limited to the |
3402 |
|
range BEG...END and increased the buffer size by DELTA. |
3403 |
|
|
3404 |
|
+++ |
3405 |
|
*** If the buffer's undo list for the current command gets longer than |
3406 |
|
undo-outer-limit, garbage collection empties it. This is to prevent |
3407 |
|
it from using up the available memory and choking Emacs. |
3408 |
|
|
3409 |
|
+++ |
3410 |
|
** New `yank-handler' text property can be used to control how |
3411 |
|
previously killed text on the kill-ring is reinserted. |
3412 |
|
|
3413 |
|
The value of the yank-handler property must be a list with one to four |
3414 |
|
elements with the following format: |
3415 |
|
(FUNCTION PARAM NOEXCLUDE UNDO). |
3416 |
|
|
3417 |
|
The `insert-for-yank' function looks for a yank-handler property on |
3418 |
|
the first character on its string argument (typically the first |
3419 |
|
element on the kill-ring). If a yank-handler property is found, |
3420 |
|
the normal behavior of `insert-for-yank' is modified in various ways: |
3421 |
|
|
3422 |
|
When FUNCTION is present and non-nil, it is called instead of `insert' |
3423 |
|
to insert the string. FUNCTION takes one argument--the object to insert. |
3424 |
|
If PARAM is present and non-nil, it replaces STRING as the object |
3425 |
|
passed to FUNCTION (or `insert'); for example, if FUNCTION is |
3426 |
|
`yank-rectangle', PARAM should be a list of strings to insert as a |
3427 |
|
rectangle. |
3428 |
|
If NOEXCLUDE is present and non-nil, the normal removal of the |
3429 |
|
yank-excluded-properties is not performed; instead FUNCTION is |
3430 |
|
responsible for removing those properties. This may be necessary |
3431 |
|
if FUNCTION adjusts point before or after inserting the object. |
3432 |
|
If UNDO is present and non-nil, it is a function that will be called |
3433 |
|
by `yank-pop' to undo the insertion of the current object. It is |
3434 |
|
called with two arguments, the start and end of the current region. |
3435 |
|
FUNCTION can set `yank-undo-function' to override the UNDO value. |
3436 |
|
|
3437 |
|
*** The functions kill-new, kill-append, and kill-region now have an |
3438 |
|
optional argument to specify the yank-handler text property to put on |
3439 |
|
the killed text. |
3440 |
|
|
3441 |
|
*** The function yank-pop will now use a non-nil value of the variable |
3442 |
|
`yank-undo-function' (instead of delete-region) to undo the previous |
3443 |
|
yank or yank-pop command (or a call to insert-for-yank). The function |
3444 |
|
insert-for-yank automatically sets that variable according to the UNDO |
3445 |
|
element of the string argument's yank-handler text property if present. |
3446 |
|
|
3447 |
|
*** The function `insert-for-yank' now supports strings where the |
3448 |
|
`yank-handler' property does not span the first character of the |
3449 |
|
string. The old behavior is available if you call |
3450 |
|
`insert-for-yank-1' instead. |
3451 |
|
|
3452 |
|
*** The new function insert-for-yank normally works like `insert', but |
3453 |
|
removes the text properties in the `yank-excluded-properties' list. |
3454 |
|
However, the insertion of the text can be modified by a `yank-handler' |
3455 |
|
text property. |
3456 |
|
|
3457 |
|
** File operation changes: |
3458 |
|
|
3459 |
|
+++ |
3460 |
|
*** New vars `exec-suffixes' and `load-suffixes' used when |
3461 |
|
searching for an executable resp. an elisp file. |
3462 |
|
|
3463 |
|
+++ |
3464 |
|
*** The new primitive `set-file-times' sets a file's access and |
3465 |
|
modification times. Magic file name handlers can handle this |
3466 |
|
operation. |
3467 |
|
|
3468 |
|
+++ |
3469 |
|
*** The new function `file-remote-p' tests a file name and returns |
3470 |
|
non-nil if it specifies a remote file (one that Emacs accesses using |
3471 |
|
its own special methods and not directly through the file system). |
3472 |
|
The value in that case is an identifier for the remote file system. |
3473 |
|
|
3474 |
+++ |
+++ |
3475 |
** `auto-save-file-format' has been renamed to |
*** `auto-save-file-format' has been renamed to |
3476 |
`buffer-auto-save-file-format' and made into a permanent local. |
`buffer-auto-save-file-format' and made into a permanent local. |
3477 |
|
|
3478 |
+++ |
+++ |
3479 |
** Functions `file-name-sans-extension' and `file-name-extension' now |
*** Functions `file-name-sans-extension' and `file-name-extension' now |
3480 |
ignore the leading dots in file names, so that file names such as |
ignore the leading dots in file names, so that file names such as |
3481 |
`.emacs' are treated as extensionless. |
`.emacs' are treated as extensionless. |
3482 |
|
|
3483 |
+++ |
+++ |
3484 |
** copy-file now takes an additional option arg MUSTBENEW. |
*** copy-file now takes an additional option arg MUSTBENEW. |
3485 |
|
|
3486 |
This argument works like the MUSTBENEW argument of write-file. |
This argument works like the MUSTBENEW argument of write-file. |
3487 |
|
|
3488 |
+++ |
+++ |
3489 |
** If the second argument to `copy-file' is the name of a directory, |
*** If the second argument to `copy-file' is the name of a directory, |
3490 |
the file is copied to that directory instead of signaling an error. |
the file is copied to that directory instead of signaling an error. |
3491 |
|
|
3492 |
+++ |
+++ |
3493 |
** `visited-file-modtime' and `calendar-time-from-absolute' now return |
*** `visited-file-modtime' and `calendar-time-from-absolute' now return |
3494 |
a list of two integers, instead of a cons. |
a list of two integers, instead of a cons. |
3495 |
|
|
3496 |
+++ |
+++ |
3497 |
** `file-chase-links' now takes an optional second argument LIMIT which |
*** `file-chase-links' now takes an optional second argument LIMIT which |
3498 |
specifies the maximum number of links to chase through. If after that |
specifies the maximum number of links to chase through. If after that |
3499 |
many iterations the file name obtained is still a symbolic link, |
many iterations the file name obtained is still a symbolic link, |
3500 |
`file-chase-links' returns it anyway. |
`file-chase-links' returns it anyway. |
3501 |
|
|
3502 |
+++ |
+++ |
3503 |
** The function `commandp' takes an additional optional |
*** The new hook `before-save-hook' is invoked by `basic-save-buffer' |
3504 |
argument. If it is non-nil, then `commandp' checks |
before saving buffers. This allows packages to perform various final |
3505 |
for a function that could be called with `call-interactively', |
tasks, for example; it can be used by the copyright package to make |
3506 |
and does not return t for keyboard macros. |
sure saved files have the current year in any copyright headers. |
3507 |
|
|
3508 |
+++ |
+++ |
3509 |
** An interactive specification can now use the code letter 'U' to get |
*** If a buffer sets buffer-save-without-query to non-nil, |
3510 |
|
save-some-buffers will always save that buffer without asking |
3511 |
|
(if it's modified). |
3512 |
|
|
3513 |
|
*** New function `locate-file' searches for a file in a list of directories. |
3514 |
|
`locate-file' accepts a name of a file to search (a string), and two |
3515 |
|
lists: a list of directories to search in and a list of suffixes to |
3516 |
|
try; typical usage might use `exec-path' and `load-path' for the list |
3517 |
|
of directories, and `exec-suffixes' and `load-suffixes' for the list |
3518 |
|
of suffixes. The function also accepts a predicate argument to |
3519 |
|
further filter candidate files. |
3520 |
|
|
3521 |
|
One advantage of using this function is that the list of suffixes in |
3522 |
|
`exec-suffixes' is OS-dependant, so this function will find |
3523 |
|
executables without polluting Lisp code with OS dependancies. |
3524 |
|
|
3525 |
|
--- |
3526 |
|
*** The precedence of file-name-handlers has been changed. |
3527 |
|
Instead of blindly choosing the first handler that matches, |
3528 |
|
find-file-name-handler now gives precedence to a file-name handler |
3529 |
|
that matches near the end of the file name. More specifically, the |
3530 |
|
handler whose (match-beginning 0) is the largest is chosen. |
3531 |
|
In case of ties, the old "first matched" rule applies. |
3532 |
|
|
3533 |
|
+++ |
3534 |
|
*** A file name handler can declare which operations it handles. |
3535 |
|
|
3536 |
|
You do this by putting an `operation' property on the handler name |
3537 |
|
symbol. The property value should be a list of the operations that |
3538 |
|
the handler really handles. It won't be called for any other |
3539 |
|
operations. |
3540 |
|
|
3541 |
|
This is useful for autoloaded handlers, to prevent them from being |
3542 |
|
autoloaded when not really necessary. |
3543 |
|
|
3544 |
|
** Input changes: |
3545 |
|
|
3546 |
|
+++ |
3547 |
|
*** An interactive specification can now use the code letter 'U' to get |
3548 |
the up-event that was discarded in case the last key sequence read for a |
the up-event that was discarded in case the last key sequence read for a |
3549 |
previous 'k' or 'K' argument was a down-event; otherwise nil is used. |
previous 'k' or 'K' argument was a down-event; otherwise nil is used. |
3550 |
|
|
3551 |
|
+++ |
3552 |
|
*** The new interactive-specification `G' reads a file name |
3553 |
|
much like `F', but if the input is a directory name (even defaulted), |
3554 |
|
it returns just the directory name. |
3555 |
|
|
3556 |
--- |
--- |
3557 |
** Functions y-or-n-p, read-char, read-key-sequence and the like, that |
*** Functions y-or-n-p, read-char, read-key-sequence and the like, that |
3558 |
display a prompt but don't use the minibuffer, now display the prompt |
display a prompt but don't use the minibuffer, now display the prompt |
3559 |
using the text properties (esp. the face) of the prompt string. |
using the text properties (esp. the face) of the prompt string. |
3560 |
|
|
3561 |
+++ |
+++ |
3562 |
** read-from-minibuffer now accepts an additional argument KEEP-ALL |
*** (while-no-input BODY...) runs BODY, but only so long as no input |
3563 |
|
arrives. If the user types or clicks anything, BODY stops as if a |
3564 |
|
quit had occurred. while-no-input returns the value of BODY, if BODY |
3565 |
|
finishes. It returns nil if BODY was aborted. |
3566 |
|
|
3567 |
|
** Minibuffer changes: |
3568 |
|
|
3569 |
|
*** The new function `minibufferp' returns non-nil if its optional |
3570 |
|
buffer argument is a minibuffer. If the argument is omitted, it |
3571 |
|
defaults to the current buffer. |
3572 |
|
|
3573 |
|
+++ |
3574 |
|
*** New function minibuffer-selected-window returns the window which |
3575 |
|
was selected when entering the minibuffer. |
3576 |
|
|
3577 |
|
+++ |
3578 |
|
*** read-from-minibuffer now accepts an additional argument KEEP-ALL |
3579 |
saying to put all inputs in the history list, even empty ones. |
saying to put all inputs in the history list, even empty ones. |
3580 |
|
|
3581 |
+++ |
+++ |
3582 |
** The `read-file-name' function now takes an additional argument which |
*** The `read-file-name' function now takes an additional argument which |
3583 |
specifies a predicate which the file name read must satify. The |
specifies a predicate which the file name read must satify. The |
3584 |
new variable `read-file-name-predicate' contains the predicate argument |
new variable `read-file-name-predicate' contains the predicate argument |
3585 |
while reading the file name from the minibuffer; the predicate in this |
while reading the file name from the minibuffer; the predicate in this |
3586 |
variable is used by read-file-name-internal to filter the completion list. |
variable is used by read-file-name-internal to filter the completion list. |
3587 |
|
|
3588 |
--- |
--- |
3589 |
** The new variable `read-file-name-function' can be used by lisp code |
*** The new variable `read-file-name-function' can be used by lisp code |
3590 |
to override the internal read-file-name function. |
to override the internal read-file-name function. |
3591 |
|
|
3592 |
+++ |
+++ |
3593 |
** The new variable `read-file-name-completion-ignore-case' specifies |
*** The new variable `read-file-name-completion-ignore-case' specifies |
3594 |
whether completion ignores case when reading a file name with the |
whether completion ignores case when reading a file name with the |
3595 |
`read-file-name' function. |
`read-file-name' function. |
3596 |
|
|
3597 |
+++ |
+++ |
3598 |
** The new function `read-directory-name' can be used instead of |
*** The new function `read-directory-name' can be used instead of |
3599 |
`read-file-name' to read a directory name; when used, completion |
`read-file-name' to read a directory name; when used, completion |
3600 |
will only show directories. |
will only show directories. |
3601 |
|
|
3602 |
|
** Searching and matching changes: |
3603 |
|
|
3604 |
+++ |
+++ |
3605 |
** The new variable search-spaces-regexp controls how to search |
*** New function `looking-back' checks whether a regular expression matches |
3606 |
|
the text before point. Specifying the LIMIT argument bounds how far |
3607 |
|
back the match can start; this is a way to keep it from taking too long. |
3608 |
|
|
3609 |
|
+++ |
3610 |
|
*** The new variable search-spaces-regexp controls how to search |
3611 |
for spaces in a regular expression. If it is non-nil, it should be a |
for spaces in a regular expression. If it is non-nil, it should be a |
3612 |
regular expression, and any series of spaces stands for that regular |
regular expression, and any series of spaces stands for that regular |
3613 |
expression. If it is nil, spaces stand for themselves. |
expression. If it is nil, spaces stand for themselves. |
3616 |
replaced with search-spaces-regexp. |
replaced with search-spaces-regexp. |
3617 |
|
|
3618 |
+++ |
+++ |
3619 |
** There are now two new regular expression operators, \_< and \_>, |
*** There are now two new regular expression operators, \_< and \_>, |
3620 |
for matching the beginning and end of a symbol. A symbol is a |
for matching the beginning and end of a symbol. A symbol is a |
3621 |
non-empty sequence of either word or symbol constituent characters, as |
non-empty sequence of either word or symbol constituent characters, as |
3622 |
specified by the syntax table. |
specified by the syntax table. |
3623 |
|
|
3624 |
+++ |
+++ |
3625 |
** skip-chars-forward and skip-chars-backward now handle |
*** skip-chars-forward and skip-chars-backward now handle |
3626 |
character classes such as [:alpha:], along with individual characters |
character classes such as [:alpha:], along with individual characters |
3627 |
and ranges. |
and ranges. |
3628 |
|
|
3629 |
--- |
--- |
3630 |
** In `replace-match', the replacement text no longer inherits |
*** In `replace-match', the replacement text no longer inherits |
3631 |
properties from surrounding text. |
properties from surrounding text. |
3632 |
|
|
3633 |
+++ |
+++ |
3634 |
** The list returned by `(match-data t)' now has the buffer as a final |
*** The list returned by `(match-data t)' now has the buffer as a final |
3635 |
element, if the last match was on a buffer. `set-match-data' |
element, if the last match was on a buffer. `set-match-data' |
3636 |
accepts such a list for restoring the match state. |
accepts such a list for restoring the match state. |
3637 |
|
|
3638 |
+++ |
--- |
3639 |
** Variable aliases have been implemented: |
*** rx.el has new corresponding `symbol-end' and `symbol-start' elements. |
|
|
|
|
*** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] |
|
|
|
|
|
This function defines the symbol ALIAS-VAR as a variable alias for |
|
|
symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR |
|
|
returns the value of BASE-VAR, and changing the value of ALIAS-VAR |
|
|
changes the value of BASE-VAR. |
|
|
|
|
|
DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has |
|
|
the same documentation as BASE-VAR. |
|
|
|
|
|
*** indirect-variable VARIABLE |
|
|
|
|
|
This function returns the variable at the end of the chain of aliases |
|
|
of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not |
|
|
defined as an alias, the function returns VARIABLE. |
|
|
|
|
|
It might be noteworthy that variables aliases work for all kinds of |
|
|
variables, including buffer-local and frame-local variables. |
|
3640 |
|
|
3641 |
+++ |
+++ |
3642 |
*** The macro define-obsolete-variable-alias combines defvaralias and |
*** The default value of `sentence-end' is now defined using the new |
3643 |
make-obsolete-variable. The macro define-obsolete-function-alias |
variable `sentence-end-without-space', which contains such characters |
3644 |
combines defalias and make-obsolete. |
that end a sentence without following spaces. |
3645 |
|
|
3646 |
|
The function `sentence-end' should be used to obtain the value of the |
3647 |
|
variable `sentence-end'. If the variable `sentence-end' is nil, then |
3648 |
|
this function returns the regexp constructed from the variables |
3649 |
|
`sentence-end-without-period', `sentence-end-double-space' and |
3650 |
|
`sentence-end-without-space'. |
3651 |
|
|
3652 |
+++ |
+++ |
3653 |
** Enhancements to keymaps. |
** Enhancements to keymaps. |
3805 |
finished. |
finished. |
3806 |
|
|
3807 |
+++ |
+++ |
|
** Progress reporters. |
|
|
The new functions `make-progress-reporter', `progress-reporter-update', |
|
|
`progress-reporter-force-update', `progress-reporter-done', and |
|
|
`dotimes-with-progress-reporter' provide a simple and efficient way for |
|
|
a command to present progress messages for the user. |
|
|
|
|
|
+++ |
|
|
** New `yank-handler' text property can be used to control how |
|
|
previously killed text on the kill-ring is reinserted. |
|
|
|
|
|
The value of the yank-handler property must be a list with one to four |
|
|
elements with the following format: |
|
|
(FUNCTION PARAM NOEXCLUDE UNDO). |
|
|
|
|
|
The `insert-for-yank' function looks for a yank-handler property on |
|
|
the first character on its string argument (typically the first |
|
|
element on the kill-ring). If a yank-handler property is found, |
|
|
the normal behavior of `insert-for-yank' is modified in various ways: |
|
|
|
|
|
When FUNCTION is present and non-nil, it is called instead of `insert' |
|
|
to insert the string. FUNCTION takes one argument--the object to insert. |
|
|
If PARAM is present and non-nil, it replaces STRING as the object |
|
|
passed to FUNCTION (or `insert'); for example, if FUNCTION is |
|
|
`yank-rectangle', PARAM should be a list of strings to insert as a |
|
|
rectangle. |
|
|
If NOEXCLUDE is present and non-nil, the normal removal of the |
|
|
yank-excluded-properties is not performed; instead FUNCTION is |
|
|
responsible for removing those properties. This may be necessary |
|
|
if FUNCTION adjusts point before or after inserting the object. |
|
|
If UNDO is present and non-nil, it is a function that will be called |
|
|
by `yank-pop' to undo the insertion of the current object. It is |
|
|
called with two arguments, the start and end of the current region. |
|
|
FUNCTION can set `yank-undo-function' to override the UNDO value. |
|
|
|
|
|
*** The functions kill-new, kill-append, and kill-region now have an |
|
|
optional argument to specify the yank-handler text property to put on |
|
|
the killed text. |
|
|
|
|
|
*** The function yank-pop will now use a non-nil value of the variable |
|
|
`yank-undo-function' (instead of delete-region) to undo the previous |
|
|
yank or yank-pop command (or a call to insert-for-yank). The function |
|
|
insert-for-yank automatically sets that variable according to the UNDO |
|
|
element of the string argument's yank-handler text property if present. |
|
|
|
|
|
*** The function `insert-for-yank' now supports strings where the |
|
|
`yank-handler' property does not span the first character of the |
|
|
string. The old behavior is available if you call |
|
|
`insert-for-yank-1' instead. |
|
|
|
|
|
*** The new function insert-for-yank normally works like `insert', but |
|
|
removes the text properties in the `yank-excluded-properties' list. |
|
|
However, the insertion of the text can be modified by a `yank-handler' |
|
|
text property. |
|
|
|
|
|
+++ |
|
|
** An element of buffer-undo-list can now have the form (apply FUNNAME |
|
|
. ARGS), where FUNNAME is a symbol other than t or nil. That stands |
|
|
for a high-level change that should be undone by evaluating (apply |
|
|
FUNNAME ARGS). |
|
|
|
|
|
These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) |
|
|
which indicates that the change which took place was limited to the |
|
|
range BEG...END and increased the buffer size by DELTA. |
|
|
|
|
|
+++ |
|
|
** If the buffer's undo list for the current command gets longer than |
|
|
undo-outer-limit, garbage collection empties it. This is to prevent |
|
|
it from using up the available memory and choking Emacs. |
|
|
|
|
|
+++ |
|
3808 |
** Enhancements to process support |
** Enhancements to process support |
3809 |
|
|
3810 |
*** Function list-processes now has an optional argument; if non-nil, |
*** Function list-processes now has an optional argument; if non-nil, |
3843 |
from such processes, to allowing them to produce more output before |
from such processes, to allowing them to produce more output before |
3844 |
emacs tries to read it. |
emacs tries to read it. |
3845 |
|
|
3846 |
*** The new function `call-process-shell-command' executes a shell |
*** The new function `call-process-shell-command'. |
3847 |
command command synchronously in a separate process. |
|
3848 |
|
This executes a shell command command synchronously in a separate |
3849 |
|
process. |
3850 |
|
|
3851 |
*** The new function `process-file' is similar to `call-process', but |
*** The new function `process-file' is similar to `call-process', but |
3852 |
obeys file handlers. The file handler is chosen based on |
obeys file handlers. The file handler is chosen based on |
3853 |
default-directory. |
`default-directory'. |
|
|
|
|
*** The new function `set-process-filter-multibyte' sets the |
|
|
multibyteness of a string given to a process's filter. |
|
|
|
|
|
*** The new function `process-filter-multibyte-p' returns t if a |
|
|
string given to a process's filter is multibyte. |
|
3854 |
|
|
3855 |
*** A filter function of a process is called with a multibyte string |
*** A filter function of a process is called with a multibyte string |
3856 |
if the filter's multibyteness is t. That multibyteness is decided by |
if the filter's multibyteness is t. That multibyteness is decided by |
3857 |
the value of `default-enable-multibyte-characters' when the process is |
the value of `default-enable-multibyte-characters' when the process is |
3858 |
created and can be changed later by `set-process-filter-multibyte'. |
created and can be changed later by `set-process-filter-multibyte'. |
3859 |
|
|
3860 |
*** If a process's coding system is raw-text or no-conversion and its |
*** The new function `set-process-filter-multibyte' sets the |
3861 |
|
multibyteness of the strings passed to the process's filter. |
3862 |
|
|
3863 |
|
*** The new function `process-filter-multibyte-p' returns the |
3864 |
|
multibyteness of the strings passed to the process's filter. |
3865 |
|
|
3866 |
|
*** If a process's coding system is `raw-text' or `no-conversion' and its |
3867 |
buffer is multibyte, the output of the process is at first converted |
buffer is multibyte, the output of the process is at first converted |
3868 |
to multibyte by `string-to-multibyte' then inserted in the buffer. |
to multibyte by `string-to-multibyte' then inserted in the buffer. |
3869 |
Previously, it was converted to multibyte by `string-as-multibyte', |
Previously, it was converted to multibyte by `string-as-multibyte', |
3948 |
sentinel when the connection is closed by the remote peer has been |
sentinel when the connection is closed by the remote peer has been |
3949 |
changed to "connection broken by remote peer". |
changed to "connection broken by remote peer". |
3950 |
|
|
3951 |
+++ |
** Using window objects: |
|
** New function `force-window-update' can initiate a full redisplay of |
|
|
one or all windows. Normally, this is not needed as changes in window |
|
|
contents are detected automatically. However, certain implicit |
|
|
changes to mode lines, header lines, or display properties may require |
|
|
forcing an explicit window update. |
|
3952 |
|
|
3953 |
+++ |
+++ |
3954 |
** The line-move, scroll-up, and scroll-down functions will now |
*** New function `window-body-height'. |
|
modify the window vscroll to scroll through display rows that are |
|
|
taller that the height of the window, for example in the presense of |
|
|
large images. To disable this feature, Lisp code can bind the new |
|
|
variable `auto-window-vscroll' to nil. |
|
3955 |
|
|
3956 |
+++ |
This is like `window-height' but does not count the mode line or the |
3957 |
** Function `compute-motion' now calculates the usable window |
header line. |
|
width if the WIDTH argument is nil. If the TOPOS argument is nil, |
|
|
the usable window height and width is used. |
|
3958 |
|
|
3959 |
+++ |
+++ |
3960 |
** Function pos-visible-in-window-p now returns the pixel coordinates |
*** New function `window-body-height'. |
|
and partial visiblity state of the corresponding row, if the PARTIALLY |
|
|
arg is non-nil. |
|
3961 |
|
|
3962 |
** Changes in using window objects: |
This is like window-height but does not count the mode line |
3963 |
|
or the header line. |
3964 |
|
|
3965 |
+++ |
+++ |
3966 |
*** You can now make a window as short as one line. |
*** You can now make a window as short as one line. |
3983 |
|
|
3984 |
+++ |
+++ |
3985 |
*** The new macro `with-selected-window' temporarily switches the |
*** The new macro `with-selected-window' temporarily switches the |
3986 |
selected window without impacting the order of buffer-list. |
selected window without impacting the order of `buffer-list'. |
3987 |
|
|
3988 |
+++ |
+++ |
3989 |
*** `select-window' takes an optional second argument `norecord', like |
*** `select-window' takes an optional second argument `norecord'. |
3990 |
`switch-to-buffer'. |
|
3991 |
|
This is like `switch-to-buffer'. |
3992 |
|
|
3993 |
+++ |
+++ |
3994 |
*** `save-selected-window' now saves and restores the selected window |
*** `save-selected-window' now saves and restores the selected window |
3996 |
by calling `select-window'. |
by calling `select-window'. |
3997 |
|
|
3998 |
+++ |
+++ |
3999 |
*** The function `set-window-buffer' now has an optional third argument |
*** `set-window-buffer' has an optional argument KEEP-MARGINS. |
4000 |
KEEP-MARGINS which will preserve the window's current margin, fringe, |
|
4001 |
and scroll-bar settings if non-nil. |
If non-nil, that says to preserve the window's current margin, fringe, |
4002 |
|
and scroll-bar settings. |
4003 |
|
|
4004 |
+++ |
+++ |
4005 |
** Customizable fringe bitmaps |
** Customizable fringe bitmaps |
4006 |
|
|
4007 |
*** New function 'define-fringe-bitmap' can now be used to create new |
*** New function `define-fringe-bitmap' can now be used to create new |
4008 |
fringe bitmaps, as well as change the built-in fringe bitmaps. |
fringe bitmaps, as well as change the built-in fringe bitmaps. |
4009 |
|
|
4010 |
To change a built-in bitmap, do (require 'fringe) and use the symbol |
To change a built-in bitmap, do (require 'fringe) and use the symbol |
4011 |
identifing the bitmap such as `left-truncation or `continued-line'. |
identifing the bitmap such as `left-truncation or `continued-line'. |
4012 |
|
|
4013 |
*** New function 'destroy-fringe-bitmap' can be used to destroy a |
*** New function `destroy-fringe-bitmap' deletes a fringe bitmap |
4014 |
previously created bitmap, or restore a built-in bitmap. |
or restores a built-in one to its default value. |
4015 |
|
|
4016 |
*** New function 'set-fringe-bitmap-face' can now be used to set a |
*** New function `set-fringe-bitmap-face' can now be used to set a |
4017 |
specific face to be used for a specific fringe bitmap. The face is |
specific face to be used for a specific fringe bitmap. The face is |
4018 |
automatically merged with the `fringe' face, so normally, the face |
automatically merged with the `fringe' face, so normally, the face |
4019 |
should only specify the foreground color of the bitmap. |
should only specify the foreground color of the bitmap. |
4020 |
|
|
4021 |
*** There are new display properties, left-fringe and right-fringe, |
*** There are new display properties, `left-fringe; and `right-fringe', |
4022 |
that can be used to show a specific bitmap in the left or right fringe |
that can be used to show a specific bitmap in the left or right fringe |
4023 |
bitmap of the display line. |
bitmap of the display line. |
4024 |
|
|
4025 |
Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a |
Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a |
4026 |
symbol identifying a fringe bitmap, either built-in or defined with |
symbol identifying a fringe bitmap, either built-in or defined with |
4027 |
`define-fringe-bitmap', and FACE is an optional face name to be used |
`define-fringe-bitmap', and FACE is an optional face name to be used |
4028 |
for displaying the bitmap instead of the default `fringe' face. |
for displaying the bitmap instead of the default `fringe' face. |
4031 |
*** New function `fringe-bitmaps-at-pos' returns the current fringe |
*** New function `fringe-bitmaps-at-pos' returns the current fringe |
4032 |
bitmaps in the display line at a given buffer position. |
bitmaps in the display line at a given buffer position. |
4033 |
|
|
4034 |
|
** Other window fringe features: |
4035 |
|
|
4036 |
+++ |
+++ |
4037 |
** Controlling the default left and right fringe widths. |
*** Controlling the default left and right fringe widths. |
4038 |
|
|
4039 |
The default left and right fringe widths for all windows of a frame |
The default left and right fringe widths for all windows of a frame |
4040 |
can now be controlled by setting the `left-fringe' and `right-fringe' |
can now be controlled by setting the `left-fringe' and `right-fringe' |
4054 |
fringe bitmaps is 8 pixels. |
fringe bitmaps is 8 pixels. |
4055 |
|
|
4056 |
+++ |
+++ |
4057 |
** Per-window fringe and scrollbar settings |
*** Per-window fringe and scrollbar settings |
4058 |
|
|
4059 |
*** Windows can now have their own individual fringe widths and |
**** Windows can now have their own individual fringe widths and |
4060 |
position settings. |
position settings. |
4061 |
|
|
4062 |
To control the fringe widths of a window, either set the buffer-local |
To control the fringe widths of a window, either set the buffer-local |
4074 |
displaying the buffer in a window, or use `set-window-buffer' to force |
displaying the buffer in a window, or use `set-window-buffer' to force |
4075 |
an update of the display margins. |
an update of the display margins. |
4076 |
|
|
4077 |
*** Windows can now have their own individual scroll-bar settings |
**** Windows can now have their own individual scroll-bar settings |
4078 |
controlling the width and position of scroll-bars. |
controlling the width and position of scroll-bars. |
4079 |
|
|
4080 |
To control the scroll-bar of a window, either set the buffer-local |
To control the scroll-bar of a window, either set the buffer-local |
4085 |
the buffer in a window, or use `set-window-buffer' to force an update |
the buffer in a window, or use `set-window-buffer' to force an update |
4086 |
of the display margins. |
of the display margins. |
4087 |
|
|
4088 |
|
** Redisplay features: |
4089 |
|
|
4090 |
+++ |
+++ |
4091 |
** When using non-toolkit scroll bars with the default width, |
*** `sit-for' can now be called with args (SECONDS &optional NODISP). |
|
the scroll-bar-width frame parameter value is nil. |
|
4092 |
|
|
4093 |
+++ |
+++ |
4094 |
** Multiple overlay arrows can now be defined and managed via the new |
*** New function `force-window-update' can initiate a full redisplay of |
4095 |
variable `overlay-arrow-variable-list'. It contains a list of |
one or all windows. Normally, this is not needed as changes in window |
4096 |
varibles which contain overlay arrow position markers, including |
contents are detected automatically. However, certain implicit |
4097 |
the original `overlay-arrow-position' variable. |
changes to mode lines, header lines, or display properties may require |
4098 |
|
forcing an explicit window update. |
4099 |
|
|
4100 |
|
+++ |
4101 |
|
*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able |
4102 |
|
to display CHAR. More precisely, if the selected frame's fontset has |
4103 |
|
a font to display the character set that CHAR belongs to. |
4104 |
|
|
4105 |
|
Fontsets can specify a font on a per-character basis; when the fontset |
4106 |
|
does that, this value cannot be accurate. |
4107 |
|
|
4108 |
|
+++ |
4109 |
|
*** You can define multiple overlay arrows via the new |
4110 |
|
variable `overlay-arrow-variable-list'. |
4111 |
|
|
4112 |
|
It contains a list of varibles which contain overlay arrow position |
4113 |
|
markers, including the original `overlay-arrow-position' variable. |
4114 |
|
|
4115 |
Each variable on this list can have individual `overlay-arrow-string' |
Each variable on this list can have individual `overlay-arrow-string' |
4116 |
and `overlay-arrow-bitmap' properties that specify an overlay arrow |
and `overlay-arrow-bitmap' properties that specify an overlay arrow |
4120 |
'overlay-arrow-fringe-bitmap' will be used. |
'overlay-arrow-fringe-bitmap' will be used. |
4121 |
|
|
4122 |
+++ |
+++ |
4123 |
** New line-height and line-spacing properties for newline characters |
*** New `line-height' and `line-spacing' properties for newline characters |
4124 |
|
|
4125 |
A newline can now have line-height and line-spacing text or overlay |
A newline can now have `line-height' and `line-spacing' text or overlay |
4126 |
properties that control the height of the corresponding display row. |
properties that control the height of the corresponding display row. |
4127 |
|
|
4128 |
If the line-height property value is t, the newline does not |
If the `line-height' property value is t, the newline does not |
4129 |
contribute to the height of the display row; instead the height of the |
contribute to the height of the display row; instead the height of the |
4130 |
newline glyph is reduced. Also, a line-spacing property on this |
newline glyph is reduced. Also, a `line-spacing' property on this |
4131 |
newline is ignored. This can be used to tile small images or image |
newline is ignored. This can be used to tile small images or image |
4132 |
slices without adding blank areas between the images. |
slices without adding blank areas between the images. |
4133 |
|
|
4134 |
If the line-height property value is a positive integer, the value |
If the `line-height' property value is a positive integer, the value |
4135 |
specifies the minimum line height in pixels. If necessary, the line |
specifies the minimum line height in pixels. If necessary, the line |
4136 |
height it increased by increasing the line's ascent. |
height it increased by increasing the line's ascent. |
4137 |
|
|
4138 |
If the line-height property value is a float, the minimum line height |
If the `line-height' property value is a float, the minimum line |
4139 |
is calculated by multiplying the default frame line height by the |
height is calculated by multiplying the default frame line height by |
4140 |
given value. |
the given value. |
4141 |
|
|
4142 |
If the line-height property value is a cons (FACE . RATIO), the |
If the `line-height' property value is a cons (FACE . RATIO), the |
4143 |
minimum line height is calculated as RATIO * height of named FACE. |
minimum line height is calculated as RATIO * height of named FACE. |
4144 |
RATIO is int or float. If FACE is t, it specifies the current face. |
RATIO is int or float. If FACE is t, it specifies the current face. |
4145 |
|
|
4146 |
If the line-height property value is a cons (nil . RATIO), the line |
If the `line-height' property value is a cons (nil . RATIO), the line |
4147 |
height is calculated as RATIO * actual height of the line's contents. |
height is calculated as RATIO * actual height of the line's contents. |
4148 |
|
|
4149 |
If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies |
If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies |
4150 |
the line height as described above, while TOTAL is any of the forms |
the line height as described above, while TOTAL is any of the forms |
4151 |
described above and specifies the total height of the line, causing a |
described above and specifies the total height of the line, causing a |
4152 |
varying number of pixels to be inserted after the line to make it line |
varying number of pixels to be inserted after the line to make it line |
4153 |
exactly that many pixels high. |
exactly that many pixels high. |
4154 |
|
|
4155 |
If the line-spacing property value is an positive integer, the value |
If the `line-spacing' property value is an positive integer, the value |
4156 |
is used as additional pixels to insert after the display line; this |
is used as additional pixels to insert after the display line; this |
4157 |
overrides the default frame line-spacing and any buffer local value of |
overrides the default frame `line-spacing' and any buffer local value of |
4158 |
the line-spacing variable. |
the `line-spacing' variable. |
4159 |
|
|
4160 |
If the line-spacing property is a float or cons, the line spacing |
If the `line-spacing' property is a float or cons, the line spacing |
4161 |
is calculated as specified above for the line-height property. |
is calculated as specified above for the `line-height' property. |
4162 |
|
|
4163 |
+++ |
+++ |
4164 |
** The buffer local line-spacing variable can now have a float value, |
*** The buffer local line-spacing variable can now have a float value, |
4165 |
which is used as a height relative to the default frame line height. |
which is used as a height relative to the default frame line height. |
4166 |
|
|
4167 |
+++ |
+++ |
4168 |
** Enhancements to stretch display properties |
*** Enhancements to stretch display properties |
4169 |
|
|
4170 |
The display property stretch specification form `(space PROPS)', where |
The display property stretch specification form `(space PROPS)', where |
4171 |
PROPS is a property list now allows pixel based width and height |
PROPS is a property list now allows pixel based width and height |
4222 |
The form `(- EXPR ...)' negates or subtracts the value of the expressions. |
The form `(- EXPR ...)' negates or subtracts the value of the expressions. |
4223 |
|
|
4224 |
+++ |
+++ |
4225 |
** Support for displaying image slices |
*** Normally, the cursor is displayed at the end of any overlay and |
4226 |
|
text property string that may be present at the current window |
4227 |
|
position. The cursor can now be placed on any character of such |
4228 |
|
strings by giving that character a non-nil `cursor' text property. |
4229 |
|
|
4230 |
|
+++ |
4231 |
|
*** The display space :width and :align-to text properties are now |
4232 |
|
supported on text terminals. |
4233 |
|
|
4234 |
*** New display property (slice X Y WIDTH HEIGHT) can be used with |
+++ |
4235 |
|
*** Support for displaying image slices |
4236 |
|
|
4237 |
|
**** New display property (slice X Y WIDTH HEIGHT) can be used with |
4238 |
an image property to display only a specific slice of the image. |
an image property to display only a specific slice of the image. |
4239 |
|
|
4240 |
*** Function insert-image has new optional fourth arg to |
**** Function insert-image has new optional fourth arg to |
4241 |
specify image slice (X Y WIDTH HEIGHT). |
specify image slice (X Y WIDTH HEIGHT). |
4242 |
|
|
4243 |
*** New function insert-sliced-image inserts a given image as a |
**** New function insert-sliced-image inserts a given image as a |
4244 |
specified number of evenly sized slices (rows x columns). |
specified number of evenly sized slices (rows x columns). |
4245 |
|
|
4246 |
+++ |
+++ |
4247 |
** Images can now have an associated image map via the :map property. |
*** Images can now have an associated image map via the :map property. |
4248 |
|
|
4249 |
An image map is an alist where each element has the format (AREA ID PLIST). |
An image map is an alist where each element has the format (AREA ID PLIST). |
4250 |
An AREA is specified as either a rectangle, a circle, or a polygon: |
An AREA is specified as either a rectangle, a circle, or a polygon: |
4266 |
an event is composed by combining the ID of the hot-spot with the |
an event is composed by combining the ID of the hot-spot with the |
4267 |
mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. |
mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. |
4268 |
|
|
4269 |
|
** Mouse pointer features: |
4270 |
|
|
4271 |
+++ (lispref) |
+++ (lispref) |
4272 |
??? (man) |
??? (man) |
4273 |
** The mouse pointer shape in void text areas (i.e. after the end of a |
*** The mouse pointer shape in void text areas (i.e. after the end of a |
4274 |
line or below the last line in the buffer) of the text window is now |
line or below the last line in the buffer) of the text window is now |
4275 |
controlled by the new variable `void-text-area-pointer'. The default |
controlled by the new variable `void-text-area-pointer'. The default |
4276 |
is to use the `arrow' (non-text) pointer. Other choices are `text' |
is to use the `arrow' (non-text) pointer. Other choices are `text' |
4277 |
(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. |
(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. |
4278 |
|
|
4279 |
+++ |
+++ |
4280 |
** The mouse pointer shape over an image can now be controlled by the |
*** The mouse pointer shape over an image can now be controlled by the |
4281 |
:pointer image property. |
:pointer image property. |
4282 |
|
|
4283 |
+++ |
+++ |
4284 |
** Lisp code can now test if a given buffer position is inside a |
*** The mouse pointer shape over ordinary text or images can now be |
|
clickable link with the new function `mouse-on-link-p'. This is the |
|
|
function used by the new `mouse-1-click-follows-link' functionality. |
|
|
|
|
|
+++ |
|
|
** The mouse pointer shape over ordinary text or images can now be |
|
4285 |
controlled/overriden via the `pointer' text property. |
controlled/overriden via the `pointer' text property. |
4286 |
|
|
4287 |
** Mouse event enhancements: |
** Mouse event enhancements: |
4331 |
click, the x and y pixel coordinates relative to the top left corner |
click, the x and y pixel coordinates relative to the top left corner |
4332 |
of that object, and the total width and height of that object. |
of that object, and the total width and height of that object. |
4333 |
|
|
4334 |
+++ |
** Text property and overlay changes: |
|
** At the end of a command, point moves out from within invisible |
|
|
text, in the same way it moves out from within text covered by an |
|
|
image or composition property. |
|
|
|
|
|
This makes it generally unnecessary to mark invisible text as intangible. |
|
|
This is particularly good because the intangible property often has |
|
|
unexpected side-effects since the property applies to everything |
|
|
(including `goto-char', ...) whereas this new code is only run after |
|
|
post-command-hook and thus does not care about intermediate states. |
|
|
|
|
|
+++ |
|
|
** Normally, the cursor is displayed at the end of any overlay and |
|
|
text property string that may be present at the current window |
|
|
position. The cursor can now be placed on any character of such |
|
|
strings by giving that character a non-nil `cursor' text property. |
|
|
|
|
|
+++ |
|
|
** The display space :width and :align-to text properties are now |
|
|
supported on text terminals. |
|
4335 |
|
|
4336 |
+++ |
+++ |
4337 |
** Arguments for remove-overlays are now optional, so that you can |
*** Arguments for remove-overlays are now optional, so that you can |
4338 |
remove all overlays in the buffer by just calling (remove-overlay). |
remove all overlays in the buffer by just calling (remove-overlays). |
4339 |
|
|
4340 |
+++ |
+++ |
4341 |
** New variable char-property-alias-alist. |
*** New variable char-property-alias-alist. |
4342 |
|
|
4343 |
This variable allows you to create alternative names for text |
This variable allows you to create alternative names for text |
4344 |
properties. It works at the same level as `default-text-properties', |
properties. It works at the same level as `default-text-properties', |
4346 |
to implement the `font-lock-face' property. |
to implement the `font-lock-face' property. |
4347 |
|
|
4348 |
+++ |
+++ |
4349 |
** New function `get-char-property-and-overlay' accepts the same |
*** New function `get-char-property-and-overlay' accepts the same |
4350 |
arguments as `get-char-property' and returns a cons whose car is the |
arguments as `get-char-property' and returns a cons whose car is the |
4351 |
return value of `get-char-property' called with those arguments and |
return value of `get-char-property' called with those arguments and |
4352 |
whose cdr is the overlay in which the property was found, or nil if |
whose cdr is the overlay in which the property was found, or nil if |
4353 |
it was found as a text property or not found at all. |
it was found as a text property or not found at all. |
4354 |
|
|
4355 |
+++ |
+++ |
4356 |
** The new frame parameter `tty-color-mode' specifies the mode to use |
*** The new function remove-list-of-text-properties is almost the same |
4357 |
for color support on character terminal frames. Its value can be a |
as `remove-text-properties'. The only difference is that it takes a |
4358 |
number of colors to support, or a symbol. See the Emacs Lisp |
list of property names as argument rather than a property list. |
|
Reference manual for more detailed documentation. |
|
4359 |
|
|
4360 |
+++ |
** Face changes |
|
** The new face attribute `min-colors' can be used to tailor the face |
|
|
color to the number of colors supported by a display, and define the |
|
|
foreground and background colors accordingly so that they look best on |
|
|
a terminal that supports at least this many colors. This is now the |
|
|
preferred method for defining default faces in a way that makes a good |
|
|
use of the capabilities of the display. |
|
4361 |
|
|
4362 |
+++ |
+++ |
4363 |
** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able |
*** The new face attribute condition `min-colors' can be used to tailor |
4364 |
to display CHAR. More precisely, if the selected frame's fontset has |
the face color to the number of colors supported by a display, and |
4365 |
a font to display the character set that CHAR belongs to. |
define the foreground and background colors accordingly so that they |
4366 |
|
look best on a terminal that supports at least this many colors. This |
4367 |
Fontsets can specify a font on a per-character basis; when the fontset |
is now the preferred method for defining default faces in a way that |
4368 |
does that, this value cannot be accurate. |
makes a good use of the capabilities of the display. |
4369 |
|
|
4370 |
+++ |
+++ |
4371 |
** New function display-supports-face-attributes-p can be used to test |
*** New function display-supports-face-attributes-p can be used to test |
4372 |
whether a given set of face attributes is actually displayable. |
whether a given set of face attributes is actually displayable. |
4373 |
|
|
4374 |
A new predicate `supports' has also been added to the `defface' face |
A new predicate `supports' has also been added to the `defface' face |
4376 |
defined with defface. |
defined with defface. |
4377 |
|
|
4378 |
--- |
--- |
4379 |
** The special treatment of faces whose names are of the form `fg:COLOR' |
*** The special treatment of faces whose names are of the form `fg:COLOR' |
4380 |
or `bg:COLOR' has been removed. Lisp programs should use the |
or `bg:COLOR' has been removed. Lisp programs should use the |
4381 |
`defface' facility for defining faces with specific colors, or use |
`defface' facility for defining faces with specific colors, or use |
4382 |
the feature of specifying the face attributes :foreground and :background |
the feature of specifying the face attributes :foreground and :background |
4383 |
directly in the `face' property instead of using a named face. |
directly in the `face' property instead of using a named face. |
4384 |
|
|
4385 |
+++ |
+++ |
4386 |
** The first face specification element in a defface can specify |
*** The first face specification element in a defface can specify |
4387 |
`default' instead of frame classification. Then its attributes act as |
`default' instead of frame classification. Then its attributes act as |
4388 |
defaults that apply to all the subsequent cases (and can be overridden |
defaults that apply to all the subsequent cases (and can be overridden |
4389 |
by them). |
by them). |
4390 |
|
|
4391 |
+++ |
+++ |
4392 |
** The variable `face-font-rescale-alist' specifies how much larger |
*** The variable `face-font-rescale-alist' specifies how much larger |
4393 |
(or smaller) font we should use. For instance, if the value is |
(or smaller) font we should use. For instance, if the value is |
4394 |
'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 |
'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 |
4395 |
point, we actually use a font of 13 point if the font matches |
point, we actually use a font of 13 point if the font matches |
4396 |
SOME-FONTNAME-PATTERN. |
SOME-FONTNAME-PATTERN. |
4397 |
|
|
4398 |
--- |
--- |
4399 |
** `set-fontset-font', `fontset-info', `fontset-font' now operate on |
*** The function `face-differs-from-default-p' now truly checks |
4400 |
the default fontset if the argument NAME is nil.. |
whether the given face displays differently from the default face or |
4401 |
|
not (previously it did only a very cursory check). |
|
--- |
|
|
** The function face-differs-from-default-p now truly checks whether the |
|
|
given face displays differently from the default face or not (previously |
|
|
it did only a very cursory check). |
|
4402 |
|
|
4403 |
+++ |
+++ |
4404 |
** face-attribute, face-foreground, face-background, and face-stipple now |
*** `face-attribute', `face-foreground', `face-background', and |
4405 |
accept a new optional argument, INHERIT, which controls how face |
`face-stipple' now accept a new optional argument, INHERIT, which |
4406 |
inheritance is used when determining the value of a face attribute. |
controls how face inheritance is used when determining the value of a |
4407 |
|
face attribute. |
4408 |
|
|
4409 |
+++ |
+++ |
4410 |
** New functions face-attribute-relative-p and merge-face-attribute |
*** New functions `face-attribute-relative-p' and `merge-face-attribute' |
4411 |
help with handling relative face attributes. |
help with handling relative face attributes. |
4412 |
|
|
4413 |
+++ |
+++ |
4414 |
** The priority of faces in an :inherit attribute face-list is reversed. |
*** The priority of faces in an :inherit attribute face list is reversed. |
4415 |
|
|
4416 |
If a face contains an :inherit attribute with a list of faces, earlier |
If a face contains an :inherit attribute with a list of faces, earlier |
4417 |
faces in the list override later faces in the list; in previous releases |
faces in the list override later faces in the list; in previous |
4418 |
of Emacs, the order was the opposite. This change was made so that |
releases of Emacs, the order was the opposite. This change was made |
4419 |
:inherit face-lists operate identically to face-lists in text `face' |
so that :inherit face lists operate identically to face lists in text |
4420 |
properties. |
`face' properties. |
4421 |
|
|
4422 |
+++ |
+++ |
4423 |
** New standard font-lock face `font-lock-preprocessor-face'. |
*** New standard font-lock face `font-lock-preprocessor-face'. |
4424 |
|
|
4425 |
|
--- |
4426 |
|
*** `set-fontset-font', `fontset-info', `fontset-font' now operate on |
4427 |
|
the default fontset if the argument NAME is nil.. |
4428 |
|
|
4429 |
|
** Font-Lock changes: |
4430 |
|
|
4431 |
+++ |
+++ |
4432 |
** New special text property `font-lock-face'. |
*** New special text property `font-lock-face'. |
4433 |
|
|
4434 |
This property acts like the `face' property, but it is controlled by |
This property acts like the `face' property, but it is controlled by |
4435 |
M-x font-lock-mode. It is not, strictly speaking, a builtin text |
M-x font-lock-mode. It is not, strictly speaking, a builtin text |
4436 |
property. Instead, it is implemented inside font-core.el, using the |
property. Instead, it is implemented inside font-core.el, using the |
4437 |
new variable `char-property-alias-alist'. |
new variable `char-property-alias-alist'. |
4438 |
|
|
4439 |
|
+++ |
4440 |
|
*** font-lock can manage arbitrary text-properties beside `face'. |
4441 |
|
|
4442 |
|
*** the FACENAME returned in `font-lock-keywords' can be a list of the |
4443 |
|
form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other |
4444 |
|
properties than `face'. |
4445 |
|
|
4446 |
|
*** `font-lock-extra-managed-props' can be set to make sure those |
4447 |
|
extra properties are automatically cleaned up by font-lock. |
4448 |
|
|
4449 |
--- |
--- |
4450 |
** jit-lock obeys a new text-property `jit-lock-defer-multiline'. |
*** jit-lock obeys a new text-property `jit-lock-defer-multiline'. |
4451 |
|
|
4452 |
If a piece of text with that property gets contextually refontified |
If a piece of text with that property gets contextually refontified |
4453 |
(see jit-lock-defer-contextually), then all of that text will |
(see `jit-lock-defer-contextually'), then all of that text will |
4454 |
be refontified. This is useful when the syntax of a textual element |
be refontified. This is useful when the syntax of a textual element |
4455 |
depends on text several lines further down (and when font-lock-multiline |
depends on text several lines further down (and when `font-lock-multiline' |
4456 |
is not appropriate to solve that problem). For example in Perl: |
is not appropriate to solve that problem). For example in Perl: |
4457 |
|
|
4458 |
s{ |
s{ |
4462 |
}e |
}e |
4463 |
|
|
4464 |
Adding/removing the last `e' changes the `bar' from being a piece of |
Adding/removing the last `e' changes the `bar' from being a piece of |
4465 |
text to being a piece of code, so you'd put a jit-lock-defer-multiline |
text to being a piece of code, so you'd put a `jit-lock-defer-multiline' |
4466 |
property over the second half of the command to force (deferred) |
property over the second half of the command to force (deferred) |
4467 |
refontification of `bar' whenever the `e' is added/removed. |
refontification of `bar' whenever the `e' is added/removed. |
4468 |
|
|
4469 |
+++ |
** Major mode mechanism changes: |
|
** font-lock can manage arbitrary text-properties beside `face'. |
|
|
*** the FACENAME returned in font-lock-keywords can be a list |
|
|
of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set |
|
|
other properties than `face'. |
|
|
*** font-lock-extra-managed-props can be set to make sure those extra |
|
|
properties are automatically cleaned up by font-lock. |
|
|
|
|
|
--- |
|
|
** The precedence of file-name-handlers has been changed. |
|
|
Instead of blindly choosing the first handler that matches, |
|
|
find-file-name-handler now gives precedence to a file-name handler |
|
|
that matches near the end of the file name. More specifically, the |
|
|
handler whose (match-beginning 0) is the largest is chosen. |
|
|
In case of ties, the old "first matched" rule applies. |
|
|
|
|
|
+++ |
|
|
** A file name handler can declare which operations it handles. |
|
|
|
|
|
You do this by putting an `operation' property on the handler name |
|
|
symbol. The property value should be a list of the operations that |
|
|
the handler really handles. It won't be called for any other |
|
|
operations. |
|
|
|
|
|
This is useful for autoloaded handlers, to prevent them from being |
|
|
autoloaded when not really necessary. |
|
4470 |
|
|
4471 |
+++ |
+++ |
4472 |
** `set-auto-mode' now gives the interpreter magic line (if present) |
*** `set-auto-mode' now gives the interpreter magic line (if present) |
4473 |
precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration |
precedence over the file name. Likewise an `<?xml' or `<!DOCTYPE' |
4474 |
will give the buffer XML or SGML mode, based on the new var |
declaration will give the buffer XML or SGML mode, based on the new |
4475 |
`magic-mode-alist'. |
var `magic-mode-alist'. |
4476 |
|
|
4477 |
+++ |
+++ |
4478 |
** Major mode functions now run the new normal hook |
*** Major mode functions now run the new normal hook |
4479 |
`after-change-major-mode-hook', at their very end, after the mode hooks. |
`after-change-major-mode-hook', at their very end, after the mode hooks. |
4480 |
|
|
4481 |
--- |
--- |
4482 |
** If a major mode function has a non-nil `no-clone-indirect' |
*** If a major mode function has a non-nil `no-clone-indirect' |
4483 |
property, `clone-indirect-buffer' signals an error if you use |
property, `clone-indirect-buffer' signals an error if you use |
4484 |
it in that buffer. |
it in that buffer. |
4485 |
|
|
4486 |
+++ |
+++ |
4487 |
** Major modes can define `eldoc-documentation-function' |
*** Major modes can define `eldoc-documentation-function' |
4488 |
locally to provide Eldoc functionality by some method appropriate to |
locally to provide Eldoc functionality by some method appropriate to |
4489 |
the language. |
the language. |
4490 |
|
|
4491 |
+++ |
+++ |
4492 |
** define-derived-mode by default creates a new empty abbrev table. |
*** `define-derived-mode' by default creates a new empty abbrev table. |
4493 |
It does not copy abbrevs from the parent mode's abbrev table. |
It does not copy abbrevs from the parent mode's abbrev table. |
4494 |
|
|
4495 |
+++ |
+++ |
4496 |
** define-minor-mode now accepts arbitrary additional keyword arguments |
*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' |
4497 |
and simply passes them to defcustom, if applicable. |
are used by `define-derived-mode' to make sure the mode hook for the |
|
|
|
|
+++ |
|
|
** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' |
|
|
are used by define-derived-mode to make sure the mode hook for the |
|
4498 |
parent mode is run at the end of the child mode. |
parent mode is run at the end of the child mode. |
4499 |
|
|
4500 |
+++ |
** Minor mode changes: |
|
** `minor-mode-list' now holds a list of minor mode commands. |
|
4501 |
|
|
4502 |
+++ |
+++ |
4503 |
** Both the variable and the function `disabled-command-hook' have |
*** `define-minor-mode' now accepts arbitrary additional keyword arguments |
4504 |
been renamed to `disabled-command-function'. The variable |
and simply passes them to `defcustom', if applicable. |
|
`disabled-command-hook' has been kept as an obsolete alias. |
|
4505 |
|
|
4506 |
+++ |
+++ |
4507 |
** The function `eql' is now available without requiring the CL package. |
*** `minor-mode-list' now holds a list of minor mode commands. |
4508 |
|
|
4509 |
+++ |
--- |
4510 |
** If optional third argument APPEND to `add-to-list' is non-nil, a |
*** `define-global-minor-mode'. |
|
new element gets added at the end of the list instead of at the |
|
|
beginning. This change actually occurred in Emacs-21.1, but was not |
|
|
documented. |
|
4511 |
|
|
4512 |
+++ |
This is a new name for what was formerly called |
4513 |
** The escape sequence \s is now interpreted as a SPACE character, |
`easy-mmode-define-global-mode'. The old name remains as an alias. |
|
unless it is followed by a `-' in a character constant (e.g. ?\s-A), |
|
|
in which case it is still interpreted as the super modifier. |
|
|
In strings, \s is always interpreted as a space. |
|
4514 |
|
|
4515 |
+++ |
** Command loop changes: |
|
** A hex escape in a string forces the string to be multibyte. |
|
|
An octal escape makes it unibyte. |
|
4516 |
|
|
4517 |
+++ |
+++ |
4518 |
** `split-string' now includes null substrings in the returned list if |
*** The new function `called-interactively-p' does what many people |
4519 |
the optional argument SEPARATORS is non-nil and there are matches for |
have mistakenly believed `interactive-p' did: it returns t if the |
4520 |
SEPARATORS at the beginning or end of the string. If SEPARATORS is |
calling function was called through `call-interactively'. This should |
4521 |
nil, or if the new optional third argument OMIT-NULLS is non-nil, all |
only be used when you cannot solve the problem by adding a new |
4522 |
empty matches are omitted from the returned list. |
INTERACTIVE argument to the command. |
4523 |
|
|
4524 |
+++ |
+++ |
4525 |
** New function `string-to-multibyte' converts a unibyte string to a |
*** The function `commandp' takes an additional optional argument. |
|
multibyte string with the same individual character codes. |
|
4526 |
|
|
4527 |
+++ |
If it is non-nil, then `commandp' checks for a function that could be |
4528 |
** The function `number-sequence' returns a list of equally-separated |
called with `call-interactively', and does not return t for keyboard |
4529 |
numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). |
macros. |
|
By default, the separation is 1, but you can specify a different separation |
|
|
as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). |
|
4530 |
|
|
4531 |
+++ |
+++ |
4532 |
** `sit-for' can now be called with args (SECONDS &optional NODISP). |
*** When a command returns, the command loop moves point out from |
4533 |
|
within invisible text, in the same way it moves out from within text |
4534 |
|
covered by an image or composition property. |
4535 |
|
|
4536 |
+++ |
This makes it generally unnecessary to mark invisible text as intangible. |
4537 |
** A function's docstring can now hold the function's usage info on |
This is particularly good because the intangible property often has |
4538 |
its last line. It should match the regexp "\n\n(fn.*)\\'". |
unexpected side-effects since the property applies to everything |
4539 |
|
(including `goto-char', ...) whereas this new code is only run after |
4540 |
|
`post-command-hook' and thus does not care about intermediate states. |
4541 |
|
|
4542 |
+++ |
+++ |
4543 |
** The `defmacro' form can contain declarations specifying how to |
*** If a command sets `transient-mark-mode' to `only', that |
4544 |
indent the macro in Lisp mode and how to debug it with Edebug. The |
enables Transient Mark mode for the following command only. |
4545 |
syntax of defmacro has been extended to |
During that following command, the value of `transient-mark-mode' |
4546 |
|
is `identity'. If it is still `identity' at the end of the command, |
4547 |
(defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) |
the next return to the command loop changes to nil. |
4548 |
|
|
4549 |
DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The |
+++ |
4550 |
declaration specifiers supported are: |
*** Both the variable and the function `disabled-command-hook' have |
4551 |
|
been renamed to `disabled-command-function'. The variable |
4552 |
|
`disabled-command-hook' has been kept as an obsolete alias. |
4553 |
|
|
4554 |
(indent INDENT) |
+++ |
4555 |
Set NAME's `lisp-indent-function' property to INDENT. |
*** `emacsserver' now runs `pre-command-hook' and `post-command-hook' |
4556 |
|
when it receives a request from emacsclient. |
4557 |
|
|
4558 |
(edebug DEBUG) |
** Minibuffer changes: |
|
Set NAME's `edebug-form-spec' property to DEBUG. (This is |
|
|
equivalent to writing a `def-edebug-spec' for the macro. |
|
4559 |
|
|
4560 |
+++ |
+++ |
4561 |
** The functions all-completions and try-completion now accept lists |
*** The functions all-completions and try-completion now accept lists |
4562 |
of strings as well as hash-tables additionally to alists, obarrays |
of strings as well as hash-tables additionally to alists, obarrays |
4563 |
and functions. Furthermore, the function `test-completion' is now |
and functions. Furthermore, the function `test-completion' is now |
4564 |
exported to Lisp. The keys in alists and hash tables can be either |
exported to Lisp. The keys in alists and hash tables can be either |
4565 |
strings or symbols, which are automatically converted with to strings. |
strings or symbols, which are automatically converted with to strings. |
4566 |
|
|
4567 |
+++ |
+++ |
4568 |
** The new macro dynamic-completion-table supports using functions |
*** The new macro `dynamic-completion-table' supports using functions |
4569 |
as a dynamic completion table. |
as a dynamic completion table. |
4570 |
|
|
4571 |
(dynamic-completion-table FUN) |
(dynamic-completion-table FUN) |
4575 |
completions. This alist can be a full list of possible completions so that FUN |
completions. This alist can be a full list of possible completions so that FUN |
4576 |
can ignore the value of its argument. If completion is performed in the |
can ignore the value of its argument. If completion is performed in the |
4577 |
minibuffer, FUN will be called in the buffer from which the minibuffer was |
minibuffer, FUN will be called in the buffer from which the minibuffer was |
4578 |
entered. dynamic-completion-table then computes the completion. |
entered. `dynamic-completion-table' then computes the completion. |
4579 |
|
|
4580 |
+++ |
+++ |
4581 |
** The new macro lazy-completion-table initializes a variable |
*** The new macro `lazy-completion-table' initializes a variable |
4582 |
as a lazy completion table. |
as a lazy completion table. |
4583 |
|
|
4584 |
(lazy-completion-table VAR FUN &rest ARGS) |
(lazy-completion-table VAR FUN &rest ARGS) |
4590 |
from which the minibuffer was entered. The return value of |
from which the minibuffer was entered. The return value of |
4591 |
`lazy-completion-table' must be used to initialize the value of VAR. |
`lazy-completion-table' must be used to initialize the value of VAR. |
4592 |
|
|
4593 |
|
** Lisp file loading changes: |
4594 |
|
|
4595 |
+++ |
+++ |
4596 |
** `load-history' can now have elements of the form (t . FUNNAME), |
*** `load-history' can now have elements of the form (t . FUNNAME), |
4597 |
which means FUNNAME was previously defined as an autoload (before the |
which means FUNNAME was previously defined as an autoload (before the |
4598 |
current file redefined it). |
current file redefined it). |
4599 |
|
|
4600 |
+++ |
+++ |
4601 |
** `load-history' now records (defun . FUNNAME) when a function is |
*** `load-history' now records (defun . FUNNAME) when a function is |
4602 |
defined. For a variable, it records just the variable name. |
defined. For a variable, it records just the variable name. |
4603 |
|
|
|
--- |
|
|
** The variable `recursive-load-depth-limit' has been deleted. |
|
|
Emacs now signals an error if the same file is loaded with more |
|
|
than 3 levels of nesting. |
|
|
|
|
4604 |
+++ |
+++ |
4605 |
** The function symbol-file can now search specifically for function or |
*** The function symbol-file can now search specifically for function or |
4606 |
variable definitions. |
variable definitions. |
4607 |
|
|
4608 |
+++ |
+++ |
4609 |
** `provide' and `featurep' now accept an optional second argument |
*** `provide' and `featurep' now accept an optional second argument |
4610 |
to test/provide subfeatures. Also `provide' now checks `after-load-alist' |
to test/provide subfeatures. Also `provide' now checks `after-load-alist' |
4611 |
and runs any code associated with the provided feature. |
and runs any code associated with the provided feature. |
4612 |
|
|
4613 |
+++ |
--- |
4614 |
** `declare' is now a macro. This change was made mostly for |
*** The variable `recursive-load-depth-limit' has been deleted. |
4615 |
documentation purposes and should have no real effect on Lisp code. |
Emacs now signals an error if the same file is loaded with more |
4616 |
|
than 3 levels of nesting. |
4617 |
|
|
4618 |
+++ |
+++ |
4619 |
** Byte compiler changes: |
** Byte compiler changes: |
4652 |
*** The local variable `no-byte-compile' in elisp files is now obeyed. |
*** The local variable `no-byte-compile' in elisp files is now obeyed. |
4653 |
|
|
4654 |
--- |
--- |
4655 |
** When a Lisp file uses CL functions at run-time, compiling the file |
*** When a Lisp file uses CL functions at run-time, compiling the file |
4656 |
now issues warnings about these calls, unless the file performs |
now issues warnings about these calls, unless the file performs |
4657 |
(require 'cl) when loaded. |
(require 'cl) when loaded. |
4658 |
|
|
4659 |
|
** Frame operations: |
4660 |
|
|
4661 |
+++ |
+++ |
4662 |
** New function unsafep returns nil if the given Lisp form can't possibly |
*** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'. |
4663 |
do anything dangerous; otherwise it returns a reason why the form might be |
|
4664 |
unsafe (calls dangerous function, alters global variable, etc). |
These functions return the current locations of the vertical and |
4665 |
|
horizontal scroll bars in a frame or window. |
4666 |
|
|
4667 |
+++ |
+++ |
4668 |
** There is a new Warnings facility; see the functions `warn' |
*** The new function `modify-all-frames-parameters' modifies parameters |
4669 |
and `display-warning'. |
for all (existing and future) frames. |
4670 |
|
|
4671 |
--- |
+++ |
4672 |
** VC changes for backends: |
*** The new frame parameter `tty-color-mode' specifies the mode to use |
4673 |
*** (vc-switches BACKEND OPERATION) is a new function for use by backends. |
for color support on character terminal frames. Its value can be a |
4674 |
*** The new `find-version' backend function replaces the `destfile' |
number of colors to support, or a symbol. See the Emacs Lisp |
4675 |
parameter of the `checkout' backend function. |
Reference manual for more detailed documentation. |
|
Old code still works thanks to a default `find-version' behavior that |
|
|
uses the old `destfile' parameter. |
|
4676 |
|
|
4677 |
+++ |
+++ |
4678 |
** Already true in Emacs 21.1, but not emphasized clearly enough: |
*** When using non-toolkit scroll bars with the default width, |
4679 |
|
the `scroll-bar-width' frame parameter value is nil. |
4680 |
|
|
4681 |
|
** Mule changes: |
4682 |
|
|
4683 |
|
+++ |
4684 |
|
*** Already true in Emacs 21.1, but not emphasized clearly enough: |
4685 |
|
|
4686 |
Multibyte buffers can now faithfully record all 256 character codes |
Multibyte buffers can now faithfully record all 256 character codes |
4687 |
from 0 to 255. As a result, most of the past reasons to use unibyte |
from 0 to 255. As a result, most of the past reasons to use unibyte |
4697 |
wasteful. |
wasteful. |
4698 |
|
|
4699 |
--- |
--- |
4700 |
** set-buffer-file-coding-system now takes an additional argument, |
*** set-buffer-file-coding-system now takes an additional argument, |
4701 |
NOMODIFY. If it is non-nil, it means don't mark the buffer modified. |
NOMODIFY. If it is non-nil, it means don't mark the buffer modified. |
4702 |
|
|
4703 |
+++ |
+++ |
4704 |
** The new variable `auto-coding-functions' lets you specify functions |
*** The new variable `auto-coding-functions' lets you specify functions |
4705 |
to examine a file being visited and deduce the proper coding system |
to examine a file being visited and deduce the proper coding system |
4706 |
for it. (If the coding system is detected incorrectly for a specific |
for it. (If the coding system is detected incorrectly for a specific |
4707 |
file, you can put a `coding:' tags to override it.) |
file, you can put a `coding:' tags to override it.) |
4708 |
|
|
4709 |
--- |
--- |
4710 |
** The new function `merge-coding-systems' fills in unspecified aspects |
*** The new function `merge-coding-systems' fills in unspecified aspects |
4711 |
of one coding system from another coding system. |
of one coding system from another coding system. |
4712 |
|
|
4713 |
--- |
--- |
4714 |
** New coding system property `mime-text-unsuitable' indicates that |
*** New coding system property `mime-text-unsuitable' indicates that |
4715 |
the coding system's `mime-charset' is not suitable for MIME text |
the coding system's `mime-charset' is not suitable for MIME text |
4716 |
parts, e.g. utf-16. |
parts, e.g. utf-16. |
4717 |
|
|
4718 |
+++ |
+++ |
4719 |
** New function `decode-coding-inserted-region' decodes a region as if |
*** New function `decode-coding-inserted-region' decodes a region as if |
4720 |
it is read from a file without decoding. |
it is read from a file without decoding. |
4721 |
|
|
|
+++ |
|
|
** Function `translate-region' accepts also a char-table as TABLE |
|
|
argument. |
|
|
|
|
|
+++ |
|
|
** The new translation table `translation-table-for-input' |
|
|
is used for customizing self-insertion. The character to |
|
|
be inserted is translated through it. |
|
|
|
|
4722 |
--- |
--- |
4723 |
** New CCL functions `lookup-character' and `lookup-integer' access |
*** New CCL functions `lookup-character' and `lookup-integer' access |
4724 |
hash tables defined by the Lisp function `define-translation-hash-table'. |
hash tables defined by the Lisp function `define-translation-hash-table'. |
4725 |
|
|
|
+++ |
|
|
** The flags, width, and precision options for %-specifications in function |
|
|
`format' are now documented. Some flags that were accepted but not |
|
|
implemented (such as "*") are no longer accepted. |
|
|
|
|
|
--- |
|
|
** New function `redirect-debugging-output' can be used to redirect |
|
|
debugging output on the stderr file handle to a file. |
|
|
|
|
|
+++ |
|
|
** `makehash' is now obsolete. Use `make-hash-table' instead. |
|
|
|
|
|
+++ |
|
|
** The macro `with-syntax-table' does not copy the table any more. |
|
|
|
|
|
+++ |
|
|
** New variables `gc-elapsed' and `gcs-done' provide extra information |
|
|
on garbage collection. |
|
|
|
|
|
+++ |
|
|
** New function `locale-info' accesses locale information. |
|
|
|
|
|
+++ |
|
|
** The new variable `print-continuous-numbering', when non-nil, says |
|
|
that successive calls to print functions should use the same |
|
|
numberings for circular structure references. This is only relevant |
|
|
when `print-circle' is non-nil. |
|
|
|
|
|
When you bind `print-continuous-numbering' to t, you should |
|
|
also bind `print-number-table' to nil. |
|
|
|
|
|
--- |
|
|
** When pure storage overflows while dumping, Emacs now prints how |
|
|
much pure storage it will approximately need. |
|
|
|
|
|
+++ |
|
|
** File local variables. |
|
|
|
|
|
A file local variables list cannot specify a string with text |
|
|
properties--any specified text properties are discarded. |
|
|
|
|
|
+++ |
|
|
** The variable `safe-local-eval-forms' specifies a list of forms that |
|
|
are ok to evaluate when they appear in an `eval' local variables |
|
|
specification. Normally Emacs asks for confirmation before evaluating |
|
|
such a form, but if the form appears in this list, no confirmation is |
|
|
needed. |
|
|
|
|
4726 |
--- |
--- |
4727 |
** If a function has a non-nil `safe-local-eval-function' property, |
*** New function quail-find-key returns a list of keys to type in the |
4728 |
that means it is ok to evaluate some calls to that function when it |
current input method to input a character. |
|
appears in an `eval' local variables specification. If the property |
|
|
is t, then any form calling that function with constant arguments is |
|
|
ok. If the property is a function or list of functions, they are called |
|
|
with the form as argument, and if any returns t, the form is ok to call. |
|
|
|
|
|
If the form is not "ok to call", that means Emacs asks for |
|
|
confirmation as before. |
|
|
|
|
|
+++ |
|
|
** Renamed hooks to better follow the naming convention: |
|
|
find-file-hooks to find-file-hook, |
|
|
find-file-not-found-hooks to find-file-not-found-functions, |
|
|
write-file-hooks to write-file-functions, |
|
|
write-contents-hooks to write-contents-functions, |
|
|
x-lost-selection-hooks to x-lost-selection-functions, |
|
|
x-sent-selection-hooks to x-sent-selection-functions. |
|
|
Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). |
|
|
|
|
|
+++ |
|
|
** The new variable `delete-frame-functions' replaces `delete-frame-hook'. |
|
|
It was renamed to follow the naming conventions for abnormal hooks. The old |
|
|
name remains available as an alias, but has been marked obsolete. |
|
|
|
|
|
+++ |
|
|
** The new function `file-remote-p' tests a file name and returns |
|
|
non-nil if it specifies a remote file (one that Emacs accesses using |
|
|
its own special methods and not directly through the file system). |
|
|
The value in that case is an identifier for the remote file system. |
|
4729 |
|
|
4730 |
+++ |
** Mode line changes: |
|
** Functions `get' and `plist-get' no longer signals an error for |
|
|
a malformed property list. They also detect cyclic lists. |
|
4731 |
|
|
4732 |
+++ |
+++ |
4733 |
** The function `atan' now accepts an optional second argument. |
*** New function `format-mode-line'. |
|
|
|
|
When called with 2 arguments, as in `(atan Y X)', `atan' returns the |
|
|
angle in radians between the vector [X, Y] and the X axis. (This is |
|
|
equivalent to the standard C library function `atan2'.) |
|
|
|
|
|
+++ |
|
|
** New function format-mode-line. |
|
4734 |
|
|
4735 |
This returns the mode-line or header-line of the selected (or a |
This returns the mode-line or header-line of the selected (or a |
4736 |
specified) window as a string with or without text properties. |
specified) window as a string with or without text properties. |
4737 |
|
|
4738 |
+++ |
+++ |
4739 |
** The new mode-line construct `(:propertize ELT PROPS...)' can be |
*** The new mode-line construct `(:propertize ELT PROPS...)' can be |
4740 |
used to add text properties to mode-line elements. |
used to add text properties to mode-line elements. |
4741 |
|
|
4742 |
+++ |
+++ |
4743 |
** The new `%i' and `%I' constructs for `mode-line-format' can be used |
*** The new `%i' and `%I' constructs for `mode-line-format' can be used |
4744 |
to display the size of the accessible part of the buffer on the mode |
to display the size of the accessible part of the buffer on the mode |
4745 |
line. |
line. |
4746 |
|
|
4747 |
--- |
** Menu manipulation changes: |
|
** Indentation of simple and extended loop forms has been added to the |
|
|
cl-indent package. The new user options |
|
|
`lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and |
|
|
`lisp-simple-loop-indentation' can be used to customize the |
|
|
indentation of keywords and forms in loop forms. |
|
|
|
|
|
--- |
|
|
** Indentation of backquoted forms has been made customizable in the |
|
|
cl-indent package. See the new user option `lisp-backquote-indentation'. |
|
|
|
|
|
+++ |
|
|
** field-beginning and field-end now accept an additional optional |
|
|
argument, LIMIT. |
|
|
|
|
|
+++ |
|
|
** define-abbrev now accepts an optional argument SYSTEM-FLAG. If |
|
|
non-nil, this marks the abbrev as a "system" abbrev, which means that |
|
|
it won't be stored in the user's abbrevs file if he saves the abbrevs. |
|
|
Major modes that predefine some abbrevs should always specify this |
|
|
flag. |
|
|
|
|
|
--- |
|
|
** describe-vector now takes a second argument `describer' which is |
|
|
called to print the entries' values. It defaults to `princ'. |
|
|
|
|
|
+++ |
|
|
** defcustom and other custom declarations now use a default group |
|
|
(the last prior group defined in the same file) when no :group was given. |
|
|
|
|
|
--- |
|
|
** The new customization type `float' specifies numbers with floating |
|
|
point (no integers are allowed). |
|
|
|
|
|
+++ |
|
|
** emacsserver now runs pre-command-hook and post-command-hook when |
|
|
it receives a request from emacsclient. |
|
|
|
|
|
--- |
|
|
** New function `text-clone-create'. Text clones are chunks of text |
|
|
that are kept identical by transparently propagating changes from one |
|
|
clone to the other. |
|
|
|
|
|
+++ |
|
|
** Functions `user-uid' and `user-real-uid' now return floats if the |
|
|
user UID doesn't fit in a Lisp integer. Function `user-full-name' |
|
|
accepts a float as UID parameter. |
|
|
|
|
|
+++ |
|
|
** New vars `exec-suffixes' and `load-suffixes' used when |
|
|
searching for an executable resp. an elisp file. |
|
|
|
|
|
+++ |
|
|
** Functions from `post-gc-hook' are run at the end of garbage |
|
|
collection. The hook is run with GC inhibited, so use it with care. |
|
|
|
|
|
+++ |
|
|
** The variables most-positive-fixnum and most-negative-fixnum |
|
|
hold the largest and smallest possible integer values. |
|
4748 |
|
|
4749 |
--- |
--- |
4750 |
** On MS Windows, locale-coding-system is used to interact with the OS. |
*** To manipulate the File menu using easy-menu, you must specify the |
|
The Windows specific variable w32-system-coding-system, which was |
|
|
formerly used for that purpose is now an alias for locale-coding-system. |
|
|
|
|
|
--- |
|
|
** New function x-send-client-message sends a client message when |
|
|
running under X. |
|
|
|
|
|
--- |
|
|
** easy-mmode-define-global-mode has been renamed to |
|
|
define-global-minor-mode. The old name remains as an alias. |
|
|
|
|
|
--- |
|
|
** To manipulate the File menu using easy-menu, you must specify the |
|
4751 |
proper name "file". In previous Emacs versions, you had to specify |
proper name "file". In previous Emacs versions, you had to specify |
4752 |
"files", even though the menu item itself was changed to say "File" |
"files", even though the menu item itself was changed to say "File" |
4753 |
several versions ago. |
several versions ago. |
4754 |
|
|
4755 |
--- |
--- |
4756 |
** The dummy function keys made by easymenu are now always lower case. |
*** The dummy function keys made by easy-menu are now always lower case. |
4757 |
If you specify the menu item name "Ada", for instance, it uses `ada' |
If you specify the menu item name "Ada", for instance, it uses `ada' |
4758 |
as the "key" bound by that key binding. |
as the "key" bound by that key binding. |
4759 |
|
|
4760 |
This is relevant only if Lisp code looks for the bindings that were |
This is relevant only if Lisp code looks for the bindings that were |
4761 |
made with easymenu. |
made with easy-menu. |
4762 |
|
|
4763 |
--- |
--- |
4764 |
** `easy-menu-define' now allows you to use nil for the symbol name |
*** `easy-menu-define' now allows you to use nil for the symbol name |
4765 |
if you don't need to give the menu a name. If you install the menu |
if you don't need to give the menu a name. If you install the menu |
4766 |
into other keymaps right away (MAPS is non-nil), it usually doesn't |
into other keymaps right away (MAPS is non-nil), it usually doesn't |
4767 |
need to have a name. |
need to have a name. |
4768 |
|
|
4769 |
--- |
** Operating system access: |
|
** rx.el has new corresponding `symbol-end' and `symbol-start' elements. |
|
|
|
|
|
** New functions, macros, and commands: |
|
|
|
|
|
+++ |
|
|
*** The new function `assoc-string' replaces `assoc-ignore-case' and |
|
|
`assoc-ignore-representation', which are still available, but have |
|
|
been declared obsolete. |
|
|
|
|
|
+++ |
|
|
*** The new function `buffer-local-value' returns the buffer-local |
|
|
binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not |
|
|
have a buffer-local binding in buffer BUFFER, it returns the default |
|
|
value of VARIABLE instead. |
|
|
|
|
|
+++ |
|
|
*** The new function `called-interactively-p' does what many people |
|
|
have mistakenly believed `interactive-p' did: it returns t if the |
|
|
calling function was called through `call-interactively'. This should |
|
|
only be used when you cannot add a new "interactive" argument to the |
|
|
command. |
|
|
|
|
|
*** The new function copy-abbrev-table returns a new abbrev table that |
|
|
is a copy of a given abbrev table. |
|
|
|
|
|
+++ |
|
|
*** New function copy-tree makes a copy of a tree, recursively copying |
|
|
both cars and cdrs. |
|
|
|
|
|
+++ |
|
|
*** New function `delete-dups' destructively removes `equal' |
|
|
duplicates from a list. Of several `equal' occurrences of an element |
|
|
in the list, the first one is kept. |
|
|
|
|
|
+++ |
|
|
*** The new function `filter-buffer-substring' extracts a buffer |
|
|
substring, passes it through a set of filter functions, and returns |
|
|
the filtered substring. It is used instead of `buffer-substring' or |
|
|
`delete-and-extract-region' when copying text into a user-accessible |
|
|
data structure, like the kill-ring, X clipboard, or a register. The |
|
|
list of filter function is specified by the new variable |
|
|
`buffer-substring-filters'. For example, Longlines mode uses |
|
|
`buffer-substring-filters' to remove soft newlines from the copied |
|
|
text. |
|
|
|
|
|
+++ |
|
|
*** New functions frame-current-scroll-bars and window-current-scroll-bars. |
|
|
|
|
|
These functions return the current locations of the vertical and |
|
|
horizontal scroll bars in a frame or window. |
|
4770 |
|
|
4771 |
+++ |
+++ |
4772 |
*** The new primitive `get-internal-run-time' returns the processor |
*** The new primitive `get-internal-run-time' returns the processor |
4773 |
run time used by Emacs since start-up. |
run time used by Emacs since start-up. |
4774 |
|
|
4775 |
+++ |
+++ |
4776 |
*** The new function insert-buffer-substring-as-yank works like |
*** Functions `user-uid' and `user-real-uid' now return floats if the |
4777 |
`insert-buffer-substring', but removes the text properties in the |
user UID doesn't fit in a Lisp integer. Function `user-full-name' |
4778 |
`yank-excluded-properties' list. |
accepts a float as UID parameter. |
|
|
|
|
+++ |
|
|
*** The new function insert-buffer-substring-no-properties is like |
|
|
insert-buffer-substring, but removes all text properties from the |
|
|
inserted substring. |
|
|
|
|
|
+++ |
|
|
*** The new functions `lax-plist-get' and `lax-plist-put' are like |
|
|
`plist-get' and `plist-put', except that they compare the property |
|
|
name using `equal' rather than `eq'. |
|
|
|
|
|
+++ |
|
|
*** New function `line-number-at-pos' returns the line number of the |
|
|
current line in the current buffer, or if optional buffer position is |
|
|
given, line number of corresponding line in current buffer. |
|
|
|
|
|
+++ |
|
|
*** New function `looking-back' checks whether a regular expression matches |
|
|
the text before point. Specifying the LIMIT argument bounds how far |
|
|
back the match can start; this is a way to keep it from taking too long. |
|
|
|
|
|
+++ |
|
|
*** New function `macroexpand-all' expands all macros in a form. |
|
|
It is similar to the Common-Lisp function of the same name. |
|
|
One difference is that it guarantees to return the original argument |
|
|
if no expansion is done, which can be tested using `eq'. |
|
|
|
|
|
*** The new function `minibufferp' returns non-nil if its optional |
|
|
buffer argument is a minibuffer. If the argument is omitted, it |
|
|
defaults to the current buffer. |
|
|
|
|
|
+++ |
|
|
*** New function minibuffer-selected-window returns the window which |
|
|
was selected when entering the minibuffer. |
|
|
|
|
|
+++ |
|
|
*** The new function `modify-all-frames-parameters' modifies parameters |
|
|
for all (existing and future) frames. |
|
4779 |
|
|
4780 |
+++ |
+++ |
4781 |
*** New functions posn-at-point and posn-at-x-y return |
*** New function `locale-info' accesses locale information. |
|
click-event-style position information for a given visible buffer |
|
|
position or for a given window pixel coordinate. |
|
4782 |
|
|
4783 |
--- |
--- |
4784 |
*** New function quail-find-key returns a list of keys to type in the |
*** On MS Windows, locale-coding-system is used to interact with the OS. |
4785 |
current input method to input a character. |
The Windows specific variable w32-system-coding-system, which was |
4786 |
|
formerly used for that purpose is now an alias for locale-coding-system. |
|
+++ |
|
|
*** The new function `rassq-delete-all' deletes all elements from an |
|
|
alist whose cdr is `eq' to a specified value. |
|
|
|
|
|
+++ |
|
|
*** The new function remove-list-of-text-properties is almost the same |
|
|
as `remove-text-properties'. The only difference is that it takes a |
|
|
list of property names as argument rather than a property list. |
|
|
|
|
|
+++ |
|
|
*** The new primitive `set-file-times' sets a file's access and |
|
|
modification times. Magic file name handlers can handle this |
|
|
operation. |
|
|
|
|
|
+++ |
|
|
*** New function substring-no-properties returns a substring without |
|
|
text properties. |
|
|
|
|
|
+++ |
|
|
*** The new function syntax-after returns the syntax code |
|
|
of the character after a specified buffer position, taking account |
|
|
of text properties as well as the character code. |
|
|
|
|
|
+++ |
|
|
*** `syntax-class' extracts the class of a syntax code (as returned |
|
|
by syntax-after). |
|
|
|
|
|
+++ |
|
|
*** New function `tool-bar-local-item-from-menu' |
|
|
|
|
|
The `tool-bar-add-item-from-menu' must not be used (as previously |
|
|
recommended) for making entries in the tool bar for local keymaps. |
|
|
Instead, use the function `tool-bar-local-item-from-menu', which lets |
|
|
you specify the map to use as an argument. |
|
|
|
|
|
+++ |
|
|
*** New function window-body-height. |
|
|
This is like window-height but does not count the mode line |
|
|
or the header line. |
|
|
|
|
|
+++ |
|
|
*** (while-no-input BODY...) runs BODY, but only so long as no input |
|
|
arrives. If the user types or clicks anything, BODY stops as if a |
|
|
quit had occurred. while-no-input returns the value of BODY, if BODY |
|
|
finishes. It returns nil if BODY was aborted. |
|
|
|
|
|
+++ |
|
|
*** New macro with-local-quit temporarily sets inhibit-quit to nil for use |
|
|
around potentially blocking or long-running code in timers |
|
|
and post-command-hooks. |
|
|
|
|
|
** New packages: |
|
|
|
|
|
*** The new package syntax.el provides an efficient way to find the |
|
|
current syntactic context (as returned by parse-partial-sexp). |
|
|
|
|
|
*** The new package bindat.el provides functions to unpack and pack |
|
|
binary data structures, such as network packets, to and from Lisp |
|
|
data structures. |
|
4787 |
|
|
4788 |
--- |
--- |
4789 |
*** The TCL package tcl-mode.el was replaced by tcl.el. |
*** New function `redirect-debugging-output' can be used to redirect |
4790 |
This was actually done in Emacs-21.1, and was not documented. |
debugging output on the stderr file handle to a file. |
|
|
|
|
+++ |
|
|
*** The new package button.el implements simple and fast `clickable buttons' |
|
|
in emacs buffers. `buttons' are much lighter-weight than the `widgets' |
|
|
implemented by widget.el, and can be used by lisp code that doesn't |
|
|
require the full power of widgets. Emacs uses buttons for such things |
|
|
as help and apropos buffers. |
|
4791 |
|
|
4792 |
--- |
** Miscellaneous: |
|
*** master-mode.el implements a minor mode for scrolling a slave |
|
|
buffer without leaving your current buffer, the master buffer. |
|
4793 |
|
|
4794 |
It can be used by sql.el, for example: the SQL buffer is the master |
+++ |
4795 |
and its SQLi buffer is the slave. This allows you to scroll the SQLi |
*** A number of hooks have been renamed to better follow the conventions: |
|
buffer containing the output from the SQL buffer containing the |
|
|
commands. |
|
4796 |
|
|
4797 |
This is how to use sql.el and master.el together: the variable |
find-file-hooks to find-file-hook, |
4798 |
sql-buffer contains the slave buffer. It is a local variable in the |
find-file-not-found-hooks to find-file-not-found-functions, |
4799 |
SQL buffer. |
write-file-hooks to write-file-functions, |
4800 |
|
write-contents-hooks to write-contents-functions, |
4801 |
|
x-lost-selection-hooks to x-lost-selection-functions, |
4802 |
|
x-sent-selection-hooks to x-sent-selection-functions, |
4803 |
|
delete-frame-hook to delete-frame-functions. |
4804 |
|
|
4805 |
(add-hook 'sql-mode-hook |
In each case the old name remains as an alias for the moment. |
|
(function (lambda () |
|
|
(master-mode t) |
|
|
(master-set-slave sql-buffer)))) |
|
|
(add-hook 'sql-set-sqli-hook |
|
|
(function (lambda () |
|
|
(master-set-slave sql-buffer)))) |
|
4806 |
|
|
4807 |
+++ |
+++ |
4808 |
*** New Lisp library testcover.el works with edebug to help you determine |
*** local-write-file-hooks is marked obsolete |
|
whether you've tested all your Lisp code. Function testcover-start |
|
|
instruments all functions in a given file. Then test your code. Function |
|
|
testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to |
|
|
show where coverage is lacking. Command testcover-next-mark (bind it to |
|
|
a key!) will move point forward to the next spot that has a splotch. |
|
4809 |
|
|
4810 |
Normally, a red splotch indicates the form was never completely |
Use the LOCAL arg of `add-hook'. |
|
evaluated; a brown splotch means it always evaluated to the same |
|
|
value. The red splotches are skipped for forms that can't possibly |
|
|
complete their evaluation, such as `error'. The brown splotches are |
|
|
skipped for forms that are expected to always evaluate to the same |
|
|
value, such as (setq x 14). |
|
|
|
|
|
For difficult cases, you can add do-nothing macros to your code to |
|
|
help out the test coverage tool. The macro `noreturn' suppresses a |
|
|
red splotch. It is an error if the argument to `noreturn' does |
|
|
return. The macro 1value suppresses a brown splotch for its argument. |
|
|
This macro is a no-op except during test-coverage -- then it signals |
|
|
an error if the argument actually returns differing values. |
|
4811 |
|
|
4812 |
--- |
--- |
4813 |
** Support for Mocklisp has been removed. |
*** New function `x-send-client-message' sends a client message when |
4814 |
|
running under X. |
|
--- |
|
|
** The function insert-string is now obsolete. |
|
4815 |
|
|
4816 |
* Installation changes in Emacs 21.3 |
* Installation changes in Emacs 21.3 |
4817 |
|
|