# HG changeset patch # User cvs # Date 1186990059 -7200 # Node ID 1370575f125952b49a495ab4da3ff71ac6ff4321 # Parent 8b0638b347ec09e96607409d1d6867ac19997d2e Import from CVS: tag xemacs-20-1p1 diff -r 8b0638b347ec -r 1370575f1259 CHANGES-beta --- a/CHANGES-beta Mon Aug 13 09:26:41 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 09:27:39 2007 +0200 @@ -1,5 +1,14 @@ -*- indented-text -*- +to 20.1 +-- time.el-1.15 +-- itimer.el-1.06 +-- facemenu-keymap moved to `C-x F' +-- MULE anchored beginning regexp bug fix courtesy of David Moore +-- VM-6.26 +-- miscellaneous bug fixes + to 20.1 beta15 +-- tm-vm.el-8.11 -- Courtesy of Oscar Figuerido -- Restoration of zawinski features in telnet.el. -- paren.el & ps-print.el customized -- Gnus-5.4.45 diff -r 8b0638b347ec -r 1370575f1259 ChangeLog --- a/ChangeLog Mon Aug 13 09:26:41 2007 +0200 +++ b/ChangeLog Mon Aug 13 09:27:39 2007 +0200 @@ -1,3 +1,7 @@ +Tue Apr 15 21:03:22 1997 Steven L Baur + + * XEmacs 20.1 is released. + Sat Apr 12 20:11:08 1997 Steven L Baur * XEmacs 20.1-b15 is released. diff -r 8b0638b347ec -r 1370575f1259 INSTALL --- a/INSTALL Mon Aug 13 09:26:41 2007 +0200 +++ b/INSTALL Mon Aug 13 09:27:39 2007 +0200 @@ -285,6 +285,10 @@ and WNN libraries. Currently you need to specify wnn-includes in most installations of Wnn-4.2. +The `--with-pop', `--with-hesiod', and `--with-kerberos' options are used +in conjunction with movemail. As of XEmacs 20.1, movemail is identical +to the one used in Emacs. + `configure' doesn't do any compilation or installation itself. It just creates the files that influence those things: `./Makefile', `src/Makefile', `lwlib/Makefile', `lib-src/Makefile', diff -r 8b0638b347ec -r 1370575f1259 PROBLEMS --- a/PROBLEMS Mon Aug 13 09:26:41 2007 +0200 +++ b/PROBLEMS Mon Aug 13 09:27:39 2007 +0200 @@ -103,6 +103,12 @@ This error message has been observed with lesstif-0.75a. It does not appear to cause any harm. +** Movemail on Linux doesn't work any more + +Linux now defaults to using .lock mail locking. To get back to the +previous flock locking, edit src/s/linux.h and uncomment out the +`# define MAIL_USE_FLOCK' line. + ** Sparc Linux -vs- libXmu. There have been reports of configure not detecting libXmu on @@ -227,6 +233,11 @@ - V3.n: Remove "-migrate" from the compile command. - V4.n: Add "-oldc" to the compile command. +** On Digital UNIX, TOOLTALK gets misdetected and misconfigured + +This problem manifested itself in the beta cycle as putting a literal +LIB_TOOLTALK string into the Makefile. + ** On HPUX, the HP C compiler might have a problem compiling some files with optimization. @@ -1004,6 +1015,21 @@ be set-UID to root, or non-root programs like Emacs will not be able to allocate ptys reliably. +** Motif dialog boxes lose big time on Irix. + +Larry Auton writes: +Beware of not specifying + + --with-dialogs=athena + +if it builds with the motif dialogs [boom!] you're a dead man. + +** Beware of the default image & graphics library on Irix + +Richard Cognot writes: +You *have* to compile your own jpeg lib. The one delivered with SGI +systems is a C++ lib, which apparently XEmacs cannot cope with. + ** Slow startup on Linux. People using systems based on the Linux kernel sometimes report that diff -r 8b0638b347ec -r 1370575f1259 configure --- a/configure Mon Aug 13 09:26:41 2007 +0200 +++ b/configure Mon Aug 13 09:27:39 2007 +0200 @@ -100,7 +100,7 @@ native_sound_lib='' # make normal error-checking be the default in alpha and beta versions, so # that bugs get noticed. Change this for released versions. -error_check_default='yes' +error_check_default='no' error_check_extents=$error_check_default error_check_typecheck=$error_check_default error_check_bufpos=$error_check_default @@ -7202,9 +7202,9 @@ test "$with_dialogs" = motif && echo " Using the Motif dialog boxes." test "$with_dialogs" = athena && echo " Using the Athena dialog boxes." test "$with_dialogs" = athena3d && echo " Using the Athena-3d dialog boxes." -test "$with_pop" = yes && " Using POP for mail access" -test "$with_kerberos" = yes && " Using Kerberos for POP authentication" -test "$with_hesiod" = yes && " Using Hesiod to get POP server host" +test "$with_pop" = yes && echo " Using POP for mail access" +test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication" +test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host" test "${use_union_type}" = yes && echo " Using the union type for Lisp_Objects." test "${debug}" = yes && echo " Compiling in extra code for debugging." diff -r 8b0638b347ec -r 1370575f1259 configure.in --- a/configure.in Mon Aug 13 09:26:41 2007 +0200 +++ b/configure.in Mon Aug 13 09:27:39 2007 +0200 @@ -116,7 +116,7 @@ native_sound_lib='' # make normal error-checking be the default in alpha and beta versions, so # that bugs get noticed. Change this for released versions. -error_check_default='yes' +error_check_default='no' error_check_extents=$error_check_default error_check_typecheck=$error_check_default error_check_bufpos=$error_check_default @@ -3259,9 +3259,9 @@ test "$with_dialogs" = motif && echo " Using the Motif dialog boxes." test "$with_dialogs" = athena && echo " Using the Athena dialog boxes." test "$with_dialogs" = athena3d && echo " Using the Athena-3d dialog boxes." -test "$with_pop" = yes && " Using POP for mail access" -test "$with_kerberos" = yes && " Using Kerberos for POP authentication" -test "$with_hesiod" = yes && " Using Hesiod to get POP server host" +test "$with_pop" = yes && echo " Using POP for mail access" +test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication" +test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host" test "${use_union_type}" = yes && echo " Using the union type for Lisp_Objects." test "${debug}" = yes && echo " Compiling in extra code for debugging." diff -r 8b0638b347ec -r 1370575f1259 etc/BETA --- a/etc/BETA Mon Aug 13 09:26:41 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ - -*- mode:outline; minor-mode:outl-mouse -*- - -* Introduction -============== - -You are running an experimental version of XEmacs. Please do not -report problems with Beta XEmacs to comp.emacs.xemacs. Report them to -xemacs-beta@xemacs.org. - -** XEmacs Beta Mailing List -=========================== - -*** Subscribing ---------------- - -If you are not subscribed to the XEmacs beta list you should be. Send -an email message with a subject of `subscribe' (without the quotes) to -xemacs-beta-request@xemacs.org and follow the directions. You do not -have to fill out the survey if you don't want to. - -*** Unsubscribing ------------------ - -To unsubscribe from the list send an email message with a subject of -`unsubscribe' (without the quotes) to xemacs-beta-request@xemacs.org. - -*** Administrivia ------------------ - -The XEmacs beta list is managed by the SmartList mailing list package, -and the usual SmartList commands work. Do not send mailing list -requests to the main address (xemacs-beta@xemacs.org), always send -them to xemacs-beta-request@xemacs.org. If you have problems with the -list itself, they should be brought to the attention of the Mailing -List manager Chuck Thompson . - - -** Beta Release Schedule -======================== - -The URL ftp://ftp.xemacs.org/pub/beta/README always contains the best -estimate of when the next beta XEmacs will be released. For weekend -betas the release time is generally in the vicinity of 2PM to 5PM US -Pacific Time (Universal Time minus 8 hours). For weekday betas, the -release time is generally in the vicinity of 8PM to Midnight US -Pacific Time on the listed day. - -While 19.15 and 20.x are in parallel development, a simultaneous -release day implies a release of 20.x first, followed a few hours -later by 19.15. - -Betas are nominally a week apart, scheduled on every Saturday. -Midweek releases are made when a serious enough problem warrants it. - - -** Reporting Problems -===================== - -The best way to get problems fixed in XEmacs is to submit good problem -reports. Since this is beta software problems are certain to exist. -Please read through all of part II of the XEmacs FAQ for an overview -of problem reporting. Other items which are most important are: - -1. Do not submit C stack backtraces without line numbers. Since it - is possible to compile optimized with debug information with GCC - it is never a good idea to compile XEmacs without the -g flag. - XEmacs runs on a variety of platforms, and often it is not - possible to recreate problems which afflict a specific platform. - The line numbers in the C stack backtrace help isolate where the - problem is actually occurring. - -2. Attempt to recreate the problem starting with an invocation of - XEmacs with `xemacs -q -no-site-file'. Quite often problems are - due to package interdependencies, and the like. An actual bug in - XEmacs should be reproducible in a default configuration without - loading any special packages (or the one or two specific packages - that cause the bug to appear). - -3. A picture can be worth a thousand words. When reporting an - unusual display, it is generally best to capture the problem in a - screen dump and include that with the problem report. The easiest - way to get a screen dump is to use the xv program and its grab - function. Save the image as a GIF to keep bandwidth requirements - down without loss of information. MIME is the preferred method - for making the image attachments. - -* Compiling Beta XEmacs -======================= - -** Building an XEmacs from patches -================================== - -All beta releases of XEmacs are included with patches from the -previous version in an attempt to keep bandwidth requirements down. -Patches should be applied with the GNU patch program in something like -the following. Let's say you're upgrading XEmacs 20.4-beta10 to -XEmacs 20.4-beta11 and you have a full unmodified XEmacs 20.4-beta10 -source tree to work with. Cd to the top level directory and issue the -shell command: - -$ gunzip -c /tmp/xemacs-20.4-b10-20.4-b11.patch.gz | patch -p1 - -After patching check to see that no patches were missed by doing -$ find . -name \*.rej -print - -Any rejections should be treated as serious problems to be resolved -before starting compilation. - -After seeing that there were no rejections, issue the command - -$ make all-elc - -and go play minesweep for awhile on an older XEmacs while the binary -is rebuilt. - -** Building an XEmacs from a full distribution -============================================== - -Locate a convenient place where you have at least 100MB of free space -and issue the command - -$ gunzip -c /tmp/xemacs-20.4-b11.tar.gz | tar xvf - - -(or the simpler `tar zxvf /tmp/xemacs-20.4-b11.tar.gz' if you use GNU -tar). - -cd to the top level directory and issue an appropriate configure -command. The maintainer uses the following at the time of this -writing: - -./configure --with-offix --with-mule=yes --with-dialogs=athena3d \ - --cflags="-m486 -g -O4 -fno-strength-reduce -malign-loops=2 \ - -malign-jumps=2 -malign-functions=2" --with-sound=no \ - --with-xface=yes --error-checking=all --debug=yes \ - --with-scrollbars=athena3d \ - --with-canna=yes --with-wnn=yes --wnn-includes=/usr/X11R6/include/wnn - -Save the output from configure that looks something like: -Configured for `i586-unknown-linux2.0.28'. - - Where should the build process find the source code? /usr/src/xemacs-20.0 - What installation prefix should install use? /usr/local - What operating system and machine description files should XEmacs use? - `s/linux.h' and `m/intel386.h' - What compiler should XEmacs be built with? gcc -m486 -g -O4 -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2 - Should XEmacs use the GNU version of malloc? yes - Should XEmacs use the relocating allocator for buffers? yes - What window system should XEmacs use? x11 - Where do we find X Windows header files? /usr/X11R6/include - Where do we find X Windows libraries? /usr/X11R6/lib - Compiling in support for XAUTH. - Compiling in support for XPM. - Compiling in support for X-Face headers. - Compiling in support for GIF image conversion. - Compiling in support for JPEG image conversion. - Compiling in support for PNG image conversion. - Compiling in support for Berkeley DB. - Compiling in support for GNU DBM. - Compiling in Mule (multi-lingual) support. - Compiling in support for OffiX. - Using the Lucid menubar. - Using the Athena-3d scrollbar. - Using the Athena-3d dialog boxes. - -Then type make and you should have a working XEmacs. - -After you have verified that you have a functional editor, fire up -your favorite mail program and send a build report to -xemacs-beta@xemacs.org. The build report should include - -1. Your hardware configuration (OS version, etc.) - -2. Version numbers of software in use (X11 version, system library - versions if appropriate, graphics library versions if appropriate). - If you're on a system like Linux, include all the version numbers - you can because chances are it makes a difference. - -3. The options given to configure - -4. The configuration report illustrated above - -5. Any other unusual items you feel should be brought to the attention - of the developers. diff -r 8b0638b347ec -r 1370575f1259 etc/DISTRIB --- a/etc/DISTRIB Mon Aug 13 09:26:41 2007 +0200 +++ b/etc/DISTRIB Mon Aug 13 09:27:39 2007 +0200 @@ -1,6 +1,6 @@ -*- text -*- - XEmacs availability information. Last Modified: 10-feb-96. + XEmacs availability information. Last Modified: 17-Apr-97. XEmacs is available via anonymous FTP from ftp.xemacs.org (128.174.252.16) in the directory /pub/xemacs/. @@ -8,17 +8,23 @@ ftp.xemacs.org is the primary distribution point, but you may find copies of it at other sites as well. Some sites to try include: - ftp.ai.mit.edu:/pub/xemacs/ - ftp.uu.net:/systems/gnu/xemacs/ - ftp.sunet.se:/pub/gnu/xemacs/ - ftp.cenatls.cena.dgac.fr:/pub/Emacs/xemacs/ - liasun3.epfl.ch:/pub/gnu/xemacs/ - ftp.th-darmstadt.de:/pub/editors/xemacs/ - audrey.levels.unisa.edu.au:/xemacs/ - sunsite.doc.ic.ac.uk:/gnu/xemacs/ - uiarchive.cso.uiuc.edu:/pub/packages/xemacs/ - ftp.technion.ac.il:/pub/unsupported/gnu/xemacs/ - thphys.irb.hr:/pub/xemacs/ + ftp://ftp.ai.mit.edu:/pub/xemacs/ + ftp://ftp-digital.cern.ch:/pub/beta/xemacs-20.0/ + ftp://ftp.uu.net:/systems/gnu/xemacs/ + ftp://ftp.sunet.se:/pub/gnu/xemacs/ + ftp://tp.cenatls.cena.dgac.fr:/pub/Emacs/xemacs/ + ftp://ftp.th-darmstadt.de:/pub/editors/xemacs/ + ftp://sunsite.doc.ic.ac.uk:/gnu/xemacs/ + ftp://ftp.ibp.fr:/pub/emacs/xemacs/ + ftp://uiarchive.cso.uiuc.edu:/pub/packages/xemacs/ + ftp://ftp.technion.ac.il:/pub/unsupported/gnu/xemacs/ + ftp://thphys.irb.hr:/pub/xemacs/ + ftp://sunsite.cnlab-switch.ch/mirror/xemacs/ + ftp://ftp.unicamp.br:/pub/xemacs/r20.0/ + ftp://ftp.usyd.edu.au:/pub/Xemacs/ + ftp://ftp.lab.kdd.co.jp/xemacs/ + ftp://SunSITE.sut.ac.jp/pub/archives/xemacs/ + ftp://sunsite.icm.edu.pl/pub/unix/xemacs The most up-to-date list of distribution sites can always be found on the XEmacs WWW page, http://www.xemacs.org/. Try to pick a site diff -r 8b0638b347ec -r 1370575f1259 etc/FTP --- a/etc/FTP Mon Aug 13 09:26:41 2007 +0200 +++ b/etc/FTP Mon Aug 13 09:27:39 2007 +0200 @@ -24,6 +24,7 @@ ftp://ftp.usyd.edu.au:/pub/Xemacs/ ftp://ftp.lab.kdd.co.jp/xemacs/ ftp://SunSITE.sut.ac.jp/pub/archives/xemacs/ + ftp://sunsite.icm.edu.pl/pub/unix/xemacs The most up-to-date list of distribution sites can always be found on diff -r 8b0638b347ec -r 1370575f1259 etc/NEWS --- a/etc/NEWS Mon Aug 13 09:26:41 2007 +0200 +++ b/etc/NEWS Mon Aug 13 09:27:39 2007 +0200 @@ -1,29 +1,29 @@ --*- mode:outline; minor-mode:outl-mouse -*- - +-*- mode:outline -*- + * Introduction ============== This file presents some general information about XEmacs. It is primarily about the evolution of XEmacs and its release history. -There are five sections. +There are three sections. Introduction................(this section) provides an introduction Using Outline Mode..........briefly explains how to use outline mode - The History of XEmacs.......some historical notes - - What's Different?...........new or changed capabilities - XEmacs Release Notes........details of the changes between releases New users should look at the next section on "Using Outline Mode". You will be more efficient when you can navigate quickly through this file. Users interested in some of the details of how XEmacs differs from GNU Emacs -should read the section "What's Different?". Users who would to know which -capabilities have been introduced in each release should look at the -appropriate subsection of the "XEmacs Release Notes." +should read the section "What's Different?". + +Users who would like to know which capabilities have been introduced +in each release should look at the appropriate subsection of the +"XEmacs Release Notes." Starting with version 20.0, XEmacs includes +ChangeLogs, which can be consulted for a more detailed list of +changes. N.B. The term "FSF GNU Emacs" refers to any release of Emacs Version 19 from the Free Software Foundation's GNU Project. (We do not say just @@ -35,7 +35,7 @@ "Lucid Emacs". The predecessor of all these program is called "Emacs 18". When no particular version is implied, "Emacs" will be used. - + * Using Outline Mode ==================== @@ -81,314 +81,444 @@ C-c C-e make it visible. C-c C-l make body under heading and under its subheadings invisible. The subheadings remain visible. -C-c C-k make all subheadings at all levels visible.x1 - - -* XEmacs Release Notes -====================== - -** Future Plans for XEmacs +C-c C-k make all subheadings at all levels visible. + + + XEmacs Release Notes + ==================== + +* Future Plans for XEmacs ========================== -The next `feature' will be the unbundling of XEmacs into constituent -installable packages. - -We are working on improving the Mule support in future releases: - --- Other input methods, such as skk, will be supported. - --- Wnn support will be made more solid. - --- More user-level documentation on using Mule. - -** Major Differences between 20.0 and 20.1 - -*** User Interface changes. - -The keysyms mouse-1, mouse-2, mouse-3 and down-mouse-1, down-mouse-2, -and down-mouse-3 have been added for Emacs compatibility. - -A new user customizable variable `signal-error-on-buffer-boundary' has -been added. Set this to nil to avoid XEmacs usual lossage of zmacs -region when moving up against a buffer boundary. - -The logo has been changed, and the default background color is now -shade of gray instead of white. - -Many packages have been add and upgraded. - --- Gnus-5.4.43 Courtesy of Lars Magne Ingebrigtsen - -*** Gnus changes. - -**** nntp.el has been totally rewritten in an asynchronous fashion. - -**** Article prefetching functionality has been moved up into +** XEmacs will be unbundled into constituent installable packages. + +The XEmacs distribution has grown very large. We plan the future +distribution to contain a much smaller amount of code for basic +functionality, with all the popular Lisp packages being available in +the form of easy-to-install add-ons. + +** Autoconf 2 will be supported, to make XEmacs a more behaved +denizen of the free software community. + +** We are working on improving the Mule support in future releases: + +*** Other input methods, such as skk, will be supported. + +*** Wnn support will be made more solid. + +*** More user-level documentation on using Mule. + + +* Changes in XEmacs 20.1 +======================== + +** 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 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'). + +** Numerous causes of crashes have been fixed. XEmacs should now be +even more stable than before. + +** The XEmacs build process has been changed to make site +administration easier. See lisp/site-load.el for details. + +** 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. + +** A number of new packages are added, and many packages were +updated. + +** Gnus-5.4.45, 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 +*** 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. +*** 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 +*** 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. +*** 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. +*** 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 +*** 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 +*** A way to specify that "uninteresting" fields be suppressed when generating lines in buffers. -**** Several commands in the group buffer can be undone with +*** 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: +*** 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. +*** Scores can be decayed. (setq gnus-decay-scores t) -**** Scoring can be performed using a regexp on the Date header. The +*** 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 +*** 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 +*** 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 +*** 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 +*** 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 +*** 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. +*** Subsets of the groups can be sorted independently. See the commands under the `G P' submap. -**** Cached articles can be pulled into the groups. +*** 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. +*** 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 +*** 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.82 Courtesy of Per Abrahamsen +*** The nnml mail backend now understands compressed article files. + +** Custom 1.84, courtesy of Per Abrahamsen The Customize library enables Emacs Lisp programmers to specify types -of their variables, so that the users can customize them. For -example, the old declaration +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.80, 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 GNU 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.09, 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.7, 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 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.05, 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.26, courtesy of Kyle Jones +** OO-Browser-2.10, courtesy of Bob Weiner +** viper-2.93, courtesy of Michael Kifer +** ediff-2.64, 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, courtesy of Michael McNamara & Adrian Aichner +** overlay.el, courtesy of Joseph Nuspl + + +* Lisp and internal changes in XEmacs 20.1 +========================================== + +** `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.") -now becomes: +can be rewritten as: (defcustom foo-blurgoze nil "*non-nil means that foo will act very blurgozely." - :type 'boolean) - -Now the user can type `M-x customize RET foo-blurgoze RET' to -customize the variable. Other, more complex data structures can be -represented and customized too, e.g. + :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 foo package. +"*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." +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)))) - -The user will be able to add and remove the entries to the list, as -well as save the settings to his/her `.emacs'. - -The Customize now has its submenu at the top of the Options menu, and -is 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, Calendar, 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. - -been converted to use the Customize features. - --- mic-paren.el-1.3.1 Courtesy of Mikael Sjödin --- hyperbole-4.022 Courtesy of Bob Weiner - --- W3-3.0.80 Courtesy of William Perry - -Version 3 of Emacs/W3, the Emacs World Wide Web browser, has been -included. It is much faster than any of the previous versions, and -contains numerous other features. - --- AUCTeX-9.7k Courtesy of Per Abrahamsen - - AUC TeX is a comprehensive customizable integrated environment for -writing input files for LaTeX using GNU 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. - --- hm--html-menus-5.3 Courtesy of Heiko Muenkel --- python-mode.el-2.90 Courtesy of Barry Warsaw --- balloon-help-1.04 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.01 Courtesy of Kyle Jones - --- redo.el-1.01 Courtesy of Kyle Jones - -redo.el is a package that implements true redo mechanism in XEmacs -buffers. 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: - 1. 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. - 2. 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. - --- VM-6.15 Courtesy of Kyle Jones --- OO-Browser-2.10 Courtesy of Bob Weiner --- viper-2.93 Courtesy of Michael Kifer --- ediff-2.64 Courtesy of Michael Kifer - --- edmacro.el-3.05 Courtesy of Dave Gillespie, port to XEmacs by - Hrvoje Niksic. - -Edmacro is a utility that provides easy editing of keyboard macros. -Press `C-x C-k' to invoke the `edit-kbd-macro' command that lets you -edit and define new keyboard macros. You can also edit the last 100 -keystrokes and insert them into a macro to be bound to a key. The -macros can be conveniently dumped to `.emacs' file. - -The `read-kbd-macro' function is now available in XEmacs. The short -form `kbd' that evaluates at compile-time can be used instead. - --- detached-minibuf.el Courtesy of Alvin Shelton --- whitespace-mode.el Courtesy of Heiko Muenkel --- winmgr-mode.el Courtesy of David Konerding, Stefan Strobel & Barry Warsaw - --- xmine.el-1.4 Courtesy of Jens Lautenbacher - -XEmacs now includes a minesweeper game with a full-featured graphics -and mouse interface. Invoke with `M-x xmine'. - --- 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.8 Courtesy of Noah Friedman --- tm-7.105 Courtesy of MORIOKA Tomohiko - --- efs-1.15 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. - --- verilog-mode.el Courtesy of Michael McNamara & Adrian Aichner - --- overlay.el Courtesy of Joseph Nuspl - -The overlay support in XEmacs is now functional. Overlays are -implemented on top of native extents, and can be used as a GNU + 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 (and its shorter-named equivalent `kbd') +from the edmacro package is now available in XEmacs. For example: + +(define-key foo-mode-map (kbd "C-c ") 'foo-up) + +is the equivalent of + +(define-key foo-mode-map [(control ?c) up] 'foo-up) + +Using `read-kbd-macro' and `kbd' is not necessary for GNU Emacs +compatibility (GNU Emacs supports the XEmacs-style keysyms), but adds +to clarity. + +For example, (kbd "C-?") is 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. -*** Other changes - -First alpha level support of MS Windows NT is available courtesy of -David Hobley. - -Wnn/egg now has initial support Courtesy of Jareth Hein. - -The XEmacs build process has been changed to make site administration -easier. See lisp/site-load.el for details. - -Various functions that were previously disabled are now enabled like -eval-expression (M-:) and upcase-region (C-x C-u)/downcase-region (C-x -C-l). - -** Major Differences Between 19.14 and 20.0 +** You should use keysyms kp-* (kp-1, kp-2, ..., kp-enter etc.) +rather than the old form kp_*. The old form is retained for +backwards compatibility, but is obsolete. 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. + +** 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. + +** 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 diff -r 8b0638b347ec -r 1370575f1259 etc/OTHER.EMACSES --- a/etc/OTHER.EMACSES Mon Aug 13 09:26:41 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1049 +0,0 @@ -How is this Emacs different from all other Emacses? -*-Outline-*- - -This file describes the differences between GNU Emacs 19, Twenex -Emacs, Gosling Emacs (including the commercial versions by Unipress) -and CCA Emacs. - -* Copyright (c) 1985 Richard M. Stallman - - Permission is granted to anyone to make or distribute verbatim copies - of this document as received, in any medium, provided that the - copyright notice and permission notice are preserved, - and that the distributor grants the recipient permission - for further redistribution as permitted by this notice. - - Permission is granted to distribute modified versions - of this document, or of portions of it, - under the above conditions, provided also that they - carry prominent notices stating who last changed them. - -Updated March 1993 for Emacs 19 by Eric S. Raymond - - -* How is this Emacs different from Twenex Emacs? - -** Fundamental concepts. - -*** There is no concept of "typeout" in GNU Emacs. - -Any time that a command wants to display some output, -it creates a buffer (usually with a name surrounded by asterisks) -and displays it in a window. - -This provides some advantages: - you can edit some more while looking at the output; - you can copy parts of the output into other buffers. - -It also has a disadvantage that you must type a command -in order to make the output disappear. -You can use C-x 1 to get rid of all windows except the -selected one. To be more selective, you can switch to -the window you want to get rid of and then type C-x 0 -(delete-window). - -You also need to type a command to scroll the other -window if not all the output fits in it. Meta-Control-v -will usually do the job. - -*** There is no concept of a "subsystem" in GNU Emacs. - -Where Twenex Emacs would use a subsystem, GNU Emacs -instead creates a buffer and redefines commands in it. - -For example, when you send mail in GNU Emacs, you use -a buffer named *mail* which is in Mail Mode. You can -switch away from this buffer to any other buffer and -resume normal editing; then switch back and resume -composing mail. You do not have to "exit" from -composing mail in order to do ordinary editing. - -This has many advantages, but it also has a disadvantage: -Subsystems in Emacs tend to have "exit" commands that return you -to whatever you were doing before entering the subsystem. -In GNU Emacs the idea of what to return to is not well defined, -so it is not clear what an "exit" command should do. -The only way to "exit" in general is to type C-x b, C-x C-f, or -some other suitable command to switch buffers. Some -subsystem-like major modes, such as Info and Mail mode, provide -commands to "exit" by switching to the previously selected -buffer. - -*** Files are always visited in their own buffers. - -Beginning users of Twenex Emacs were told how to edit -using a single buffer and reading one file after another -into that buffer. Use of a new buffer for each file was -regarded as a more advanced mode. - -In GNU Emacs, the idea of using a single buffer for various -files, one by one, has been dropped, given that the address -space is expected to be large enough for many buffers. C-x -C-f (find-file), which behaves nearly the same as in Twenex -Emacs, is in GNU Emacs the canonical way for all users to -visit files. - -Various commands need to read files into Emacs in the course -of their execution. In Twenex Emacs the user must tell them -whether to reuse buffers or create new ones, using the variable -Tags Find File. In GNU Emacs, these commands always use -C-x C-f. - -The command C-x C-v does still exist; it kills the current -buffer and reads the specified file into a new buffer. -It is equivalent to kill-buffer followed by find-file. - -Since there is no reusing of buffers, there is no point in -calling the initial buffer "main". So the initial buffer -in GNU Emacs is called "*scratch*" and is intended for typing -Lisp expressions to be evaluated. - -*** File name defaulting. - -GNU Emacs records a separate working directory for each buffer. -Normally this is the directory on which the buffer's file -resides; for buffers not visiting any file, it is copied from -the buffer that was current when it was created. The current buffer's -working directory can be printed with M-x pwd and set with M-x cd. - -GNU Emacs shows you the default directory by inserting it in -the minibuffer when a file name is being read. You can type -the filename you want at the end of the default as if the -default were not there, or you can edit and alter the default. - -If you want file /lose/big when the default /foo/defaultdir/ -has been inserted for you, you need not kill the default; simply -type at the end of it: /foo/defaultdir//lose/big. Such a file -name is not ordinarily considered valid, but GNU Emacs -considers it equivalent to /lose/big. - -Likewise, if you want file quux in your home directory, just add -~/quux to the end of the supplied text, to get -/foo/defaultdir/~/quux. GNU Emacs sees "/~" and throws away -everything before the "~". - -You can refer to environment variables also within file names. -$ followed by the environment variable name is replaced by the -variable's value. The variable name should either be followed -by a nonalphanumeric character (which counts as part of the -file name) or be surrounded by braces {...} (which do not count -as part of the file name). Thus, if variable USER has value "rms", -"x/$USER-foo" is expanded to "x/rms-foo", and "x${USER}foo" -is expanded to "xrmsfoo". Note that this substitution is not -performed by the primitive file operation functions of GNU Emacs, -but rather by the interactive file name reader. It is also -available as a separate primitive, in the function -substitute-in-file-name. - -*** Exit commands C-z, C-x C-c and C-x C-z. - -There are two ways to exit GNU Emacs: killing and suspending. -Killing is like what Control-c does to ordinary Unix programs. -In GNU Emacs, you type C-x C-c to kill it. (This offers to -save any modified file buffers before really killing Emacs.) -Suspending is like what Control-z does to ordinary Unix programs. -To suspend GNU Emacs, type C-x C-z, or type just C-z. -Note that C-z suspends ordinary programs instantly, but -Emacs does not suspend until it reads the C-z. - -Usually it is better to suspend: once a system is smart -enough to have job control, why ever kill an editor? -You'll just have to make a new one in a minute. -This is why the convenient command C-z is provided for -suspending. - -C-c is used as a prefix key for mode-specific commands and for users' -own commands. We deliberately do not make C-c ever kill Emacs, -because it should not be so easy to do something irreversible. - -*** Quitting with C-g. - -If you type C-g while GNU Emacs is waiting for input, it -is an ordinary command (which is defined to beep). If you -type C-g while Lisp code is executing, it sets a flag which -causes a special signal, nearly the same as an error, to -happen at the next safe place in Lisp execution. This usually -has the effect of aborting the current command in a safe way. - -Because at times there have been bugs causing GNU Emacs to loop -without checking the quit flag, a special feature causes -GNU Emacs to be suspended immediately if you type a second C-g -while the flag is already set. So you can always get out -of GNU Emacs. Normally GNU Emacs recognizes and clears the quit flag -quickly enough to prevent this from happening. - -When you resume GNU Emacs after a suspension caused by multiple C-g, it -asks two questions before resuming execution: - Checkpoint? - Dump core? -Answer each one with `y' or `n' and a Return. - `y' to Checkpoint? causes immediate auto-saving of all - buffers in which auto-saving is enabled. - `y' to Dump core? causes an illegal instruction to be executed. - This is to enable a wizard to figure out why GNU Emacs was - looping without checking for quits. Execution does not continue - after a core dump. If you answer `n', execution continues. -With luck, GNU Emacs will ultimately check the quit flag, -and quit normally. If not, and you type another C-g, it -is suspended again. - -If GNU Emacs is not really hung, just slow, you may invoke -the double C-g feature without really meaning to. Then just -resume and answer `n' to both questions, and you will -arrive at your former state. Presumably the quit you -wanted will finish happening soon. - -These questions are not asked if you suspend GNU Emacs with the C-z -command. Continuing GNU Emacs after a C-z takes you straight back -into editing. - -*** Undoing with C-x u or C-_ - -You can undo many commands--up to 10,000 characters worth. -Each time you type C-x u or C-_, another command or batch of change -is undone. Undo information is stored per buffer, and the undo -command always applies to the current buffer. A numeric argument -serves as a repeat count. - -Consecutive self-inserting characters are undone in groups of twenty. - -*** Different character set. - -GNU Emacs does not expect anyone ever to have a keyboard in which -the Control key sets an independent bit which may accompany any -character. The only control characters that can exist are the -ASCII control characters. - -There is, as a result, no "control prefix" character. - -*** Control-h is the Help character. - -I'm amazed it took me so long to get this idea. In Twenex Emacs, C-h -and C-b are equivalent commands, making C-h redundant. C-h is not -only easy to type, it is mnemonic for "Help". So in GNU Emacs the -Help character is C-h. - -*** Completion is done by TAB, not ESC. - -ESC in the minibuffer is a Meta prefix, same as at top level. - -*** The string-argument reader is the minibuffer is an editor window. - -In GNU Emacs, the line at the bottom of the screen is the minibuffer. -Commands that want string arguments always use this line to read them, -and you can use the ordinary Emacs editing commands to edit the -input. You can terminate input with Return because Return is defined -as the exit-minibuffer command when in the minibuffer. If you -are using a command that needs several arguments, terminate each -one with Return. You cannot separate arguments with Escape -the way you would in Twenex Emacs. - -The minibuffer window does not overlay other editor windows; -it is a nearly ordinary editor window which lacks a mode line -and is "turned off" when not in use. While it IS in use, you -can switch windows to and from the minibuffer, kill text in other -windows and yank in the minibuffer, etc. - -You can even issue a command that uses the minibuffer while in the -minibuffer. This gets you temporarily into a recursive minibuffer. -However, this is allowed only if you enable it, since it could be -confusing for beginners. - -When you exit the minibuffer, the cursor immediately moves back to -column zero of the minibuffer line, to show you that the exit -command has been obeyed. The minibuffer contents remain on the screen -until the end of the command, unless some other text is displayed there. - -A single Control-g exits the minibuffer. - -*** There are no &'s or ^R's or spaces in function names. - -For example, the function which is called ^R Forward Word -in Twenex Emacs is called forward-word in GNU Emacs. - -*** The extension language is Lisp rather than TECO. - -Libraries must be written in Lisp. Meta-ESC reads a Lisp -expression, evaluates it, and prints the result. Note that -Meta-ESC is "disabled" by default, so that beginning users -do not get into the minibuffer by accident in a confusing way. - -Data types available include integers (which double as characters), -strings, symbols, lists, vectors, buffers, buffer pointers, -windows, and process channels. - -For now, to learn about writing Lisp code for GNU Emacs, read some of -the source code, which is in directory ../lisp. Read the GNU Emacs Lisp -Reference Manual. Also, all Lisp primitives have self-documentation you can -read with C-h f. - -*** Enabling the error handler. - -GNU Emacs has a Lisp debugger/stepper/trace package, but normally -errors do not enter the debugger because that is slow, and unlikely to -be of interest to most users. Set the variable debug-on-error to t to -cause errors to invoke the debugger. Set debug-on-quit to cause quit -signals (caused by C-g) to invoke the debugger. - -** Other changes. - -*** More than two windows are allowed. - -C-x 2 splits the current window into two windows, - one above the other. Initially they both display - the same buffer. - - C-x 2 now accepts a numeric argument to specify the number of - lines to give to the uppermost of the two windows it makes. - -C-x 0 kills the current window, making all others larger. -C-x 1 kills all windows except the current one. -C-x O switches to the next window down. - It rotates from the bottom one to the top one. - An argument serves as a repeat count; negative arguments - circulate in the reverse order. - -If the same buffer is displayed in several windows, -changes made in it are redisplayed in all of them. - -*** Side by side windows are supported. - -The command C-x 3 splits the current window into -two side-by-side windows. - -C-x } makes the selected window ARG columns wider at the -expense of the windows at its sides. C-x { makes the selected -window ARG columns narrower. An argument to C-x 5 specifies -how many columns to give to the leftmost of the two windows made. - -*** Horizontal scrolling of the lines in a window is implemented. - -C-x < (scroll-left) scrolls all displayed lines left, -with the numeric argument (default 1) saying how far to scroll. -When the window is scrolled left, some amount of the beginning -of each nonempty line is replaced by an "$". -C-x > scrolls right. If a window has no text hidden at the left -margin, it cannot be scrolled any farther right than that. -When nonzero leftwards scrolling is in effect in a window. -lines are automatically truncated at the window's right margin -regardless of the value of the variable truncate-lines in the -buffer being displayed. - -*** Return key does not use up empty lines. - -In Twenex Emacs, the Return command advances over an existing -empty line in some cases. In GNU Emacs, the Return command always -makes inserts a newline. Twenex Emacs was designed at a time when -most display terminals did not have the ability to scroll part -of the screen, and using existing empty lines made redisplay faster. -Nowadays, terminals that cannot scroll part of the screen are rare, -so there is no need to make Return behave in a more complicated manner. - -*** Help m. - -Typing C-h m displays documentation of the current major mode., -telling you what special commands and features are available -and how to use them or get more information on them. - -This is simply the documentation, as a function, of the -symbol which is the value of major-mode. Each major mode -function has been given documentation intended for C-h m. - -*** Display-hiding features. - -**** Hiding indented lines - -The command C-x $ with numeric argument N causes lines indented by N -or more columns to become invisible. All you see is " ..." appended -to the previous line, in place of any number of consecutive invisible -lines. - -**** Outline Mode. - -Outline mode is designed for editing outline-structured -files, such as this one. - -Headings should be lines starting with one or more asterisks. -Major headings have one asterisk, subheadings two, etc. -Lines not starting with asterisks are body text. - -You can make the body under a heading, or the subheadings -under a heading, temporarily invisible, or visible again. -Invisible lines are attached to the end of the previous line -so they go with it if you kill it and yank it back. - -Commands: -Meta-} next-visible-heading move by visible headings -Meta-{ previous-visible-heading move by visible headings - -Meta-x hide-body make all body text invisible (not headings). -Meta-x show-all make everything in buffer visible. - -The remaining commands are used when dot is on a heading line. -They apply to some of the body or subheadings of that heading. -C-c C-h hide-subtree make text and subheadings invisible. -C-c C-s show-subtree make text and subheadings visible. -C-c C-i show-children make direct subheadings visible. - No effect on body, or subheadings 2 or more levels down. - With arg N, affects subheadings N levels down. -M-x hide-entry make immediately following body invisible. -M-x show-entry make it visible. -M-x hide-leaves make text under heading and under its subheadings invisible. - The subheadings remain visible. -M-x show-branches make all subheadings at all levels visible. - -*** C mode is fancy. - -C mode assumes that you put the initial open-brace of -a function definition at the beginning of a line. -If you use the popular indenting style that puts this -open-brace at the end of a line containing a type declaration, -YOU WILL LOSE: C mode does not know a function starts there. - -Open-brace at the beginning of a line makes it possible -for C mode to find function boundaries with total reliability; -something I consider vital and which cannot be done -if the other style is used. - -The Tab command indents C code very cleverly. -I know of only one cases in which Tab does not indent C code nicely: - Expressions continued over several lines with few parentheses. - Tab does not know the precedences of C operators, so it does - not know which lines of the expression should go where. - Using parentheses to indicate the nesting of operators - except within a line makes this problem go away. - -The indenting algorithm is entirely written in Lisp. - -Tab with a numeric argument in Twenex Emacs indents -that many lines. It is different in GNU Emacs: it means -to shift all the lines of a bracketed expression by the -same amount as the line being indented. For example, if you have - if (foo) - { - hack (); - /** Well? */ - } -and type C-u Tab on the line with the open brace, you get - if (foo) - { - hack (); - /* Well? */ - } -from indenting the brace line and then shifting the -lines within the braces rigidly with the first one. - -Meta-Control-q works as in Lisp mode; it should be -used with dot just before a bracketed grouping, and -indents each line INSIDE that grouping using Tab. -If used instead of C-u Tab in the previous example, it makes - if (foo) - { - hack (); - /* Well? */ - } - -Meta-Control-h puts mark at the end of the current C function -and puts dot before it. - -Most other Meta-Control commands intended for Lisp expressions -work usefully in C mode as well. - -*** Meta-g (fill-region) is different. - -In Twenex Emacs, Meta-g fills the region with no paragraph -boundaries except for blank and indented lines. In GNU Emacs, -it divides the region into paragraphs in the same manner as -Meta-], and fills each paragraph separately. There is also -the function fill-region-as-paragraph which fills the region -regarding at as a single paragraph regardless even of blank -or indented lines. - -*** Indented Text Mode instead of Edit Indented Text. - -Twenex Emacs has a command Edit Indented Text which temporarily -alters some commands for editing indented paragraphs. -GNU Emacs has instead a separate major mode, Indented Text Mode, -which is different from ordinary Text Mode in just the same -alterations. Specifically, in Indented Text Mode, -Tab runs the function indent-relative, and auto filling indents -the newly created lines. - -*** But rectangle commands are implemented. - -C-x r r stores the rectangle described by dot and mark -into a register; it reads the register name from the keyboard. -C-x r g, the command to insert the contents of a register, -can be used to reinsert the rectangle elsewhere. - -Other rectangle commands include - open-rectangle: - insert a blank rectangle in the position and size - described by dot and mark, at its corners; - the existing text is pushed to the right. - clear-rectangle: - replace the rectangle described by dot ane mark - with blanks. The previous text is deleted. - delete-rectangle: - delete the text of the specified rectangle, - moving the text beyond it on each line leftward. - kill-rectangle - like delete-rectangle but also stores the text of - the rectangle in the "rectangle kill buffer". - More precisely, it stores the text as a list of strings - (one string for each line) in the variable killed-rectangle. - yank-rectangle - inserts the text of the last killed rectangle. - extract-rectangle and delete-extract-rectangle - these functions return the text of a rectangle - as a list of strings. They are for use in writing - other functions that operate on rectangles. - -*** Keyboard Macros - -The C-x ( command for defining a keyboard macro can in GNU Emacs -be given a numeric argument, which means that the new macro -starts out not empty but rather as the same as the last -keyboard macro entered. In addition, that last keyboard -macro is replayed when the C-x ( is typed. C-x ( with an -argument is thus equivalent to typing plain C-x ( and then -retyping the last keyboard macro entered. - -The command write-kbd-macro and append-kbd-macro can be used to -save a keyboard macro definition in a file. It is represented as -a Lisp expression which, when evaluated, will define the keyboard -macro. write-kbd-macro writes the specified file from scratch, -whereas append-kbd-macro adds to any existing text in the file. -Both expect the keyboard macro to be saved to be specified by -name; this means you must use the command name-last-kbd-macro to -give the macro a name before you can save it. - -*** The command to resume a terminated tags-search or tags-query-replace - -is Meta-comma in GNU Emacs. - -*** Auto Save is on by default. - -Auto Save mode is enabled by default in all buffers -that are visiting files. - -The file name used for auto saving is made by prepending -"#" to the file name visited. - -*** Backup files. - -Since Unix stupidly fails to have file version numbers, -GNU Emacs compensates slightly in the customary fashion: -when a file is modified and saved for the first time in -a particular GNU Emacs run, the original file is renamed, -appending "~" to its name. Thus, foo.c becomes foo.c~. - -Emacs can also put a version number into the name of the backup file, -as in foo.c.~69~ for version number 69. This is an optional feature -that the user has to enable. - -*** Mode Line differences. - -Each window in GNU Emacs has its own mode line, which always -displays the status of that window's buffer and nothing else. -The mode line appears at the bottom of the window. It is -full of dashes, to emphasize the boundaries between windows, -and is displayed in inverse video if the terminal supports it. -The information usually available includes: - -*** Local Modes feature changed slightly. - -GNU Emacs supports local mode lists much like those in Twenex Emacs, -but you can only set variables, not commands. You write - -Local variables: -tab-width: 10 -end: - -in the last page of a file, if you want to make tab-width be ten in a -file's buffer. The value you specify must be a Lisp object! -It will be read, but not evaluated. So, to specify a string, -you MUST use doublequotes. For "false", in variables whose -meanings are true or false, you MUST write nil . - -Two variable names are special: "mode" and "eval". -Mode is used for specifying the major mode (as in Twenex Emacs). - -mode: text - -specifies text mode. Eval is used for requesting the evaluation -of a Lisp expression; its value is ignored. Thus, - -eval: (set-syntax-table lisp-mode-syntax-table) - -causes Lisp Mode syntax to be used. - - -Note that GNU Emacs looks for the string "Local variables:" -whereas Twenex Emacs looks for "Local modes:". This incompatibility -id deliberate, so that neither one will see local settings -intended for the other. - -*** Lisp code libraries. - -Libraries of commands, and init files, are written in Lisp. -libraries conventionally have names ending in .el, while the -init file is named .emacs and is in your home directory. - -Use Meta-x load-library to load a library. Most standard libraries -load automatically if you try to use the commands in them. - -Meta-x byte-compile-file filename -compiles the file into byte code which loads and runs faster -than Lisp source code. The file of byte code is given a name -made by appending "c" to the end of the input file name. - -Meta-x byte-recompile-directory directoryname -compiles all files in the specified directory (globbing not allowed) -which have been compiled before but have been changed since then. - -Meta-x load-library automatically checks for a compiled file -before loading the source file. - -Libraries once loaded do not retain their identity within GNU -Emacs. Therefore, you cannot tell just what was loaded from a -library, and you cannot un-load a library. Normally, libraries -are written so that loading one has no effect on the editing -operations that you would have used if you had not loaded the -library. - -*** Dired features. - -You can do dired on partial directories --- any pattern -the shell can glob. Dired creates a buffer named after -the directory or pattern, so you can dired several different -directories. If you repeat dired on the same directory or -pattern, it just reselects the same buffer. Use Meta-x Revert -on that buffer to read in the current contents of the directory. - -*** Directory listing features. - -C-x C-d now uses the default output format of `ls', -which gives just file names in multiple columns. -C-u C-x C-d passes the -l switch to `ls'. - -Both read a directory spec from the minibuffer. It can -be any pattern that the shell can glob. - -*** Compiling other programs. - -Meta-x compile allows you to run make, or any other compilation -command, underneath GNU Emacs. Error messages go into a buffer whose -name is *compilation*. If you get error messages, you can use the -command C-x ` (that is a backquote) to find the text of the next -error message. - -You must specify the command to be run as an argument to M-x compile. -A default is placed in the minibuffer; you can kill it and start -fresh, edit it, or just type Return if it is what you want. -The default is the last compilation command you used; initially, -it is "make -k". - -*** Searching multiple files. - -Meta-x grep searches many files for a regexp by invoking grep -and reading the output of grep into a buffer. You can then -move to the text lines that grep found, using the C-x ` command -just as after M-x compile. - -*** Running inferior shells. - -Do Meta-x shell to make an inferior shell together with a buffer -which serves to hold "terminal" input and output of the shell. -The shell used is specified by the environment variable ESHELL, -or by SHELL if ESHELL is not set. - -Use C-h m whilst in the *shell* buffer to get more detailed info. - -The inferior shell loads the file .emacs_csh or.emacs_sh -(or similar using whatever name the shell has) when it starts up. - -M-! executes a shell command in an inferior shell -and displays the output from it. With a prefix argument, -it inserts the output in the current buffer after dot -and sets the mark after the output. The shell command -gets /dev/null as its standard input. - -M-| is like M-! but passes the contents of the region -as input to the shell command. A prefix argument makes -the output from the command replace the contents of the region. - -*** Sending mail. - -Once you enter Mail Mode using C-x m or C-x 4 m or M-x mail, -C-c becomes a prefix character for mail-related editing commands. -C-c C-s is vital; that's how you send the message. C-c C-c sends -and then switches buffers or kills the current window. -Use C-h m to get a list of the others. - -*** Regular expressions. - -GNU Emacs has regular expression facilities like those of most -Unix editors, but more powerful: - -**** -- + -- - -+ specifies repetition of the preceding expression 1 or more -times. It is in other respect like *, which specifies repetition -0 or more times. - -**** -- ? -- - -? is like * but matches at most one repetition of the preceding -expression. - -**** -- \| -- - -\| specifies an alternative. Two regular expressions A and B with \| in -between form an expression that matches anything that either A or B will -match. Thus, "foo\|bar" matches either "foo" or "bar" but no other -string. - -\| applies to the larges possible surrounding expressions. Only a -surrounding \( ... \) grouping can limit the grouping power of \|. - -Full backtracking capability exists when multiple \|'s are used. - -**** -- \( ... \) -- - -\( ... \) are a grouping construct that serves three purposes: - -1. To enclose a set of \| alternatives for other operations. - Thus, "\(foo\|bar\)x" matches either "foox" or "barx". -2. To enclose a complicated expression for * to operate on. - Thus, "ba\(na\)*" matches "bananana", etc., with any number - of na's (zero or more). -3. To mark a matched substring for future reference. - -Application 3 is not a consequence of the idea of a parenthetical -grouping; it is a separate feature which happens to be assigned as a -second meaning to the same \( ... \) construct because there is no -conflict in practice between the two meanings. Here is an explanation -of this feature. - - -- \digit -- - -After the end of a \( ... \) construct, the matcher remembers the -beginning and end of the text matched by that construct. Then, later on -in the regular expression, you can use \ followed by a digit to mean, -``match the same text matched this time by the \( ... \) construct.'' -The first nine \( ... \) constructs that appear in a regular expression -are assigned numbers 1 through 9 in order of their beginnings. \1 -through \9 can be used to refer to the text matched by the corresponding -\( ... \) construct. - -For example, "\(.*\)\1" matches any string that is composed of two -identical halves. The "\(.*\)" matches the first half, which can be -anything, but the \1 that follows must match the same exact text. - -**** -- \` -- - -Matches the empty string, but only if it is at the beginning of the buffer. - -**** -- \' -- - -Matches the empty string, but only if it is at the end of the buffer. - -**** -- \b -- - -Matches the empty string, but only if it is at the beginning or end of -a word. Thus, "\bfoo\b" matches any occurrence of "foo" as a separate word. -"\bball\(s\|\)\b" matches "ball" or "balls" as a separate word. - -**** -- \B -- - -Matches the empty string, provided it is NOT at the beginning or end of -a word. - -**** -- \< -- - -Matches the empty string, provided it is at the beginning of a word. - -**** -- \> -- - -Matches the empty string, provided it is at the end of a word. - -**** -- \w -- - -Matches any word-constituent character. The editor syntax table determines -which characters these are. - -**** -- \W -- - -Matches any character that is not a word-constituent. - -**** -- \s -- - -Matches any character whose syntax is . is a letter that -represents a syntax code: thus, "w" for word constituent, "-" for -whitespace, "(" for open-parenthesis, etc. Thus, "\s(" matches any -character with open-parenthesis syntax. - -**** -- \S -- - -Matches any character whose syntax is not . - -* How is this Emacs different from Gosling Emacs? - -** Advantages of Gosling Emacs: - -1. The program itself is much smaller. -GNU Emacs uses about 250k more pure storage. -As a result, Gosling Emacs can run on machines -that cannot run GNU Emacs. There is not much difference -in the amount of impure storage in the two programs. - -2. In some versions there is support for other forks to -establish communications channels to Emacs (using sockets?). - -3. There is a direct interface to dbm (data bases). - -** Advantages of GNU Emacs: - -*** True Lisp, not Mocklisp. - -GNU Emacs's extension language has real symbols, lists -and vectors. Many extensions are much simpler, and some -become possible that were nearly impossible in Gosling Emacs. -Many primitives can have cleaner interfaces, and some features -need not be put in as special primitives because you can do -them easily yourself. - -*** But Mocklisp still works. - -An automatic conversion package plus a run-time library -allows you to convert a Mocklisp library into a Lisp library. - -*** Commands are better crafted. - -For example, nearly every editing function for which a -numeric argument would make sense as a repeat count does -accept a repeat count, and does handle a negative argument -in the way you would expect. - -*** The manual is clearer. - -Everyone tells me it is a very good manual. - -*** Better on-line documentation. - -Both functions and variables have documentation strings that -describe exactly how to use them. - -*** C mode is smart. - -It really knows how to indent each line correctly, -for most popular indentation styles. (Some variables -control which style is used; popular named styles are also supported.) - -*** Compatible with PDP-10 Emacs, Multics Emacs and Zmacs. - -The commands in GNU Emacs are nearly the same as in the -original Emacs and the other Emacses which imitated it. -(A few have been changed to fit the Unix environment better.) - -*** Support for Gosling's Emacs commands. - -M-x set-gosmacs-bindings rebinds many editing commands for -compatibility with Gosling's Emacs. -M-x set-gnu-bindings reverses the change. - -*** Side-by-side windows. - -You can split a GNU Emacs window either horizontally or -vertically. - -*** Redisplay is faster. - -GNU Emacs sends about the same stuff to the terminal that -Gosling's does, but GNU Emacs uses much less CPU time to -decide what to do. - -*** Entirely termcap-driven. - -GNU Emacs has nearly no special code for any terminal type. Various -new termcap strings make it possible to handle all terminals nearly as -fast as they could be handled by special-case code. - -*** Display-hiding features. - -For example, Outline Mode makes it possible for you to edit -an outline, making entire sub-branches of the outline visible -or invisible when you wish. - -*** You can interrupt with Control-G. - -Even a looping Lisp program can be stopped this way. -And even a loop in C code does not stop you from killing -Emacs and getting back to your shell. - -*** Per-buffer Undo. - -You can undo the last several changes, in each buffer -independently. - -*** The editor code itself is clean. - -Many people have remarked on how much they enjoy reading -the code for GNU Emacs. - -One other note: The program etc/cvtmail that comes with GNU Emacs can -be used to convert a mail directory for Gosling Emacs's Rmail into a -Unix mail file that you could read into GNU Emacs's Rmail. - -* How is this Emacs different from CCA Emacs? - -** GNU Emacs Lisp vs CCA Elisp. - -GNU Emacs Lisp does not have a distinction between Lisp functions -and Emacs functions, or between Lisp variables and Emacs variables. -The Lisp and the editor are integrated. A Lisp function defined -with defun is callable as an editor command if you put an -interactive calling spec in it; for example, - (defun forward-character (n) - (interactive "p") - (goto-char (+ (point) n))) -defines a function of one argument that moves point forward by -a specified number of characters. Programs could call this function, -as in (forward-character 6), or it could be assigned to a key, -in which case the "p" says to pass the prefix numeric arg as -the function's argument. As a result of this feature, you often -need not have two different functions, one to be called by programs -and another to read arguments from the user conveniently; the same -function can do both. - -CCA Elisp tries to be a subset of Common Lisp and tries to -have as many Common Lisp functions as possible (though it is still -only a small fraction of full Common Lisp). GNU Emacs Lisp -is somewhat similar to Common Lisp just because of my Maclisp -and Lisp Machine background, but it has several distinct incompatibilities -in both syntax and semantics. Also, I have not attempted to -provide many Common Lisp functions that you could write in Lisp, -or others that provide no new capability in the circumstances. - -GNU Emacs Lisp does not have packages, readtables, or character objects -(it uses integers to represent characters). - -On the other hand, windows, buffers, relocatable markers and processes -are first class objects in GNU Emacs Lisp. You can get information about them -and do things to them in a Lispy fashion. Not so in CCA Emacs. - -In GNU Emacs Lisp, you cannot open a file and read or write characters -or Lisp objects from it. This feature is painful to support, and -is not fundamentally necessary in an Emacs, because instead you -can read the file into a buffer, read or write characters or -Lisp objects in the buffer, and then write the buffer into the file. - -On the other hand, GNU Emacs Lisp does allow you to rename, delete, add -names to, and copy files; also to find out whether a file is a -directory, whether it is a symbolic link and to what name, whether -you can read it or write it, find out its directory component, -expand a relative pathname, find completions of a file name, etc., -which you cannot do in CCA Elisp. - -GNU Emacs Lisp uses dynamic scope exclusively. This enables you to -bind variables which affect the execution of the editor, such as -indent-tabs-mode. - -GNU Emacs Lisp code is normally compiled into byte code. Most of the -standard editing commands are written in Lisp, and many are -dumped, pure, in the Emacs that users normally run. - -GNU Emacs allows you to interrupt a runaway Lisp program with -Control-g. - -** GNU Emacs Editing Advantages - -GNU Emacs is faster for many things, especially insertion of text -and file I/O. - -GNU Emacs allows you to undo more than just the last command -with the undo command (C-x u, or C-_). You can undo quite a ways back. -Undo information is separate for each buffer; changes in one buffer -do not affect your ability to undo in another buffer. - -GNU Emacs commands that want to display some output do so by putting -it in a buffer and displaying that buffer in a window. This -technique comes from Gosling Emacs. It has both advantages and -disadvantages when compared with the technique, copied by CCA Emacs -from my original Emacs which inherited it from TECO, of having "type -out" which appears on top of the text in the current window but -disappears automatically at the next input character. - -GNU Emacs does not use the concept of "subsystems". Instead, it uses -highly specialized major modes. For example, dired in GNU Emacs has -the same commands as dired does in other versions of Emacs, give or -take a few, but it is a major mode, not a subsystem. The advantage -of this is that you do not have to "exit" from dired and lose the -state of dired in order to edit files again. You can simply switch -to another buffer, and switch back to the dired buffer later. You -can also have several dired buffers, looking at different directories. - -It is still possible to write a subsystem--your own command loop-- -in GNU Emacs, but it is not recommended, since writing a major mode -for a special buffer is better. - -Recursive edits are also rarely used, for the same reason: it is better -to make a new buffer and put it in a special major mode. Sending -mail is done this way. - -GNU Emacs expects everyone to use find-file (C-x C-f) for reading -in files; its C-x C-v command kills the current buffer and then finds -the specified file. - -As a result, users do not need to think about the complexities -of subsystems, recursive edits, and various ways to read in files -or what to do if a buffer contains changes to some other file. - -GNU Emacs uses its own format of tag table, made by the "etags" -program. This format makes finding a tag much faster. - -Dissociated Press is supported. - - -** GNU Emacs Editing Disadvantages. - -GNU Emacs does not display the location of the mark. - -GNU Emacs does not have a concept of numbers of buffers, -or a permanent ordering of buffers, or searching through multiple -buffers. The tags-search command provides a way to search -through several buffers automatically. - -GNU Emacs does not provide commands to visit files without -setting the buffer's default directory. Users can write such -commands in Lisp by copying the code of the standard file -visiting commands and modifying them. - -GNU Emacs does not support "plus options" in the command -arguments or in buffer-selection commands, except for line numbers. - -GNU Emacs does not support encryption. Down with security! - -GNU Emacs does not support replaying keystroke files, -and does not normally write keystroke files. - - -** Neutral Differences - -GNU Emacs uses TAB, not ESC, to complete file names, buffer names, -command names, etc. - -GNU Emacs uses LFD to terminate searches, instead of -the C-d uses by CCA Emacs. (Actually, this character is controlled -by a parameter in GNU Emacs.) C-M-s in GNU Emacs is an interactive -regular expression search, but you can get to a noninteractive -one by typing ESC right after the C-M-s. - -In GNU Emacs, C-x s asks, for each modified file buffer, whether -to save it. - -GNU Emacs indicates line continuation with "\" and line -truncation (at either margin) with "$". - -The command to resume a tags-search or tags-query-replace in -GNU Emacs is Meta-Comma. diff -r 8b0638b347ec -r 1370575f1259 etc/ajc.xpm.Z Binary file etc/ajc.xpm.Z has changed diff -r 8b0638b347ec -r 1370575f1259 etc/ajcm.xpm.Z Binary file etc/ajcm.xpm.Z has changed diff -r 8b0638b347ec -r 1370575f1259 etc/categories --- a/etc/categories Mon Aug 13 09:26:41 2007 +0200 +++ b/etc/categories Mon Aug 13 09:27:39 2007 +0200 @@ -22,16 +22,19 @@ # # Sample categories: # -auxillary:Auxillary Programs:gnats-admin: +auxiliary:Auxiliary Programs:gnats-admin: configuration:Configuration:gnats-admin:mrb@eng.sun.com documentation:Documentation Bug:gnats-admin:weiner@infodock.com frames:X11 Frames:gnats-admin: -i18n:I18n Internationalization:gnats-admin:mrb@eng.sun.com +i18n:I18n Internationalization:martin: lisp:Emacs Lisp code:gnats-admin: menubars:X11 menubars:gnats-admin: misc:Miscellaneous:gnats-admin: -performance:Performance Issues:gnats-admin:dmoore@ucsd.edu +mule:MULE Internationalization stuffs:jhod: +performance:Performance Issues:dmoore: redisplay:Redisplay Issues:gnats-admin:cthomp@xemacs.org scrollbars:X11 scrollbars:gnats-amdin:mrb@eng.sun.com toolbars:X11 toolbars:gnats-admin: -test:*Test Category:gnats-admin: +gnus:Gnus newsreader:larsi: +vm:VM Mailreader:kyle: +W3:W3 Browser:wmperry: diff -r 8b0638b347ec -r 1370575f1259 etc/gnats/xemacs.org --- a/etc/gnats/xemacs.org Mon Aug 13 09:26:41 2007 +0200 +++ b/etc/gnats/xemacs.org Mon Aug 13 09:27:39 2007 +0200 @@ -1,5 +1,5 @@ pending -auxillary +auxiliary configuration documentation frames @@ -7,8 +7,12 @@ lisp menubars misc +mule performance redisplay scrollbars tooblbars +gnus +vm +w3 test diff -r 8b0638b347ec -r 1370575f1259 etc/vm/mona_stamp-colorful.gif Binary file etc/vm/mona_stamp-colorful.gif has changed diff -r 8b0638b347ec -r 1370575f1259 etc/vm/mona_stamp-colorful.xpm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/vm/mona_stamp-colorful.xpm Mon Aug 13 09:27:39 2007 +0200 @@ -0,0 +1,123 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"24 30 86 2", +/* colors */ +"`` c #B88D37", +"`a c #200505", +"`b c #F49B12", +"`c c #704B25", +"`d c #B65D0A", +"`e c #4D2713", +"`f c #FFAC19", +"`g c #64300F", +"`h c #321B0C", +"`i c #582E03", +"`j c #C07920", +"`k c #874F09", +"`l c #593514", +"`m c #A07C21", +"`n c #DE7F1C", +"`o c #481103", +"`p c #542D15", +"`q c #58220F", +"`r c #D1AC4A", +"`s c #DFA644", +"`t c #EC9708", +"`u c #501A07", +"`v c #3D1608", +"`w c #90602B", +"`x c #350000", +"`y c #A77B13", +"`z c #A04E13", +"a` c #AC7E39", +"aa c #997319", +"ab c #DA9C1A", +"ac c #8B6F1F", +"ad c #280C0A", +"ae c #98460B", +"af c #AF5707", +"ag c #631C0F", +"ah c #764F35", +"ai c #E6B339", +"aj c #804500", +"ak c #DEAB31", +"al c #802B00", +"am c #C06B21", +"an c #91732E", +"ao c #643C19", +"ap c #A54F03", +"aq c #A78A40", +"ar c #7E5C25", +"as c #793313", +"at c #804F1D", +"au c #AD913F", +"av c #85681B", +"aw c #CB6E00", +"ax c #30120D", +"ay c #B89846", +"az c #8C3904", +"b` c #B96219", +"ba c #FABB1D", +"bb c #A68527", +"bc c #85652B", +"bd c #F2B315", +"be c #FFC125", +"bf c #7D430C", +"bg c #C86B0D", +"bh c #EAAB0D", +"bi c #420907", +"bj c #9D5828", +"bk c #D68000", +"bl c #813A1D", +"bm c #F7A413", +"bn c #9C6E2A", +"bo c #A1833C", +"bp c #75551E", +"bq c #BF6307", +"br c #997B34", +"bs c #D27213", +"bt c #431F0E", +"bu c #712A0D", +"bv c #74411D", +"bw c #CAA239", +"bx c #C0982F", +"by c #A7551A", +"bz c #E98912", +"c` c #E1810A", +"ca c #501321", +"cb c #DB7B04", +"cc c #EF911E", +"cd c #390C00", +/* pixels */ +"acananacbcanbrananacbracbpararacanacananananbrbr", +"avananacacacacanbnbp`pbtaxad`hbtaobcananbrbrbobr", +"anbranaaanananar`vad`x`a`a`a`a`a`aad`eavbrbobobr", +"br`mbbbbbbbrbpadadbibi`aad`a`a`a`a`a`aaxbcbobobo", +"bbbbbbbbaqbnad`a`x`ucd`x`a`a`a`a`aadad`a`hanauaq", +"bbbbaq``aq`v`uae`jc``nbsae`qad`a`a`aad`a`a`eaqaq", +"bb``bxayat`vafab`fbabd`bbzapagbi`a`a`aad`a`aarau", +"````ay``btbubzbdbebababa`bbsajcdad`a`a`a`a`a`hau", +"ayayay`wadaeab`fbdbdbdbd`tawaeagbi`aad`a`a`a`aac", +"bwbx```qbiae`tbmbh`fbh`fc`bs`dae`gbi`a`a`a`a`a`p", +"`s`rbjbi`hbqc`bmbmbh`fbm`bc``nbqaecdadadad`a`a`h", +"aiakbvadbibsbzc``tbm`tbqaf`dbqaebuadad`xadad`aax", +"bw```qbibiasazasafc`azbiblal`obicd`x`aad`xadad`a", +"a`br`uadbibtbl`uasbzagalafca`uas`z`uadadad`aadad", +"bcbo`vbi`hbsbsbyawccalbybs`d`dbkbg`u`xadadadadad", +"`ebv`vad`uc`bhbmc`bzafbsbhbabmcbap`uad`xadadadad", +"`v`e`vbibibgbmbmbzbm`dbs`tbm`tbqbl`xad`xad`x`xbi", +"`v`vbiadadaf`t`tc`bzaf`dcc`tbsae`q`xbiadbiadadad", +"bi`h`x`vbibubsc`bq`z`vbu`tcbafbu`uadadbiadbiadbi", +"`vbibiad`h`uapbqbzas`qaeafafaebu`ubiadadadbiadad", +"`h`hbibibi`haeapbyae`q`uazbqapbu`vadadcdaxadbiax", +"btbtad`hbiadagbqc`afbfbfapbybf`ucdad`xaxbiadadbi", +"`ibtbibiadbiad`qbsbm`n`daeas`u`vcd`xadbiad`hbiad", +"ao`e`hbiaxadadadasc`bk`z`q`u`vbibiaxadadbiadadbi", +"ar`c`v`hbiadbi`aad`u`u`vcdbiadadbibiadbiadadbiad", +"bparbt`x`hbiad`aadadbibiad`xbiadbi`h`xadadadadad", +"bp`c`eaxbiadbi`aadadas`g`v`hbibt`v`q`v`xadadbiad", +"ar`c`lbiaxbiadadad`abu`daj`q`u`ubuaj`qbiadadadad", +"ahaobtax`hbiaxadadad`u`dae`kbfbfaeaebf`vbiad`vcd", +"ax`h`hbiadadbiadbi`q`d`yb``d`d`ybgam`d`gbi`hcd`v" +}; diff -r 8b0638b347ec -r 1370575f1259 etc/vm/mona_stamp-simple.gif Binary file etc/vm/mona_stamp-simple.gif has changed diff -r 8b0638b347ec -r 1370575f1259 etc/vm/mona_stamp-simple.xpm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/vm/mona_stamp-simple.xpm Mon Aug 13 09:27:39 2007 +0200 @@ -0,0 +1,45 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"24 30 8 1", +/* colors */ +"` c #F49B12", +"a c #64300F", +"b c #280C0A", +"c c #B89846", +"d c #8C3904", +"e c #FFC125", +"f c #9D5828", +"g c #D68000", +/* pixels */ +"ffffffffffffffffffffffff", +"ffffffffffabbbbbafffffcf", +"ffffffffbbbbbbbbbbaffccf", +"ffcccffbbbbbbbbbbbbbfccc", +"cccccfbbbabbbbbbbbbbbfcc", +"cccccbadggggdabbbbbbbacc", +"ccccfbf``e```dabbbbbbbfc", +"ccccba``eeee`gdbbbbbbbbc", +"cccfbd```````gdabbbbbbbf", +"cccabd``````ggfdabbbbbba", +"ccfbbgg``````gggdbbbbbbb", +"e`abbg`g```gffgdabbbbbbb", +"ccabbadafgdbddbbbbbbbbbb", +"cfabbbdaa`adfaaafabbbbbb", +"fcbbbggfg`dfgffggabbbbbb", +"aabbag``g`fg`e`gdabbbbbb", +"babbbg````fg```gdbbbbbbb", +"bbbbbf``g`ff``gdabbbbbbb", +"bbbbbagggfba`gfaabbbbbbb", +"bbbbbadg`aadffdaabbbbbbb", +"bbbbbbddfdaadgdabbbbbbbb", +"bbbbbbaggfdddfdabbbbbbbb", +"abbbbbbag`gfdaabbbbbbbbb", +"aabbbbbbaggfaabbbbbbbbbb", +"fabbbbbbbaabbbbbbbbbbbbb", +"ffbbbbbbbbbbbbbbbbbbbbbb", +"faabbbbbbbaabbbbbabbbbbb", +"faabbbbbbbafdaaaadabbbbb", +"fabbbbbbbbafdddddddbbbbb", +"bbbbbbbbbaffffffgffabbbb" +}; diff -r 8b0638b347ec -r 1370575f1259 lisp/ChangeLog --- a/lisp/ChangeLog Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/ChangeLog Mon Aug 13 09:27:39 2007 +0200 @@ -1,3 +1,38 @@ +Mon Apr 14 13:06:10 1997 Steven L Baur + + * utils/autoload.el (generate-file-autoloads-1): Turn off local + variable processing. + + * prim/files.el (hack-local-variables-prop-line): Respect setting + of enable-local-variables. + + * vm/vm-startup.el (vm-session-initialization): Remove for + production version. + + * utils/smtpmail.el (smtpmail-send-it): Forgot quote. + (smtpmail-deduce-address-list): case-fold-search mistakenly set + before buffer change. + +Sun Apr 13 14:49:34 1997 Steven L Baur + + * x11/x-menubar.el (default-menubar): Added `send-pr' to Help + menu. + + * modes/make-mode.el (makefile-font-lock-keywords): Correct old, + restored :-( 19.14 makefile-space-face lossage. + +Sat Apr 12 23:20:31 1997 David Moore + + * packages/font-lock.el (c-font-lock-keywords-1): Performance + tuned regexps. + +Sat Apr 12 21:32:37 1997 Steven L Baur + + * prim/about.el (about-xemacs): Update printed release date. + + * calendar/appt.el (install-display-time-hook): Friends don't let + Friends quote lambda functions. + Fri Apr 11 11:50:14 1997 Oscar Figueiredo * tm/tm-vm.el: tm-vm/use-original-url-button: diff -r 8b0638b347ec -r 1370575f1259 lisp/egg/egg.el --- a/lisp/egg/egg.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/egg/egg.el Mon Aug 13 09:27:39 2007 +0200 @@ -392,8 +392,6 @@ ;;;; Aug-25-88 toroku-region$B$GEPO?$9$kJ8;zNs$+$i(Bno graphic character$B$r(B ;;;; $B<+F0E*$K=|$/$3$H$K$7$?!#(B -(provide 'egg) - ;; XEmacs addition: (and remove disable-undo variable) ;; For Emacs V18/Nemacs compatibility ;(and (not (fboundp 'buffer-disable-undo)) @@ -407,42 +405,14 @@ (let ((event (make-event)) (ch nil)) (next-command-event event) - (if (key-press-event-p event) + (if (and (key-press-event-p event) + (eq 0 (event-modifier-bits event))) (setq ch (event-key event)) (setq unread-command-events (list event))) - (deallocate-event event) ch)) (eval-when-compile (require 'egg-jsymbol)) -;;;---------------------------------------------------------------------- -;;; -;;; Version control routine -;;; -;;;---------------------------------------------------------------------- - -(and (equal (user-full-name) "Satoru Tomura") - (defun egg-version-update (arg) - (interactive "P") - (if (equal (buffer-name (current-buffer)) "wnn-egg.el") - (save-excursion - (goto-char (point-min)) - (re-search-forward "(defvar egg-version \"[0-9]+\\.") - (let ((point (point)) - (minor)) - (search-forward "\"") - (backward-char 1) - (setq minor (string-to-int (buffer-substring point (point)))) - (delete-region point (point)) - (if (<= minor 8) (insert "0")) - (insert (int-to-string (1+ minor))) - (search-forward "Egg last modified date: ") - (kill-line) - (insert (current-time-string))) - (save-buffer) - (if arg (byte-compile-file (buffer-file-name))) - ))) - ) ;;; ;;;---------------------------------------------------------------------- ;;; @@ -1920,7 +1890,6 @@ (funcall its:*display-status-string* (map-state map)) (insert (map-state map))) ))) - (t (let ((output nil)) (let ((i its:*level*) (newlevel (1+ its:*level*))) @@ -2866,4 +2835,6 @@ (autoload 'busyu-input "busyu" nil t) ;92.10.18 by K.Handa (autoload 'kakusuu-input "busyu" nil t) ;92.10.18 by K.Handa +(provide 'egg) + ;;; egg.el ends here diff -r 8b0638b347ec -r 1370575f1259 lisp/modes/make-mode.el --- a/lisp/modes/make-mode.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/modes/make-mode.el Mon Aug 13 09:27:39 2007 +0200 @@ -297,15 +297,15 @@ ;; Highlight lines that contain just whitespace. ;; They can cause trouble, especially if they start with a tab. - '("^[ \t]+$" . 'makefile-space-face) + '("^[ \t]+$" . makefile-space-face) ;; Highlight shell comments that Make treats as commands, ;; since these can fool people. - '("^\t+#" 0 'makefile-space-face t) + '("^\t+#" 0 makefile-space-face t) ;; Highlight spaces that precede tabs. ;; They can make a tab fail to be effective. - '("^\\( +\\)\t" 1 'makefile-space-face))) + '("^\\( +\\)\t" 1 makefile-space-face))) "Additional expressions to highlight in makefiles") (put 'makefile-mode 'font-lock-defaults '(makefile-font-lock-keywords)) diff -r 8b0638b347ec -r 1370575f1259 lisp/packages/font-lock.el --- a/lisp/packages/font-lock.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/packages/font-lock.el Mon Aug 13 09:27:39 2007 +0200 @@ -1826,7 +1826,8 @@ ;; In FSF this has the simpler definition of "\\sw+" for ctoken. ;; I'm not sure if ours is more correct. - (list (concat "^\\(" ctoken "\\)[ \t]*(") 1 'font-lock-function-name-face) + ;; This is a subset of the next rule, and is slower when present. --dmoore + ;; (list (concat "^\\(" ctoken "\\)[ \t]*(") 1 'font-lock-function-name-face) ;; ;; fontify the names of functions being defined. ;; FSF doesn't have this but I think it should be fast for us because @@ -1835,13 +1836,17 @@ ;; the time to do the regexp phase of font-lock for a C file!) Not ;; including this discriminates against those who don't follow the ;; GNU coding style. --ben + ;; x?x?x?y?z should always be: (x(xx?)?)?y?z --dmoore (list (concat - "^\\(" ctoken "[ \t]+\\)?" ; type specs; there can be no - "\\(" ctoken "[ \t]+\\)?" ; more than 3 tokens, right? - "\\(" ctoken "[ \t]+\\)?" + "^\\(" + "\\(" ctoken "[ \t]+\\)" ; type specs; there can be no + "\\(" + "\\(" ctoken "[ \t]+\\)" ; more than 3 tokens, right? + "\\(" ctoken "[ \t]+\\)" + "?\\)?\\)?" "\\([*&]+[ \t]*\\)?" ; pointer "\\(" ctoken "\\)[ \t]*(") ; name - 8 'font-lock-function-name-face) + 10 'font-lock-function-name-face) ;; ;; This is faster but not by much. I don't see why not. ;(list (concat "^\\(" ctoken "\\)[ \t]*(") 1 'font-lock-function-name-face) @@ -1940,7 +1945,9 @@ (append ;; ;; The list `c-font-lock-keywords-1' less that for function names. - (cdr c-font-lock-keywords-1) + ;; the simple function form regexp has been removed. --dmoore + ;;(cdr c-font-lock-keywords-1) + c-font-lock-keywords-1 ;; ;; Fontify function name definitions, possibly incorporating class name. (list diff -r 8b0638b347ec -r 1370575f1259 lisp/packages/ispell.el --- a/lisp/packages/ispell.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/packages/ispell.el Mon Aug 13 09:27:39 2007 +0200 @@ -518,6 +518,9 @@ ("svenska8" ;8 bit swedish mode "[A-Za-z\345\344\366\305\304\366]" "[^A-Za-z\345\344\366\305\304\366]" "[']" nil ("-C" "-d" "svenska") "~list") ; Add `"-T" "list"' instead? + ("norsk" ;8 bit norwegian mode + "[A-Za-z\351\346\370\345\311\306\330\305]" "[^A-Za-z\351\346\370\345\311\306\330\305]" + "[']" nil ("-C" "-d" "norsk") "~list") ("francais7" "[A-Za-z]" "[^A-Za-z]" "[`'^---]" t nil nil) ("francais" ; francais.aff diff -r 8b0638b347ec -r 1370575f1259 lisp/packages/paren.el --- a/lisp/packages/paren.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/packages/paren.el Mon Aug 13 09:27:39 2007 +0200 @@ -54,15 +54,10 @@ ;;; Code: -(defgroup paren nil - "Highlight (un)matching parens and whole expressions" - :group 'matching) - - (defcustom paren-message-offscreen t "*Display message if matching open paren is offscreen." :type 'boolean - :group 'paren) + :group 'paren-matching) (defcustom paren-ding-unmatched nil "*Make noise if the cursor is at an unmatched paren. @@ -74,7 +69,7 @@ :type '(choice (const :tag "off" nil) (const :tag "on" t) (const :tag "other" other)) - :group 'paren) + :group 'paren-matching) ;;;###autoload (defcustom paren-mode nil @@ -92,7 +87,7 @@ highlight parentheses differently in different major modes." :type '(radio (const nil) (const blink-paren) (const paren) (const sexp) (const nested)) - :group 'paren) + :group 'paren-matching) (make-face 'paren-match) (or (face-differs-from-default-p 'paren-match) diff -r 8b0638b347ec -r 1370575f1259 lisp/packages/pending-del.el --- a/lisp/packages/pending-del.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/packages/pending-del.el Mon Aug 13 09:27:39 2007 +0200 @@ -48,15 +48,19 @@ t))) (defun pending-delete-pre-hook () - (let ((type (and (symbolp this-command) - (get this-command 'pending-delete)))) - (cond ((eq type 'kill) - (delete-active-region t)) - ((eq type 'supersede) - (if (delete-active-region ()) - (setq this-command '(lambda () (interactive))))) - (type - (delete-active-region ()))))) + ;; don't ever signal an error in pre-command-hook! + (condition-case e + (let ((type (and (symbolp this-command) + (get this-command 'pending-delete)))) + (cond ((eq type 'kill) + (delete-active-region t)) + ((eq type 'supersede) + (if (delete-active-region ()) + (setq this-command '(lambda () (interactive))))) + (type + (delete-active-region ())))) + (error + (warn "Error caught in `pending-delete-pre-hook': %s" e)))) (put 'self-insert-command 'pending-delete t) diff -r 8b0638b347ec -r 1370575f1259 lisp/packages/time.el --- a/lisp/packages/time.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/packages/time.el Mon Aug 13 09:27:39 2007 +0200 @@ -24,7 +24,7 @@ ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ;; 02111-1307, USA. -;;; Version: 1.13 (I choose the version number starting at 1.1 +;;; Version: 1.15 (I choose the version number starting at 1.1 ;;; to indicate that 1.0 was the old version ;;; before I hacked away on it -jtl) @@ -57,11 +57,15 @@ (require 'itimer) -(defconst display-time-version-number "1.13" "Version number of time.el") +(defconst display-time-version-number "1.15" "Version number of time.el") (defconst display-time-version (format "Time.el version %s for XEmacs" display-time-version-number) "The full version string for time.el") +;; We need the progn to kill off the defgroup-tracking mechanism. +;; This package changes the state of XEmacs by loading it, which is +;; why it's potentially dangerous. +(progn (defgroup display-time nil "Facilities to display the current time/date/load and a new-mail indicator in the XEmacs mode line or echo area." @@ -71,7 +75,7 @@ "Fancy add-ons to display-time for using the `balloon-help' feature. balloon-help must be loaded before these settings take effect." :group 'display-time) - +) ;progn (defcustom display-time-mail-file nil "*File name of mail inbox file, for indicating existence of new mail. @@ -242,6 +246,11 @@ display-time-mail-balloon-enhance" :group 'display-time-balloon) +(defface display-time-time-balloon-face '((t (:foreground "red"))) + "Face used in the time balloon to display the full date and load. +It is also used in the mail balloon for the \"You have mail:\" heading." + :group 'display-time-balloon) + (defface display-time-mail-balloon-gnus-group-face '((t (:foreground "blue"))) "Face used for the gnus group entry in the mail balloon if display-time-mail-balloon-show-gnus-group is t (see the documentation there @@ -512,6 +521,7 @@ (display-time-generate-time-glyphs 'force) (display-time-generate-load-glyphs 'force) (display-time-init-glyphs) + (sit-for 0) )) @@ -535,7 +545,7 @@ load " 0")))) (setq balloon-ext (make-extent 0 (length balloon-help) balloon-help)) - (set-extent-property balloon-ext 'face 'red) + (set-extent-property balloon-ext 'face 'display-time-time-balloon-face) (set-extent-property balloon-ext 'duplicable 't) (while (setq elem (pop list)) (setq elem @@ -587,7 +597,7 @@ (setq header "You have mail:") (setq header-ext (make-extent 0 (length header) header)) - (set-extent-property header-ext 'face 'red) + (set-extent-property header-ext 'face 'display-time-time-balloon-face) (set-extent-property header-ext 'duplicable t) (setq header (concat header "\n" (make-string (+ display-time-mail-balloon-from-width diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/about.el --- a/lisp/prim/about.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/about.el Mon Aug 13 09:27:39 2007 +0200 @@ -306,6 +306,7 @@ ('dmoore "About David Moore") ('thiessel "About Marcus Thiessel") ('sperber "About Michael Sperber") + ('ajc "About Andrew Cosgriff") ('others "About Everyone") ('features "New XEmacs Features") ('history "XEmacs History") @@ -895,6 +896,25 @@ (insert " to go back to the previous page.\n") ) + ((eq xref 'ajc) + (about-face "Andrew Cosgriff" 'bold) + (insert " + + When not helping maintain the XEmacs website, Andrew is a + Network Software Engineer(tm) for Monash University in Australia, + maintaining webservers and doing random other things. As well as + spending spare time being an Eager Young Space Cadet and fiddling + with XEmacs/Gnus et. al., he spends his time pursuing, among other + things, a Life. Some of this currently involves doing an A-Z (by + country) of restaurants with friends, and has, in the past, + involved dyeing his hair various colours + (see http://www-personal.monash.edu.au/~ajc).") + + (insert "\n\n\tClick ") + (about-xref "here" prev-page "Return to previous page") + (insert " to go back to the previous page.\n") + ) + ((eq xref 'others) (insert "Click ") (about-xref "here" 'about "Return to previous page") @@ -1025,6 +1045,18 @@ programming languages and their implementation, and hopes that one day XEmacs will speak Scheme. + ") (about-xref "Andrew Cosgriff" 'ajc "Find out more about Andrew Cosgriff") (insert " + + When not helping maintain the XEmacs website, Andrew is a + Network Software Engineer(tm) for Monash University in Australia, + maintaining webservers and doing random other things. As well as + spending spare time being an Eager Young Space Cadet and fiddling + with XEmacs/Gnus et. al., he spends his time pursuing, among other + things, a Life. Some of this currently involves doing an A-Z (by + country) of restaurants with friends, and has, in the past, + involved dyeing his hair various colours + (see http://www-personal.monash.edu.au/~ajc). + Darrell Kindred Unofficial maintainer of the xemacs-beta list of extant bugs and contributor of an extraordinary number of important bug diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/auto-autoloads.el --- a/lisp/prim/auto-autoloads.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/auto-autoloads.el Mon Aug 13 09:27:39 2007 +0200 @@ -3922,7 +3922,7 @@ ;;;### (autoloads (ksh-mode) "ksh-mode" "modes/ksh-mode.el") (autoload 'ksh-mode "ksh-mode" "\ -ksh-mode $Revision: 1.21 $ - Major mode for editing (Bourne, Korn or Bourne again) +ksh-mode $Revision: 1.22 $ - Major mode for editing (Bourne, Korn or Bourne again) shell scripts. Special key bindings and commands: \\{ksh-mode-map} @@ -5276,7 +5276,7 @@ (autoload 'vhdl-mode "vhdl-mode" "\ Major mode for editing VHDL code. -vhdl-mode $Revision: 1.21 $ +vhdl-mode $Revision: 1.22 $ To submit a problem report, enter `\\[vhdl-submit-bug-report]' from a vhdl-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the @@ -6993,7 +6993,7 @@ (defvar ispell-dictionary-alist-1 '((nil "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil) ("english" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil) ("british" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "british") nil) ("deutsch" "[a-zA-Z\"]" "[^a-zA-Z\"]" "[']" t ("-C") "~tex") ("deutsch8" "[a-zA-ZÄÖÜäößü]" "[^a-zA-ZÄÖÜäößü]" "[']" t ("-C" "-d" "deutsch") "~latin1") ("nederlands" "[A-Za-zÀ-ÅÇÈ-ÏÒ-ÖÙ-Üà-åçè-ïñò-öù-ü]" "[^A-Za-zÀ-ÅÇÈ-ÏÒ-ÖÙ-Üà-åçè-ïñò-öù-ü]" "[']" t ("-C") nil) ("nederlands8" "[A-Za-zÀ-ÅÇÈ-ÏÒ-ÖÙ-Üà-åçè-ïñò-öù-ü]" "[^A-Za-zÀ-ÅÇÈ-ÏÒ-ÖÙ-Üà-åçè-ïñò-öù-ü]" "[']" t ("-C") nil))) -(defvar ispell-dictionary-alist-2 '(("svenska" "[A-Za-z}{|\\133\\135\\\\]" "[^A-Za-z}{|\\133\\135\\\\]" "[']" nil ("-C") nil) ("svenska8" "[A-Za-zåäöÅÄö]" "[^A-Za-zåäöÅÄö]" "[']" nil ("-C" "-d" "svenska") "~list") ("francais7" "[A-Za-z]" "[^A-Za-z]" "[`'^---]" t nil nil) ("francais" "[A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü]" "[^A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü]" "[---']" t nil "~list") ("francais-tex" "[A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü\\]" "[^A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü\\]" "[---'^`\"]" t nil "~tex") ("italiano" "[A-Za-zÀÈÉÌÍÎÒÙÚàèéìíîòùú]" "[^A-Za-zÀÈÉÌÍÎÒÙÚàèéìíîòùú]" "[']" t ("-d" "italiano") "~list") ("dansk" "[A-ZÆØÅa-zæøå]" "[^A-ZÆØÅa-zæøå]" "" nil ("-C") nil))) +(defvar ispell-dictionary-alist-2 '(("svenska" "[A-Za-z}{|\\133\\135\\\\]" "[^A-Za-z}{|\\133\\135\\\\]" "[']" nil ("-C") nil) ("svenska8" "[A-Za-zåäöÅÄö]" "[^A-Za-zåäöÅÄö]" "[']" nil ("-C" "-d" "svenska") "~list") ("norsk" "[A-Za-zéæøåÉÆØÅ]" "[^A-Za-zéæøåÉÆØÅ]" "[']" nil ("-C" "-d" "norsk") "~list") ("francais7" "[A-Za-z]" "[^A-Za-z]" "[`'^---]" t nil nil) ("francais" "[A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü]" "[^A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü]" "[---']" t nil "~list") ("francais-tex" "[A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü\\]" "[^A-Za-zÀÂÆÇÈÉÊËÎÏÔÙÛÜàâçèéêëîïôùûü\\]" "[---'^`\"]" t nil "~tex") ("italiano" "[A-Za-zÀÈÉÌÍÎÒÙÚàèéìíîòùú]" "[^A-Za-zÀÈÉÌÍÎÒÙÚàèéìíîòùú]" "[']" t ("-d" "italiano") "~list") ("dansk" "[A-ZÆØÅa-zæøå]" "[^A-ZÆØÅa-zæøå]" "" nil ("-C") nil))) (defvar ispell-dictionary-alist (append ispell-dictionary-alist-1 ispell-dictionary-alist-2) "\ An alist of dictionaries and their associated parameters. @@ -7323,7 +7323,7 @@ ;;;### (autoloads (blink-paren paren-set-mode) "paren" "packages/paren.el") -(defcustom paren-mode nil "*Sets the style of parenthesis highlighting.\nValid values are nil, `blink-paren', `paren', and `sexp'.\n nil no parenthesis highlighting.\n blink-paren causes the matching paren to blink.\n paren causes the matching paren to be highlighted but not to blink.\n sexp whole expression enclosed by the local paren at its mate.\n nested (not yet implemented) use variable shading to see the\n nesting of an expression. Also groks regular expressions\n and shell quoting.\n\nThis variable is global by default, but you can make it buffer-local and\nhighlight parentheses differently in different major modes." :type '(radio (const nil) (const blink-paren) (const paren) (const sexp) (const nested)) :group 'paren) +(defcustom paren-mode nil "*Sets the style of parenthesis highlighting.\nValid values are nil, `blink-paren', `paren', and `sexp'.\n nil no parenthesis highlighting.\n blink-paren causes the matching paren to blink.\n paren causes the matching paren to be highlighted but not to blink.\n sexp whole expression enclosed by the local paren at its mate.\n nested (not yet implemented) use variable shading to see the\n nesting of an expression. Also groks regular expressions\n and shell quoting.\n\nThis variable is global by default, but you can make it buffer-local and\nhighlight parentheses differently in different major modes." :type '(radio (const nil) (const blink-paren) (const paren) (const sexp) (const nested)) :group 'paren-matching) (autoload 'paren-set-mode "paren" "\ Cycles through possible values for `paren-mode', force off with negative arg. @@ -9180,6 +9180,8 @@ ;;;### (autoloads (list-colors-display facemenu-read-color list-text-properties-at facemenu-remove-special facemenu-remove-props facemenu-set-read-only facemenu-set-intangible facemenu-set-invisible facemenu-make-much-smaller facemenu-make-much-larger facemenu-make-smaller facemenu-make-larger facemenu-set-size-default facemenu-set-face-from-menu facemenu-set-background facemenu-set-foreground facemenu-set-face) "facemenu" "utils/facemenu.el") +(define-key ctl-x-map "F" 'facemenu-keymap) + (defvar facemenu-menu nil "\ Facemenu top-level menu keymap.") diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/custom-load.el --- a/lisp/prim/custom-load.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/custom-load.el Mon Aug 13 09:27:39 2007 +0200 @@ -12,7 +12,7 @@ (put 'abbrev-mode 'custom-loads '()) (put 'execute 'custom-loads '()) (put 'gnus-message 'custom-loads '("message")) -(put 'mouse 'custom-loads '("mouse" "outl-mouse" "id-select")) +(put 'mouse 'custom-loads '("mouse" "outl-mouse")) (put 'mail-abbrevs 'custom-loads '("mail-abbrevs")) (put 'gnus-summary-sort 'custom-loads '("gnus-sum")) (put 'nnmail-procmail 'custom-loads '("nnmail")) @@ -82,9 +82,9 @@ (put 'gnus-thread 'custom-loads '("gnus-sum")) (put 'gnus-nocem 'custom-loads '("gnus-nocem")) (put 'gnus-threading 'custom-loads '("gnus-sum")) -(put 'applications 'custom-loads '("cus-edit" "time")) +(put 'applications 'custom-loads '("cus-edit")) (put 'outlines 'custom-loads '("outl-mouse")) -(put 'paren-matching 'custom-loads '("simple")) +(put 'paren-matching 'custom-loads '("simple" "paren")) (put 'gnus-summary-maneuvering 'custom-loads '("gnus-sum")) (put 'gnus-extract 'custom-loads '("gnus" "gnus-uu")) (put 'help 'custom-loads '("help" "cus-edit" "info" "man")) @@ -145,8 +145,8 @@ (put 'gnus-visual 'custom-loads '("earcon" "gnus-art" "gnus-picon" "gnus" "smiley")) (put 'message-forwarding 'custom-loads '("message")) (put 'killing 'custom-loads '("simple")) -(put 'paren 'custom-loads '("paren")) (put 'message-news 'custom-loads '("message")) +(put 'paren-blinking 'custom-loads '("simple")) (put 'vrml-mode 'custom-loads '("vrml-mode")) (put 'vrml 'custom-loads '("vrml-mode")) (put 'games 'custom-loads '("xmine")) @@ -209,7 +209,7 @@ (put 'w3-parsing 'custom-loads '("w3-cus")) (put 'message-buffers 'custom-loads '("message")) (put 'editing 'custom-loads '("simple" "cus-edit" "filladapt")) -(put 'matching 'custom-loads '("simple" "isearch-mode" "bookmark" "paren")) +(put 'matching 'custom-loads '("simple" "isearch-mode" "bookmark")) (put 'gnus-article-mime 'custom-loads '("gnus-art" "gnus-sum")) (put 'i18n 'custom-loads '("url-vars")) (put 'ps-print-color 'custom-loads '("ps-print")) diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/files.el --- a/lisp/prim/files.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/files.el Mon Aug 13 09:27:39 2007 +0200 @@ -1474,8 +1474,9 @@ (val (cdr (car result)))) (cond ((eq key 'mode) (setq mode-p t) - (funcall (intern (concat (downcase (symbol-name val)) - "-mode")))) + (and enable-local-variables + (funcall (intern (concat (downcase (symbol-name val)) + "-mode"))))) (set-any-p (hack-one-local-variable key val)) (t diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/fill.el --- a/lisp/prim/fill.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/fill.el Mon Aug 13 09:27:39 2007 +0200 @@ -461,7 +461,8 @@ ;; end patch (setq first nil))) ;; Normally, move back over the single space between the words. - (forward-char -1)) + (if (eq (preceding-char) ?\ ) + (forward-char -1))) ;; If the left margin and fill prefix by themselves ;; pass the fill-column, keep at least one word. ;; This handles the first line of the paragraph. diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/isearch-mode.el --- a/lisp/prim/isearch-mode.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/isearch-mode.el Mon Aug 13 09:27:39 2007 +0200 @@ -94,6 +94,7 @@ (defgroup isearch nil "Incremental search" + :prefix "search-" :group 'matching) diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/itimer.el --- a/lisp/prim/itimer.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/itimer.el Mon Aug 13 09:27:39 2007 +0200 @@ -46,7 +46,7 @@ ;; ;; See the doc strings of these functions for more information. -(defvar itimer-version "1.05" +(defvar itimer-version "1.06" "Version number of the itimer package.") (defvar itimer-list nil @@ -96,6 +96,8 @@ (define-key itimer-edit-map "x" 'start-itimer) (define-key itimer-edit-map "?" 'itimer-edit-help)) +(defvar itimer-inside-driver nil) + (defvar itimer-edit-start-marker nil) ;; macros must come first... or byte-compile'd code will throw back its @@ -803,7 +805,7 @@ ((fboundp 'cancel-timer) (cancel-timer itimer-timer))) (setq itimer-timer (add-timeout itimer-short-interval - 'itimer-timer-driver nil nil)))) + 'itimer-timer-driver nil 5)))) (defun itimer-time-difference (t1 t2) (let (usecs secs 65536-secs carry) @@ -830,16 +832,17 @@ ;; system stops working. itimer-run-expired-timers allows ;; individual timer function to be aborted, so the user can ;; escape a feral timer function. - (let* ((inhibit-quit t) - (now (current-time)) - (elapsed (itimer-time-difference now itimer-timer-last-wakeup)) - (sleep nil)) - (setq itimer-timer-last-wakeup now) - (unwind-protect - (setq sleep (itimer-run-expired-timers elapsed)) - (and (null sleep) (add-timeout 1 'itimer-timer-driver nil nil))) - (setq itimer-next-wakeup sleep - itimer-timer (add-timeout sleep 'itimer-timer-driver nil nil)))) + (if (not itimer-inside-driver) + (let* ((inhibit-quit t) + (itimer-inside-driver t) + (now (current-time)) + (elapsed (itimer-time-difference now itimer-timer-last-wakeup)) + (sleep nil)) + (setq itimer-timer-last-wakeup now + sleep (itimer-run-expired-timers elapsed)) + (disable-timeout itimer-timer) + (setq itimer-next-wakeup sleep + itimer-timer (add-timeout sleep 'itimer-timer-driver nil 5))))) (defun itimer-driver-start () (if (fboundp 'add-timeout) diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/lisp.el --- a/lisp/prim/lisp.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/lisp.el Mon Aug 13 09:27:39 2007 +0200 @@ -50,6 +50,7 @@ ;; XEmacs: evil hack! The other half of the evil hack below. (if (and (> arg 0) (looking-at "#s(")) (goto-char (+ (point) 2))) + ;; XEmacs change -- don't bomb out if unbalanced sexp (goto-char (or (scan-sexps (point) arg) (buffer-end arg))) (if (< arg 0) (backward-prefix-chars)) ;; XEmacs: evil hack! Skip back over #s so that structures are read diff -r 8b0638b347ec -r 1370575f1259 lisp/prim/simple.el --- a/lisp/prim/simple.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/prim/simple.el Mon Aug 13 09:27:39 2007 +0200 @@ -68,9 +68,15 @@ :group 'editing) (defgroup paren-matching nil - "Matching and blinking of parens" + "Highlight (un)matching of parens and expressions." + :prefix "paren-" :group 'matching) +(defgroup paren-blinking nil + "Blinking of matched parens." + :prefix "blink-" + :group 'paren-matching) + (defun newline (&optional arg) "Insert a newline, and move to left margin of the new line if it's blank. @@ -2691,29 +2697,29 @@ (defcustom blink-matching-paren t "*Non-nil means show matching open-paren when close-paren is inserted." :type 'boolean - :group 'paren-matching) + :group 'paren-blinking) (defcustom blink-matching-paren-on-screen t "*Non-nil means show matching open-paren when it is on screen. nil means don't show it (but the open-paren can still be shown when it is off screen." :type 'boolean - :group 'paren-matching) + :group 'paren-blinking) (defcustom blink-matching-paren-distance 12000 "*If non-nil, is maximum distance to search for matching open-paren." :type '(choice integer (const nil)) - :group 'paren-matching) + :group 'paren-blinking) (defcustom blink-matching-delay 1 "*The number of seconds that `blink-matching-open' will delay at a match." :type 'number - :group 'paren-matching) + :group 'paren-blinking) (defcustom blink-matching-paren-dont-ignore-comments nil "*Non-nil means `blink-matching-paren' should not ignore comments." :type 'boolean - :group 'paren-matching) + :group 'paren-blinking) (defun blink-matching-open () "Move cursor momentarily to the beginning of the sexp before point." diff -r 8b0638b347ec -r 1370575f1259 lisp/tl/emu-x20.el --- a/lisp/tl/emu-x20.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/tl/emu-x20.el Mon Aug 13 09:27:39 2007 +0200 @@ -3,7 +3,7 @@ ;; Copyright (C) 1994,1995,1996,1997 MORIOKA Tomohiko ;; Author: MORIOKA Tomohiko -;; Version: $Id: emu-x20.el,v 1.7 1997/04/10 05:55:51 steve Exp $ +;; Version: $Id: emu-x20.el,v 1.8 1997/04/16 04:08:02 steve Exp $ ;; Keywords: emulation, compatibility, Mule, XEmacs ;; This file is part of XEmacs. @@ -40,16 +40,16 @@ (defmacro as-binary-process (&rest body) `(let (selective-display ; Disable ^M to nl translation. - (coding-system-for-read 'no-conversion) - (coding-system-for-write 'no-conversion)) + (coding-system-for-read 'binary) + (coding-system-for-write 'binary)) ,@body)) (defmacro as-binary-input-file (&rest body) - `(let ((coding-system-for-read 'no-conversion)) + `(let ((coding-system-for-read 'binary)) ,@body)) (defmacro as-binary-output-file (&rest body) - `(let ((coding-system-for-write 'no-conversion)) + `(let ((coding-system-for-write 'binary)) ,@body)) diff -r 8b0638b347ec -r 1370575f1259 lisp/utils/autoload.el --- a/lisp/utils/autoload.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/utils/autoload.el Mon Aug 13 09:27:39 2007 +0200 @@ -155,8 +155,10 @@ (save-excursion (unwind-protect (progn - (let ((find-file-hooks nil)) - (set-buffer (or visited (find-file-noselect file)))) + (let ((find-file-hooks nil) + (enable-local-variables nil)) + (set-buffer (or visited (find-file-noselect file))) + (set-syntax-table lisp-mode-syntax-table)) (save-excursion (save-restriction (widen) diff -r 8b0638b347ec -r 1370575f1259 lisp/utils/easymenu.el --- a/lisp/utils/easymenu.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/utils/easymenu.el Mon Aug 13 09:27:39 2007 +0200 @@ -1,11 +1,11 @@ ;;; easymenu.el - Easy menu support for Emacs 19 and XEmacs. ;; -;; $Id: easymenu.el,v 1.2 1997/01/03 03:10:33 steve Exp $ +;; $Id: easymenu.el,v 1.3 1997/04/16 04:08:03 steve Exp $ ;; ;; LCD Archive Entry: ;; easymenu|Per Abrahamsen|abraham@iesd.auc.dk| ;; Easy menu support for XEmacs| -;; $Date: 1997/01/03 03:10:33 $|$Revision: 1.2 $|~/misc/easymenu.el.gz| +;; $Date: 1997/04/16 04:08:03 $|$Revision: 1.3 $|~/misc/easymenu.el.gz| ;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. @@ -160,7 +160,7 @@ (fset 'easy-menu-change (symbol-function 'add-menu)) ;; This variable hold the easy-menu mode menus of all major and -;; minor modes currently in effect. +;; minor modes currently in effect in the current buffer. (defvar easy-menu-all-popups nil) (make-variable-buffer-local 'easy-menu-all-popups) @@ -168,11 +168,10 @@ "Add MENU to the current menu bar." (if (featurep 'menubar) (progn - (if easy-menu-all-popups - (setq easy-menu-all-popups (cons menu easy-menu-all-popups)) - (setq easy-menu-all-popups (list menu mode-popup-menu))) - (setq mode-popup-menu menu) - + (setq easy-menu-all-popups (cons menu easy-menu-all-popups)) + (setq mode-popup-menu (cons (easy-menu-title) + (reverse easy-menu-all-popups))) + (cond ((null current-menubar) ;; Don't add it to a non-existing menubar. nil) @@ -192,11 +191,24 @@ (if (featurep 'menubar) (progn (setq easy-menu-all-popups (delq menu easy-menu-all-popups) - mode-popup-menu (car easy-menu-all-popups)) + mode-popup-menu (cons (easy-menu-title) + (reverse easy-menu-all-popups))) (and current-menubar (assoc (car menu) current-menubar) (delete-menu-item (list (car menu))))))) +;; Think up a good title for the menu. Take the major-mode of the +;; buffer, strip the -mode part, convert hyphens to spaces, and +;; capitalize it. +;; +;; If you can think of something smarter, feel free to replace it. +;; Don't forget to mail the change to xemacs@xemacs.org where everyone +;; can flame, er, praise your changes. +(defun easy-menu-title () + (capitalize (replace-in-string (replace-in-string + (symbol-name major-mode) "-mode$" "") + "-" " "))) + (provide 'easymenu) ;;; easymenu.el ends here diff -r 8b0638b347ec -r 1370575f1259 lisp/utils/facemenu.el --- a/lisp/utils/facemenu.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/utils/facemenu.el Mon Aug 13 09:27:39 2007 +0200 @@ -101,11 +101,8 @@ (require 'easymenu) ;;; Provide some binding for startup: -;;; XEmacs -- goto-line is a *much* better binding for M-g. -;;;dont ###autoload (define-key global-map "\M-g" 'facemenu-keymap) - -(defvar facemenu-key "\M-g" - "Prefix key to use for facemenu commands.") +;;;###autoload +(define-key ctl-x-map "F" 'facemenu-keymap) (defvar facemenu-keybindings '((default . "d") diff -r 8b0638b347ec -r 1370575f1259 lisp/utils/finder-inf.el --- a/lisp/utils/finder-inf.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/utils/finder-inf.el Mon Aug 13 09:27:39 2007 +0200 @@ -291,7 +291,7 @@ (help) "lisp/electric/") ("crisp.el" - "Crisp/Brief Emacs emulator" + "CRiSP/Brief Emacs emulator" (emulations brief crisp) "lisp/emulators/") ("edt-lk201.el" @@ -450,10 +450,6 @@ "John Horton Conway's `Life' game for GNU Emacs" (games) "lisp/games/") - ("mine.el" - "Mine game for GNU Emacs" - (games) - "lisp/games/") ("mpuz.el" "multiplication puzzle for XEmacs" (games) @@ -642,10 +638,6 @@ "Mail header parsing, merging, formatting" (tools mail news) "lisp/gnus/") - ("md5.el" - "MD5 Message Digest Algorithm" - nil - "lisp/gnus/") ("message.el" "composing mail and news messages" (mail news) @@ -1116,7 +1108,7 @@ "lisp/mule/") ("canna.el" "Interface to the Canna input method." - nil + (canna japanese input method mule multilingual) "lisp/mule/") ("chinese-hooks.el" "pre-loaded support for Chinese." @@ -1294,10 +1286,6 @@ "code for handling all sorts of compressed and encrypted files" (extensions) "lisp/packages/") - ("cu-edit-faces.el" - "interactive face editing mode" - nil - "lisp/packages/") ("dabbrev.el" "dynamic abbreviation package" (abbrev expand completion) @@ -1582,6 +1570,10 @@ "miscellaneous console functions not written in C" (internal) "lisp/prim/") + ("cus-start.el" + "define customization properties of builtins." + (internal) + "lisp/prim/") ("debug.el" "debuggers and related commands for XEmacs" nil @@ -2426,6 +2418,10 @@ "Automatic image converters" (images) "lisp/w3/") + ("md5.el" + "MD5 Message Digest Algorithm" + nil + "lisp/w3/") ("mm.el" "Mailcap parsing routines, and MIME handling" (mail news hypermedia) @@ -2606,10 +2602,6 @@ "Main functions for emacs-w3 on all platforms/versions" (faces help comm news mail processes mouse hypermedia) "lisp/w3/") - ("x-overlay.el" - "overlay support." - (internal) - "lisp/w3/") ("x-faces.el" "X-specific face frobnication, aka black magic." nil diff -r 8b0638b347ec -r 1370575f1259 lisp/utils/id-select.el --- a/lisp/utils/id-select.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/utils/id-select.el Mon Aug 13 09:27:39 2007 +0200 @@ -164,9 +164,13 @@ ;;; Public variables ;;; ************************************************************************ -(defgroup id-select nil - "Select larger and larger syntax-driven regions in a buffer" - :group 'mouse) +;; We need the progn to kill off the defgroup-tracking mechanism. +;; This package changes the state of XEmacs by loading it, which is +;; why it's potentially dangerous. +(progn + (defgroup id-select nil + "Select larger and larger syntax-driven regions in a buffer" + :group 'mouse)) (defcustom id-select-brace-modes diff -r 8b0638b347ec -r 1370575f1259 lisp/utils/smtpmail.el --- a/lisp/utils/smtpmail.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/utils/smtpmail.el Mon Aug 13 09:27:39 2007 +0200 @@ -97,7 +97,7 @@ (backward-char 1) (setq delimline (point-marker)) ;; (sendmail-synch-aliases) - (if (and mail-aliases (fboundp expand-mail-aliases)) ; XEmacs + (if (and mail-aliases (fboundp 'expand-mail-aliases)) ; XEmacs (expand-mail-aliases (point-min) delimline)) (goto-char (point-min)) ;; ignore any blank lines in the header @@ -446,8 +446,7 @@ "Get address list suitable for smtp RCPT TO:
." (require 'mail-utils) ;; pick up mail-strip-quoted-names (let - ((case-fold-search t) - (simple-address-list "") + ((simple-address-list "") this-line this-line-end addr-regexp) @@ -456,6 +455,7 @@ (save-excursion ;; (set-buffer smtpmail-address-buffer) (erase-buffer) + (let ((case-fold-search t)) (insert-buffer-substring smtpmail-text-buffer header-start header-end) (goto-char (point-min)) ;; RESENT-* fields should stop processing of regular fields. @@ -497,7 +497,7 @@ ) (setq smtpmail-recipient-address-list recipient-address-list)) - ) + )) ) ) ) diff -r 8b0638b347ec -r 1370575f1259 lisp/version.el --- a/lisp/version.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/version.el Mon Aug 13 09:27:39 2007 +0200 @@ -25,7 +25,7 @@ (defconst emacs-version "20.1" "Version numbers of this version of Emacs.") -(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta15)"))) +(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid"))) (defconst emacs-major-version (progn (or (string-match "^[0-9]+" emacs-version) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-autoload.el --- a/lisp/vm/vm-autoload.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-autoload.el Mon Aug 13 09:27:39 2007 +0200 @@ -1259,6 +1259,8 @@ (autoload (quote vm-mime-display-internal-application/octet-stream) "vm-mime" nil nil nil) +(autoload (quote vm-mime-display-button-application) "vm-mime" nil nil nil) + (autoload (quote vm-mime-display-button-image) "vm-mime" nil nil nil) (autoload (quote vm-mime-display-button-audio) "vm-mime" nil nil nil) @@ -1630,8 +1632,12 @@ (autoload (quote vm-mouse-send-url-to-netscape) "vm-mouse" nil nil nil) +(autoload (quote vm-mouse-send-url-to-netscape-new-window) "vm-mouse" nil nil nil) + (autoload (quote vm-mouse-send-url-to-mosaic) "vm-mouse" nil nil nil) +(autoload (quote vm-mouse-send-url-to-mosaic-new-window) "vm-mouse" nil nil nil) + (autoload (quote vm-mouse-install-mouse) "vm-mouse" nil nil nil) (autoload (quote vm-run-background-command) "vm-mouse" nil nil nil) @@ -2198,7 +2204,7 @@ (autoload (quote vm-mode) "vm-startup" "Major mode for reading mail. -This is VM 6.24. +This is VM 6.26. Commands: h - summarize folder contents @@ -2801,6 +2807,12 @@ (autoload (quote vm-spool-files) "vm-vars" nil nil nil) +(autoload (quote vm-xemacs-p) "vm-vars" nil nil nil) + +(autoload (quote vm-xemacs-mule-p) "vm-vars" nil nil nil) + +(autoload (quote vm-fsfemacs-19-p) "vm-vars" nil nil nil) + (autoload (quote vm-note-emacs-version) "vm-vars" nil nil nil) (autoload (quote vm-version) "vm-version" "Returns the value of the variable vm-version." nil nil) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-menu.el --- a/lisp/vm/vm-menu.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-menu.el Mon Aug 13 09:27:39 2007 +0200 @@ -44,7 +44,18 @@ (provide 'vm-menu) -;; makeu sure the emacs/xemacs version variables are set, as they +;; copied from vm-vars.el because vm-xemacs-p, vm-xemacs-mule-p +;; and vm-fsfemacs-19-p are needed below at load time and +;; vm-note-emacs-version may not be autoloadable. +(or (fboundp 'vm-note-emacs-version) + (defun vm-note-emacs-version () + (setq vm-xemacs-p (string-match "XEmacs" emacs-version) + vm-xemacs-mule-p (and vm-xemacs-p (featurep 'mule) + ;; paranoia + (fboundp 'set-file-coding-system)) + vm-fsfemacs-19-p (not vm-xemacs-p)))) + +;; make sure the emacs/xemacs version variables are set, as they ;; are needed below at load time. (vm-note-emacs-version) @@ -369,7 +380,8 @@ :selected (eq vm-mime-8bit-text-transfer-encoding 'base64)])) "----" ["Attach File..." vm-mime-attach-file vm-send-using-mime] - ["Attach MIME File..." vm-mime-attach-mime-file vm-send-using-mime] +;; ["Attach MIME Message..." vm-mime-attach-mime-file +;; vm-send-using-mime] ["Encode MIME, But Don't Send" vm-mime-encode-composition (and vm-send-using-mime (null (vm-mail-mode-get-header-contents "MIME-Version:")))] @@ -544,50 +556,56 @@ (apply command args)) (defun vm-menu-can-revert-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (and (buffer-modified-p) buffer-file-name))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (and (buffer-modified-p) buffer-file-name)) + (error nil))) (defun vm-menu-can-recover-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (and buffer-file-name - buffer-auto-save-file-name - (file-newer-than-file-p - buffer-auto-save-file-name - buffer-file-name)))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (and buffer-file-name + buffer-auto-save-file-name + (file-newer-than-file-p + buffer-auto-save-file-name + buffer-file-name))) + (error nil))) (defun vm-menu-can-save-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (or (eq major-mode 'vm-virtual-mode) - (buffer-modified-p)))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (or (eq major-mode 'vm-virtual-mode) + (buffer-modified-p))) + (error nil))) (defun vm-menu-can-get-new-mail-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (or (eq major-mode 'vm-virtual-mode) - (and (not vm-block-new-mail) (not vm-folder-read-only))))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (or (eq major-mode 'vm-virtual-mode) + (and (not vm-block-new-mail) (not vm-folder-read-only)))) + (error nil))) (defun vm-menu-can-undo-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - vm-undo-record-list)) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + vm-undo-record-list) + (error nil))) (defun vm-menu-can-decode-mime-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (and vm-display-using-mime - vm-message-pointer - vm-presentation-buffer - (not vm-mime-decoded) - (not (vm-mime-plain-message-p (car vm-message-pointer)))))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (and vm-display-using-mime + vm-message-pointer + vm-presentation-buffer + (not vm-mime-decoded) + (not (vm-mime-plain-message-p (car vm-message-pointer))))) + (error nil))) (defun vm-menu-yank-original () (interactive) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-mime.el --- a/lisp/vm/vm-mime.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-mime.el Mon Aug 13 09:27:39 2007 +0200 @@ -1394,9 +1394,12 @@ (vm-mime-get-parameter layout "name")))) (vm-mime-send-body-to-file layout default-filename))) t ) -(fset 'vm-mime-display-button-application +(fset 'vm-mime-display-button-application/octet-stream 'vm-mime-display-internal-application/octet-stream) +(defun vm-mime-display-button-application (layout) + (vm-mime-display-button-xxxx layout nil)) + (defun vm-mime-display-button-image (layout) (vm-mime-display-button-xxxx layout t)) @@ -1797,13 +1800,15 @@ (defvar vm-menu-mime-dispose-menu) (defun vm-mime-set-extent-glyph-for-type (e type) - (if (and vm-xemacs-p (fboundp 'make-glyph) - (eq (device-type) 'x) (> (device-bitplanes) 7)) + (if (and vm-xemacs-p + (featurep 'xpm) + (eq (device-type) 'x) + (> (device-bitplanes) 7)) (let ((dir vm-image-directory) (colorful (> (device-bitplanes) 15)) (tuples '(("text" "document-simple.xpm" "document-colorful.xpm") - ("image" "mona_stamp-simple.gif" "mona_stamp-colorful.gif") + ("image" "mona_stamp-simple.xpm" "mona_stamp-colorful.xpm") ("audio" "audio_stamp-simple.xpm" "audio_stamp-colorful.xpm") ("video" "film-simple.xpm" "film-colorful.xpm") ("message" "message-simple.xpm" "message-colorful.xpm") @@ -2264,7 +2269,7 @@ (put-text-property start end 'vm-mime-object object)) (vm-xemacs-p (setq e (make-extent start end)) - (vm-mime-set-extent-glyph-for-type e type) + (vm-mime-set-extent-glyph-for-type e (or type "text/plain")) (set-extent-property e 'start-open t) (set-extent-property e 'face vm-mime-button-face) (set-extent-property e 'duplicable t) @@ -2383,15 +2388,17 @@ encoding )) (defun vm-mime-transfer-encode-layout (layout) - (if (vm-mime-text-type-p layout) - (vm-mime-transfer-encode-region (vm-mm-layout-encoding layout) - (vm-mm-layout-body-start layout) - (vm-mm-layout-body-end layout) - t) - (vm-mime-transfer-encode-region (vm-mm-layout-encoding layout) - (vm-mm-layout-body-start layout) - (vm-mm-layout-body-end layout) - nil))) + (let ((encoding + (vm-mime-transfer-encode-region (vm-mm-layout-encoding layout) + (vm-mm-layout-body-start layout) + (vm-mm-layout-body-end layout) + (vm-mime-text-type-p layout)))) + (save-excursion + (save-restriction + (goto-char (vm-mm-layout-header-start layout)) + (narrow-to-region (point) (vm-mm-layout-body-start layout)) + (vm-reorder-message-headers nil nil "Content-Transfer-Encoding:") + (insert "Content-Transfer-Encoding: " encoding "\n"))))) (defun vm-mime-encode-composition () "MIME encode the current mail composition buffer. @@ -2549,7 +2556,7 @@ ;; then any subpart that contains 8bit data must ;; have an opaque (qp or base64) 8->7bit ;; conversion performed on it so that the - ;; enclosing entity can use an non-opqaue + ;; enclosing entity can use a non-opaque ;; encoding. ;; ;; message/partial requires a "7bit" encoding so @@ -2691,8 +2698,8 @@ (if params (if vm-mime-avoid-folding-content-type (insert "; " (mapconcat 'identity params "; ") "\n") - (insert ";\n\t" (mapconcat 'identity params ";\n\t")))) - (insert "\n")) + (insert ";\n\t" (mapconcat 'identity params ";\n\t") "\n")) + (insert "\n"))) (if just-one (and description (insert "Content-Description: " description "\n"))) @@ -2700,10 +2707,12 @@ (progn (insert "Content-Disposition: " (car disposition)) (if (cdr disposition) - (insert ";\n\t" (mapconcat 'identity - (cdr disposition) - ";\n\t"))) - (insert "\n"))) + (if vm-mime-avoid-folding-content-type + (insert "; " (mapconcat 'identity (cdr disposition) "; ") + "\n") + (insert ";\n\t" (mapconcat 'identity (cdr disposition) + ";\n\t"))) + (insert "\n")))) (if just-one (insert "Content-Transfer-Encoding: " encoding "\n") (if 8bit @@ -2864,7 +2873,7 @@ ;; then any subpart that contains 8bit data must ;; have an opaque (qp or base64) 8->7bit ;; conversion performed on it so that the - ;; enclosing entity can use an non-opqaue + ;; enclosing entity can use a non-opaque ;; encoding. ;; ;; message/partial requires a "7bit" encoding so @@ -3006,8 +3015,8 @@ (if params (if vm-mime-avoid-folding-content-type (insert "; " (mapconcat 'identity params "; ") "\n") - (insert ";\n\t" (mapconcat 'identity params ";\n\t")))) - (insert "\n")) + (insert ";\n\t" (mapconcat 'identity params ";\n\t") "\n")) + (insert "\n"))) (if just-one (and description (insert "Content-Description: " description "\n"))) @@ -3015,10 +3024,12 @@ (progn (insert "Content-Disposition: " (car disposition)) (if (cdr disposition) - (insert ";\n\t" (mapconcat 'identity - (cdr disposition) - ";\n\t"))) - (insert "\n"))) + (if vm-mime-avoid-folding-content-type + (insert "; " (mapconcat 'identity (cdr disposition) "; ") + "\n") + (insert ";\n\t" (mapconcat 'identity (cdr disposition) + ";\n\t"))) + (insert "\n")))) (if just-one (insert "Content-Transfer-Encoding: " encoding "\n") (if 8bit @@ -3108,10 +3119,9 @@ (progn (setq temp-buffer (generate-new-buffer "composition preview")) (set-buffer temp-buffer) - ;; so vm-mime-encode-composition won't complain + ;; so vm-mime-xxxx-encode-composition won't complain (setq major-mode 'mail-mode) (vm-insert-region-from-buffer mail-buffer) - (vm-remove-mail-mode-header-separator) (goto-char (point-min)) (or (vm-mail-mode-get-header-contents "From") (insert "From: " (user-login-name) "\n")) @@ -3125,6 +3135,7 @@ (and vm-send-using-mime (null (vm-mail-mode-get-header-contents "MIME-Version:")) (vm-mime-encode-composition)) + (vm-remove-mail-mode-header-separator) (goto-char (point-min)) (insert (vm-leading-message-separator 'From_)) (goto-char (point-max)) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-minibuf.el --- a/lisp/vm/vm-minibuf.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-minibuf.el Mon Aug 13 09:27:39 2007 +0200 @@ -181,10 +181,8 @@ (while keymaps (setq keymap (car keymaps)) (cond ((vm-mouse-xemacs-mouse-p) - (define-key keymap 'button1 'ignore) - (define-key keymap 'button2 'ignore) - (define-key keymap 'button1up command) - (define-key keymap 'button2up command)) + (define-key keymap 'button1 command) + (define-key keymap 'button2 command)) ((vm-mouse-fsfemacs-mouse-p) (define-key keymap [down-mouse-1] 'ignore) (define-key keymap [drag-mouse-1] 'ignore) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-mouse.el --- a/lisp/vm/vm-mouse.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-mouse.el Mon Aug 13 09:27:39 2007 +0200 @@ -90,7 +90,7 @@ ((vm-mouse-fsfemacs-mouse-p) (set-buffer (window-buffer (posn-window (event-start event)))) (goto-char (posn-point (event-start event))))) - (cond ((fboundp 'overlays-at) + (cond (vm-fsfemacs-19-p (let ((o-list (overlays-at (point))) (string nil)) (while o-list @@ -101,7 +101,7 @@ o-list nil) (setq o-list (cdr o-list)))) string )) - ((fboundp 'extent-at) + (vm-xemacs-p (let ((e (extent-at (point) nil 'highlight))) (if e (buffer-substring (extent-start-position e) @@ -201,6 +201,9 @@ (vm-mouse-send-url-to-netscape url t new-window))) (message "Sending URL to Netscape... done")) +(defun vm-mouse-send-url-to-netscape-new-window (url) + (vm-mouse-send-url-to-netscape url nil t)) + (defun vm-mouse-send-url-to-mosaic (url &optional new-mosaic new-window) (message "Sending URL to Mosaic...") (if (null new-mosaic) @@ -233,6 +236,9 @@ (append vm-mosaic-program-switches (list url)))) (message "Sending URL to Mosaic... done")) +(defun vm-mouse-send-url-to-mosaic-new-window (url) + (vm-mouse-send-url-to-mosaic url nil t)) + (defun vm-mouse-install-mouse () (cond ((vm-mouse-xemacs-mouse-p) (if (null (lookup-key vm-mode-map 'button2)) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-reply.el --- a/lisp/vm/vm-reply.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-reply.el Mon Aug 13 09:27:39 2007 +0200 @@ -366,7 +366,9 @@ vm-kept-mail-buffers))) (mapcar (function (lambda (b) - (and (buffer-name b) (kill-buffer b)))) + (and (buffer-name b) + (not (buffer-modified-p b)) + (kill-buffer b)))) extras) (and vm-kept-mail-buffers extras (setcdr (memq (car extras) vm-kept-mail-buffers) nil))))) @@ -1015,8 +1017,10 @@ (insert "X-Mailer: VM " vm-version " under " (if vm-fsfemacs-19-p "Emacs " "") emacs-version "\n") - ;; REPLYTO support for FSF Emacs v19.29 - (and (eq mail-default-reply-to t) + ;; REPLYTO environmental variable support + ;; note that in FSF Emacs v19.29 we would initialize if the + ;; value was t. nil is the treigger value used now. + (and (eq mail-default-reply-to nil) (setq mail-default-reply-to (getenv "REPLYTO"))) (if mail-default-reply-to (insert "Reply-To: " mail-default-reply-to "\n")) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-startup.el --- a/lisp/vm/vm-startup.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-startup.el Mon Aug 13 09:27:39 2007 +0200 @@ -171,9 +171,7 @@ (setq totals-blurb (vm-emit-totals-blurb))) (vm-thoughtfully-select-message) - (if vm-message-list - (vm-preview-current-message) - (vm-update-summary-and-mode-line)) + (vm-update-summary-and-mode-line) ;; need to do this after any frame creation because the ;; toolbar sets frame-specific height and width specifiers. (and (vm-toolbar-support-possible-p) vm-use-toolbar @@ -209,6 +207,9 @@ vm-presentation-buffer (current-buffer))))))) + (if vm-message-list + (vm-preview-current-message)) + (run-hooks 'vm-visit-folder-hook) (if full-startup @@ -275,7 +276,7 @@ (defun vm-mode (&optional read-only) "Major mode for reading mail. -This is VM 6.24. +This is VM 6.26. Commands: h - summarize folder contents @@ -1054,7 +1055,7 @@ (defun vm-session-initialization () (vm-note-emacs-version) (vm-check-emacs-version) - (vm-set-debug-flags) + ;(vm-set-debug-flags) ;; If this is the first time VM has been run in this Emacs session, ;; do some necessary preparations. (if (or (not (boundp 'vm-session-beginning)) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-toolbar.el --- a/lisp/vm/vm-toolbar.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-toolbar.el Mon Aug 13 09:27:39 2007 +0200 @@ -199,10 +199,12 @@ (fset 'vm-toolbar-quit-command 'vm-quit)) (defun vm-toolbar-any-messages-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - vm-message-list)) + (condition-case nil + (save-excursion + (vm-check-for-killed-folder) + (vm-select-folder-buffer) + vm-message-list) + (error nil))) (defun vm-toolbar-delete/undelete-message (&optional prefix-arg) (interactive "P") @@ -218,11 +220,13 @@ (defun vm-toolbar-can-autofile-p () (interactive) - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (and vm-message-pointer - (vm-auto-select-folder vm-message-pointer vm-auto-folder-alist)))) + (condition-case nil + (save-excursion + (vm-check-for-killed-folder) + (vm-select-folder-buffer) + (and vm-message-pointer + (vm-auto-select-folder vm-message-pointer vm-auto-folder-alist))) + (error nil))) (defun vm-toolbar-autofile-message () (interactive) @@ -239,39 +243,43 @@ (error "No match for message in vm-auto-folder-alist.")))) (defun vm-toolbar-can-recover-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (and vm-folder-read-only - buffer-file-name - buffer-auto-save-file-name - (null (buffer-modified-p)) - (file-newer-than-file-p - buffer-auto-save-file-name - buffer-file-name)))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (and vm-folder-read-only + buffer-file-name + buffer-auto-save-file-name + (null (buffer-modified-p)) + (file-newer-than-file-p + buffer-auto-save-file-name + buffer-file-name))) + (error nil))) (defun vm-toolbar-can-decode-mime-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (and - vm-display-using-mime - vm-message-pointer - vm-presentation-buffer - (not vm-mime-decoded) - (not (vm-mime-plain-message-p (car vm-message-pointer)))))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (and + vm-display-using-mime + vm-message-pointer + vm-presentation-buffer + (not vm-mime-decoded) + (not (vm-mime-plain-message-p (car vm-message-pointer))))) + (error nil))) (defun vm-toolbar-can-quit-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - (memq major-mode '(vm-mode vm-virtual-mode)))) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + (memq major-mode '(vm-mode vm-virtual-mode))) + (error nil))) (defun vm-toolbar-mail-waiting-p () - (save-excursion - (vm-check-for-killed-folder) - (vm-select-folder-buffer) - vm-spooled-mail-waiting)) + (condition-case nil + (save-excursion + (vm-select-folder-buffer) + vm-spooled-mail-waiting) + (error nil))) (fset 'vm-toolbar-can-help-p 'vm-toolbar-can-quit-p) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-vars.el --- a/lisp/vm/vm-vars.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-vars.el Mon Aug 13 09:27:39 2007 +0200 @@ -354,7 +354,7 @@ (defvar vm-highlighted-header-face 'bold "*Face to be used to highlight headers. -The header to highlight are sepcified by the vm-highlighted-header-regexp +The headers to highlight are specified by the vm-highlighted-header-regexp variable. This variable is ignored under XEmacs if vm-use-lucid-highlighting is @@ -391,7 +391,10 @@ A nil value means VM will not display MIME messages any differently than any other message.") -(defvar vm-mime-ignore-mime-version nil +;; this is t because at this time (11 April 1997) Solaris is +;; generated too many mangled MIME version headers. For the same +;; reason vm-mime-avoid-folding-content-type is also set to t. +(defvar vm-mime-ignore-mime-version t "*Non-nil value means ignore the version number in the MIME-Version header. VM only knows how to decode and display MIME version 1.0 messages. Some systems scramble the MIME-Version header, causing @@ -2460,7 +2463,7 @@ (define-key map "\C-c\C-p" 'vm-mime-preview-composition) (define-key map "\C-c\C-e" 'vm-mime-encode-composition) (define-key map "\C-c\C-a" 'vm-mime-attach-file) - (define-key map "\C-c\C-m" 'vm-mime-attach-mime-file) +;; (define-key map "\C-c\C-m" 'vm-mime-attach-mime-file) (define-key map "\C-c\C-y" 'vm-yank-message) (define-key map "\C-c\C-s" 'vm-mail-send) (define-key map "\C-c\C-c" 'vm-mail-send-and-exit) @@ -3077,6 +3080,9 @@ (defconst vm-xemacs-p nil) (defconst vm-xemacs-mule-p nil) (defconst vm-fsfemacs-19-p nil) +(defun vm-xemacs-p () vm-xemacs-p) +(defun vm-xemacs-mule-p () vm-xemacs-mule-p) +(defun vm-fsfemacs-19-p () vm-fsfemacs-19-p) (defun vm-note-emacs-version () (setq vm-xemacs-p (string-match "XEmacs" emacs-version) vm-xemacs-mule-p (and vm-xemacs-p (featurep 'mule) diff -r 8b0638b347ec -r 1370575f1259 lisp/vm/vm-version.el --- a/lisp/vm/vm-version.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/vm/vm-version.el Mon Aug 13 09:27:39 2007 +0200 @@ -2,7 +2,7 @@ (provide 'vm-version) -(defconst vm-version "6.24" +(defconst vm-version "6.26" "Version number of VM.") (defun vm-version () diff -r 8b0638b347ec -r 1370575f1259 lisp/w3/mule-sysdp.el --- a/lisp/w3/mule-sysdp.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/w3/mule-sysdp.el Mon Aug 13 09:27:39 2007 +0200 @@ -41,7 +41,7 @@ (2.3 *noconv*) (2.4 'no-conversion) (3.0 'no-conversion) - (xemacs 'no-conversion) + (xemacs 'binary) (otherwise nil)) "Coding system that means no coding system should be used.") diff -r 8b0638b347ec -r 1370575f1259 lisp/x11/x-menubar.el --- a/lisp/x11/x-menubar.el Mon Aug 13 09:26:41 2007 +0200 +++ b/lisp/x11/x-menubar.el Mon Aug 13 09:27:39 2007 +0200 @@ -664,6 +664,7 @@ ["No Warranty" describe-no-warranty t] ["XEmacs License" describe-copying t] ["The Latest Version" describe-distribution t]) + ["Submit Bug Report" send-pr t] ) ))) diff -r 8b0638b347ec -r 1370575f1259 man/xemacs-faq.texi --- a/man/xemacs-faq.texi Mon Aug 13 09:26:41 2007 +0200 +++ b/man/xemacs-faq.texi Mon Aug 13 09:27:39 2007 +0200 @@ -8,12 +8,13 @@ @titlepage @title XEmacs FAQ @subtitle Frequently asked questions about XEmacs -@subtitle Last Modified: 1997/01/16 +@subtitle Last Modified: 1997/04/15 @sp 1 @author Tony Rossini @author Ben Wing @author Chuck Thompson @author Steve Baur +@author Andreas Kaempf @page @end titlepage @@ -68,9 +69,12 @@ Steven L. Baur . It was converted back to texinfo by Hrvoje Niksic . -This version was edited and updated by Andreas Kaempf -. - +Since Steve Baur is so busy putting out multiple versions of XEmacs I +have taken on the task of maintaining the FAQ. I use XEmacs on a daily +basis and I wanted to give something back to the community that has made +XEmacs possible. If you notice any errors or items which should be +added or amended to this FAQ please send email to Andreas Kaempf +. Include @samp{XEmacs FAQ} on the Subject: line. @menu Introduction: @@ -79,10 +83,10 @@ * Q1.0.3:: Where can I find it? * Q1.0.4:: Why Another Version of Emacs? * Q1.0.5:: Why Haven't XEmacs and GNU Emacs Merged? -* Q1.0.6:: Where can I get help? +* Q1.0.6:: Where can I get help? @strong{update 4/97} * Q1.0.7:: Where is the mailing list archived? * Q1.0.8:: How do you pronounce XEmacs? -* Q1.0.9:: What does XEmacs look like? +* Q1.0.9:: What does XEmacs look like? @strong{updated 4/97} * Q1.0.10:: Is there a port of XEmacs to Microsoft ('95 or NT)? * Q1.0.11:: Is there a port of XEmacs to the Macintosh? * Q1.0.12:: Is there a port of XEmacs to NextStep? @@ -96,26 +100,26 @@ Credits: * Q1.2.1:: Who wrote XEmacs? -* Q1.2.2:: Who contributed to this version of the FAQ? -* Q1.2.3:: Who contributed to the FAQ in the past? +* Q1.2.2:: Who contributed to this version of the FAQ? @strong{updated 4/97} +* Q1.2.3:: Who contributed to the FAQ in the past? @strong{updated 4/97} Internationalization: -* Q1.3.1:: What is the status of XEmacs v20? +* Q1.3.1:: What is the status of XEmacs v20? @strong{updated 4/97} * Q1.3.2:: What is the status of Asian-language support, aka @var{mule}? * Q1.3.3:: How do I type non-ASCII characters? * Q1.3.4:: Can XEmacs messages come out in a different language? * Q1.3.5:: Please explain the various input methods in MULE/XEmacs 20.0 * Q1.3.6:: How do I portably code for MULE/XEmacs 20.0? -* Q1.3.7:: How about Cyrillic Modes? +* Q1.3.7:: How about Cyrillic Modes? @strong{updated 4/97} Getting Started: * Q1.4.1:: What is a @file{.emacs} and is there a sample one? -* Q1.4.2:: Can I use the same @file{.emacs} with the other Emacs? +* Q1.4.2:: Can I use the same @file{.emacs} with the other Emacs? @strong{updated 4/97} * Q1.4.3:: Any good XEmacs tutorials around? * Q1.4.4:: May I see an example of a useful XEmacs Lisp function? * Q1.4.5:: And how do I bind it to a key? * Q1.4.6:: What's the difference between a macro and a function? -* Q1.4.7:: Why options saved with 19.13 don't work with 19.14 or 20.0? +* Q1.4.7:: Why options saved with 19.13 don't work with 19.14 or later? @end menu @node Q1.0.1, Q1.0.2, Introduction, Introduction @@ -134,8 +138,9 @@ It has been decided that XEmacs 19.15 will be the final release of v19. XEmacs 19.15 is scheduled for release in late March. After a brief -period of further testing, XEmacs v20.1 will be released shortly after -that. +period of further testing, XEmacs v20.1 will be released the later part +of April, 1997. + @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction @section Where can I find it? @@ -276,6 +281,9 @@ @section What does XEmacs look like? Screen snapshots are available in the WWW version of the FAQ. +@example + +@end example @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction @section Is there a port of XEmacs to Microsoft ('95 or NT)? @@ -361,7 +369,7 @@ @section How do I become a Beta Tester? Send an email message to with a -subject line of @samp{subscribe}. Fill out and return the questionaire +subject line of @samp{subscribe}. Fill out and return the questionnaire you get back, and you will receive the password to get at the current beta. @@ -445,11 +453,11 @@ @itemize @bullet @item Steven L Baur -@item Darrell Kindred - -@item David Moore - -@item Justin Sheehy +@item Richard Cognot + +@item Hrvoje Niksic + +@item Aki Vehtari @end itemize @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction @@ -473,12 +481,18 @@ @item Marty Hall +@item Darrell Kindred + +@item David Moore + @item Arup Mukherjee @item Juergen Nickelsen @item Kevin R. Powell +@item Justin Sheehy + @item Stig @end itemize @@ -561,8 +575,7 @@ It translates ASCII inputs to Kana/PinYin/Hangul characters. @item Kana/PinYin/Hangul to Kanji transfer layer. -It is -interface layer for network Kana-Kanji server (Wnn and Sj3). +It is interface layer for network Kana-Kanji server (Wnn and Sj3). @end enumerate These input methods are modal, namely there are mode, alphabet mode and @@ -635,7 +648,7 @@ . This is a modification to Valery Alexeev's @file{russian.el} which can be obtained from -. +. @end quotation Dima Barsky writes: @@ -748,7 +761,7 @@ or parts of them. @node Q1.4.7, , Q1.4.6, Introduction -@section How come options saved with 19.13 don't work with 19.14 or 20.0? +@section How come options saved with 19.13 don't work with 19.14 or later? There's a problem with options of the form: @@ -758,9 +771,9 @@ @end lisp saved by a 19.13 XEmacs that causes a 19.14 XEmacs grief. You must -delete these options. 19.14 and later no longer write the options -directly to @file{.emacs} which should allow us to deal with version -incompatibilities better in the future. +delete these options. XEmacs 19.14 and later no longer write the +options directly to @file{.emacs} which should allow us to deal with +version incompatibilities better in the future. Options saved under XEmacs 19.13 are protected by code that specifically requires a version 19 XEmacs. This won't be a problem unless you're @@ -784,24 +797,25 @@ @menu Installation: -* Q2.0.1:: Running XEmacs without installing. -* Q2.0.2:: XEmacs is too big. +* Q2.0.1:: Running XEmacs without installing. @strong{updated 4/97} +* Q2.0.2:: XEmacs is too big. @strong{updated 4/97} * Q2.0.3:: Compiling XEmacs with Netaudio. -* Q2.0.4:: Problems with Linux and ncurses. +* Q2.0.4:: Problems with Linux and ncurses. @strong{updated 4/97} * Q2.0.5:: Do I need X11 to run XEmacs? * Q2.0.6:: I'm having strange crashes. What do I do? * Q2.0.7:: Libraries in non-standard locations. * Q2.0.8:: can't resolve symbol _h_errno -* Q2.0.9:: Where do I find external libraries? +* Q2.0.9:: Where do I find external libraries? @strong{updated 4/97} * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. -* Q2.0.12:: Why can't I strip XEmacs? +* Q2.0.12:: Why can't I strip XEmacs? @strong{updated 4/97} * Q2.0.13:: Can't link XEmacs on Solaris with Gcc. +* Q2.0.14:: Make on HP/UX 9 fails after linking temacs @strong{new 4/97} Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! * Q2.1.2:: Cryptic Minibuffer messages. -* Q2.1.3:: Translation Table Syntax messages at Startup. +* Q2.1.3:: Translation Table Syntax messages at Startup. @strong{updated 4/97} * Q2.1.4:: Startup warnings about deducing proper fonts? * Q2.1.5:: XEmacs cannot connect to my X Terminal. * Q2.1.6:: XEmacs just locked up my Linux X server. @@ -809,7 +823,7 @@ * Q2.1.8:: got (wrong-type-argument color-instance-p nil)! * Q2.1.9:: XEmacs causes my OpenWindows 3.0 server to crash. * Q2.1.10:: Warnings from incorrect key modifiers. -* Q2.1.11:: @samp{wrong type argument: bufferp, "......"}. +* Q2.1.11:: [This question intentionally left blank] @strong{removed 4/97} * Q2.1.12:: Regular Expression Problems on DEC OSF1. * Q2.1.13:: HP/UX 10.10 and @code{create_process} failure * Q2.1.14:: @kbd{C-g} doesn't work for me. Is it broken? @@ -821,6 +835,7 @@ * Q2.1.20:: @samp{Symbol's function definition is void: hkey-help-show.} * Q2.1.21:: Every so often the XEmacs frame freezes. * Q2.1.22:: XEmacs seems to take a really long time to do some things. +* Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. @strong{new 4/97} @end menu @node Q2.0.1, Q2.0.2, Installation, Installation @@ -837,11 +852,11 @@ A good method is to make a shell alias for xemacs: @example -alias xemacs=/i/xemacs-19.14/src/xemacs +alias xemacs=/i/xemacs-19.15/src/xemacs @end example (You will obviously use whatever directory you downloaded the source -tree to instead of @file{/i/xemacs-19.14}). +tree to instead of @file{/i/xemacs-19.15}). This will let you run XEmacs without massive copying. @@ -851,168 +866,8 @@ Steve Baur writes: @quotation -The 45MB of space required by the installation directories can be -reduced dramatically if desired. Gzip all the .el files. Remove all -the packages you'll never want to use (or even ones you do like the two -obsolete mailcrypts and Gnus 4 in 19.13). Remove the TexInfo manuals. -Remove the Info (and use just hardcopy versions of the manual). Remove -most of the stuff in etc. Remove or gzip all the source code. Gzip or -remove the C source code. Configure it so that copies are not made of -the support lisp. I'm not advocating any of these things, just pointing -out ways to reduce the disk requirements if desired. - -Now examine the space used by directory: - -@example -0 /usr/local/bin/xemacs -2048 /usr/local/bin/xemacs-19.13 - -1546 /usr/local/lib/xemacs-19.13/i486-miranova-sco3.2v4.2 -1158 /usr/local/lib/xemacs-19.13/i486-unknown-linux1.2.13 -@end example - -You need to keep these. XEmacs isn't stripped by default in -installation, you should consider stripping. That will save you about -5MB right there. - -@example -207 /usr/local/lib/xemacs-19.13/etc/w3 -122 /usr/local/lib/xemacs-19.13/etc/sounds -18 /usr/local/lib/xemacs-19.13/etc/sparcworks -159 /usr/local/lib/xemacs-19.13/etc/vm -6 /usr/local/lib/xemacs-19.13/etc/e -21 /usr/local/lib/xemacs-19.13/etc/eos -172 /usr/local/lib/xemacs-19.13/etc/toolbar -61 /usr/local/lib/xemacs-19.13/etc/ns -43 /usr/local/lib/xemacs-19.13/etc/gnus -@end example - -These are support directories for various packages. In general they -match a directory under ./xemacs-19.13/lib/xemacs-19.13/lisp/. If you -do not require the package, you may delete or gzip the support too. - -@example -1959 /usr/local/lib/xemacs-19.13/etc -175 /usr/local/lib/xemacs-19.13/lisp/bytecomp -340 /usr/local/lib/xemacs-19.13/lisp/calendar -342 /usr/local/lib/xemacs-19.13/lisp/comint -517 /usr/local/lib/xemacs-19.13/lisp/dired -42 /usr/local/lib/xemacs-19.13/lisp/electric -212 /usr/local/lib/xemacs-19.13/lisp/emulators -238 /usr/local/lib/xemacs-19.13/lisp/energize -289 /usr/local/lib/xemacs-19.13/lisp/gnus -457 /usr/local/lib/xemacs-19.13/lisp/ilisp -1439 /usr/local/lib/xemacs-19.13/lisp/modes -2276 /usr/local/lib/xemacs-19.13/lisp/packages -1040 /usr/local/lib/xemacs-19.13/lisp/prim -176 /usr/local/lib/xemacs-19.13/lisp/pcl-cvs -154 /usr/local/lib/xemacs-19.13/lisp/rmail -3 /usr/local/lib/xemacs-19.13/lisp/epoch -45 /usr/local/lib/xemacs-19.13/lisp/term -860 /usr/local/lib/xemacs-19.13/lisp/utils -851 /usr/local/lib/xemacs-19.13/lisp/vm -13 /usr/local/lib/xemacs-19.13/lisp/vms -157 /usr/local/lib/xemacs-19.13/lisp/x11 -19 /usr/local/lib/xemacs-19.13/lisp/tooltalk -14 /usr/local/lib/xemacs-19.13/lisp/sunpro -291 /usr/local/lib/xemacs-19.13/lisp/games -198 /usr/local/lib/xemacs-19.13/lisp/edebug -619 /usr/local/lib/xemacs-19.13/lisp/w3 -229 /usr/local/lib/xemacs-19.13/lisp/eos -55 /usr/local/lib/xemacs-19.13/lisp/iso -59 /usr/local/lib/xemacs-19.13/lisp/mailcrypt -187 /usr/local/lib/xemacs-19.13/lisp/eterm -356 /usr/local/lib/xemacs-19.13/lisp/ediff -408 /usr/local/lib/xemacs-19.13/lisp/hyperbole/kotl -1262 /usr/local/lib/xemacs-19.13/lisp/hyperbole -247 /usr/local/lib/xemacs-19.13/lisp/hm--html-menus -161 /usr/local/lib/xemacs-19.13/lisp/mh-e -299 /usr/local/lib/xemacs-19.13/lisp/viper -53 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-x -4 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj/DocWindow.nib -3 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj/InfoPanel.nib -3 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj/TreeView.nib -11 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj -53 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx -466 /usr/local/lib/xemacs-19.13/lisp/oobr -14142 /usr/local/lib/xemacs-19.13/lisp -@end example - -These are all Emacs Lisp source code and bytecompiled object code. You -may safely gzip everything named *.el here. You may remove any package -you don't use. @emph{Nothing bad will happen if you delete a package -that you do not use}. You must be sure you do not use it though, so be -conservative at first. - -Possible candidates for deletion include w3 (newer versions exist, or -you may just use Lynx or Netscape for web browsing), games, hyperbole, -mh-e, hm--html-menus (better packages exist), vm, viper, oobr, gnus (new -versions exist), etc. Ask yourself, @emph{Do I ever want to use this -package?} If the answer is no, then it is a candidate for removal. - -First, gzip all the .el files. Then go about package by package and -start gzipping the .elc files. Then run XEmacs and do whatever it is -you normally do. If nothing bad happens, then delete the directory. Be -conservative about deleting directories, and it would be handy to have a -backup tape around in case you get too zealous. - -@file{prim}, @file{modes}, @file{packages}, and @file{utils} are four -directories you definitely do @strong{not} want to delete, although -certain packages can be removed from them if you do not use them. - -@example -1972 /usr/local/lib/xemacs-19.13/info -@end example - -These are online texinfo sources. You may either gzip them or remove -them. In either case, @kbd{C-h i} (info mode) will no longer work. - -@example -20778 /usr/local/lib/xemacs-19.13 -@end example - -The 20MB achieved is less than half of what the full distribution takes up, -@strong{and} can be achieved without deleting a single file. -@end quotation - -giacomo boffi provides this procedure: - -@quotation -Substitute @file{/usr/local/lib/} with the path where the xemacs tree is -rooted, then use this script: - -@example -#!/bin/sh - -r=/usr/local/lib/xemacs-19.13/lisp - -cd $r ; rm -f cmpr ; touch cmpr - -du -s . - -for d in * ; do - if test -d $d ; then - cd $d - for f in *.el ; do -# compress (remove) only (ONLY) the sources that have a -# corresponding compiled file --- do not (DO NOT) touch other -# sources - if test -f $@{f@}c ; then gzip -v9 $f >> $r/cmpr ; fi - done - cd .. - fi -done - -du -s . -@end example - -A step beyond would be substituting @samp{rm -f} for @samp{gzip -v9}, -but you have to be desperate for removing the sources (remember that -emacs can access compressed files transparently). - -Also, a good megabyte could easily be trimmed from the $r/../etc -directory, e.g., the termcap files, some O+NEWS, others that I don't -remember as well. +XEmacs 20.2 will unbundle the lisp hierarchy and allow the installer +to choose exactly how much support code gets installed. @end quotation @node Q2.0.3, Q2.0.4, Q2.0.2, Installation @@ -1048,7 +903,7 @@ @section Problems with Linux and ncurses. On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with libc -5.2.18, xemacs 20.0b20 is unable to open a tty device: +5.2.18, XEmacs 20.0b20 is unable to open a tty device: @example src/xemacs -nw -q @@ -1152,7 +1007,6 @@ @table @asis @item JPEG -, mirrored at . Version 6a is current. @item XPM @@ -1183,7 +1037,7 @@ @end table @node Q2.0.10, Q2.0.11, Q2.0.9, Installation -@section After I run configure I find a coredump, is something wrong? +@section After I run configure I find a core dump, is something wrong? Not necessarily. If you have GNU sed 3.0 you should downgrade it to 2.05. From the @file{README} at prep.ai.mit.edu: @@ -1199,7 +1053,7 @@ @end quotation It has also been observed that the vfork test on Solaris will leave a -coredump. +core dump. @node Q2.0.11, Q2.0.12, Q2.0.10, Installation @section XEmacs doesn't resolve hostnames. @@ -1275,11 +1129,11 @@ cp src/xemacs /usr/local/bin/xemacs @item -cp lib-src/DOC-19.14-XEmacs /usr/local/lib/xemacs-19.14/i586-unknown-linuxaout +cp lib-src/DOC-19.15-XEmacs /usr/local/lib/xemacs-19.15/i586-unknown-linuxaout @end enumerate @end quotation -@node Q2.0.13, Q2.1.1, Q2.0.12, Installation +@node Q2.0.13, Q2.0.14, Q2.0.12, Installation @section Problems linking with Gcc on Solaris There are known difficulties linking with Gnu ld on Solaris. A typical @@ -1298,7 +1152,27 @@ to ld. Future releases of XEmacs will try to do this automatically. @end quotation -@node Q2.1.1, Q2.1.2, Q2.0.13, Installation +@node Q2.0.14, Q2.1.1, Q2.0.13, Installation +@section Make on HP/UX 9 fails after linking temacs + +Problem when building xemacs-19.15 on hpux 9: + +Richard Cognot writes: + +@quotation +make on hpux fails after linking temacs with a message: + +@example +"make: don't know how to make .y." +@end example + +Solution: This is a problem with HP make revision 70.X. Either use GNU +make, or install PHCO_6552, which will bring make to revision +72.24.1.17. +@end quotation + + +@node Q2.1.1, Q2.1.2, Q2.0.14, Installation @section Help! XEmacs just crashed on me! First of all, don't panic. Whenever XEmacs crashes, it tries extremely @@ -1417,7 +1291,7 @@ set the environment variable @var{XKEYSYMDB} to the location of the @file{XKeysymDB} file on your system or to the location of the one included with XEmacs which should be at -@file{/lib/xemacs-19.14/etc/XKeysymDB}. +@file{/lib/xemacs-19.15/etc/XKeysymDB}. @item The binary is finding the XKeysymDB but it is out-of-date on your system @@ -1571,18 +1445,9 @@ @end example @node Q2.1.11, Q2.1.12, Q2.1.10, Installation -@section @samp{wrong type argument: bufferp, "......"}. - -I'm using XEmacs 19.13 on Solaris 2.5. I'm having problem using the -bookmark. When I try to set a bookmark, I always get the following error -message: - -@lisp -wrong type argument: bufferp, "......" -@end lisp - -You are using the wrong version of @code{set-text-properties}. Please -use the one given with Q5.1.3 (@xref{Q5.1.3}). +@section [This question intentionally left blank] + +Obsolete question, left blank to avoid renumbering. @node Q2.1.12, Q2.1.13, Q2.1.11, Installation @section Problems with Regular Expressions on DEC OSF1. @@ -1952,7 +1817,7 @@ This problem has been fixed in 19.15, and was due to a not easily reproducible race condition. -@node Q2.1.22, , Q2.1.21, Installation +@node Q2.1.22, Q2.1.23, Q2.1.21, Installation @section XEmacs seems to take a really long time to do some things David Moore writes: @@ -1987,6 +1852,23 @@ some other strange cases. @end quotation +@node Q2.1.23, , Q2.1.22, Installation +@section Movemail on Linux doe snot work for XEmacs 19.15 and later. + +Movemail used to work fine in 19.14 but has stopped working in 19.15 +and 20.x. I am using Linux. + +Steven L Baur writes: + +@quotation +Movemail on Linux used to default to using flock file locking. +With 19.15 and 20.0 it now defaults to using .lock file locking. +If this is not appropriate for your system, edit src/s/linux.h and +uncomment the line that reads: + +@code{#define MAIL_USE_FLOCK} +@end quotation + @node Customization, Subsystems, Installation, Top @chapter Customization and Options @@ -1995,20 +1877,20 @@ @menu Customization---Emacs Lisp and @file{.emacs}: -* Q3.0.1:: What version of Emacs am I running? +* Q3.0.1:: What version of Emacs am I running? @strong{updated 4/97} * Q3.0.2:: How do I evaluate Elisp expressions? * Q3.0.3:: @code{(setq tab-width 6)} behaves oddly. * Q3.0.4:: How can I add directories to the @code{load-path}? * Q3.0.5:: How to check if a lisp function is defined? * Q3.0.6:: Can I force the output of @code{(face-list)} to a buffer? -* Q3.0.7:: Font selections don't get saved after @code{Save Options}. +* Q3.0.7:: Font selections don't get saved after @code{Save Options}. @strong{updated 4/97} * Q3.0.8:: How do I make a single minibuffer frame? X Window System & Resources: * Q3.1.1:: Where is a list of X resources? * Q3.1.2:: How can I detect a color display? * Q3.1.3:: @code{(set-screen-width)} worked in 19.6, but not in 19.13? -* Q3.1.4:: Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.13? +* Q3.1.4:: Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15? @strong{updated 4/97} * Q3.1.5:: How can I get the icon to just say @samp{XEmacs}? * Q3.1.6:: How can I have the window title area display the full path? * Q3.1.7:: @samp{xemacs -name junk} doesn't work? @@ -2018,7 +1900,7 @@ * Q3.2.1:: How can I set color options from @file{.emacs}? * Q3.2.2:: How do I set the text, menu and modeline fonts? * Q3.2.3:: How can I set the colors when highlighting a region? -* Q3.2.4:: How can I limit color map usage? +* Q3.2.4:: How can I limit color map usage? @strong{updated 4/97} * Q3.2.5:: My tty supports color, but XEmacs doesn't use them. The Modeline: @@ -2026,10 +1908,10 @@ * Q3.3.2:: How do you have XEmacs display the line number in the modeline? * Q3.3.3:: How do I get XEmacs to put the time of day on the modeline? * Q3.3.4:: How do I turn off current chapter from AUC-TeX modeline? -* Q3.3.5:: How can one change the modeline color based on the mode used? +* Q3.3.5:: How can one change the modeline color based on the mode used? @strong{updated 4/97} 3.4 Multiple Device Support: -* Q3.4.1:: How do I open a frame on another screen of my multi-headed display? +* Q3.4.1:: How do I open a frame on another screen of my multi-headed display? @strong{updated 4/97} * Q3.4.2:: Can I really connect to a running XEmacs after calling up over a modem? How? 3.5 The Keyboard: @@ -2038,7 +1920,7 @@ * Q3.5.3:: How do I bind C-. and C-; to scroll one line up and down? * Q3.5.4:: Globally binding @kbd{Delete}? * Q3.5.5:: Scrolling one line at a time. -* Q3.5.6:: How to map @kbd{Help} key alone on Sun type4 keyboard? +* Q3.5.6:: How to map @kbd{Help} key alone on Sun type4 keyboard? @strong{updated 4/97} * Q3.5.7:: How can you type in special characters in XEmacs? * Q3.5.8:: Why does @code{(global-set-key [delete-forward] 'delete-char)} complain? * Q3.5.9:: How do I make the Delete key delete forward? @@ -2073,7 +1955,7 @@ * Q3.9.4:: How can I get automatic horizontal scrolling? Text Selections: -* Q3.10.1:: How can I turn off or change highlighted selections? +* Q3.10.1:: How can I turn off or change highlighted selections? @strong{updated 4/97} * Q3.10.2:: How do I get that typing on an active region removes it? * Q3.10.3:: Can I turn off the highlight during isearch? * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? @@ -2087,9 +1969,9 @@ using? To determine if you are currently running GNU Emacs 18, GNU Emacs 19, -XEmacs 19, or Epoch, and use appropriate code, check out the example -given in @file{etc/sample.emacs}. There are other nifty things in there -as well! +XEmacs 19, XEmacs 20, or Epoch, and use appropriate code, check out the +example given in @file{etc/sample.emacs}. There are other nifty things +in there as well! For all new code, all you really need to do is: @@ -2188,7 +2070,9 @@ the rightmost paren and typing @kbd{C-j}. @node Q3.0.7, Q3.0.8, Q3.0.6, Customization -@section Font selections don't get saved after @code{Save Options}. +@section Font selections in don't get saved after @code{Save Options}. + +For XEmacs 19.14 and previous: John Mann writes: @@ -2199,6 +2083,14 @@ when you save options. @end quotation +For XEmacs 19.15 and later: + +Implement the above as well as set the following in your @file{.emacs} + +@lisp +(setq options-save-faces 't) +@end lisp + @node Q3.0.8, Q3.1.1, Q3.0.7, Customization @section How do I get a single minibuffer frame? @@ -2269,10 +2161,10 @@ @end lisp @node Q3.1.4, Q3.1.5, Q3.1.3, Customization -@section Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.13? +@section Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15? In XEmacs 19.11 I specified @code{Emacs*EmacsScreen.geometry} in -my @file{.emacs} but this does not work in XEmacs 19.13. +my @file{.emacs} but this does not work in XEmacs 19.15. We have switched from using the term @dfn{screen} to using the term @dfn{frame}. @@ -2462,7 +2354,7 @@ I'm using Netscape (or another color grabber like XEmacs); is there anyway to limit the number of available colors in the color map? -XEmacs 19.13 doesn't have such a mechanism (unlike netscape, or other +XEmacs 19.13 didn't have such a mechanism (unlike netscape, or other color-hogs). One solution is to start XEmacs prior to netscape, since this will prevent Netscape from grabbing all colors (but Netscape will complain). You can use the flags for Netscape, like -mono, -ncols <#> @@ -2595,7 +2487,7 @@ current mode. @end itemize -This works in 19.14 as well, but there are additional modeline faces, +This works in 19.15 as well, but there are additional modeline faces, @code{modeline-buffer-id}, @code{modeline-mousable}, and @code{modeline-mousable-minor-mode}, which you may want to customize. @@ -2606,8 +2498,8 @@ @kbd{M-x make-frame-on-display}. This command is also on the File menu in the menubar. -XEmacs 19.14 also has the command @code{make-frame-on-tty} which will -establish a connection to any tty-like device. +XEmacs 19.14 and later also has the command @code{make-frame-on-tty} +which will establish a connection to any tty-like device. @node Q3.4.2, Q3.5.1, Q3.4.1, Customization @section Can I really connect to a running XEmacs after calling up over a modem? How? @@ -2750,7 +2642,7 @@ (global-set-key [help] 'help-command) ;; Help @end lisp -The following works in XEmacs 19.13 with the addition of shift: +The following works in XEmacs 19.15 with the addition of shift: @lisp (global-set-key [(shift help)] 'help-command) ;; Help @@ -3185,7 +3077,7 @@ (setq zmacs-regions nil) @end lisp -To change the face for selection, look at @code{Options->Edit Faces} on +To change the face for selection, look at @code{Options->Customize} on the menubar. @node Q3.10.2, Q3.10.3, Q3.10.1, Customization @@ -3290,7 +3182,7 @@ * Q4.1.2:: How do I run W3 from behind a firewall? Reading Netnews and Mail with Gnus: -* Q4.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, argh! +* Q4.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus,argh! @strong{updated 4/97} * Q4.2.2:: [This question intentionally left blank] * Q4.2.3:: How do I make Gnus stay within a single frame? * Q4.2.4:: How do I customize the From: line? @@ -3303,7 +3195,7 @@ * Q4.3.5:: Where do I find pstogif (required by tm)? Sparcworks, EOS, and WorkShop: -* Q4.4.1:: What is SPARCworks, EOS, and WorkShop +* Q4.4.1:: What is SPARCworks, EOS, and WorkShop @strong{updated 4/97} Energize: * Q4.5.1:: What is/was Energize? @@ -3565,7 +3457,7 @@ @node Q4.2.1, Q4.2.2, Q4.1.2, Subsystems @section GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Mamey Sapote Gnus, argh! -Please see for details. +Please see the FAQ for details. @node Q4.2.2, Q4.2.3, Q4.2.1, Subsystems @section This question intentionally left blank. @@ -3635,6 +3527,8 @@ support. When appropriate a message will be decoded in place in an XEmacs buffer. +TM now comes as a package with XEmacs 19.15 and XEmacs 20.0. + TM was written by MORIOKA Tomohiko and KOBAYASHI Shuhei . It is based on the work of UMEDA Masanobu , the original writer of GNUS. @@ -3722,7 +3616,7 @@ tools such as TeamWare (for configuration management), MakeTool, etc. @end quotation -See +See for more info. EOS stands for "Era on SPARCworks", but I don't know what Era stands @@ -4006,8 +3900,8 @@ * Q5.0.7:: Telnet from shell filters too much. * Q5.0.8:: Why does edt emulation not work? * Q5.0.9:: How can I emulate VI and use it as my default mode? -* Q5.0.10:: What is @samp{Omit} minor mode? -* Q5.0.11:: Filladapt doesn't work in 19.13? +* Q5.0.10:: [This question intentionally left blank] @strong{removed 4/97} +* Q5.0.11:: Filladapt doesn't work in 19.15? @strong{updated 4/97} * Q5.0.12:: How do I disable gnuserv from opening a new frame? * Q5.0.13:: How do I start gnuserv so that each subsequent XEmacs is a client? * Q5.0.14:: Strange things are happening in Shell Mode. @@ -4020,13 +3914,13 @@ Emacs Lisp Programming Techniques: * Q5.1.1:: The difference in key sequences between XEmacs and GNU Emacs? * Q5.1.2:: Can I generate "fake" keyboard events? -* Q5.1.3:: How can I visit several marked files at once in dired? +* Q5.1.3:: [This question intentionally left blank] @strong{removed 4/97} * Q5.1.4:: In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX? * Q5.1.5:: How do I put a glyph as annotation in a buffer? Sound: * Q5.2.1:: How do I turn off the sound? -* Q5.2.2:: How do I get funky sounds instead of a boring beep? +* Q5.2.2:: How do I get funky sounds instead of a boring beep? @strong{updated 4/97} * Q5.2.3:: What's NAS, how do I get it? * Q5.2.4:: Sunsite sounds don't play. @@ -4221,42 +4115,14 @@ @end quotation @node Q5.0.10, Q5.0.11, Q5.0.9, Miscellaneous -@section What is @code{Omit} minor mode? - -I have no idea where this is coming from, but ever since I moved from -19.9 to 19.13 I have started seeing that all of my buffers will get a -minor mode called @code{Omit}. I have no idea how it got there nor do I -know what it does. What is it? - -It's part of dired. In dired, you can type M-o to get Omit mode and -that will ignore uninteresting files (checkpoint files and backups, for -example). You get Omit in the modeline everywhere because the variable -@code{dired-omit-files-p} is globally set to some non-nil value. If you -want this functionality, it's probably best to use a hook: - -@lisp -(add-hook 'dired-after-readin-hook '(lambda () (dired-omit-toggle))) -@end lisp - -Alternatively, since it seems odd to toggle the omit state with every -readin, since readin can happen many times in a Dired buffer, you can -try this hook to correct the @code{Omit} problem: - -@lisp -(add-hook 'dired-mode-hook - (function (lambda () - ;; `dired-omit-files-p' is made buffer-local by "dired-x.el", but - ;; maybe not soon enough. - (make-local-variable 'dired-omit-files-p) - (setq dired-omit-files-p t)))) -@end lisp - -This is only run once, when the Dired buffer is created. - +@section [This question intentionally left blank] + +Obsolete question, left blank to avoid renumbering + @node Q5.0.11, Q5.0.12, Q5.0.10, Miscellaneous -@section Filladapt doesn't work in 19.13? - -Filladapt 2.x is included in 19.13+. In it filladapt is now a minor +@section Filladapt doesn't work in 19.15 + +Filladapt 2.x is included in 19.15. In it filladapt is now a minor mode and minor modes are traditionally off by default. The following added to your @file{.emacs} will turn it on for all buffers: @@ -4427,35 +4293,9 @@ @end lisp @node Q5.1.3, Q5.1.4, Q5.1.2, Miscellaneous -@section How can I visit several marked files at once in dired? - -You can put this in your @file{.emacs} and then @kbd{F} will find marked -files: - -@lisp -(add-hook - 'dired-load-hook - (function (lambda () - (define-key dired-mode-map "F" - (function - (lambda () (interactive) - (mapcar 'find-file - (dired-mark-get-files)))))))) -@end lisp - -Aki Vehtari writes: - -@quotation -You can also use @file{dired-x.el} (Sebastian Kremer's Extra DIRED). It -defines F and makes other improvements too. See @file{dired/dired-x.el} -in the XEmacs distribution. - -In your @file{~/.emacs}, add: - -@lisp -(setq dired-load-hook '(lambda () (load "dired-x"))) -@end lisp -@end quotation +@section [This question intentionally left blank] + +Obsolete question, left blank to avoid renumbering. @node Q5.1.4, Q5.1.5, Q5.1.3, Miscellaneous @section In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX? @@ -4549,7 +4389,7 @@ (load-default-sounds) @end lisp -The sound support in XEmacs 19.14 is greatly improved over previous +The sound support in XEmacs 19.14 was greatly improved over previous versions. @node Q5.2.3, Q5.2.4, Q5.2.2, Miscellaneous @@ -4911,22 +4751,20 @@ various FAQ FTP sites, as this file is surely out of date. @menu -* Q6.0.1:: What is new in 19.15? +* Q6.0.1:: What is new in 20.1? @strong{updated 4/97} * Q6.0.3:: Procedural changes in XEmacs development. @end menu @node Q6.0.1, Q6.0.3, Current Events, Current Events -@section What is new in 19.15? - -The biggest changes in 19.15 include integration of TM (a MIME package -for VM and Gnus), EFS (the next generation of ange-ftp) and AUC TeX (the -Emacs subsystem that includes a major mode for editing TeX and LaTeX, -and a lot of other stuff). Many bugs from 19.14 have been fixed for -this release. - -XEmacs 20.0 (which includes full Asian-language support aka MULE) has -been released, but is still considered unstable. This work is being -supported by Sun Microsystems. +@section What is new in 20.1? + +The biggest changes in 20.1 include intergration of EFS (the next +generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a +major mode for editing Tex and LaTeX, and a lot of other stuff). Many +bugs from 20.0 have been fixed for this release. + +XEmacs 20.1 is the development release, and is no longer considered +unstable. @node Q6.0.3, , Q6.0.1, Current Events @section Procedural changes in XEmacs development. @@ -4945,11 +4783,11 @@ decided that intermediate versions will be made available in source only form for the truly interested. -XEmacs 19.15 is the end of the road for version 19 XEmacs. The next -release after 19.15 will be XEmacs 20.1. +No further XEmacs 19 releases are planned. @item As of December 1996, Steve Baur has become the lead maintainer of XEmacs. @bye +< diff -r 8b0638b347ec -r 1370575f1259 src/ChangeLog --- a/src/ChangeLog Mon Aug 13 09:26:41 2007 +0200 +++ b/src/ChangeLog Mon Aug 13 09:27:39 2007 +0200 @@ -1,3 +1,16 @@ +Sun Apr 13 09:56:54 1997 Steven L Baur + + * emacs.c (shut_down_emacs): Advertise using send-pr as the + mechanism for submitting a bug report. + + * Makefile.in.in: Handle pathological case of mis-autodetected + TOOLTALK. + +Sun Apr 13 11:33:34 1997 David Moore + + * regex.c (re_search_2): Prevent incorrect matching and infinite + loop with \\` and MULE. + Sat Apr 12 05:57:51 1997 Steven L Baur * Makefile.in.in (lisp): Dump cus-start.elc with XEmacs. diff -r 8b0638b347ec -r 1370575f1259 src/Makefile.in.in --- a/src/Makefile.in.in Mon Aug 13 09:26:41 2007 +0200 +++ b/src/Makefile.in.in Mon Aug 13 09:27:39 2007 +0200 @@ -768,6 +768,10 @@ # else # if ((defined (SPARC) || defined(INTEL386)) && defined (USG)) # define LIB_TOOLTALK -ltt -lce +# else +# undef TOOLTALK +# define TOOLTALK_OBJS +# define LIB_TOOLTALK # endif /* ((SPARC || INTEL386) && USG) */ # endif /* ! (SPARC && !USG) */ # endif /* !IRIX5 */ diff -r 8b0638b347ec -r 1370575f1259 src/emacs.c --- a/src/emacs.c Mon Aug 13 09:26:41 2007 +0200 +++ b/src/emacs.c Mon Aug 13 09:27:39 2007 +0200 @@ -1905,7 +1905,9 @@ ("Your files have been auto-saved.\n" "Use `M-x recover-session' to recover them.\n" "\n" - "Please report this bug to the address `crashes@xemacs.org'.\n" + "Please report this bug by running the send-pr script included\n" + "with XEmacs, or selecting `Send Bug Report' from the help menu.\n" + "As a last resort send ordinary email to `crashes@xemacs.org'.\n" "*MAKE SURE* to include as much configuration information as\n" "possible; at the very least what OS and hardware you are running\n" "on, and hopefully also what compiler and compiler options the\n" diff -r 8b0638b347ec -r 1370575f1259 src/mule-wnnfns.c --- a/src/mule-wnnfns.c Mon Aug 13 09:26:41 2007 +0200 +++ b/src/mule-wnnfns.c Mon Aug 13 09:27:39 2007 +0200 @@ -317,8 +317,6 @@ /* Lisp functions definition */ - - DEFUN ("wnn-server-open", Fwnn_open, 2, 2, 0, /* Connect to jserver of host HNAME, make an environment with login name LNAME in the server. @@ -358,12 +356,21 @@ strncpy (hostname, XSTRING (hname)->_data, 32); } CHECK_STRING (lname); + /* 97/4/16 jhod@po.iijnet.or.jp + * libwnn uses SIGALRM, so we need to stop and start interrupts. + */ + stop_interrupts(); if (!(wnnfns_buf[snum] = jl_open_lang (envname, hostname, langname, 0, 0, 0, EGG_TIMEOUT))) { + start_interrupts(); return Qnil; } - if (!jl_isconnect (wnnfns_buf[snum])) return Qnil; + if (!jl_isconnect (wnnfns_buf[snum])) + { + start_interrupts(); + return Qnil; + } wnnfns_env_norm[snum] = jl_env_get (wnnfns_buf[snum]); /* if (Vwnnenv_sticky == Qt) jl_env_sticky_e (wnnfns_env_norm[snum]); else jl_env_un_sticky_e (wnnfns_env_norm[snum]);*/ @@ -371,10 +378,12 @@ if (!(wnnfns_env_rev[snum] = jl_connect_lang (envname, hostname, langname, 0, 0, 0, EGG_TIMEOUT))) { + start_interrupts(); return Qnil; } /* if (Vwnnenv_sticky == Qt) jl_env_sticky_e (wnnfns_env_rev[snum]); else jl_env_un_sticky_e (wnnfns_env_rev[snum]);*/ + start_interrupts(); return Qt; } diff -r 8b0638b347ec -r 1370575f1259 src/ndir.h --- a/src/ndir.h Mon Aug 13 09:26:41 2007 +0200 +++ b/src/ndir.h Mon Aug 13 09:27:39 2007 +0200 @@ -65,7 +65,7 @@ char dd_buf[DIRBLKSIZ]; /* directory block */ } DIR; /* stream data from opendir() */ -extern DIR *opendir (CONST char *filename) +extern DIR *opendir (CONST char *filename); extern int closedir (DIR *dirp); extern struct direct *readdir (DIR *dirp); extern struct direct *readdirver (DIR *dirp); diff -r 8b0638b347ec -r 1370575f1259 src/regex.c --- a/src/regex.c Mon Aug 13 09:26:41 2007 +0200 +++ b/src/regex.c Mon Aug 13 09:27:39 2007 +0200 @@ -3892,7 +3892,11 @@ if (startpos > 0) return -1; else - range = 1; + { + d = ((CONST unsigned char *) + (startpos >= size1 ? string2 - size1 : string1) + startpos); + range = charcount_to_bytecount (d, 1); + } } /* Update the fastmap now if not correct already. */