Mercurial > hg > xemacs-beta
comparison etc/NEWS @ 464:5aa1854ad537 r21-2-47
Import from CVS: tag r21-2-47
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:45:51 +0200 |
parents | 0784d089fdc9 |
children | 52626a2f02ef |
comparison
equal
deleted
inserted
replaced
463:a158004111cd | 464:5aa1854ad537 |
---|---|
1 -*- mode:outline -*- | 1 -*- mode:outline -*- |
2 | 2 |
3 * Introduction | 3 * Introduction |
4 ============== | 4 ============== |
5 | 5 |
6 This file presents some general information about XEmacs. It is | 6 This file presents the changes in recent XEmacs versions. It |
7 primarily about the changes in recent XEmacs versions and its release | 7 primarily documents user-visible (interface) changes, but also |
8 history. | 8 includes internal changes of possible interest to the users. When |
9 describing new features, we try to also document ways of reverting to | |
10 the old behavior, where applicable. If you dislike a recent change in | |
11 how XEmacs behaves, this file might contain a remedy. | |
9 | 12 |
10 Use `C-c C-f' to move to the next equal level of outline, and | 13 Use `C-c C-f' to move to the next equal level of outline, and |
11 `C-c C-b' to move to previous equal level. `C-h m' will give more | 14 `C-c C-b' to move to previous equal level. `C-h m' will give more |
12 info about the Outline mode. Many commands are also available through | 15 info about the Outline mode. Many commands are also available through |
13 the menubar. | 16 the menubar. |
15 Users who would like to know which capabilities have been introduced | 18 Users who would like to know which capabilities have been introduced |
16 in each release should look at the appropriate section of this file. | 19 in each release should look at the appropriate section of this file. |
17 Starting with version 20.0, XEmacs includes ChangeLogs, which can be | 20 Starting with version 20.0, XEmacs includes ChangeLogs, which can be |
18 consulted for a more detailed list of changes. | 21 consulted for a more detailed list of changes. |
19 | 22 |
20 Users interested in some of the details of how XEmacs differs from GNU | |
21 Emacs should read the section "What's Different?" near the end of this | |
22 file. | |
23 | |
24 N.B. The term "GNU Emacs" refers to any release of Emacs Version | 23 N.B. The term "GNU Emacs" refers to any release of Emacs Version |
25 19 from the Free Software Foundation's GNU Project. (We do not | 24 19 from the Free Software Foundation's GNU Project. (We do not |
26 say just "Emacs" as Richard M. Stallman ["RMS"] prefers, because | 25 say just "Emacs" as Richard M. Stallman ["RMS"] prefers, because |
27 it is clearly a more generic term.) The term "XEmacs" refers to | 26 it is clearly a more generic term.) The term "XEmacs" refers to |
28 this program or to its predecessors "Era" and "Lucid Emacs". The | 27 this program or sometimes to its predecessors "Era" and "Lucid |
29 predecessor of all these program is called "Emacs 18". When no | 28 Emacs". The predecessor of all these program is called "Emacs |
30 particular version is implied, "Emacs" will be used. | 29 18". When no particular version is implied, "Emacs" will be used. |
31 | 30 |
32 | 31 |
33 * Changes in XEmacs 21.2 | 32 * Changes in XEmacs 21.4 |
34 ======================== | 33 ======================== |
35 | |
36 ** The modeline's text is now scrollable. Please refer to the variable | |
37 `modeline-scrolling-method' for more information. | |
38 | 34 |
39 ** The delete key now deletes forward by default. | 35 ** The delete key now deletes forward by default. |
40 | 36 |
41 This is regulated by the variable `delete-key-deletes-forward', which | 37 This is regulated by the variable `delete-key-deletes-forward', which |
42 now defaults to t. `delete-key-deletes-forward' takes effect only on | 38 now defaults to t. `delete-key-deletes-forward' takes effect only on |
48 Unless our implementation has bugs, the only reason why you would want | 44 Unless our implementation has bugs, the only reason why you would want |
49 to set `delete-key-deletes-forward' to nil is if you want to use the | 45 to set `delete-key-deletes-forward' to nil is if you want to use the |
50 Delete key to delete backwards, despite the presence (according to | 46 Delete key to delete backwards, despite the presence (according to |
51 Xlib) of a BackSpace key on the keyboard. | 47 Xlib) of a BackSpace key on the keyboard. |
52 | 48 |
49 ** You can now build XEmacs with support for GTK+ widget set. | |
50 | |
51 XEmacs built that way uses GTK+ to draw menubars, scrollbars, and | |
52 other GUI components, as well GDK for drawing text, choosing fonts, | |
53 allocating colors, etc. Additionally, GTK-XEmacs supports Lisp | |
54 functions for writing your own GTK programs in Emacs Lisp! | |
55 | |
56 To use this, build XEmacs with the `--with-gtk' configure flag. (Of | |
57 course, you'll need to have the GTK+ libraries and header files on the | |
58 system.) Gnome widgets and functionality are supported where | |
59 available, and can be turned off. | |
60 | |
53 ** Shifted motion keys now select text by default. You can turn this | 61 ** Shifted motion keys now select text by default. You can turn this |
54 off by setting `shifted-motion-keys-select-region' to nil. | 62 off by setting `shifted-motion-keys-select-region' to nil. |
55 | 63 |
56 ** You can now set the variable `kill-whole-line' to `always', which | 64 ** There is a new command `kill-entire-line' that always kills the |
57 makes `kill-line' (C-k) delete the entire line always, not just when | 65 entire line at point, regardless of whether the point is at the |
58 the cursor is at the beginning of the line. This behavior, as well as | 66 beginning of line, and regardless of the setting of `kill-whole-line'. |
59 the existing kill-whole-line behavior, now only take effect when | 67 |
60 kill-line is called interactively, although this is a departure from a | 68 ** The variable `kill-whole-line' now only takes effect when kill-line |
61 previous behavior in the case of setting this variable kill-whole-line | 69 is called interactively. Although this is a departure from a previous |
62 to t. It is almost certainly what has always been intended, and most | 70 behavior in the case of setting this variable kill-whole-line to t, |
63 likely the old way of doing things introduced bugs. | 71 it is almost certainly what has always been intended, and most likely |
64 | 72 the old way of doing things introduced bugs. |
65 The new function `historical-kill-line' ignores the `kill-whole-line' | 73 |
66 setting and always gives the historical behavior of only killing to | 74 ** The help buffers created by the plethora of C-h commands now |
67 the end of the line. This function is bound to Sh-C-k, so that the | 75 contain hyperlinks. |
68 kill to end of line behavior is available, even when `kill-whole-line' | 76 |
69 has been customized. | 77 ** The modeline's text is now scrollable. This is controlled by the |
78 variable `modeline-scrolling-method', which you need to set to a | |
79 non-nil value. You can also choose scrolling types; see the docstring | |
80 of `modeline-scrolling-method' for more information. | |
70 | 81 |
71 ** XEmacs menus now have accelerators by default. If a menu item does | 82 ** XEmacs menus now have accelerators by default. If a menu item does |
72 not have an accelerator specified, one is created dynamically, using | 83 not have an accelerator specified, one is created dynamically, using |
73 numbers 1-9 and letters. | 84 numbers 1-9 and letters. |
74 | 85 |
88 ** Incremental search will now highlight all visible matches, making | 99 ** Incremental search will now highlight all visible matches, making |
89 it easier to anticipate where consecutive C-s or C-r will place the | 100 it easier to anticipate where consecutive C-s or C-r will place the |
90 point. If you want to disable the feature, set | 101 point. If you want to disable the feature, set |
91 `isearch-highlight-all-matches' to nil. | 102 `isearch-highlight-all-matches' to nil. |
92 | 103 |
104 ** The "coding systems" feature now works even in an XEmacs compiled | |
105 without international (Mule) support. This means that for example | |
106 XEmacs can recognize newline convention used by the file you are | |
107 editing. | |
108 | |
93 ** You can now use the buffer tabs to switch between buffers. The | 109 ** You can now use the buffer tabs to switch between buffers. The |
94 tabs are located between the toolbar and the uppermost window, in a | 110 tabs are located between the toolbar and the uppermost window, in a |
95 location called "gutter". If you dislike the buffer tabs, you can | 111 location called "gutter". If you dislike the buffer tabs, you can |
96 disable them by customizing `gutter-buffers-tab-visible-p', or by | 112 disable them by customizing `gutter-buffers-tab-visible-p', or by |
97 placing this in your .emacs: | 113 placing this in your .emacs: |
111 ** When you press RET at a minibuffer prompt that provides a default | 127 ** When you press RET at a minibuffer prompt that provides a default |
112 value, the value is stored in history instead of an empty line. Also, | 128 value, the value is stored in history instead of an empty line. Also, |
113 you can now edit the default value by pressing the down arrow, | 129 you can now edit the default value by pressing the down arrow, |
114 accessing the logical "future" value. Not all minibuffer prompts have | 130 accessing the logical "future" value. Not all minibuffer prompts have |
115 yet been converted to support this feature. | 131 yet been converted to support this feature. |
132 | |
133 ** International keysyms are now supported under X. This means that | |
134 XEmacs running under Mule will automatically recognize the keysym | |
135 `scaron' to be the lower-case `s' with caron in the Latin 2 character | |
136 set. (Specifically, it will bind the keysym to `self-insert' and | |
137 augment its `ascii-character' property.) This is very useful with | |
138 XFree under European locales as shipped by recent Linux distributions. | |
139 If XEmacs is compiled without Mule support, the feature still works, | |
140 but it is unaware of different character sets -- it unconditionally | |
141 sets the `ascii-character' property to values in the [160, 256) range. | |
116 | 142 |
117 ** The rectangle functions have been almost completely rewritten in | 143 ** The rectangle functions have been almost completely rewritten in |
118 order to avoid inserting undesirable spaces, notably at the end of | 144 order to avoid inserting undesirable spaces, notably at the end of |
119 lines. Two typical examples of the old behavior were | 145 lines. Two typical examples of the old behavior were |
120 `string-rectangle', which filled all lines up to the right side of the | 146 `string-rectangle', which filled all lines up to the right side of the |
174 | 200 |
175 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). | 201 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). |
176 It will try NAS first, then ESD, then playing native sound directly. | 202 It will try NAS first, then ESD, then playing native sound directly. |
177 | 203 |
178 ** X-Face support is now available under MS-Windows. | 204 ** X-Face support is now available under MS-Windows. |
179 If an X-Face libary built under MS-Windows is available then XEmacs | 205 If an X-Face library built under MS-Windows is available then XEmacs |
180 will use this at build time. | 206 will use this at build time. |
181 | 207 |
182 ** The font-menu is now available under MS-Windows. | 208 ** The font-menu is now available under MS-Windows. |
183 | 209 |
184 ** MS-Windows support for selection is now much more robust. | 210 ** MS-Windows support for selection is now much more robust. |
190 per X. | 216 per X. |
191 | 217 |
192 The only thing selection doesn't do is set the clipboard automatically | 218 The only thing selection doesn't do is set the clipboard automatically |
193 as this would break the MS-Windows model. If you want this behavior | 219 as this would break the MS-Windows model. If you want this behavior |
194 then set `selection-sets-clipboard' to t. | 220 then set `selection-sets-clipboard' to t. |
221 | |
222 ** Motif selection support is now more correct (but slower) in its behaviour. | |
223 | |
224 Changes have been made to allow correct operation of cut/copy/paste | |
225 operations between native widgets and XEmacs buffers. However, this | |
226 can lead to a lot of X traffic which slows down the performance of | |
227 `C-k'. If you want the old behaviour then set | |
228 `x-selection-strict-motif-ownership' to nil. | |
195 | 229 |
196 ** Mail spool locking now works correctly. | 230 ** Mail spool locking now works correctly. |
197 XEmacs has always come with a little auxiliary program, movemail, | 231 XEmacs has always come with a little auxiliary program, movemail, |
198 which moves mail out of the system's spool area into user storage. To | 232 which moves mail out of the system's spool area into user storage. To |
199 coordinate between XEmacs, the mail delivery agent, and other mail | 233 coordinate between XEmacs, the mail delivery agent, and other mail |
206 When installing XEmacs, make sure you configure it according to your | 240 When installing XEmacs, make sure you configure it according to your |
207 environment's mail spool locking conventions. When you're using a | 241 environment's mail spool locking conventions. When you're using a |
208 binary kit, set the `mail-lock-method' variable at startup, or the | 242 binary kit, set the `mail-lock-method' variable at startup, or the |
209 EMACSLOCKMETHOD environment variable. | 243 EMACSLOCKMETHOD environment variable. |
210 | 244 |
211 ** Init file will move to ~/.xemacs/init.el. | 245 ** Indentation no longer indents comments that begin at column zero. |
212 | 246 This makes it easy to deal with commented out regions of code. |
213 If `~/.xemacs/init.el' exists, XEmacs will prefer it over `~/.emacs' | 247 |
214 as an init file. The file may be byte-compiled as | 248 ** Init file changes. |
215 `~/.xemacs/init.elc'. | 249 |
216 | 250 *** XEmacs now supports a `~/.xemacs/init.el' startup file. If |
217 Future versions of XEmacs will stop supporting `~/.emacs' as an init | 251 it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'. The |
218 file. XEmacs offers automatic migration upon startup. | 252 file may be byte-compiled as `~/.xemacs/init.elc'. |
219 | 253 |
220 ** Custom file will move to ~/.xemacs/custom.el. | 254 If present, the `~/.xemacs/' directory may contain startup files for |
255 XEmacs packages that support it. | |
256 | |
257 *** Init file in your home directory may be called `.emacs.el'. | |
258 | |
259 Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file | |
260 located in your home directory `.emacs.el'. Formerly the name had to | |
261 be `.emacs'. If you use the name `.emacs.el', you can byte-compile | |
262 the file in the usual way. | |
263 | |
264 If both `.emacs' and `.emacs.el' exist, the latter file is the one | |
265 that is used. | |
266 | |
267 *** New command-line switches -user-init-file and -user-init-directory. | |
268 These can be used to specify alternate locations for what is normally | |
269 ~/.emacs and ~/.xemacs. | |
270 | |
271 Moreover, the `-user <user>' command-line option (which used to only | |
272 work in unpredictable ways) is now equivalent to `-user-init-file | |
273 ~<user>/.xemacs/init.el -user-init-directory ~<user>/.xemacs', or | |
274 `-user-init-file ~<user>/.emacs -user-init-directory ~<user>/.xemacs', | |
275 whichever init file comes first. | |
276 | |
277 *** Custom file will move to ~/.xemacs/custom.el. | |
221 | 278 |
222 Whereas customize settings were formerly stored in the regular init | 279 Whereas customize settings were formerly stored in the regular init |
223 file, XEmacs now prefers them to be in a separate file | 280 file, XEmacs now prefers them to be in a separate file |
224 `~/.xemacs/custom.el', completely under automatic control. This | 281 `~/.xemacs/custom.el', completely under automatic control. This |
225 change goes with the migration of the init file, and XEmacs offers | 282 change goes with the migration of the init file, and XEmacs offers |
226 automatic migration upon startup. | 283 automatic migration upon startup. |
227 | |
228 ** Init file may be called .emacs.el. | |
229 | |
230 For the time being, like in GNU Emacs 20.4 and on, you can now name | |
231 the XEmacs init file `.emacs.el'. Formerly the name had to be | |
232 `.emacs'. If you use the name `.emacs.el', you can byte-compile the | |
233 file in the usual way. | |
234 | |
235 If both `.emacs' and `.emacs.el' exist, the latter file is the one | |
236 that is used. | |
237 | |
238 ** New command-line switches -user-init-file and -user-init-directory. | |
239 These can be used to specify alternate locations for what is normally | |
240 ~/.emacs and ~/.xemacs. | |
241 | |
242 Moreover, -user <user> (which used to only work in unpredictable ways) | |
243 is now equivalent to -user-init-file ~<user>/.xemacs/init.el | |
244 -user-init-directory ~<user>/.xemacs. or -user-init-file | |
245 ~<user>/.emacs -user-init-directory ~<user>/.xemacs, whichever init | |
246 file comes first. | |
247 | 284 |
248 ** New variable `mswindows-alt-by-itself-activates-menu'. | 285 ** New variable `mswindows-alt-by-itself-activates-menu'. |
249 If you set this variable to nil then pressing and releasing the Alt | 286 If you set this variable to nil then pressing and releasing the Alt |
250 key under MS-Windows will no longer activate the menubar. The default | 287 key under MS-Windows will no longer activate the menubar. The default |
251 is t. This is not to be confused with `menu-accelerator-enabled', | 288 is t. This is not to be confused with `menu-accelerator-enabled', |
266 It is now possible to build XEmacs so that the programming interface | 303 It is now possible to build XEmacs so that the programming interface |
267 to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp. | 304 to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp. |
268 Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, | 305 Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, |
269 but have not been tested) and 7.0-beta1. | 306 but have not been tested) and 7.0-beta1. |
270 | 307 |
308 ** Help functions (e.g. `C-h f') now know how to print macro argument | |
309 lists. If your macro definition included an argument list for the | |
310 sake of help output, you no longer need to do that. | |
311 | |
312 ** Mule changes. | |
313 | |
314 *** Windows 1251 code page is now supported as coding system | |
315 `windows-1251'. | |
316 | |
317 *** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic support now | |
318 available. | |
319 | |
320 *** The appropriate characters in Latin 3 and Latin 4 character sets | |
321 are correctly defined as words. | |
322 | |
323 *** The default coding-priority-list is now safer. This means that if | |
324 you have no language environment set, Mule no longer automatically | |
325 recognizes ISO 2022 escapes in your files. This makes editing binary | |
326 files safe. | |
327 | |
271 ** Etags changes. | 328 ** Etags changes. |
272 | 329 |
273 *** In DOS, etags looks for file.cgz if it cannot find file.c. | 330 *** In DOS, etags looks for file.cgz if it cannot find file.c. |
274 | 331 |
275 *** New option --ignore-case-regex is an alternative to --regex. It is now | 332 *** New option --ignore-case-regex is an alternative to --regex. It is now |
285 "operator+", without spaces between the keyword and the operator. | 342 "operator+", without spaces between the keyword and the operator. |
286 | 343 |
287 *** New language Ada: tags are functions, procedures, packages, tasks, and | 344 *** New language Ada: tags are functions, procedures, packages, tasks, and |
288 types. | 345 types. |
289 | 346 |
290 *** In Fortran, procedure is no more tagged. | 347 *** In Fortran, procedure is no longer tagged. |
291 | 348 |
292 *** In Java, tags are created for "interface". | 349 *** In Java, tags are created for "interface". |
293 | 350 |
294 *** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs | 351 *** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs |
295 are now tagged. | 352 are now tagged. |
301 | 358 |
302 *** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is | 359 *** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is |
303 for PSWrap. | 360 for PSWrap. |
304 | 361 |
305 | 362 |
306 * Lisp and internal changes in XEmacs 21.2 | 363 * Lisp and internal changes in XEmacs 21.4 |
307 ========================================== | 364 ========================================== |
308 | 365 |
309 ** A new portable dumper is available for beta testing. | 366 ** A new portable dumper is available for beta testing. |
310 | 367 |
311 Olivier Galibert has written a portable dumper for XEmacs, based on | 368 Olivier Galibert has written a portable dumper for XEmacs, based on |
312 initial work by Kyle Jones. Normally, XEmacs C sources link into an | 369 initial work by Kyle Jones. To perform even the most basic editor, |
313 executable called `temacs', which loads the Lisp code and "unexecs" | 370 XEmacs requires some amount of Lisp code to be loaded. To avoid |
314 into a proper `xemacs' executable. The unexec() process is hard to | 371 repeating the expensive loading process at every startup, XEmacs is |
372 built in a special way. Its C sources link into an executable called | |
373 `temacs', which loads the bootstrap Lisp code and uses a special | |
374 "unexec" call to dump the resulting memory image into a proper | |
375 `xemacs' executable on disk. The unexec() process is hard to | |
315 implement correctly and makes XEmacs very hard to port to new | 376 implement correctly and makes XEmacs very hard to port to new |
316 operating systems, or even to new releases of old systems. | 377 operating systems, or even to new releases of old systems. |
317 | 378 |
318 A portable dumper is a different approach to dumping: instead of | 379 The new portable dumper uses a different approach to dumping: instead |
319 dumping full-fledged executable, it only dumps out the initialized | 380 of dumping full-fledged executable, it only dumps out the initialized |
320 data structures (both Lisp and C) into an external file. A normally | 381 data structures (both Lisp and C) into an external file. A normally |
321 running XEmacs only needs to mmap() that file and relocate a bit to | 382 running XEmacs only needs to mmap that file and relocate a bit to get |
322 get to the initialized data. In that scheme, there is no difference | 383 to the initialized data. In that scheme, there is no difference |
323 between `temacs' and `xemacs'. | 384 between `temacs' and `xemacs'. |
324 | 385 |
325 This is all very experimental, though. Configure with `--pdump' to | 386 Unfortunately, the portable dumper has not been completely finished |
326 try testing it. | 387 for this release, and will not be used by default. However, if you |
388 wish to experiment with it, or if you need to compile XEmacs on a new | |
389 and unsupported platform, you can test it by configuring XEmacs with | |
390 `--pdump' flag. | |
327 | 391 |
328 ** Much effort has been invested to make XEmacs Lisp faster: | 392 ** Much effort has been invested to make XEmacs Lisp faster: |
329 | 393 |
330 *** Many basic lisp operations are now faster. | 394 *** Many basic lisp operations are now faster. |
331 This is especially the case when running a Mule-enabled XEmacs. | 395 This is especially the case when running a Mule-enabled XEmacs. |
332 | 396 |
333 A general overhaul of the lisp engine should produce a speedup of 1.4 | 397 A general overhaul of the lisp engine should produce a speedup of 1.4 |
334 in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs. These numbers were | 398 in a non-Mule XEmacs, and 2.1 in a Mule XEmacs. These numbers were |
335 obtained running `(byte-compile "simple.el")', which should be a | 399 obtained running `(byte-compile "simple.el")', which should be a |
336 pretty typical test of "pure" Lisp. | 400 pretty typical test of "pure" Lisp. |
337 | 401 |
338 *** Lisp hash tables have been re-implemented. The Common Lisp style | 402 *** Lisp hash tables have been re-implemented. The Common Lisp style |
339 hash table interface has been made standard, and moved from cl.el into | 403 hash table interface has been made standard, and moved from cl.el into |
342 makes intensive use of hash tables. | 406 makes intensive use of hash tables. |
343 | 407 |
344 *** The garbage collector has been tuned, leading to a speedup of | 408 *** The garbage collector has been tuned, leading to a speedup of |
345 1.16. | 409 1.16. |
346 | 410 |
411 *** The byte-compiler and the byte-optimizer have been tuned to | |
412 produce better code in many small ways. | |
413 | |
347 *** The family of functions that iterate over lists, like `memq', and | 414 *** The family of functions that iterate over lists, like `memq', and |
348 `rassq', have been made a little faster (typically 1.3). | 415 `rassq', have been made a little faster (typically 1.3). |
349 | 416 |
350 *** Lisp function calls are faster, by approximately a factor of two. | 417 *** Lisp function calls are faster, by approximately a factor of two. |
351 However, defining inline functions (via defsubst) still makes sense | 418 However, defining inline functions (via defsubst) still makes sense |
375 usage. | 442 usage. |
376 | 443 |
377 The buffers-tab functionality and progress gauge have been implemented | 444 The buffers-tab functionality and progress gauge have been implemented |
378 using this feature. | 445 using this feature. |
379 | 446 |
380 ** `user-init-file' and `user-init-directory' are now absolute | 447 ** A new Windows installer, netinstall ported from Cygwin. |
381 file/directory names. Previously, both variables used to be relative | 448 |
382 to (concat "~" init-file-user). This turned out to be too complicated | 449 Nearly complete automation of the XEmacs install process from |
383 for most packages (and some core Lisp files) to use correctly. Also, | 450 ftp.xemacs.org. Includes selection of Lisp packages to install, etc. |
384 the `init-file-user' variable has been obsoleted in the process. | 451 |
452 ** Syntax tables may now be specified for a part of a buffer by | |
453 attaching the `syntax-table' property to an extent. For compatibility | |
454 with GNU Emacs, you may use the text-property interface to achieve the | |
455 same result. | |
456 | |
457 ** Case translation now supports international characters. | |
458 | |
459 *** Instead of being lists of 256-character strings, case tables are | |
460 now opaque objects. The interface to access them is almost the same, | |
461 except it now works for international characters, and you can set the | |
462 case pairs using `put-case-table-pair'. `set-case-table' and friends | |
463 still support the old list/string based interface for backward | |
464 compatibility. | |
465 | |
466 *** As a consequence of this change, functions `downcase' and `upcase' | |
467 as well as all the case-transformation commands now work with | |
468 non-ASCII characters. Built-in tables cover all the Latin character | |
469 sets that we support. If your language has a distinction between | |
470 upper and lower case that is not handled by XEmacs/Mule, please let us | |
471 know. | |
472 | |
473 *** The code that implements case-insensitive search has been modified | |
474 to respect the case table settings. This also applies to regexp | |
475 search. | |
476 | |
477 ** Values of variables `user-init-file' and `user-init-directory' are | |
478 now absolute file/directory names. Previously, both variables used to | |
479 be relative to `(concat "~" init-file-user)'. This turned out to be | |
480 too complicated for most packages (and some core Lisp files) to use | |
481 correctly. Also, the `init-file-user' variable has been obsoleted in | |
482 the process. | |
385 | 483 |
386 The user-visible options like `-u' have not changed their behavior. | 484 The user-visible options like `-u' have not changed their behavior. |
387 | 485 |
388 ** XEmacs finally has an automated test suite! | 486 ** XEmacs finally has an automated test suite! |
389 Although this is not yet very sophisticated, it is already responsible | 487 Although this is not yet very sophisticated, it is already responsible |
425 `read-shell-command', `read-from-minibuffer', and `completing-read' | 523 `read-shell-command', `read-from-minibuffer', and `completing-read' |
426 now take an additional argument which specifies the default value. If | 524 now take an additional argument which specifies the default value. If |
427 this argument is non-nil, it should be a string; that string is used | 525 this argument is non-nil, it should be a string; that string is used |
428 in two ways: | 526 in two ways: |
429 | 527 |
430 It is returned if the user enters empty input. | 528 * It is returned if the user enters empty input. |
431 It is available through the history command M-n. | 529 * It is available as the logical "future" entry, by pressing the down |
530 arrow. | |
432 | 531 |
433 ** LDAP changes. | 532 ** LDAP changes. |
434 | 533 |
435 *** The LDAP interface now consists of two layers, a low-level layer | 534 *** The LDAP interface now consists of two layers, a low-level layer |
436 that closely matches the LDAP C API, and a more convenient | 535 that closely matches the LDAP C API, and a more convenient |
475 operation. | 574 operation. |
476 | 575 |
477 ** `translate-region' has been improved in several ways. Its TABLE | 576 ** `translate-region' has been improved in several ways. Its TABLE |
478 argument used to be a 256-character string. In addition to this, it | 577 argument used to be a 256-character string. In addition to this, it |
479 can now also be a vector or a char-table, which makes the function | 578 can now also be a vector or a char-table, which makes the function |
480 useful for Mule, which it wasn't. If TABLE a vector or a generic | 579 useful for Mule, which it wasn't. If TABLE is a vector or a generic |
481 char-table, you can map characters to strings instead of to other | 580 char-table, you can map characters to strings instead of to other |
482 characters. For instance: | 581 characters. For instance: |
483 | 582 |
484 (let ((table (make-char-table 'generic))) | 583 (let ((table (make-char-table 'generic))) |
485 (put-char-table ?a "the letter a" table) | 584 (put-char-table ?a "the letter a" table) |
512 (keywordp (intern ":foo")) ; The same as (keywordp :foo) | 611 (keywordp (intern ":foo")) ; The same as (keywordp :foo) |
513 => t | 612 => t |
514 | 613 |
515 This behavior is compatible with other code which treats symbols | 614 This behavior is compatible with other code which treats symbols |
516 beginning with colon as keywords only if they are interned in the | 615 beginning with colon as keywords only if they are interned in the |
517 global obarray. `keywordp' used to wrongly return t in both cases | 616 global obarray. `keywordp' used to wrongly return t in both above |
518 above. | 617 cases. |
618 | |
619 ** The function `replace-in-string' has been rewritten to use | |
620 `replace-match'. This not only makes it much faster, but adds all the | |
621 features of `replace-match'. | |
519 | 622 |
520 ** New variables `this-command-properties' and | 623 ** New variables `this-command-properties' and |
521 `last-command-properties' are now available for communication between | 624 `last-command-properties' are now available for communication between |
522 consecutive commands. Commands should use these to communicate with | 625 consecutive commands. Commands should use these to communicate with |
523 the pre/post-command hooks, subsequent commands, wrapping commands, | 626 the pre/post-command hooks, subsequent commands, wrapping commands, |
527 it possible to add a "one-shot" hook, which is to say a hook that runs | 630 it possible to add a "one-shot" hook, which is to say a hook that runs |
528 only once, and automatically removes itself after the first time it | 631 only once, and automatically removes itself after the first time it |
529 has run. | 632 has run. |
530 | 633 |
531 ** The descriptor that specifies the text of a menu item can now be an | 634 ** The descriptor that specifies the text of a menu item can now be an |
532 evaluated expression. This makes this descriptor parallel with | 635 evaluated expression. This makes it parallel with other descriptors, |
533 others, which can also be expressions. | 636 which can also be expressions. |
534 | 637 |
535 | 638 |
536 * Changes in XEmacs 21.0 | 639 * Changes in XEmacs 21.0 |
537 ======================== | 640 ======================== |
538 | 641 |
1019 configure command line to get it back. | 1122 configure command line to get it back. |
1020 | 1123 |
1021 *** `Info-default-directory-list' is now obsolete. If you want to | 1124 *** `Info-default-directory-list' is now obsolete. If you want to |
1022 change the path which XEmacs uses to search for info files, set | 1125 change the path which XEmacs uses to search for info files, set |
1023 `Info-directory-list' instead. | 1126 `Info-directory-list' instead. |
1127 | |
1128 | |
1129 * For older news, see the file ONEWS. |