From: tomo Date: Thu, 22 Aug 2002 16:34:41 +0000 (+0000) Subject: Initial revision X-Git-Tag: r21-4-0~3^2 X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=commitdiff_plain;h=c65c0dd4f7d99812c21f746a090a084cb07eb647 Initial revision --- diff --git a/etc/ONEWS b/etc/ONEWS new file mode 100644 index 0000000..b6a32bb --- /dev/null +++ b/etc/ONEWS @@ -0,0 +1,1084 @@ +-*- mode:outline -*- + +* Changes in XEmacs 20.4 +======================== + +** XEmacs 20.4 is a bugfix release with no user-visible changes. + + +* Changes in XEmacs 20.3 +======================== + +** Quail input method is now available. + +Quail is a simple key-translation system that allows users to input +any multilingual text from normal ASCII keyboard. This means that +XEmacs with Mule now supports a number of European languages. + +** More Windows NT support. + +Thanks to efforts of many people, coordinated by David Hobley + and Marc Paquette , beta versions +of XEmacs now run on 32-bit Windows platforms (Windows NT and Windows +95). The current betas require having an X server to run XEmacs; +however, a native NT/95 port is in alpha, thanks to Jonathan Harris +. + +The NT development is now coordinated by a mailing list at +. Mail to to +subscribe. + +** Multiple TTY frames are now available. + +On consoles that display only one frame at a time (e.g. TTY consoles), +creating a new frame with `C-x 5 2' also raises and selects that +frame. The behavior of window system frames is unchanged. + +** Package starting changes. + +State of Emacs should never be changed with loading a package. The +following XEmacs packages that used to break this have been changed. + +*** Loading `paren' no longer enables paren-blinking. Use +`paren-set-mode' explicitly, or customize `paren-mode'. + +*** Loading `uniquify' no longer enables uniquify. Set +`uniquify-buffer-name-style' to a legal value. + +*** Loading `time' no longer enables display time. Invoke +`display-time' explicitly. + +*** Loading `jka-compr' no longer enables on-the-fly compression. Use +`toggle-auto-compression' instead. + +*** Loading `id-select' no longer enables its behaviour. Use +`id-select-install' instead. + +** Zmacs region is not deactivated when an error is signaled. + +The behavior of the zmacs region can now be controlled in the event of +a signaled error. The new variable `errors-deactivate-region' may be +set to nil to revert to the old behaviour. As before, typing C-g +deactivates the region. + +** Multiple Info `dir' functionality has been merged with GNU Emacs +19.34. + +XEmacs will now correctly merge all the `dir' files in +`Info-directory-list' (initialized from either the `INFOPATH' +env. variable or `Info-default-directory-list'.) These files may be +full-fledged info files containing subnodes or menus. Previously +supported `localdir' files are looked for also, secondary to `dir's. +See the manual for details. + +** Abbreviations can now contain non-word characters. + +This means that it is finally possible to do such simple things as +define `#in' to expand to `#include' in C mode, `s-c-b' to +`save-current-buffer' in Lisp mode, `call/cc' to +`call-with-current-continuation' in Scheme mode, etc. + +** `C-x n d' now runs the new command `narrow-to-defun', +which narrows the accessible parts of the buffer to just +the current defun. + +** The new command `C-x 4 0' (kill-buffer-and-window) kills the +current buffer and deletes the selected window. It asks for +confirmation first. + +** `ESC ESC ESC' (keyboard-escape-quit) will now correctly abort +recursive edits (as documented.) + +** arc-mode has a new function called `archive-quit' bound to q, which +quits archive mode in the same fashion dired-quit works. + +** A `tetris' clone is now available within XEmacs, written by Glynn +Clements. Try it out with `M-x tetris'. + +** The feature to teach the key bindings of extended commands now +prints the message after the command finishes. After some time, the +previous echo area contents are restored (in case the command prints +something useful). + +** If you set scroll-conservatively to a small number, then when you +move point a short distance off the screen, XEmacs will scroll the +screen just far enough to bring point back on screen, provided that +does not exceed `scroll-conservatively' lines. + +** Face background colors now take precedence over the default face +background pixmap, which means that background pixmaps no longer clash +with zmacs-regions, or clickable buttons. + +** Regexps can now contain additional Perl-like constructs. + +** Modifiers can be added to a keystroke by preceding it with a `C-x @ +' sequence where is one of letters `S', `c', `m', `a', `h', `s' +corresponding to shift, control, meta, alt, hyper, and super modifiers, +respectively. It is possible to add several modifiers by repeating this +sequence. This feature is especially useful on text terminals where it +allows one to enter keystrokes like, e.g., `M-home'. + +** An arbitrary keystroke can be generated by entering `C-x @ k + RET'. For example a sequence: + + C-x @ c C-x @ k b a c k s p a c e RET + +will result in a `C-backspace' keystroke even on text terminals. + +** Customize changes. + +*** Customize has undergone a massive speedup, and should now operate +acceptably fast. Slowness of the interface used to be the biggest +gripe. + +*** Many more packages have been modified to use the facility, so +almost all of XEmacs options can now be examined through the Customize +groups. + +*** There is a new `browser' mode of traversing customizations, in +many ways easier to follow than the standard one. Try it out with +`M-x customize-browse'. + +** Pending-delete changes. + +*** Pending-delete is now a minor mode, with the normal minor-mode +semantics and toggle functions. Old functions are left for +compatibility. + +*** Loading pending-del no longer turns on pending-delete mode. In +fact, it is no longer necessary to explicitly load pending-del. All +you need to do to turn on pending-delete is run the pending-delete +function: + + Within XEmacs: Type M-x pending-delete + not M-x load-library pending-delete + + In .emacs: Use (turn-on-pending-delete) + not (load "pending-del") + +** XEmacs can now save the minibuffer histories from various +minibuffers. To use this feature, add the line: + + (savehist-load) + +to your .emacs. This will load the minibuffer histories (if any) at +startup, as well as instruct XEmacs to save them before exiting. You +can use Customize to add or remove the histories being saved. + +** The default format for ChangeLog entries (as created by `C-x 4 a') +is now the international ISO 8601 format. + +To revert to the old behaviour, use: + + (setq add-log-time-format 'current-time-string) + +Or `M-x customize RET add-log RET'. + +** In ChangeLog mode, you can now press `C-c C-c' to save the file +and restore old window configuration, or `C-c C-k' to abandon the +changes. + +** The key `C-x m' no longer runs the `mail' command directly. +Instead, it runs the command `compose-mail', which invokes the mail +composition mechanism you have selected with the variable +`mail-user-agent'. The default choice of user agent is +`sendmail-user-agent', which gives behavior compatible with the old +behavior. + +C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs +compose-mail-other-frame. + +** When you kill a buffer that visits a file, if there are any +registers that save positions in the file, these register values no +longer become completely useless. If you try to go to such a register +with `C-x j', then you are asked whether to visit the file again. If +you say yes, it visits the file and then goes to the same position. + +** When you visit a file that changes frequently outside Emacs--for +example, a log of output from a process that continues to run--it may +be useful for Emacs to revert the file without querying you whenever +you visit the file afresh with `C-x C-f'. + +You can request this behavior for certain files by setting the +variable revert-without-query to a list of regular expressions. If a +file's name matches any of these regular expressions, find-file and +revert-buffer revert the buffer without asking for permission--but +only if you have not edited the buffer text yourself. + +** Gnuserv changes + +*** The Lisp part of gnuserv has been rewritten to allow for more +flexibility and features. + +*** Many new options and variables are now customizable. Try +`M-x customize RET gnuserv RET'. + +*** The functionality of `gnuattach' and `gnudoit' programs is +provided by `gnuclient', which now accepts the standard `-nw', +`-display', `-eval' and `-f' options. + +** Etags changes. + +*** In C, C++, Objective C and Java, Etags tags global variables by +default. The resulting tags files are inflated by 30% on average. +Use --no-globals to turn this feature off. Etags can also tag +variables that are members of structure-like constructs, but it does +not by default. Use --members to turn this feature on. + +*** C++ member functions are now recognized as tags. + +*** Java is tagged like C++. In addition, "extends" and "implements" +constructs are tagged. Files are recognised by the extension .java. + +*** Etags can now handle programs written in Postscript. Files are +recognised by the extensions .ps and .pdb (Postscript with C syntax). +In Postscript, tags are lines that start with a slash. + +*** Etags now handles Objective C and Objective C++ code. The usual C and +C++ tags are recognized in these languages; in addition, etags +recognizes special Objective C syntax for classes, class categories, +methods and protocols. + +*** Etags also handles Cobol. Files are recognised by the extension +.cobol. The tagged lines are those containing a word that begins in +column 8 and ends in a full stop, i.e. anything that could be a +paragraph name. + +*** Regexps in Etags now support intervals, as in ed or grep. The syntax of +an interval is \{M,N\}, and it means to match the preceding expression +at least M times and as many as N times. + +** Ada mode changes. + +*** There is now better support for using find-file.el with Ada mode. +If you switch between spec and body, the cursor stays in the same +procedure (modulo overloading). If a spec has no body file yet, but +you try to switch to its body file, Ada mode now generates procedure +stubs. + +*** There are two new commands: + - `ada-make-local' : invokes gnatmake on the current buffer + - `ada-check-syntax' : check syntax of current buffer. + +The user options `ada-compiler-make', `ada-make-options', +`ada-language-version', `ada-compiler-syntax-check', and +`ada-compile-options' are used within these commands. + +*** Ada mode can now work with Outline minor mode. The outline level +is calculated from the indenting, not from syntactic constructs. +Outlining does not work if your code is not correctly indented. + +*** The new function `ada-gnat-style' converts the buffer to the style of +formatting used in GNAT. It places two blanks after a comment start, +places one blank between a word end and an opening '(', and puts one +space between a comma and the beginning of a word. + +** New demand based locking implementation + +A faster, but experimental replacement for lazy-lock (called lazy-shot) is +provided. Like lazy-lock it provides demand based and idle time +font-lock-ing. However the lazy-lock versions that came with previous +versions slowed down XEmacs (possibly quite a lot). Lazy-shot solves +this problem by relying on new support from the C code part of XEmacs. +The support however is experimental and will cause some flashing as +parts of the buffer are colored. This likely to change in the future +as the C support is completed. + +The current lazy-shot implementation is mostly interface compatible +with lazy-lock v2.06 (the version shipped with XEmacs is v1.x). + +*** To enable: + 1. Despite the flashing, lazy-shot was deemed such an improvement by + the majority of beta testers that it is now the standard method + provided by the options menu. Alternatively add + + (add-hook 'font-lock-mode-hook 'turn-on-lazy-shot) + + to '.emacs'. + 2. If you were using lazy-lock before, just replace all occurrences of + "lazy-lock" by "lazy-shot" in your '.emacs' file. + +*** To disable: + +If prefer to use lazy-lock in stead of lazy-shot, put + + (remove-hook 'font-lock-mode-hook 'turn-on-lazy-shot) + (add-hook 'font-lock-mode-hook 'turn-on-lazy-lock) + +at the END of `.emacs'. + +** RefTeX mode + +RefTeX mode is a new minor mode with special support for \label{}, \ref{} +and \cite{} macros in LaTeX documents. RefTeX distinguishes labels of +different environments (equation, figure, ...) and has full support for +multifile documents. To use it, select a buffer with a LaTeX document and +turn the mode on with M-x reftex-mode. Here are the main user commands: + +C-c ( reftex-label + Creates a label semi-automatically. RefTeX is context sensitive and + knows which kind of label is needed. + +C-c ) reftex-reference + Offers in a menu all labels in the document, along with context of the + label definition. The selected label is referenced as \ref{LABEL}. + +C-c [ reftex-citation + Prompts for a regular expression and displays a list of matching BibTeX + database entries. The selected entry is cited with a \cite{KEY} macro. + +C-c & reftex-view-crossref + Views the cross reference of a \ref{} or \cite{} command near point. + +C-c = reftex-toc + Shows a table of contents of the (multifile) document. From there you + can quickly jump to every section. + +Under X, RefTeX installs a "Ref" menu in the menu bar, with additional +commands. Full documentation and customization examples are in the file +reftex.el. You can use the finder to view this information: +C-h p --> tex --> reftex.el + + +* Lisp and internal changes in XEmacs 20.3 +========================================== + +** Autoconf 2 is supported, making XEmacs more conforming to +conventions used by other free software. + +** `tty-erase-char' is a new variable that reports which character +was set up as the terminal's erase character at the time Emacs was +started. + +** It is now possible to attach the menubar accelerator keys to menu +entries. Look at the Lispref under Menus->Menu Accelerators for +details. + +** `insert-file-contents' can now read from a special file, +as long as the arguments VISIT and REPLACE are nil. + +** `string-to-number' now accepts an optional BASE argument that +specifies which base to use. The default base is 10. + +** The TIME argument to `format-time-string' is now optional and +defaults to the current time. + +** The PATTERN argument to `split-string' is now optional and defaults +to whitespace ("[ \f\t\n\r\v]+"). + +** `set-extent-properties' is a new function that can be used to +change properties of an extent at once, and is analogous to +`set-frame-properties'. + +** If a format field width is specified as `*', the field width is +now assumed to have been specified as an argument (as in C.) + + (format "%*s" 10 "abc") + => " abc" + +** The new macro `with-current-buffer' lets you evaluate an expression +conveniently with a different current buffer. It looks like this: + + (with-current-buffer BUFFER BODY-FORMS...) + +BUFFER is the expression that says which buffer to use. +BODY-FORMS say what to do in that buffer. +The old `eval-in-buffer' macro is obsoleted by `with-current-buffer'. + +** The new primitive `save-current-buffer' saves and restores the +choice of current buffer, like `save-excursion', but without saving or +restoring the value of point or the mark. `with-current-buffer' +works using `save-current-buffer'. + +** The new macro `with-temp-file' lets you do some work in a new buffer and +write the output to a specified file. Like `progn', it returns the value +of the last form. + +** The variable `debug-ignored-errors' now works in XEmacs. It allows +one to ignore the debugger for some common errors, even when +`debug-on-error' is t. It has no effect when `debug-on-signal' is +non-nil. + +** The new function `current-message' returns the message currently +displayed in the echo area, or nil if there is none. + +** File-access primitive functions no longer discard an extra redundant +directory name from the beginning of the file name. In other words, +they no longer do anything special with // or /~. The same goes for +`expand-file-name'. That conversion is now done only in +`substitute-in-file-name'. + +This makes it possible for a Lisp program to open a file whose name +begins with ~. + +** The regexp matcher has been extended to recognize the following +constructs, borrowed from Perl: + +*** Additional quantifiers. + +In addition to `*', `+' and `?', XEmacs now recognizes the following +quantifiers: + + \{n\} Match exactly n times + \{n,\} Match at least n times + \{n,m\} Match at least n but not more than m times + +*** Non-greedy quantifiers. + +Any of the standard quantifiers (`*', `+' and others) can now be +followed by an optional `?', which will make them become "non-greedy", +i.e. they will match as little text as possible. Note that the +meanings don't change, just the "gravity." + +*** Shy groups. + +The \(?: ... \) groups things like \( ... \), but doesn't record the +context for backreferences or future use. This is useful when you +need a lot of groups for the sake of priorities, but actually want to +record only one or two. + +** The new function `regexp-opt' returns an efficient regexp to match +a string. The arguments are STRINGS and (optionally) PAREN. This +function can be used where regexp matching or searching is intensively +used and speed is important, e.g., in Font Lock mode. + +** The featurep syntax has been extended to resemble the Common Lisp +one, as suggested by Erik Naggum. + +*** The `xemacs' feature is defined in XEmacs by default. + +*** The expression `#+fexp form' is equivalent to +(when (featurep fexp) form), only it is evaluated at read-time. Also, +`#-fexp form' is equivalent to (unless (featurep fexp) form). + +*** In addition to symbols, a FEXP can also be a number, or a logical +operator. Here are some examples: + ;; evaluates to non-nil on XEmacs: + (featurep 'xemacs) + ;; evaluates to non-nil on XEmacs 20.3 or later: + (featurep '(and xemacs 20.03)) + ;; evaluates to non-nil either on Emacs, or on XEmacs built without + ;; X support: + (featurep '(or emacs (and xemacs (not x)))) + + + +* Changes in XEmacs 20.2 +======================== + +** Why XEmacs 20.1 is called 20.2 + +Testing of XEmacs 20.1 revealed a number of showstopping bugs at the +very final moment. Instead of confusing the version numbers further, +the `20.1' designation was abandoned, and the release was renamed to +`20.2'. + +** Delete/backspace keysyms have been separated + +The Delete and Backspace keysyms are now no longer identical. A better +version of delbackspace.el has been added called delbs.el. + +** XEmacs 20.0 MULE API supported for backwards compatibility + +XEmacs 20.2 primarily supports the MULE 3 API. It now also supports +the XEmacs 20.0 MULE API. + +** The logo has been changed, and the default background color is +now a shade of gray instead of the eye-burning white. + +The sample .Xdefaults and .emacs files contain examples of how to +revert to the old background color. + +** Default modeline colors are now less of a color-salad. + +** The `C-z' key now iconifies only the current X frame. You can use +`C-x C-z' to get the old behavior. + +On the tty frames `C-z' behaves as before. + +** The command `display-time' now draws a pretty image in the modeline +when new mail arrives. It also supports balloon-help messages. + +** Various commands that were previously disabled are now enabled, like +eval-expression (`M-:') and upcase-region (`C-x C-u')/downcase-region +(`C-x C-l'). + +** It is now possible to customize the functions called by XEmacs toolbar. + +Type `M-x customize RET toolbar RET' to customize it. Customizations +include the choice of functions for the buttons to invoke, as well as +a wide choice of mailers and newsreaders to invoked by the respective +functions. + +** `temp-buffer-shrink-to-fit' now defaults to nil. + +There are unresolved issues regarding this feature, which is why the +XEmacs developers decided to disable it by default. + +** `ps-print-color-p' now defaults to nil. + +This is because the new default background color is non-white. The +`Printing Options' in the `Options' menu now include an item that +enables color printing, and sets the white background. + +** `line-number-mode' should be used to get line numbers in the +modeline, and `column-number-mode' to get column numbers. Line +numbers now number from 1 by default. + +** font-lock-mode will now correctly fontify `int a, b, c;' +expressions in C mode. + +** The blinking cursor is always "on" during movement. + +** The XEmacs build process has been changed to make site +administration easier. See lisp/site-load.el for details. + +** Numerous causes of crashes have been fixed. XEmacs should now be +even more stable than before. + +** configure no longer defaults to using --with-xim=motif if Motif libraries +are linked. + +There are many bugs in the Xlib XIM support in X11R6.3. + +** A number of new packages are added, and many packages were +updated. + +** Gnus-5.4.52, courtesy of Lars Magne Ingebrigtsen + +*** nntp.el has been totally rewritten in an asynchronous fashion. + +*** Article prefetching functionality has been moved up into +Gnus. + +*** Scoring can now be performed with logical operators like +`and', `or', `not', and parent redirection. + +*** Article washing status can be displayed in the +article mode line. + +*** gnus.el has been split into many smaller files. + +*** Suppression of duplicate articles based on Message-ID. + +(setq gnus-suppress-duplicates t) + +*** New variables for specifying what score and adapt files +are to be considered home score and adapt files. See +`gnus-home-score-file' and `gnus-home-adapt-files'. + +*** Groups can inherit group parameters from parent topics. + +*** Article editing has been revamped and is now usable. + +*** Signatures can be recognized in more intelligent fashions. +See `gnus-signature-separator' and `gnus-signature-limit'. + +*** Summary pick mode has been made to look more nn-like. +Line numbers are displayed and the `.' command can be +used to pick articles. + +*** Commands for moving the .newsrc.eld from one server to +another have been added. + + `M-x gnus-change-server' + +*** A way to specify that "uninteresting" fields be suppressed when +generating lines in buffers. + +*** Several commands in the group buffer can be undone with +`M-C-_'. + +*** Scoring can be done on words using the new score type `w'. + +*** Adaptive scoring can be done on a Subject word-by-word basis: + + (setq gnus-use-adaptive-scoring '(word)) + +*** Scores can be decayed. + + (setq gnus-decay-scores t) + +*** Scoring can be performed using a regexp on the Date header. The +Date is normalized to compact ISO 8601 format first. + +*** A new command has been added to remove all data on articles from +the native server. + + `M-x gnus-group-clear-data-on-native-groups' + +*** A new command for reading collections of documents +(nndoc with nnvirtual on top) has been added -- `M-C-d'. + +*** Process mark sets can be pushed and popped. + +*** A new mail-to-news backend makes it possible to post +even when the NNTP server doesn't allow posting. + +*** A new backend for reading searches from Web search engines +(DejaNews, Alta Vista, InReference) has been added. + + Use the `G w' command in the group buffer to create such + a group. + +*** Groups inside topics can now be sorted using the standard +sorting functions, and each topic can be sorted independently. + + See the commands under the `T S' submap. + +*** Subsets of the groups can be sorted independently. + + See the commands under the `G P' submap. + +*** Cached articles can be pulled into the groups. + + Use the `Y c' command. + +*** Score files are now applied in a more reliable order. + +*** Reports on where mail messages end up can be generated. + + `M-x nnmail-split-history' + +*** More hooks and functions have been added to remove junk +from incoming mail before saving the mail. + + See `nnmail-prepare-incoming-header-hook'. + +*** The nnml mail backend now understands compressed article files. + +** Custom 1.86, courtesy of Per Abrahamsen + +The Customize library enables Emacs Lisp programmers to specify types +of their variables, so that the users can customize them. + +Invoke the customizations buffer using the menus (Customize is at the +top of the Options menu), or using commands `M-x customize', +`M-x customize-variable' and `M-x customize-face'. Customize can save +the changed settings to your `.emacs' file. + +Customize is now the preferred way to change XEmacs settings. Tens of +packages have been converted to take advantage of the Customize +features, including Gnus, Message, Supercite, Psgml, Comint, W3, +cc-mode (and many other programming language modes), ispell.el, +ps-print.el, id-select.el, most of the programming language modes, and +many many more. + +See the "Lisp Changes" section later for a short description of why +and how to add custom support to your Lisp packages. Custom is also +documented in the XEmacs info manuals. + +** W3-3.0.86, courtesy of William Perry + +Version 3 of Emacs/W3, the Emacs World Wide Web browser, has been +included. It is significantly faster than any of the previous +versions, and contains numerous new features. + +** AUCTeX-9.7k, courtesy of Per Abrahamsen + +AUC TeX is a comprehensive customizable integrated environment for +writing input files for LaTeX using Emacs. + +AUC TeX lets you run TeX/LaTeX and other LaTeX-related tools, such as +a output filters or post processor from inside Emacs. Especially +`running LaTeX' is interesting, as AUC TeX lets you browse through the +errors TeX reported, while it moves the cursor directly to the +reported error, and displays some documentation for that particular +error. This will even work when the document is spread over several +files. + +AUC TeX automatically indents your `LaTeX-source', not only as you +write it -- you can also let it indent and format an entire document. +It has a special outline feature, which can greatly help you `getting +an overview' of a document. + +Apart from these special features, AUC TeX provides an large range of +handy Emacs macros, which in several different ways can help you write +your LaTeX documents fast and painless. + +** redo.el-1.01, courtesy of Kyle Jones + +redo.el is a package that implements true redo mechanism in XEmacs +buffers. Once you load it from your `.emacs', you can bind the `redo' +command to a convenient key to use it. + +Emacs' normal undo system allows you to undo an arbitrary number of +buffer changes. These undos are recorded as ordinary buffer changes +themselves. So when you break the chain of undos by issuing some +other command, you can then undo all the undos. The chain of recorded +buffer modifications therefore grows without bound, truncated only at +garbage collection time. + +The redo/undo system is different in two ways: + +*** The undo/redo command chain is only broken by a buffer modification. + +You can move around the buffer or switch buffers and still come back +and do more undos or redos. + +*** The `redo' command rescinds the most recent undo without +recording the change as a _new_ buffer change. + +It completely reverses the effect of the undo, which includes making +the chain of buffer modification records shorter by one, to counteract +the effect of the undo command making the record list longer by one. + +** edmacro.el-3.10, courtesy of Dave Gillespie, ported to XEmacs by +Hrvoje Niksic. + +Edmacro is a utility that provides easy editing of keyboard macros. +Originally written by Dave Gillespie, it has been mostly rewritten by +Hrvoje Niksic, in order to make it distinguish characters and integer, +as well as to adapt it to XEmacs keysyms. + +Press `C-x C-k' to invoke the `edit-kbd-macro' command that lets you +edit old as well as define new keyboard macros. You can also edit the +last 100 keystrokes and insert them into a macro to be bound to a key +or named as a command. The recorded/edited macros can be dumped to +`.emacs' file. + +** xmine.el-1.8, courtesy of Jens Lautenbacher + +XEmacs now includes a minesweeper game with a full-featured graphics +and mouse interface. Invoke with `M-x xmine'. + +** efs-1.15-x5 courtesy of Andy Norman and Michael Sperber + +EFS is now integrated with XEmacs, and replaces the old ange-ftp. It +has many more features, including info documentation, support for many +different FTP servers, and integration with dired. + +** mic-paren.el-1.3.1, courtesy of Mikael Sjödin +** hyperbole-4.022, courtesy of Bob Weiner +** hm--html-menus-5.3, courtesy of Heiko Muenkel +** python-mode.el-2.90, courtesy of Barry Warsaw +** balloon-help-1.06, courtesy of Kyle Jones +** xrdb-mode.el-1.21, courtesy of Barry Warsaw +** igrep.el-2.56, courtesy of Kevin Rodgers +** frame-icon.el, courtesy of Michael Lamoureux and Bob Weiner +** itimer.el-1.05, courtesy of Kyle Jones +** VM-6.30, courtesy of Kyle Jones +** OO-Browser-2.10, courtesy of Bob Weiner +** viper-2.93, courtesy of Michael Kifer +** ediff-2.65, courtesy of Michael Kifer +** detached-minibuf-1.1, courtesy of Alvin Shelton +** whitespace-mode.el, courtesy of Heiko Muenkel +** winmgr-mode.el, courtesy of David Konerding, Stefan Strobel & Barry Warsaw +** fast-lock.el-3.11.01, courtesy of Simon Marshall +** lazy-lock.el-1.16, courtesy of Simon Marshall +** browse-cltl2.el-1.1, courtesy of Holger Schauer +** eldoc.el-1.10, courtesy of Noah Friedman +** tm-7.105, courtesy of MORIOKA Tomohiko +** verilog-mode.el-2.25, courtesy of Michael McNamara & Adrian Aichner +** overlay.el, courtesy of Joseph Nuspl +** live-icon.el-1.3, fixes courtesy of Karl Hegbloom +** tpu-edt.el, fixes courtesy of R. Kevin Oberman +** etags.c-11.86 Courtesy of F. Potortì + + +* Lisp and internal changes in XEmacs 20.2 +========================================== + +** `defcustom' and `defgroup' can now be used to specify types and +placement of the user-settable variables. + +You can now specify the types of user-settable variables in your Lisp +packages to be customized by users. To do so, use `defcustom' as a +replacement for `defvar'. + +For example, the old declaration: + +(defvar foo-blurgoze nil + "*non-nil means that foo will act very blurgozely.") + +can be rewritten as: + +(defcustom foo-blurgoze nil + "*non-nil means that foo will act very blurgozely." + :type 'boolean + :group 'foo) + +From a package writer's point of view, nothing has been changed +However, the user can now type `M-x customize RET foo-blurgoze RET' to +customize the variable. + +Other, more complex data structures can be described with `defcustom' +too, for instance: + +(defcustom foo-hairy-alist '((somekey . "somestring") + (otherkey . (foo-doit)) + (thirdkey . [1 2 3])) +"*Alist describing the hairy options of the foo package. +The CAR of each element is a symbol, whereas the CDR can be either a +string, a form to evaluate, or a vector of integers. +New Emacs users simply adore alists like this one." + :type '(repeat (cons (symbol :tag "Key") + (choice string + (vector (repeat :inline t integer)) + sexp))) + :group 'foo) + +The user will be able to add and remove the entries to the list in a +visually appealing way, as well as save the settings to his/her +`.emacs'. + +Note that `defcustom' will also be included in GNU Emacs 19.35, and +that both XEmacs and GNU Emacs will be using it in the future. +Although the user-interface of customize may change, the Lisp +interface will remain the same. This is why we recommend that you use +`defcustom' for user-settable variables in your new Lisp packages. + +** The `read-kbd-macro' function is now available. + +The `read-kbd-macro' function (as well as the read-time evaluated +`kbd' macro) from the edmacro package is now available in XEmacs. For +example: + +(define-key foo-mode-map (kbd "C-c ") 'foo-up) + +is completely equivalent to + +(define-key foo-mode-map [(control ?c) up] 'foo-up) + +The `kbd' macro is preferred over `read-kbd-macro' function , as it +evaluates before compiling, thus having no loading overhead. + +Using `kbd' is not necessary for GNU Emacs compatibility (GNU Emacs +supports the XEmacs-style keysyms), but adds to clarity. For example, +(kbd "C-?") is usually easier to read than [(control ??)]. The full +description of the syntax of keybindings accepted by `read-kbd-macro' +is documented in the docstring of `edmacro-mode'. + +** Overlay compatibility is implemented. + +The overlay support in XEmacs is now functional. Written by Joe +Nuspl, the overlay compatibility library overlay.el is implemented on +top of the native XEmacs extents, and can be used as a GNU +Emacs-compatible way of changing display properties. + +** You should use keysyms kp-* (kp-1, kp-2, ..., kp-enter etc.) +rather than the old form kp_*. The new form is also compatible with +GNU Emacs. + +** The keysyms mouse-1, mouse-2, mouse-3 and down-mouse-1, +down-mouse-2, and down-mouse-3 have been added for GNU Emacs +compatibility. + +** A new user variable `signal-error-on-buffer-boundary' has been +added. + +Set this to variable to nil to avoid XEmacs usual lossage of zmacs +region when moving up against a buffer boundary. + +** lib-complete.el was MULE-ized. + +The commands `find-library', `find-library-other-window' and +`find-library-other-frame' now take an optional coding system +argument. + +** Experimental support for Lisp reader macros #-, #+. + +The Common Lisp reader macros for feature test are now supported. This +feature is present for evaluation purposes and is subject to change. + +** `values' now has a setf method + +** The `eval-after-load' and `eval-next-after-load' functions are +now available. + +** A bug that prevented `current-display-table' to be correctly set +with `set-specifier' has been fixed. + +** The bug in easymenu which prevented multiple menus from being +accessible through button3 has been fixed. + +You can now safely use easymenu to define multiple menu entries in a +compatible way, with the added menus accessible via button3 as local +submenus. + +** Many bugs in the scrollbar code have been fixed. + +** First alpha level support of MS Windows NT is available, courtesy +of David Hobley and Marc Paquette. + +** Wnn/egg now has initial support Courtesy of Jareth Hein. + +** Some old non-working code has been removed until someone chooses +to work on it. + +This includes much of the NeXTStep stuff. The VMS support is also +likely to be removed in the future. + +** Many files have been purged out of the etc/ directory. + +If you still need the purged files, look for them in the GNU Emacs +distribution. + + +* Major Differences Between 19.14 and 20.0 +=========================================== + +XEmacs 20.0 is the first public release to have support for MULE +(Multi-Lingual Emacs). The --with-mule configuration flag must be +used to enable Mule support. + +Many bugs have been fixed. An effort has been made to eradicate all +XEmacs crashes, although we are not quite done yet. The overall +quality of XEmacs should be higher than any previous release. XEmacs +now compiles with nary a warning with some compilers. + +-- Multiple character sets can be displayed in a buffer. The file + mule-doc/demo in the distribution contains a greeting in many + different languages. + +-- Although the Mule work is for all languages, particular effort has + been invested in Japanese, with particular focus on Japanese users + of Sun WorkShop. Many menubar labels have been translated into + Japanese. Martin Buchholz, the maintainer of MULE features within + XEmacs normally runs XEmacs in a Japanese language environment. + Some of the other contributors are Japanese, most importantly + Morioka Tomohiko, author of the TM package, providing MIME support + for Mail and News. + +-- Input for complex Asian languages is supported via XIM, a mechanism + introduced in X11R5 to allow applications to get localized input + without knowledge of the language. The way XIM works is that when + the locale has a complex character set, such as Japanese, and extra + minibuffer-like status window appears attached to various + application windows, and indicates the status of the input method. + Composed input in XEmacs should work the same as with other + applications. If Motif and Mule support is configured into XEmacs, + then XIM support is automatically configured in as well. + +-- TM (Tools for Mime) now comes with XEmacs. This provides MIME + (Multipurpose Internet Mail Extensions) support for Mail and News. + The primary author is Morioka Tomohiko. + +-- Japanese input can also be input using the `canna' input method. + This support was contributed by Morioka Tomohiko. Setting up canna + usually requires more user effort (and better knowledge of Japanese!) + than XIM, but provides a better-integrated input method. + +-- A mini-tutorial on using Mule: + + -- Every time data passes between XEmacs and the rest of the + environment, via file or process input or output, XEmacs must + convert between its internal multi-character representation and + the external representation (`coding system'). Many + difficulties with Mule are related to controlling these coding + system conversions. + + -- file-coding-system, file-coding-system-for-read, + overriding-file-coding-system, and file-coding-system-alist + are used to determine the coding systems used on file input + and output. + + -- For each process, (set-process-input-coding-system) and + (set-process-output-coding-system) determine the coding + system used for I/O from the process. + + -- Many other things are encoded using pathname-coding-system: + -- file and directory names + -- window manager properties: window title, icon name + -- process names and process arguments + -- XIM input. + + -- In many cases, you will want to have the same values for all + the above variables in many cases. For example, in a + Japanese environment, you will want to use the 'euc-japan + coding system consistently, except when running certain + processes that do byte-oriented, rather than + character-oriented I/O, such as gzip, or when processing Mail + or News, where ISO2022-based coding systems are the norm, + since they support multiple character sets. + + -- To add support for a new language or character set, start by + trying to copy code in japanese-hooks.el. + + -- The traditional pre-Mule data conversion is equivalent to the + 'binary coding system under Mule. In this case all characters + are treated as iso8859-1 (i.e. characters for English + Western + European languages). + + -- many fileio-related commands such as find-file and write-file + take an extra argument, coding-system, which specifies the + encoding to be used with the file on disk. For example, here is + a command that converts from the Japanese EUC to ISO2022 format: + + xemacs -batch -eval '(progn (find-file + "locale-start.el.euc" (quote euc-japan)) (write-file + "locale-start.el" nil (quote iso-2022-8-unix)))' + + Interactively, you can be prompted for a coding system by + providing a prefix argument to the fileio command. In + particular, C-u C-x C-f is a useful sequence to edit a file + using a particular coding system. + + -- In an Asian locale (i.e. if $LANG is set to ja, ko, or zh), + XEmacs automatically sets up a language environment assuming + that the operating system encodes information in the national + version of EUC, which supports English and the national + language, but typically no other character sets. + +-- Command line processing should work much better now - no more order + dependencies. + +-- Many many package upgraded (thanks go to countless maintainers): + + -- ediff 2.64 (Michael Kifer) + -- Gnus 5.2.40 (Lars Magne Ingebrigtsen) + -- w3 3.0.51 (Bill Perry) + -- ilisp 5.8 (Chris McConnell, Ivan Vasquez, Marco Antoniotti, Rick + Campbell) + -- VM 5.97 (Kyle Jones) + -- etags 11.78 (Francesco Potorti`) + -- ksh-mode.el 2.9 + -- vhdl-mode.el 2.73 (Rod Whitby) + -- id-select.el (Bob Weiner) + -- EDT/TPU emulation modes should work now for the first time. + -- viper 2.92 (Michael Kifer) is now the `official' vi emulator for XEmacs. + -- big-menubar should work much better now. + -- mode-motion+.el 3.16 + -- backup-dir 2.0 (Greg Klanderman) + -- ps-print.el-3.05 (Jacques Duthen Prestataire) + -- lazy-lock-1.15 (Simon Marshall) + -- reporter 3.3 (Barry Warsaw) + -- hm--html-menus 5.0 (Heiko Muenkel) + -- cc-mode 4.322 (Barry Warsaw) + -- elp 2.37 (Barry Warsaw) + + +-- Many new packages have been added: + -- m4-mode 1.8 (Andrew Csillag) + -- crisp.el - crisp/brief emulation (Gary D. Foster) + -- Johan Vroman's iso-acc.el has been ported to XEmacs by Alexandre Oliva + -- psgml-1.01 (Lennart Staflin, James Clark) + -- python-mode.el 2.83 (Barry Warsaw) + -- vrml-mode.el (Ben Wing) + -- enriched.el, face-menu.el (Boris Goldowsky, Michael Sperber) + -- sh-script.el (Daniel Pfeiffer) + -- decipher.el (Christopher J. Madsen) + +-- New function x-keysym-on-keyboard-p helps determine keyboard + characteristics for key rebinding: + + x-keysym-on-keyboard-p: (KEYSYM &optional DEVICE) + -- a built-in function. + Return true if KEYSYM names a key on the keyboard of DEVICE. + More precisely, return true if pressing a physical key + on the keyboard of DEVICE without any modifier keys generates KEYSYM. + Valid keysyms are listed in the files /usr/include/X11/keysymdef.h and in + /usr/lib/X11/XKeysymDB, or whatever the equivalents are on your system. + +-- Installed info files are now compressed (support courtesy of Joseph J Nuspl) + +-- (load-average) works on Solaris, even if you're not root. Thanks to + Hrvoje Niksic. + +-- OffiX drag-and-drop support added + +-- lots of syncing with 19.34 elisp files, most by Steven Baur + + +* For older news and for alternate news (the ones dealing with XEmacs +19.15 and 19.16), see the file ONEWS. diff --git a/lisp/mule/latin.el b/lisp/mule/latin.el new file mode 100644 index 0000000..d886809 --- /dev/null +++ b/lisp/mule/latin.el @@ -0,0 +1,248 @@ +;;; latin.el --- Support for Latin charsets. + +;; Copyright (C) 2001 Free Software Foundation, Inc. + +;; Author: Hrvoje Niksic +;; Maintainer: XEmacs Development Team +;; Keywords: multilingual, European, dumped + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Commentary: + +;; This file is meant to provide support for Latin character sets. +;; The place for that used to be `european.el', but I am hesitant to +;; change that file, as it is full of old cruft that I hope to phase +;; out. Currently this file provides only the case table setup. + + +;;; Code: + +;; Case table setup. We set up all the case tables using +;; put-case-table-pair. The data for this comes from FSF Emacs 20.7 +;; (lisp/international/latin-*.el), written by several people and +;; updated by Erik Naggum. + +(defun setup-case-pairs (charset pairs) + (let ((tbl (standard-case-table))) + (loop for (uc lc) in pairs do + (put-case-table-pair (make-char charset uc) (make-char charset lc) tbl)))) + +;; Latin 1. + +(setup-case-pairs + 'latin-iso8859-1 + '((192 224) ;latin letter a with grave + (193 225) ;latin letter a with acute + (194 226) ;latin letter a with circumflex + (195 227) ;latin letter a with tilde + (196 228) ;latin letter a with diaeresis + (197 229) ;latin letter a with ring above + (198 230) ;latin letter ae + (199 231) ;latin letter c with cedilla + (200 232) ;latin letter e with grave + (201 233) ;latin letter e with acute + (202 234) ;latin letter e with circumflex + (203 235) ;latin letter e with diaeresis + (204 236) ;latin letter i with grave + (205 237) ;latin letter i with acute + (206 238) ;latin letter i with circumflex + (207 239) ;latin letter i with diaeresis + (208 240) ;latin letter eth + (209 241) ;latin letter n with tilde + (210 242) ;latin letter o with grave + (211 243) ;latin letter o with acute + (212 244) ;latin letter o with circumflex + (213 245) ;latin letter o with tilde + (214 246) ;latin letter o with diaeresis + (216 248) ;latin letter o with stroke + (217 249) ;latin letter u with grave + (218 250) ;latin letter u with acute + (219 251) ;latin letter u with circumflex + (220 252) ;latin letter u with diaeresis + (221 253) ;latin letter y with acute + (222 254) ;latin letter thorn + )) + +;; Latin 2. + +(setup-case-pairs + 'latin-iso8859-2 + '((161 177) ;latin letter a with ogonek + (163 179) ;latin letter l with stroke + (165 181) ;latin letter l with caron + (166 182) ;latin letter s with acute + (169 185) ;latin letter s with caron + (170 186) ;latin letter s with cedilla + (171 187) ;latin letter t with caron + (172 188) ;latin letter z with acute + (174 190) ;latin letter z with caron + (175 191) ;latin letter z with dot above + (192 224) ;latin letter r with acute + (193 225) ;latin letter a with acute + (194 226) ;latin letter a with circumflex + (195 227) ;latin letter a with breve + (196 228) ;latin letter a with diaeresis + (197 229) ;latin letter l with acute + (198 230) ;latin letter c with acute + (199 231) ;latin letter c with cedilla + (200 232) ;latin letter c with caron + (201 233) ;latin letter e with acute + (202 234) ;latin letter e with ogonek + (203 235) ;latin letter e with diaeresis + (204 236) ;latin letter e with caron + (205 237) ;latin letter i with acute + (206 238) ;latin letter i with circumflex + (207 239) ;latin letter d with caron + (208 240) ;latin letter d with stroke + (209 241) ;latin letter n with acute + (210 242) ;latin letter n with caron + (211 243) ;latin letter o with acute + (212 244) ;latin letter o with circumflex + (213 245) ;latin letter o with double acute + (214 246) ;latin letter o with diaeresis + (216 248) ;latin letter r with caron + (217 249) ;latin letter u with ring above + (218 250) ;latin letter u with acute + (219 251) ;latin letter u with double acute + (220 252) ;latin letter u with diaeresis + (221 253) ;latin letter y with acute + (222 254) ;latin letter t with cedilla + )) + +;; Latin 3. + +(setup-case-pairs + 'latin-iso8859-3 + '((161 177) ;latin letter h with stroke + (166 182) ;latin letter h with circumflex + (170 186) ;latin letter s with cedilla + (171 187) ;latin letter g with breve + (172 188) ;latin letter j with circumflex + (175 191) ;latin letter z with dot above + (192 224) ;latin letter a with grave + (193 225) ;latin letter a with acute + (194 226) ;latin letter a with circumflex + (196 228) ;latin letter a with diaeresis + (197 229) ;latin letter c with dot above + (198 230) ;latin letter c with circumflex + (199 231) ;latin letter c with cedilla + (200 232) ;latin letter e with grave + (201 233) ;latin letter e with acute + (202 234) ;latin letter e with circumflex + (203 235) ;latin letter e with diaeresis + (204 236) ;latin letter i with grave + (205 237) ;latin letter i with acute + (206 238) ;latin letter i with circumflex + (207 239) ;latin letter i with diaeresis + (209 241) ;latin letter n with tilde + (210 242) ;latin letter o with grave + (211 243) ;latin letter o with acute + (212 244) ;latin letter o with circumflex + (213 245) ;latin letter g with dot above + (214 246) ;latin letter o with diaeresis + (216 248) ;latin letter g with circumflex + (217 249) ;latin letter u with grave + (218 250) ;latin letter u with acute + (219 251) ;latin letter u with circumflex + (220 252) ;latin letter u with diaeresis + (221 253) ;latin letter u with breve + (222 254) ;latin letter s with circumflex + )) + +;; Latin 4. + +(setup-case-pairs + 'latin-iso8859-4 + '((161 177) ;latin letter a with ogonek + (163 179) ;latin letter r with cedilla + (165 181) ;latin letter i with tilde + (166 182) ;latin letter l with cedilla + (169 185) ;latin letter s with caron + (170 186) ;latin letter e with macron + (171 187) ;latin letter g with cedilla + (172 188) ;latin letter t with stroke + (174 190) ;latin letter z with caron + (189 191) ;eng + (192 224) ;latin letter a with macron + (193 225) ;latin letter a with acute + (194 226) ;latin letter a with circumflex + (195 227) ;latin letter a with tilde + (196 228) ;latin letter a with diaeresis + (197 229) ;latin letter a with ring above + (198 230) ;latin letter ae + (199 231) ;latin letter i with ogonek + (200 232) ;latin letter c with caron + (201 233) ;latin letter e with acute + (202 234) ;latin letter e with ogonek + (203 235) ;latin letter e with diaeresis + (204 236) ;latin letter e with dot above + (205 237) ;latin letter i with acute + (206 238) ;latin letter i with circumflex + (207 239) ;latin letter i with macron + (208 240) ;latin letter d with stroke + (209 241) ;latin letter n with cedilla + (210 242) ;latin letter o with macron + (211 243) ;latin letter k with cedilla + (212 244) ;latin letter o with circumflex + (213 245) ;latin letter o with tilde + (214 246) ;latin letter o with diaeresis + (216 248) ;latin letter o with stroke + (217 249) ;latin letter u with ogonek + (218 250) ;latin letter u with acute + (219 251) ;latin letter u with circumflex + (220 252) ;latin letter u with diaeresis + (221 253) ;latin letter u with tilde + (222 254) ;latin letter u with macron + )) + +;; Latin 5. Currently unsupported. + +;(setup-case-pairs +; 'latin-iso8859-5 +; '((192 224) ;latin letter a with grave +; (193 225) ;latin letter a with acute +; (194 226) ;latin letter a with circumflex +; (195 227) ;latin letter a with tilde +; (196 228) ;latin letter a with diaeresis +; (197 229) ;latin letter a with ring above +; (198 230) ;latin letter ae +; (199 231) ;latin letter c with cedilla +; (200 232) ;latin letter e with grave +; (201 233) ;latin letter e with acute +; (203 235) ;latin letter e with diaeresis +; (205 237) ;latin letter i with acute +; (206 238) ;latin letter i with circumflex +; (208 240) ;latin letter g with breve +; (209 241) ;latin letter n with tilde +; (210 242) ;latin letter o with grave +; (211 243) ;latin letter o with acute +; (212 244) ;latin letter o with circumflex +; (213 245) ;latin letter o with tilde +; (214 246) ;latin letter o with diaeresis +; (216 248) ;latin letter o with stroke +; (217 249) ;latin letter u with grave +; (218 250) ;latin letter u with acute +; (219 251) ;latin letter u with circumflex +; (220 252) ;latin letter u with diaeresis +; (222 254) ;latin letter s with cedilla +; )) + +;; This is our utility function; we don't want it in the dumped XEmacs. + +(fmakunbound 'setup-case-pairs)