Mercurial > hg > xemacs-beta
annotate etc/ONEWS @ 5561:9a93bc90b3bd
Add a defsetf for get-char-table, necessary for the tests in the last commit.
lisp/ChangeLog addition:
2011-09-04 Aidan Kehoe <kehoea@parhasard.net>
* cl-macs.el (get-char-table): Add a defsetf for this.
| author | Aidan Kehoe <kehoea@parhasard.net> |
|---|---|
| date | Sun, 04 Sep 2011 20:35:31 +0100 |
| parents | 5d2981eee77e |
| children |
| rev | line source |
|---|---|
| 464 | 1 -*- mode:outline -*- |
|
5441
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
2 |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
3 Copyright (C) 1996-1997 Steve Baur |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
4 |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
5 This file is part of XEmacs. |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
6 |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
7 XEmacs is free software: you can redistribute it and/or modify it |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
9 Free Software Foundation, either version 3 of the License, or (at your |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
10 option) any later version. |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
11 |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
15 for more details. |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
16 |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
18 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
|
5d2981eee77e
Added copyright notices and GPLV3 or later license to NEWS files.
Mats Lidell <matsl@xemacs.org>
parents:
736
diff
changeset
|
19 |
| 464 | 20 |
| 21 * Changes in XEmacs 20.4 | |
| 22 ======================== | |
| 23 | |
| 24 ** XEmacs 20.4 is a bugfix release with no user-visible changes. | |
| 25 | |
| 26 | |
| 27 * Changes in XEmacs 20.3 | |
| 28 ======================== | |
| 29 | |
| 30 ** Quail input method is now available. | |
| 31 | |
| 32 Quail is a simple key-translation system that allows users to input | |
| 33 any multilingual text from normal ASCII keyboard. This means that | |
| 34 XEmacs with Mule now supports a number of European languages. | |
| 35 | |
| 36 ** More Windows NT support. | |
| 37 | |
| 38 Thanks to efforts of many people, coordinated by David Hobley | |
| 39 <davidh@wr.com.au> and Marc Paquette <marcpa@cam.org>, beta versions | |
| 40 of XEmacs now run on 32-bit Windows platforms (Windows NT and Windows | |
| 41 95). The current betas require having an X server to run XEmacs; | |
| 42 however, a native NT/95 port is in alpha, thanks to Jonathan Harris | |
| 43 <jhar@tardis.ed.ac.uk>. | |
| 44 | |
| 45 The NT development is now coordinated by a mailing list at | |
| 46 <xemacs-nt@xemacs.org>. Mail to <xemacs-nt-request@xemacs.org> to | |
| 47 subscribe. | |
| 48 | |
| 49 ** Multiple TTY frames are now available. | |
| 50 | |
| 51 On consoles that display only one frame at a time (e.g. TTY consoles), | |
| 52 creating a new frame with `C-x 5 2' also raises and selects that | |
| 53 frame. The behavior of window system frames is unchanged. | |
| 54 | |
| 55 ** Package starting changes. | |
| 56 | |
| 57 State of Emacs should never be changed with loading a package. The | |
| 58 following XEmacs packages that used to break this have been changed. | |
| 59 | |
| 60 *** Loading `paren' no longer enables paren-blinking. Use | |
| 61 `paren-set-mode' explicitly, or customize `paren-mode'. | |
| 62 | |
| 63 *** Loading `uniquify' no longer enables uniquify. Set | |
| 64 `uniquify-buffer-name-style' to a legal value. | |
| 65 | |
| 66 *** Loading `time' no longer enables display time. Invoke | |
| 67 `display-time' explicitly. | |
| 68 | |
| 69 *** Loading `jka-compr' no longer enables on-the-fly compression. Use | |
| 70 `toggle-auto-compression' instead. | |
| 71 | |
| 72 *** Loading `id-select' no longer enables its behaviour. Use | |
| 73 `id-select-install' instead. | |
| 74 | |
| 75 ** Zmacs region is not deactivated when an error is signaled. | |
| 76 | |
| 77 The behavior of the zmacs region can now be controlled in the event of | |
| 78 a signaled error. The new variable `errors-deactivate-region' may be | |
| 79 set to nil to revert to the old behaviour. As before, typing C-g | |
| 80 deactivates the region. | |
| 81 | |
| 82 ** Multiple Info `dir' functionality has been merged with GNU Emacs | |
| 83 19.34. | |
| 84 | |
| 85 XEmacs will now correctly merge all the `dir' files in | |
| 86 `Info-directory-list' (initialized from either the `INFOPATH' | |
| 87 env. variable or `Info-default-directory-list'.) These files may be | |
| 88 full-fledged info files containing subnodes or menus. Previously | |
| 89 supported `localdir' files are looked for also, secondary to `dir's. | |
| 90 See the manual for details. | |
| 91 | |
| 92 ** Abbreviations can now contain non-word characters. | |
| 93 | |
| 94 This means that it is finally possible to do such simple things as | |
| 95 define `#in' to expand to `#include' in C mode, `s-c-b' to | |
| 96 `save-current-buffer' in Lisp mode, `call/cc' to | |
| 97 `call-with-current-continuation' in Scheme mode, etc. | |
| 98 | |
| 99 ** `C-x n d' now runs the new command `narrow-to-defun', | |
| 100 which narrows the accessible parts of the buffer to just | |
| 101 the current defun. | |
| 102 | |
| 103 ** The new command `C-x 4 0' (kill-buffer-and-window) kills the | |
| 104 current buffer and deletes the selected window. It asks for | |
| 105 confirmation first. | |
| 106 | |
| 107 ** `ESC ESC ESC' (keyboard-escape-quit) will now correctly abort | |
| 108 recursive edits (as documented.) | |
| 109 | |
| 110 ** arc-mode has a new function called `archive-quit' bound to q, which | |
| 111 quits archive mode in the same fashion dired-quit works. | |
| 112 | |
| 113 ** A `tetris' clone is now available within XEmacs, written by Glynn | |
| 114 Clements. Try it out with `M-x tetris'. | |
| 115 | |
| 116 ** The feature to teach the key bindings of extended commands now | |
| 117 prints the message after the command finishes. After some time, the | |
| 118 previous echo area contents are restored (in case the command prints | |
| 119 something useful). | |
| 120 | |
| 121 ** If you set scroll-conservatively to a small number, then when you | |
| 122 move point a short distance off the screen, XEmacs will scroll the | |
| 123 screen just far enough to bring point back on screen, provided that | |
| 124 does not exceed `scroll-conservatively' lines. | |
| 125 | |
| 126 ** Face background colors now take precedence over the default face | |
| 127 background pixmap, which means that background pixmaps no longer clash | |
| 128 with zmacs-regions, or clickable buttons. | |
| 129 | |
| 130 ** Regexps can now contain additional Perl-like constructs. | |
| 131 | |
| 132 ** Modifiers can be added to a keystroke by preceding it with a `C-x @ | |
| 133 <x>' sequence where <x> is one of letters `S', `c', `m', `a', `h', `s' | |
| 134 corresponding to shift, control, meta, alt, hyper, and super modifiers, | |
| 135 respectively. It is possible to add several modifiers by repeating this | |
| 136 sequence. This feature is especially useful on text terminals where it | |
| 137 allows one to enter keystrokes like, e.g., `M-home'. | |
| 138 | |
| 139 ** An arbitrary keystroke can be generated by entering `C-x @ k | |
| 140 <keysym-name> RET'. For example a sequence: | |
| 141 | |
| 142 C-x @ c C-x @ k b a c k s p a c e RET | |
| 143 | |
| 144 will result in a `C-backspace' keystroke even on text terminals. | |
| 145 | |
| 146 ** Customize changes. | |
| 147 | |
| 148 *** Customize has undergone a massive speedup, and should now operate | |
| 149 acceptably fast. Slowness of the interface used to be the biggest | |
| 150 gripe. | |
| 151 | |
| 152 *** Many more packages have been modified to use the facility, so | |
| 153 almost all of XEmacs options can now be examined through the Customize | |
| 154 groups. | |
| 155 | |
| 156 *** There is a new `browser' mode of traversing customizations, in | |
| 157 many ways easier to follow than the standard one. Try it out with | |
| 158 `M-x customize-browse'. | |
| 159 | |
| 160 ** Pending-delete changes. | |
| 161 | |
| 162 *** Pending-delete is now a minor mode, with the normal minor-mode | |
| 163 semantics and toggle functions. Old functions are left for | |
| 164 compatibility. | |
| 165 | |
| 166 *** Loading pending-del no longer turns on pending-delete mode. In | |
| 167 fact, it is no longer necessary to explicitly load pending-del. All | |
| 168 you need to do to turn on pending-delete is run the pending-delete | |
| 169 function: | |
| 170 | |
| 171 Within XEmacs: Type M-x pending-delete <ret> | |
| 172 not M-x load-library <ret> pending-delete <ret> | |
| 173 | |
| 174 In .emacs: Use (turn-on-pending-delete) | |
| 175 not (load "pending-del") | |
| 176 | |
| 177 ** XEmacs can now save the minibuffer histories from various | |
| 178 minibuffers. To use this feature, add the line: | |
| 179 | |
| 180 (savehist-load) | |
| 181 | |
| 182 to your .emacs. This will load the minibuffer histories (if any) at | |
| 183 startup, as well as instruct XEmacs to save them before exiting. You | |
| 184 can use Customize to add or remove the histories being saved. | |
| 185 | |
| 186 ** The default format for ChangeLog entries (as created by `C-x 4 a') | |
| 187 is now the international ISO 8601 format. | |
| 188 | |
| 189 To revert to the old behaviour, use: | |
| 190 | |
| 191 (setq add-log-time-format 'current-time-string) | |
| 192 | |
| 193 Or `M-x customize RET add-log RET'. | |
| 194 | |
| 195 ** In ChangeLog mode, you can now press `C-c C-c' to save the file | |
| 196 and restore old window configuration, or `C-c C-k' to abandon the | |
| 197 changes. | |
| 198 | |
| 199 ** The key `C-x m' no longer runs the `mail' command directly. | |
| 200 Instead, it runs the command `compose-mail', which invokes the mail | |
| 201 composition mechanism you have selected with the variable | |
| 202 `mail-user-agent'. The default choice of user agent is | |
| 203 `sendmail-user-agent', which gives behavior compatible with the old | |
| 204 behavior. | |
| 205 | |
| 206 C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs | |
| 207 compose-mail-other-frame. | |
| 208 | |
| 209 ** When you kill a buffer that visits a file, if there are any | |
| 210 registers that save positions in the file, these register values no | |
| 211 longer become completely useless. If you try to go to such a register | |
| 212 with `C-x j', then you are asked whether to visit the file again. If | |
| 213 you say yes, it visits the file and then goes to the same position. | |
| 214 | |
| 215 ** When you visit a file that changes frequently outside Emacs--for | |
| 216 example, a log of output from a process that continues to run--it may | |
| 217 be useful for Emacs to revert the file without querying you whenever | |
| 218 you visit the file afresh with `C-x C-f'. | |
| 219 | |
| 220 You can request this behavior for certain files by setting the | |
| 221 variable revert-without-query to a list of regular expressions. If a | |
| 222 file's name matches any of these regular expressions, find-file and | |
| 223 revert-buffer revert the buffer without asking for permission--but | |
| 224 only if you have not edited the buffer text yourself. | |
| 225 | |
| 226 ** Gnuserv changes | |
| 227 | |
| 228 *** The Lisp part of gnuserv has been rewritten to allow for more | |
| 229 flexibility and features. | |
| 230 | |
| 231 *** Many new options and variables are now customizable. Try | |
| 232 `M-x customize RET gnuserv RET'. | |
| 233 | |
| 234 *** The functionality of `gnuattach' and `gnudoit' programs is | |
| 235 provided by `gnuclient', which now accepts the standard `-nw', | |
| 236 `-display', `-eval' and `-f' options. | |
| 237 | |
| 238 ** Etags changes. | |
| 239 | |
| 240 *** In C, C++, Objective C and Java, Etags tags global variables by | |
| 241 default. The resulting tags files are inflated by 30% on average. | |
| 242 Use --no-globals to turn this feature off. Etags can also tag | |
| 243 variables that are members of structure-like constructs, but it does | |
| 244 not by default. Use --members to turn this feature on. | |
| 245 | |
| 246 *** C++ member functions are now recognized as tags. | |
| 247 | |
| 248 *** Java is tagged like C++. In addition, "extends" and "implements" | |
| 249 constructs are tagged. Files are recognised by the extension .java. | |
| 250 | |
| 251 *** Etags can now handle programs written in Postscript. Files are | |
| 252 recognised by the extensions .ps and .pdb (Postscript with C syntax). | |
| 253 In Postscript, tags are lines that start with a slash. | |
| 254 | |
| 255 *** Etags now handles Objective C and Objective C++ code. The usual C and | |
| 256 C++ tags are recognized in these languages; in addition, etags | |
| 257 recognizes special Objective C syntax for classes, class categories, | |
| 258 methods and protocols. | |
| 259 | |
| 260 *** Etags also handles Cobol. Files are recognised by the extension | |
| 261 .cobol. The tagged lines are those containing a word that begins in | |
| 262 column 8 and ends in a full stop, i.e. anything that could be a | |
| 263 paragraph name. | |
| 264 | |
| 265 *** Regexps in Etags now support intervals, as in ed or grep. The syntax of | |
| 266 an interval is \{M,N\}, and it means to match the preceding expression | |
| 267 at least M times and as many as N times. | |
| 268 | |
| 269 ** Ada mode changes. | |
| 270 | |
| 271 *** There is now better support for using find-file.el with Ada mode. | |
| 272 If you switch between spec and body, the cursor stays in the same | |
| 273 procedure (modulo overloading). If a spec has no body file yet, but | |
| 274 you try to switch to its body file, Ada mode now generates procedure | |
| 275 stubs. | |
| 276 | |
| 277 *** There are two new commands: | |
| 278 - `ada-make-local' : invokes gnatmake on the current buffer | |
| 279 - `ada-check-syntax' : check syntax of current buffer. | |
| 280 | |
| 281 The user options `ada-compiler-make', `ada-make-options', | |
| 282 `ada-language-version', `ada-compiler-syntax-check', and | |
| 283 `ada-compile-options' are used within these commands. | |
| 284 | |
| 285 *** Ada mode can now work with Outline minor mode. The outline level | |
| 286 is calculated from the indenting, not from syntactic constructs. | |
| 287 Outlining does not work if your code is not correctly indented. | |
| 288 | |
| 289 *** The new function `ada-gnat-style' converts the buffer to the style of | |
| 290 formatting used in GNAT. It places two blanks after a comment start, | |
| 291 places one blank between a word end and an opening '(', and puts one | |
| 292 space between a comma and the beginning of a word. | |
| 293 | |
| 294 ** New demand based locking implementation | |
| 295 | |
| 296 A faster, but experimental replacement for lazy-lock (called lazy-shot) is | |
| 297 provided. Like lazy-lock it provides demand based and idle time | |
| 298 font-lock-ing. However the lazy-lock versions that came with previous | |
| 299 versions slowed down XEmacs (possibly quite a lot). Lazy-shot solves | |
| 300 this problem by relying on new support from the C code part of XEmacs. | |
| 301 The support however is experimental and will cause some flashing as | |
| 302 parts of the buffer are colored. This likely to change in the future | |
| 303 as the C support is completed. | |
| 304 | |
| 305 The current lazy-shot implementation is mostly interface compatible | |
| 306 with lazy-lock v2.06 (the version shipped with XEmacs is v1.x). | |
| 307 | |
| 308 *** To enable: | |
| 309 1. Despite the flashing, lazy-shot was deemed such an improvement by | |
| 310 the majority of beta testers that it is now the standard method | |
| 311 provided by the options menu. Alternatively add | |
| 312 | |
| 313 (add-hook 'font-lock-mode-hook 'turn-on-lazy-shot) | |
| 314 | |
| 315 to '.emacs'. | |
| 316 2. If you were using lazy-lock before, just replace all occurrences of | |
| 317 "lazy-lock" by "lazy-shot" in your '.emacs' file. | |
| 318 | |
| 319 *** To disable: | |
| 320 | |
| 321 If prefer to use lazy-lock in stead of lazy-shot, put | |
| 322 | |
| 323 (remove-hook 'font-lock-mode-hook 'turn-on-lazy-shot) | |
| 324 (add-hook 'font-lock-mode-hook 'turn-on-lazy-lock) | |
| 325 | |
| 326 at the END of `.emacs'. | |
| 327 | |
| 328 ** RefTeX mode | |
| 329 | |
| 330 RefTeX mode is a new minor mode with special support for \label{}, \ref{} | |
| 331 and \cite{} macros in LaTeX documents. RefTeX distinguishes labels of | |
| 332 different environments (equation, figure, ...) and has full support for | |
| 333 multifile documents. To use it, select a buffer with a LaTeX document and | |
| 334 turn the mode on with M-x reftex-mode. Here are the main user commands: | |
| 335 | |
| 336 C-c ( reftex-label | |
| 337 Creates a label semi-automatically. RefTeX is context sensitive and | |
| 338 knows which kind of label is needed. | |
| 339 | |
| 340 C-c ) reftex-reference | |
| 341 Offers in a menu all labels in the document, along with context of the | |
| 342 label definition. The selected label is referenced as \ref{LABEL}. | |
| 343 | |
| 344 C-c [ reftex-citation | |
| 345 Prompts for a regular expression and displays a list of matching BibTeX | |
| 346 database entries. The selected entry is cited with a \cite{KEY} macro. | |
| 347 | |
| 348 C-c & reftex-view-crossref | |
| 349 Views the cross reference of a \ref{} or \cite{} command near point. | |
| 350 | |
| 351 C-c = reftex-toc | |
| 352 Shows a table of contents of the (multifile) document. From there you | |
| 353 can quickly jump to every section. | |
| 354 | |
| 355 Under X, RefTeX installs a "Ref" menu in the menu bar, with additional | |
| 356 commands. Full documentation and customization examples are in the file | |
| 357 reftex.el. You can use the finder to view this information: | |
| 358 C-h p --> tex --> reftex.el | |
| 359 | |
| 360 | |
| 361 * Lisp and internal changes in XEmacs 20.3 | |
| 362 ========================================== | |
| 363 | |
| 364 ** Autoconf 2 is supported, making XEmacs more conforming to | |
| 365 conventions used by other free software. | |
| 366 | |
| 367 ** `tty-erase-char' is a new variable that reports which character | |
| 368 was set up as the terminal's erase character at the time Emacs was | |
| 369 started. | |
| 370 | |
| 371 ** It is now possible to attach the menubar accelerator keys to menu | |
| 372 entries. Look at the Lispref under Menus->Menu Accelerators for | |
| 373 details. | |
| 374 | |
| 375 ** `insert-file-contents' can now read from a special file, | |
| 376 as long as the arguments VISIT and REPLACE are nil. | |
| 377 | |
| 378 ** `string-to-number' now accepts an optional BASE argument that | |
| 379 specifies which base to use. The default base is 10. | |
| 380 | |
| 381 ** The TIME argument to `format-time-string' is now optional and | |
| 382 defaults to the current time. | |
| 383 | |
| 384 ** The PATTERN argument to `split-string' is now optional and defaults | |
| 385 to whitespace ("[ \f\t\n\r\v]+"). | |
| 386 | |
| 387 ** `set-extent-properties' is a new function that can be used to | |
| 388 change properties of an extent at once, and is analogous to | |
| 389 `set-frame-properties'. | |
| 390 | |
| 391 ** If a format field width is specified as `*', the field width is | |
| 392 now assumed to have been specified as an argument (as in C.) | |
| 393 | |
| 394 (format "%*s" 10 "abc") | |
| 395 => " abc" | |
| 396 | |
| 397 ** The new macro `with-current-buffer' lets you evaluate an expression | |
| 398 conveniently with a different current buffer. It looks like this: | |
| 399 | |
| 400 (with-current-buffer BUFFER BODY-FORMS...) | |
| 401 | |
| 402 BUFFER is the expression that says which buffer to use. | |
| 403 BODY-FORMS say what to do in that buffer. | |
| 404 The old `eval-in-buffer' macro is obsoleted by `with-current-buffer'. | |
| 405 | |
| 406 ** The new primitive `save-current-buffer' saves and restores the | |
| 407 choice of current buffer, like `save-excursion', but without saving or | |
| 408 restoring the value of point or the mark. `with-current-buffer' | |
| 409 works using `save-current-buffer'. | |
| 410 | |
| 411 ** The new macro `with-temp-file' lets you do some work in a new buffer and | |
| 412 write the output to a specified file. Like `progn', it returns the value | |
| 413 of the last form. | |
| 414 | |
| 415 ** The variable `debug-ignored-errors' now works in XEmacs. It allows | |
| 416 one to ignore the debugger for some common errors, even when | |
| 417 `debug-on-error' is t. It has no effect when `debug-on-signal' is | |
| 418 non-nil. | |
| 419 | |
| 420 ** The new function `current-message' returns the message currently | |
| 421 displayed in the echo area, or nil if there is none. | |
| 422 | |
| 423 ** File-access primitive functions no longer discard an extra redundant | |
| 424 directory name from the beginning of the file name. In other words, | |
| 425 they no longer do anything special with // or /~. The same goes for | |
| 426 `expand-file-name'. That conversion is now done only in | |
| 427 `substitute-in-file-name'. | |
| 428 | |
| 429 This makes it possible for a Lisp program to open a file whose name | |
| 430 begins with ~. | |
| 431 | |
| 432 ** The regexp matcher has been extended to recognize the following | |
| 433 constructs, borrowed from Perl: | |
| 434 | |
| 435 *** Additional quantifiers. | |
| 436 | |
| 437 In addition to `*', `+' and `?', XEmacs now recognizes the following | |
| 438 quantifiers: | |
| 439 | |
| 440 \{n\} Match exactly n times | |
| 441 \{n,\} Match at least n times | |
| 442 \{n,m\} Match at least n but not more than m times | |
| 443 | |
| 444 *** Non-greedy quantifiers. | |
| 445 | |
| 446 Any of the standard quantifiers (`*', `+' and others) can now be | |
| 447 followed by an optional `?', which will make them become "non-greedy", | |
| 448 i.e. they will match as little text as possible. Note that the | |
| 449 meanings don't change, just the "gravity." | |
| 450 | |
| 451 *** Shy groups. | |
| 452 | |
| 453 The \(?: ... \) groups things like \( ... \), but doesn't record the | |
| 454 context for backreferences or future use. This is useful when you | |
| 455 need a lot of groups for the sake of priorities, but actually want to | |
| 456 record only one or two. | |
| 457 | |
| 458 ** The new function `regexp-opt' returns an efficient regexp to match | |
| 459 a string. The arguments are STRINGS and (optionally) PAREN. This | |
| 460 function can be used where regexp matching or searching is intensively | |
| 461 used and speed is important, e.g., in Font Lock mode. | |
| 462 | |
| 463 ** The featurep syntax has been extended to resemble the Common Lisp | |
| 464 one, as suggested by Erik Naggum. | |
| 465 | |
| 466 *** The `xemacs' feature is defined in XEmacs by default. | |
| 467 | |
| 468 *** The expression `#+fexp form' is equivalent to | |
| 469 (when (featurep fexp) form), only it is evaluated at read-time. Also, | |
| 470 `#-fexp form' is equivalent to (unless (featurep fexp) form). | |
| 471 | |
| 472 *** In addition to symbols, a FEXP can also be a number, or a logical | |
| 473 operator. Here are some examples: | |
| 474 ;; evaluates to non-nil on XEmacs: | |
| 475 (featurep 'xemacs) | |
| 476 ;; evaluates to non-nil on XEmacs 20.3 or later: | |
| 477 (featurep '(and xemacs 20.03)) | |
| 478 ;; evaluates to non-nil either on Emacs, or on XEmacs built without | |
| 479 ;; X support: | |
| 480 (featurep '(or emacs (and xemacs (not x)))) | |
| 481 | |
| 482 | |
| 483 | |
| 484 * Changes in XEmacs 20.2 | |
| 485 ======================== | |
| 486 | |
| 487 ** Why XEmacs 20.1 is called 20.2 | |
| 488 | |
| 489 Testing of XEmacs 20.1 revealed a number of showstopping bugs at the | |
| 490 very final moment. Instead of confusing the version numbers further, | |
| 491 the `20.1' designation was abandoned, and the release was renamed to | |
| 492 `20.2'. | |
| 493 | |
| 494 ** Delete/backspace keysyms have been separated | |
| 495 | |
| 496 The Delete and Backspace keysyms are now no longer identical. A better | |
| 497 version of delbackspace.el has been added called delbs.el. | |
| 498 | |
| 499 ** XEmacs 20.0 MULE API supported for backwards compatibility | |
| 500 | |
| 501 XEmacs 20.2 primarily supports the MULE 3 API. It now also supports | |
| 502 the XEmacs 20.0 MULE API. | |
| 503 | |
| 504 ** The logo has been changed, and the default background color is | |
| 505 now a shade of gray instead of the eye-burning white. | |
| 506 | |
| 507 The sample .Xdefaults and .emacs files contain examples of how to | |
| 508 revert to the old background color. | |
| 509 | |
| 510 ** Default modeline colors are now less of a color-salad. | |
| 511 | |
| 512 ** The `C-z' key now iconifies only the current X frame. You can use | |
| 513 `C-x C-z' to get the old behavior. | |
| 514 | |
| 515 On the tty frames `C-z' behaves as before. | |
| 516 | |
| 517 ** The command `display-time' now draws a pretty image in the modeline | |
| 518 when new mail arrives. It also supports balloon-help messages. | |
| 519 | |
| 520 ** Various commands that were previously disabled are now enabled, like | |
| 521 eval-expression (`M-:') and upcase-region (`C-x C-u')/downcase-region | |
| 522 (`C-x C-l'). | |
| 523 | |
| 524 ** It is now possible to customize the functions called by XEmacs toolbar. | |
| 525 | |
| 526 Type `M-x customize RET toolbar RET' to customize it. Customizations | |
| 527 include the choice of functions for the buttons to invoke, as well as | |
| 528 a wide choice of mailers and newsreaders to invoked by the respective | |
| 529 functions. | |
| 530 | |
| 531 ** `temp-buffer-shrink-to-fit' now defaults to nil. | |
| 532 | |
| 533 There are unresolved issues regarding this feature, which is why the | |
| 534 XEmacs developers decided to disable it by default. | |
| 535 | |
| 536 ** `ps-print-color-p' now defaults to nil. | |
| 537 | |
| 538 This is because the new default background color is non-white. The | |
| 539 `Printing Options' in the `Options' menu now include an item that | |
| 540 enables color printing, and sets the white background. | |
| 541 | |
| 542 ** `line-number-mode' should be used to get line numbers in the | |
| 543 modeline, and `column-number-mode' to get column numbers. Line | |
| 544 numbers now number from 1 by default. | |
| 545 | |
| 546 ** font-lock-mode will now correctly fontify `int a, b, c;' | |
| 547 expressions in C mode. | |
| 548 | |
| 549 ** The blinking cursor is always "on" during movement. | |
| 550 | |
| 551 ** The XEmacs build process has been changed to make site | |
| 552 administration easier. See lisp/site-load.el for details. | |
| 553 | |
| 554 ** Numerous causes of crashes have been fixed. XEmacs should now be | |
| 555 even more stable than before. | |
| 556 | |
| 557 ** configure no longer defaults to using --with-xim=motif if Motif libraries | |
| 558 are linked. | |
| 559 | |
| 560 There are many bugs in the Xlib XIM support in X11R6.3. | |
| 561 | |
| 562 ** A number of new packages are added, and many packages were | |
| 563 updated. | |
| 564 | |
| 565 ** Gnus-5.4.52, courtesy of Lars Magne Ingebrigtsen | |
| 566 | |
| 567 *** nntp.el has been totally rewritten in an asynchronous fashion. | |
| 568 | |
| 569 *** Article prefetching functionality has been moved up into | |
| 570 Gnus. | |
| 571 | |
| 572 *** Scoring can now be performed with logical operators like | |
| 573 `and', `or', `not', and parent redirection. | |
| 574 | |
| 575 *** Article washing status can be displayed in the | |
| 576 article mode line. | |
| 577 | |
| 578 *** gnus.el has been split into many smaller files. | |
| 579 | |
| 580 *** Suppression of duplicate articles based on Message-ID. | |
| 581 | |
| 582 (setq gnus-suppress-duplicates t) | |
| 583 | |
| 584 *** New variables for specifying what score and adapt files | |
| 585 are to be considered home score and adapt files. See | |
| 586 `gnus-home-score-file' and `gnus-home-adapt-files'. | |
| 587 | |
| 588 *** Groups can inherit group parameters from parent topics. | |
| 589 | |
| 590 *** Article editing has been revamped and is now usable. | |
| 591 | |
| 592 *** Signatures can be recognized in more intelligent fashions. | |
| 593 See `gnus-signature-separator' and `gnus-signature-limit'. | |
| 594 | |
| 595 *** Summary pick mode has been made to look more nn-like. | |
| 596 Line numbers are displayed and the `.' command can be | |
| 597 used to pick articles. | |
| 598 | |
| 599 *** Commands for moving the .newsrc.eld from one server to | |
| 600 another have been added. | |
| 601 | |
| 602 `M-x gnus-change-server' | |
| 603 | |
| 604 *** A way to specify that "uninteresting" fields be suppressed when | |
| 605 generating lines in buffers. | |
| 606 | |
| 607 *** Several commands in the group buffer can be undone with | |
| 608 `M-C-_'. | |
| 609 | |
| 610 *** Scoring can be done on words using the new score type `w'. | |
| 611 | |
| 612 *** Adaptive scoring can be done on a Subject word-by-word basis: | |
| 613 | |
| 614 (setq gnus-use-adaptive-scoring '(word)) | |
| 615 | |
| 616 *** Scores can be decayed. | |
| 617 | |
| 618 (setq gnus-decay-scores t) | |
| 619 | |
| 620 *** Scoring can be performed using a regexp on the Date header. The | |
| 621 Date is normalized to compact ISO 8601 format first. | |
| 622 | |
| 623 *** A new command has been added to remove all data on articles from | |
| 624 the native server. | |
| 625 | |
| 626 `M-x gnus-group-clear-data-on-native-groups' | |
| 627 | |
| 628 *** A new command for reading collections of documents | |
| 629 (nndoc with nnvirtual on top) has been added -- `M-C-d'. | |
| 630 | |
| 631 *** Process mark sets can be pushed and popped. | |
| 632 | |
| 633 *** A new mail-to-news backend makes it possible to post | |
| 634 even when the NNTP server doesn't allow posting. | |
| 635 | |
| 636 *** A new backend for reading searches from Web search engines | |
| 637 (DejaNews, Alta Vista, InReference) has been added. | |
| 638 | |
| 639 Use the `G w' command in the group buffer to create such | |
| 640 a group. | |
| 641 | |
| 642 *** Groups inside topics can now be sorted using the standard | |
| 643 sorting functions, and each topic can be sorted independently. | |
| 644 | |
| 645 See the commands under the `T S' submap. | |
| 646 | |
| 647 *** Subsets of the groups can be sorted independently. | |
| 648 | |
| 649 See the commands under the `G P' submap. | |
| 650 | |
| 651 *** Cached articles can be pulled into the groups. | |
| 652 | |
| 653 Use the `Y c' command. | |
| 654 | |
| 655 *** Score files are now applied in a more reliable order. | |
| 656 | |
| 657 *** Reports on where mail messages end up can be generated. | |
| 658 | |
| 659 `M-x nnmail-split-history' | |
| 660 | |
| 661 *** More hooks and functions have been added to remove junk | |
| 662 from incoming mail before saving the mail. | |
| 663 | |
| 664 See `nnmail-prepare-incoming-header-hook'. | |
| 665 | |
| 666 *** The nnml mail backend now understands compressed article files. | |
| 667 | |
| 668 ** Custom 1.86, courtesy of Per Abrahamsen | |
| 669 | |
| 670 The Customize library enables Emacs Lisp programmers to specify types | |
| 671 of their variables, so that the users can customize them. | |
| 672 | |
| 673 Invoke the customizations buffer using the menus (Customize is at the | |
| 674 top of the Options menu), or using commands `M-x customize', | |
| 675 `M-x customize-variable' and `M-x customize-face'. Customize can save | |
| 676 the changed settings to your `.emacs' file. | |
| 677 | |
| 678 Customize is now the preferred way to change XEmacs settings. Tens of | |
| 679 packages have been converted to take advantage of the Customize | |
| 680 features, including Gnus, Message, Supercite, Psgml, Comint, W3, | |
| 681 cc-mode (and many other programming language modes), ispell.el, | |
| 682 ps-print.el, id-select.el, most of the programming language modes, and | |
| 683 many many more. | |
| 684 | |
| 685 See the "Lisp Changes" section later for a short description of why | |
| 686 and how to add custom support to your Lisp packages. Custom is also | |
| 687 documented in the XEmacs info manuals. | |
| 688 | |
| 689 ** W3-3.0.86, courtesy of William Perry | |
| 690 | |
| 691 Version 3 of Emacs/W3, the Emacs World Wide Web browser, has been | |
| 692 included. It is significantly faster than any of the previous | |
| 693 versions, and contains numerous new features. | |
| 694 | |
| 695 ** AUCTeX-9.7k, courtesy of Per Abrahamsen | |
| 696 | |
| 697 AUC TeX is a comprehensive customizable integrated environment for | |
| 698 writing input files for LaTeX using Emacs. | |
| 699 | |
| 700 AUC TeX lets you run TeX/LaTeX and other LaTeX-related tools, such as | |
| 701 a output filters or post processor from inside Emacs. Especially | |
| 702 `running LaTeX' is interesting, as AUC TeX lets you browse through the | |
| 703 errors TeX reported, while it moves the cursor directly to the | |
| 704 reported error, and displays some documentation for that particular | |
| 705 error. This will even work when the document is spread over several | |
| 706 files. | |
| 707 | |
| 708 AUC TeX automatically indents your `LaTeX-source', not only as you | |
| 709 write it -- you can also let it indent and format an entire document. | |
| 710 It has a special outline feature, which can greatly help you `getting | |
| 711 an overview' of a document. | |
| 712 | |
| 713 Apart from these special features, AUC TeX provides an large range of | |
| 714 handy Emacs macros, which in several different ways can help you write | |
| 715 your LaTeX documents fast and painless. | |
| 716 | |
| 717 ** redo.el-1.01, courtesy of Kyle Jones | |
| 718 | |
| 719 redo.el is a package that implements true redo mechanism in XEmacs | |
| 720 buffers. Once you load it from your `.emacs', you can bind the `redo' | |
| 721 command to a convenient key to use it. | |
| 722 | |
| 723 Emacs' normal undo system allows you to undo an arbitrary number of | |
| 724 buffer changes. These undos are recorded as ordinary buffer changes | |
| 725 themselves. So when you break the chain of undos by issuing some | |
| 726 other command, you can then undo all the undos. The chain of recorded | |
| 727 buffer modifications therefore grows without bound, truncated only at | |
| 728 garbage collection time. | |
| 729 | |
| 730 The redo/undo system is different in two ways: | |
| 731 | |
| 732 *** The undo/redo command chain is only broken by a buffer modification. | |
| 733 | |
| 734 You can move around the buffer or switch buffers and still come back | |
| 735 and do more undos or redos. | |
| 736 | |
| 737 *** The `redo' command rescinds the most recent undo without | |
| 738 recording the change as a _new_ buffer change. | |
| 739 | |
| 740 It completely reverses the effect of the undo, which includes making | |
| 741 the chain of buffer modification records shorter by one, to counteract | |
| 742 the effect of the undo command making the record list longer by one. | |
| 743 | |
| 744 ** edmacro.el-3.10, courtesy of Dave Gillespie, ported to XEmacs by | |
| 745 Hrvoje Niksic. | |
| 746 | |
| 747 Edmacro is a utility that provides easy editing of keyboard macros. | |
| 748 Originally written by Dave Gillespie, it has been mostly rewritten by | |
| 749 Hrvoje Niksic, in order to make it distinguish characters and integer, | |
| 750 as well as to adapt it to XEmacs keysyms. | |
| 751 | |
| 752 Press `C-x C-k' to invoke the `edit-kbd-macro' command that lets you | |
| 753 edit old as well as define new keyboard macros. You can also edit the | |
| 754 last 100 keystrokes and insert them into a macro to be bound to a key | |
| 755 or named as a command. The recorded/edited macros can be dumped to | |
| 756 `.emacs' file. | |
| 757 | |
| 758 ** xmine.el-1.8, courtesy of Jens Lautenbacher | |
| 759 | |
| 760 XEmacs now includes a minesweeper game with a full-featured graphics | |
| 761 and mouse interface. Invoke with `M-x xmine'. | |
| 762 | |
| 763 ** efs-1.15-x5 courtesy of Andy Norman and Michael Sperber | |
| 764 | |
| 765 EFS is now integrated with XEmacs, and replaces the old ange-ftp. It | |
| 766 has many more features, including info documentation, support for many | |
| 767 different FTP servers, and integration with dired. | |
| 768 | |
| 769 ** mic-paren.el-1.3.1, courtesy of Mikael Sjödin | |
| 770 ** hyperbole-4.022, courtesy of Bob Weiner | |
| 771 ** hm--html-menus-5.3, courtesy of Heiko Muenkel | |
| 772 ** python-mode.el-2.90, courtesy of Barry Warsaw | |
| 773 ** balloon-help-1.06, courtesy of Kyle Jones | |
| 774 ** xrdb-mode.el-1.21, courtesy of Barry Warsaw | |
| 775 ** igrep.el-2.56, courtesy of Kevin Rodgers | |
| 776 ** frame-icon.el, courtesy of Michael Lamoureux and Bob Weiner | |
| 777 ** itimer.el-1.05, courtesy of Kyle Jones | |
| 778 ** VM-6.30, courtesy of Kyle Jones | |
| 779 ** OO-Browser-2.10, courtesy of Bob Weiner | |
| 780 ** viper-2.93, courtesy of Michael Kifer | |
| 781 ** ediff-2.65, courtesy of Michael Kifer | |
| 782 ** detached-minibuf-1.1, courtesy of Alvin Shelton | |
| 783 ** whitespace-mode.el, courtesy of Heiko Muenkel | |
| 784 ** winmgr-mode.el, courtesy of David Konerding, Stefan Strobel & Barry Warsaw | |
| 785 ** fast-lock.el-3.11.01, courtesy of Simon Marshall | |
| 786 ** lazy-lock.el-1.16, courtesy of Simon Marshall | |
| 787 ** browse-cltl2.el-1.1, courtesy of Holger Schauer | |
| 788 ** eldoc.el-1.10, courtesy of Noah Friedman | |
| 789 ** tm-7.105, courtesy of MORIOKA Tomohiko | |
| 790 ** verilog-mode.el-2.25, courtesy of Michael McNamara & Adrian Aichner | |
| 791 ** overlay.el, courtesy of Joseph Nuspl | |
| 792 ** live-icon.el-1.3, fixes courtesy of Karl Hegbloom | |
| 793 ** tpu-edt.el, fixes courtesy of R. Kevin Oberman | |
| 794 ** etags.c-11.86 Courtesy of F. Potortì | |
| 795 | |
| 796 | |
| 797 * Lisp and internal changes in XEmacs 20.2 | |
| 798 ========================================== | |
| 799 | |
| 800 ** `defcustom' and `defgroup' can now be used to specify types and | |
| 801 placement of the user-settable variables. | |
| 802 | |
| 803 You can now specify the types of user-settable variables in your Lisp | |
| 804 packages to be customized by users. To do so, use `defcustom' as a | |
| 805 replacement for `defvar'. | |
| 806 | |
| 807 For example, the old declaration: | |
| 808 | |
| 809 (defvar foo-blurgoze nil | |
| 810 "*non-nil means that foo will act very blurgozely.") | |
| 811 | |
| 812 can be rewritten as: | |
| 813 | |
| 814 (defcustom foo-blurgoze nil | |
| 815 "*non-nil means that foo will act very blurgozely." | |
| 816 :type 'boolean | |
| 817 :group 'foo) | |
| 818 | |
| 819 From a package writer's point of view, nothing has been changed | |
| 820 However, the user can now type `M-x customize RET foo-blurgoze RET' to | |
| 821 customize the variable. | |
| 822 | |
| 823 Other, more complex data structures can be described with `defcustom' | |
| 824 too, for instance: | |
| 825 | |
| 826 (defcustom foo-hairy-alist '((somekey . "somestring") | |
| 827 (otherkey . (foo-doit)) | |
| 828 (thirdkey . [1 2 3])) | |
| 829 "*Alist describing the hairy options of the foo package. | |
| 830 The CAR of each element is a symbol, whereas the CDR can be either a | |
| 831 string, a form to evaluate, or a vector of integers. | |
| 832 New Emacs users simply adore alists like this one." | |
| 833 :type '(repeat (cons (symbol :tag "Key") | |
| 834 (choice string | |
| 835 (vector (repeat :inline t integer)) | |
| 836 sexp))) | |
| 837 :group 'foo) | |
| 838 | |
| 839 The user will be able to add and remove the entries to the list in a | |
| 840 visually appealing way, as well as save the settings to his/her | |
| 841 `.emacs'. | |
| 842 | |
| 843 Note that `defcustom' will also be included in GNU Emacs 19.35, and | |
| 844 that both XEmacs and GNU Emacs will be using it in the future. | |
| 845 Although the user-interface of customize may change, the Lisp | |
| 846 interface will remain the same. This is why we recommend that you use | |
| 847 `defcustom' for user-settable variables in your new Lisp packages. | |
| 848 | |
| 849 ** The `read-kbd-macro' function is now available. | |
| 850 | |
| 851 The `read-kbd-macro' function (as well as the read-time evaluated | |
| 852 `kbd' macro) from the edmacro package is now available in XEmacs. For | |
| 853 example: | |
| 854 | |
| 855 (define-key foo-mode-map (kbd "C-c <up>") 'foo-up) | |
| 856 | |
| 857 is completely equivalent to | |
| 858 | |
| 859 (define-key foo-mode-map [(control ?c) up] 'foo-up) | |
| 860 | |
| 861 The `kbd' macro is preferred over `read-kbd-macro' function , as it | |
| 862 evaluates before compiling, thus having no loading overhead. | |
| 863 | |
| 864 Using `kbd' is not necessary for GNU Emacs compatibility (GNU Emacs | |
| 865 supports the XEmacs-style keysyms), but adds to clarity. For example, | |
| 866 (kbd "C-?") is usually easier to read than [(control ??)]. The full | |
| 867 description of the syntax of keybindings accepted by `read-kbd-macro' | |
| 868 is documented in the docstring of `edmacro-mode'. | |
| 869 | |
| 870 ** Overlay compatibility is implemented. | |
| 871 | |
| 872 The overlay support in XEmacs is now functional. Written by Joe | |
| 873 Nuspl, the overlay compatibility library overlay.el is implemented on | |
| 874 top of the native XEmacs extents, and can be used as a GNU | |
| 875 Emacs-compatible way of changing display properties. | |
| 876 | |
| 877 ** You should use keysyms kp-* (kp-1, kp-2, ..., kp-enter etc.) | |
| 878 rather than the old form kp_*. The new form is also compatible with | |
| 879 GNU Emacs. | |
| 880 | |
| 881 ** The keysyms mouse-1, mouse-2, mouse-3 and down-mouse-1, | |
| 882 down-mouse-2, and down-mouse-3 have been added for GNU Emacs | |
| 883 compatibility. | |
| 884 | |
| 885 ** A new user variable `signal-error-on-buffer-boundary' has been | |
| 886 added. | |
| 887 | |
| 888 Set this to variable to nil to avoid XEmacs usual lossage of zmacs | |
| 889 region when moving up against a buffer boundary. | |
| 890 | |
| 891 ** lib-complete.el was MULE-ized. | |
| 892 | |
| 893 The commands `find-library', `find-library-other-window' and | |
| 894 `find-library-other-frame' now take an optional coding system | |
| 895 argument. | |
| 896 | |
| 897 ** Experimental support for Lisp reader macros #-, #+. | |
| 898 | |
| 899 The Common Lisp reader macros for feature test are now supported. This | |
| 900 feature is present for evaluation purposes and is subject to change. | |
| 901 | |
| 902 ** `values' now has a setf method | |
| 903 | |
| 904 ** The `eval-after-load' and `eval-next-after-load' functions are | |
| 905 now available. | |
| 906 | |
| 907 ** A bug that prevented `current-display-table' to be correctly set | |
| 908 with `set-specifier' has been fixed. | |
| 909 | |
| 910 ** The bug in easymenu which prevented multiple menus from being | |
| 911 accessible through button3 has been fixed. | |
| 912 | |
| 913 You can now safely use easymenu to define multiple menu entries in a | |
| 914 compatible way, with the added menus accessible via button3 as local | |
| 915 submenus. | |
| 916 | |
| 917 ** Many bugs in the scrollbar code have been fixed. | |
| 918 | |
| 919 ** First alpha level support of MS Windows NT is available, courtesy | |
| 920 of David Hobley and Marc Paquette. | |
| 921 | |
| 922 ** Wnn/egg now has initial support Courtesy of Jareth Hein. | |
| 923 | |
| 924 ** Some old non-working code has been removed until someone chooses | |
| 925 to work on it. | |
| 926 | |
| 927 This includes much of the NeXTStep stuff. The VMS support is also | |
| 928 likely to be removed in the future. | |
| 929 | |
| 930 ** Many files have been purged out of the etc/ directory. | |
| 931 | |
| 932 If you still need the purged files, look for them in the GNU Emacs | |
| 933 distribution. | |
| 934 | |
| 935 | |
| 936 * Major Differences Between 19.14 and 20.0 | |
| 937 =========================================== | |
| 938 | |
| 939 XEmacs 20.0 is the first public release to have support for MULE | |
| 940 (Multi-Lingual Emacs). The --with-mule configuration flag must be | |
| 941 used to enable Mule support. | |
| 942 | |
| 943 Many bugs have been fixed. An effort has been made to eradicate all | |
| 944 XEmacs crashes, although we are not quite done yet. The overall | |
| 945 quality of XEmacs should be higher than any previous release. XEmacs | |
| 946 now compiles with nary a warning with some compilers. | |
| 947 | |
| 948 -- Multiple character sets can be displayed in a buffer. The file | |
| 949 mule-doc/demo in the distribution contains a greeting in many | |
| 950 different languages. | |
| 951 | |
| 952 -- Although the Mule work is for all languages, particular effort has | |
| 953 been invested in Japanese, with particular focus on Japanese users | |
| 954 of Sun WorkShop. Many menubar labels have been translated into | |
| 955 Japanese. Martin Buchholz, the maintainer of MULE features within | |
| 956 XEmacs normally runs XEmacs in a Japanese language environment. | |
| 957 Some of the other contributors are Japanese, most importantly | |
| 958 Morioka Tomohiko, author of the TM package, providing MIME support | |
| 959 for Mail and News. | |
| 960 | |
| 961 -- Input for complex Asian languages is supported via XIM, a mechanism | |
| 962 introduced in X11R5 to allow applications to get localized input | |
| 963 without knowledge of the language. The way XIM works is that when | |
| 964 the locale has a complex character set, such as Japanese, and extra | |
| 965 minibuffer-like status window appears attached to various | |
| 966 application windows, and indicates the status of the input method. | |
| 967 Composed input in XEmacs should work the same as with other | |
| 968 applications. If Motif and Mule support is configured into XEmacs, | |
| 969 then XIM support is automatically configured in as well. | |
| 970 | |
| 971 -- TM (Tools for Mime) now comes with XEmacs. This provides MIME | |
| 972 (Multipurpose Internet Mail Extensions) support for Mail and News. | |
| 973 The primary author is Morioka Tomohiko. | |
| 974 | |
| 975 -- Japanese input can also be input using the `canna' input method. | |
| 976 This support was contributed by Morioka Tomohiko. Setting up canna | |
| 977 usually requires more user effort (and better knowledge of Japanese!) | |
| 978 than XIM, but provides a better-integrated input method. | |
| 979 | |
| 980 -- A mini-tutorial on using Mule: | |
| 981 | |
| 982 -- Every time data passes between XEmacs and the rest of the | |
| 983 environment, via file or process input or output, XEmacs must | |
| 984 convert between its internal multi-character representation and | |
| 985 the external representation (`coding system'). Many | |
| 986 difficulties with Mule are related to controlling these coding | |
| 987 system conversions. | |
| 988 | |
| 989 -- file-coding-system, file-coding-system-for-read, | |
| 990 overriding-file-coding-system, and file-coding-system-alist | |
| 991 are used to determine the coding systems used on file input | |
| 992 and output. | |
| 993 | |
| 994 -- For each process, (set-process-input-coding-system) and | |
| 995 (set-process-output-coding-system) determine the coding | |
| 996 system used for I/O from the process. | |
| 997 | |
| 998 -- Many other things are encoded using pathname-coding-system: | |
| 999 -- file and directory names | |
| 1000 -- window manager properties: window title, icon name | |
| 1001 -- process names and process arguments | |
| 1002 -- XIM input. | |
| 1003 | |
| 1004 -- In many cases, you will want to have the same values for all | |
| 1005 the above variables in many cases. For example, in a | |
| 1006 Japanese environment, you will want to use the 'euc-japan | |
| 1007 coding system consistently, except when running certain | |
| 1008 processes that do byte-oriented, rather than | |
| 1009 character-oriented I/O, such as gzip, or when processing Mail | |
| 1010 or News, where ISO2022-based coding systems are the norm, | |
| 1011 since they support multiple character sets. | |
| 1012 | |
| 1013 -- To add support for a new language or character set, start by | |
| 1014 trying to copy code in japanese-hooks.el. | |
| 1015 | |
| 1016 -- The traditional pre-Mule data conversion is equivalent to the | |
| 1017 'binary coding system under Mule. In this case all characters | |
| 1018 are treated as iso8859-1 (i.e. characters for English + Western | |
| 1019 European languages). | |
| 1020 | |
| 1021 -- many fileio-related commands such as find-file and write-file | |
| 1022 take an extra argument, coding-system, which specifies the | |
| 1023 encoding to be used with the file on disk. For example, here is | |
| 1024 a command that converts from the Japanese EUC to ISO2022 format: | |
| 1025 | |
| 1026 xemacs -batch -eval '(progn (find-file | |
| 1027 "locale-start.el.euc" (quote euc-japan)) (write-file | |
| 1028 "locale-start.el" nil (quote iso-2022-8-unix)))' | |
| 1029 | |
| 1030 Interactively, you can be prompted for a coding system by | |
| 1031 providing a prefix argument to the fileio command. In | |
| 1032 particular, C-u C-x C-f is a useful sequence to edit a file | |
| 1033 using a particular coding system. | |
| 1034 | |
| 1035 -- In an Asian locale (i.e. if $LANG is set to ja, ko, or zh), | |
| 1036 XEmacs automatically sets up a language environment assuming | |
| 1037 that the operating system encodes information in the national | |
| 1038 version of EUC, which supports English and the national | |
| 1039 language, but typically no other character sets. | |
| 1040 | |
| 1041 -- Command line processing should work much better now - no more order | |
| 1042 dependencies. | |
| 1043 | |
| 1044 -- Many many package upgraded (thanks go to countless maintainers): | |
| 1045 | |
| 1046 -- ediff 2.64 (Michael Kifer) | |
| 1047 -- Gnus 5.2.40 (Lars Magne Ingebrigtsen) | |
| 1048 -- w3 3.0.51 (Bill Perry) | |
| 1049 -- ilisp 5.8 (Chris McConnell, Ivan Vasquez, Marco Antoniotti, Rick | |
| 1050 Campbell) | |
| 1051 -- VM 5.97 (Kyle Jones) | |
| 1052 -- etags 11.78 (Francesco Potorti`) | |
| 1053 -- ksh-mode.el 2.9 | |
| 1054 -- vhdl-mode.el 2.73 (Rod Whitby) | |
| 1055 -- id-select.el (Bob Weiner) | |
| 1056 -- EDT/TPU emulation modes should work now for the first time. | |
| 1057 -- viper 2.92 (Michael Kifer) is now the `official' vi emulator for XEmacs. | |
| 1058 -- big-menubar should work much better now. | |
| 1059 -- mode-motion+.el 3.16 | |
| 1060 -- backup-dir 2.0 (Greg Klanderman) | |
| 1061 -- ps-print.el-3.05 (Jacques Duthen Prestataire) | |
| 1062 -- lazy-lock-1.15 (Simon Marshall) | |
| 1063 -- reporter 3.3 (Barry Warsaw) | |
| 1064 -- hm--html-menus 5.0 (Heiko Muenkel) | |
| 1065 -- cc-mode 4.322 (Barry Warsaw) | |
| 1066 -- elp 2.37 (Barry Warsaw) | |
| 1067 | |
| 1068 | |
| 1069 -- Many new packages have been added: | |
| 1070 -- m4-mode 1.8 (Andrew Csillag) | |
| 1071 -- crisp.el - crisp/brief emulation (Gary D. Foster) | |
| 1072 -- Johan Vroman's iso-acc.el has been ported to XEmacs by Alexandre Oliva | |
| 1073 -- psgml-1.01 (Lennart Staflin, James Clark) | |
| 1074 -- python-mode.el 2.83 (Barry Warsaw) | |
| 1075 -- vrml-mode.el (Ben Wing) | |
| 1076 -- enriched.el, face-menu.el (Boris Goldowsky, Michael Sperber) | |
| 1077 -- sh-script.el (Daniel Pfeiffer) | |
| 1078 -- decipher.el (Christopher J. Madsen) | |
| 1079 | |
| 1080 -- New function x-keysym-on-keyboard-p helps determine keyboard | |
| 1081 characteristics for key rebinding: | |
| 1082 | |
| 1083 x-keysym-on-keyboard-p: (KEYSYM &optional DEVICE) | |
| 1084 -- a built-in function. | |
| 1085 Return true if KEYSYM names a key on the keyboard of DEVICE. | |
| 1086 More precisely, return true if pressing a physical key | |
| 1087 on the keyboard of DEVICE without any modifier keys generates KEYSYM. | |
| 1088 Valid keysyms are listed in the files /usr/include/X11/keysymdef.h and in | |
| 1089 /usr/lib/X11/XKeysymDB, or whatever the equivalents are on your system. | |
| 1090 | |
| 1091 -- Installed info files are now compressed (support courtesy of Joseph J Nuspl) | |
| 1092 | |
| 1093 -- (load-average) works on Solaris, even if you're not root. Thanks to | |
| 1094 Hrvoje Niksic. | |
| 1095 | |
| 1096 -- OffiX drag-and-drop support added | |
| 1097 | |
| 1098 -- lots of syncing with 19.34 elisp files, most by Steven Baur | |
| 1099 | |
| 1100 | |
| 1101 * For older news and for alternate news (the ones dealing with XEmacs | |
| 736 | 1102 19.15 and 19.16), see the file OONEWS. |
