User: ben
Date: 05/01/31 21:08:52
Modified: xemacs/nt ChangeLog xemacs.mak
Added: xemacs/man beta.texi
Removed: xemacs/etc CHARSETS CODINGS COPYING.LIB DEBUG DISTRIB FTP
GNU LPF MACHINES MAILINGLISTS MORE.STUFF MOTIVATION
ORDERS ORDERS.EUROPE ORDERS.JAPAN PACKAGES
README.HYPERBOLE README.OO-BROWSER SERVICE TERMS
aliases.ksh check_cygwin_setup.sh chr.png chrm.png
gnu.xbm gnu.xpm ms-kermit ms-kermit-7bit sink.xbm
Log:
Documentation updates
GETTING.GNU.SOFTWARE, Makefile.in.in: Delete GETTING.GNU.SOFTWARE from SOURCES.
PROBLEMS: Delete reference to check_cygwin_setup.sh.
Delete stuff that is irrelevant, mislocated or woefully out-of-date.
GNU, SERVICE: Delete.
* ORDERS, ORDERS.EUROPE, ORDERS.JAPAN: Delete.
* CHARSETS, CODINGS: Delete.
* DEBUG, LPF, MORE.STUFF, MOTIVATION: Delete.
aliases.ksh: Delete. (moved to xemacs-builds/steve)
* README.HYPERBOLE, README.OO-BROWSER: Delete.
* chr.png, chrm.png: Move to photos/.
check_cygwin_setup.sh: Delete.
* gnu.xpm, gnu.xbm, sink.xbm: Delete.
* ms-kermit, ms-kermit-7bit: Delete.
TERMS: Delete.
* DISTRIB, FTP, MACHINES, MAILINGLISTS, PACKAGES:
Delete and move to FAQ.
BETA: Delete and move to man/beta.texi.
README: Update.
help.el: Removed.
xemacs/help.texi: Delete references to DISTRIB. Point to FAQ.
xemacs/new.texi: Update sample code for version checking.
xemacs/xemacs.texi: Delete references to DISTRIB. Point directly to web site.
Update stuff referring to GNU Emacs. Delete references to Win-Emacs.
Makefile: Add beta.texi and built files.
xemacs-faq.texi: Major overhaul of section 1. Add mailing list info, update
downloading info, add info on CVS, etc.
xemacs.mak: Also copy BUGS, README, COPYING and Installation.
Revision Changes Path
1.51 +25 -0 XEmacs/xemacs/etc/ChangeLog
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/ChangeLog,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- ChangeLog 2005/01/26 10:05:03 1.50
+++ ChangeLog 2005/01/31 20:08:32 1.51
@@ -1,3 +1,28 @@
+2005-01-31 Ben Wing <ben(a)xemacs.org>
+
+ Delete stuff that is irrelevant, mislocated or woefully out-of-date.
+
+ * GNU: Delete.
+ * SERVICE: Delete.
+ * ORDERS, ORDERS.EUROPE, ORDERS.JAPAN: Delete.
+ * CHARSETS, CODINGS: Delete.
+ * DEBUG, LPF, MORE.STUFF, MOTIVATION: Delete.
+ * aliases.ksh: Delete. (moved to xemacs-builds/steve)
+ * README.HYPERBOLE, README.OO-BROWSER: Delete.
+ * chr.png, chrm.png: Move to photos/.
+ * check_cygwin_setup.sh: Delete.
+ * gnu.xpm, gnu.xbm, sink.xbm: Delete.
+ * ms-kermit, ms-kermit-7bit: Delete.
+ * TERMS: Delete.
+
+ * DISTRIB, FTP, MACHINES, MAILINGLISTS, PACKAGES:
+ Delete and move to FAQ.
+
+ * BETA:
+ Delete and move to man/beta.texi.
+
+ * README: Update.
+
2004-11-13 Ben Wing <ben(a)xemacs.org>
* CODING-STANDARDS: Delete and incorporate into Internals manual.
1.10 +12 -35 XEmacs/xemacs/etc/README
(In the diff below, changes in quantity of whitespace are not shown.)
Index: README
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/README,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- README 2003/03/27 12:57:44 1.9
+++ README 2005/01/31 20:08:37 1.10
@@ -3,40 +3,21 @@
of interest to XEmacs users, some programs used by or with XEmacs, and
the file of on-line documentation for XEmacs.
-BETA Information about Beta versions
-CHARSETS Character set descriptions
-CODING-STANDARDS XEmacs C & Lisp coding standards
-CODINGS Character set codings
-COOKIES Urban Legend, or True Story? :-)
COPYING GNU Public License
-COPYING.LIB Library GNU Public License
-DEBUG Hints on how to debug XEmacs
-DISTRIB How to obtain copies of XEmacs and Emacs
+ChangeLog ChangeLog for etc/
+ETAGS.EBNF Description of TAGS file format
Emacs.ad Sample Resource file
-FTP XEmacs FTP Mirrors
-GNU GNU Manifesto
-GOATS Complete XEmacs internals documentation
+HELLO Hello in many languages (Mule test file)
InstallGuide Fast track to installation
-LPF Information about the League for Programming Freedom
-MACHINES List of known machines configurations (OLD)
-MAILINGLISTS List of available Mailing lists
-MORE.STUFF List of useful unbundled packages
-NEWS XEmacs 21.4 release information
-ORDERS
-ORDERS.EUROPE
-ORDERS.JAPAN Order forms for GNU software
-PACKAGES List of packages available for 21.4 release
+NEWS XEmacs 21.5 release information
+ONEWS Older release information
+OONEWS Even older release information
README This file
-README.HYPERBOLE
-README.OO-BROWSER How to obtain Hyperbole and the OO-Browser
-SERVICE How to obtain paid support for free software
-TERMS Information about termcap entries
TUTORIAL Tutorial for first time users (English version)
TUTORIAL.* Tutorials in non-English languages
+VEGETABLES XEmacs 21.5 code names
XKeysymDB X Keysym Database with Motif bindings
-aliases.sh Useful shell aliases
cbx.png "Created by XEmacs" logo
-check_cygwin_setup.sh Script to check for presence of Cygwin
ctags.1 Ctags man page
custom/ Images used in Custom mode
editclient.sh Either start up XEmacs or connect to a running one
@@ -44,18 +25,15 @@
emacsstrs.sco Special files for running on an SCO console
eos/ Images for EOS support (GUD)
etags.1 Etags man page
-gnu.xbm
-gnu.xpm Image of a Gnu.
gnuattach.1 Gnuattach man page
gnuclient.1 Gnuclient man page
gnudoit.1 Gnudoit man page
gnuserv.1 Gnuserv man page
gnuserv.README Original README file from gnuserv
-gnusref.tex Gnus reference card
gray1.xbm Gray bitmap
-ms-kermit
-ms-kermit-7bit Files for running XEmacs through kermit
-photos/*.Z Various pictures of XEmacs developers
+idd/ ?
+package-index.LATEST.gpg ?
+photos/* Various pictures of XEmacs developers
recycle.xpm
recycle2.xpm Two versions of oversized Recycle cursor
refcard.ps.gz Postscript version of XEmacs reference card
@@ -63,19 +41,18 @@
sample.Xdefaults (legacy -- to be removed)
sample.Xresources Example ~/.Xresources file
sample.init.el Example ~/.xemacs/init.el file
-sink.xbm A Gnu icon
sparcworks/ Support files for Sparcworks
tests/ Testcases for external widget
-time/ Image files for display-time
toolbar/ Image files for the toolbar
trash.xpm Garbage can icon
+unicode/ Unicode conversion tables
xemacs-beta.xpm XEmacs Beta logo
+xemacs-enhanced.png "XEmacs-enhanced" logo
xemacs-fe.sh XEmacs frontend driver
xemacs-icon.xpm
xemacs-icon2.xbm
xemacs-icon2.xpm
xemacs-icon3.xpm Various versions of an XEmacs WM icon
-xemacs-ja.1 Japanese XEmacs man page
xemacs.1 XEmacs man page
xemacs.xbm
xemacs.xpm XEmacs logo used on the splash screen
1.620 +7 -0 XEmacs/xemacs/lisp/ChangeLog
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v
retrieving revision 1.619
retrieving revision 1.620
diff -u -b -r1.619 -r1.620
--- ChangeLog 2005/01/28 02:58:38 1.619
+++ ChangeLog 2005/01/31 20:08:44 1.620
@@ -1,3 +1,10 @@
+2005-01-31 Ben Wing <ben(a)xemacs.org>
+
+ * help.el:
+ * help.el (describe-distribution): Go to appropriate FAQ entry.
+ * help.el (describe-beta): Go to info file.
+ * help.el (describe-project): Removed.
+
2005-01-27 Ben Wing <ben(a)xemacs.org>
* font-menu.el:
1.44 +8 -8 XEmacs/xemacs/lisp/help.el
(In the diff below, changes in quantity of whitespace are not shown.)
Index: help.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/help.el,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- help.el 2004/09/15 08:30:26 1.43
+++ help.el 2005/01/31 20:08:45 1.44
@@ -1,7 +1,7 @@
;;; help.el --- help commands for XEmacs.
;; Copyright (C) 1985, 1986, 1992-4, 1997 Free Software Foundation, Inc.
-;; Copyright (C) 2001, 2002 Ben Wing.
+;; Copyright (C) 2001, 2002, 2003 Ben Wing.
;; Maintainer: FSF
;; Keywords: help, internal, dumped
@@ -696,12 +696,17 @@
(defun describe-distribution ()
"Display info on how to obtain the latest version of XEmacs."
(interactive)
- (Help-find-file (locate-data-file "DISTRIB")))
+ (save-window-excursion
+ (info)
+ (Info-find-node "xemacs-faq" "Q1.1.1"))
+ (switch-to-buffer "*info*"))
(defun describe-beta ()
"Display info on how to deal with Beta versions of XEmacs."
(interactive)
- (Help-find-file (locate-data-file "BETA")))
+ (save-window-excursion
+ (info "(beta)Top"))
+ (switch-to-buffer "*info*"))
(defun describe-copying ()
"Display info on how you may redistribute copies of XEmacs."
@@ -712,11 +717,6 @@
"Show a list of all defined mouse buttons, and their definitions."
(interactive)
(describe-bindings nil t))
-
-(defun describe-project ()
- "Display info on the GNU project."
- (interactive)
- (Help-find-file (locate-data-file "GNU")))
(defun describe-no-warranty ()
"Display info on all the kinds of warranty XEmacs does NOT have."
1.284 +109 -0 XEmacs/xemacs/man/ChangeLog
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/ChangeLog,v
retrieving revision 1.283
retrieving revision 1.284
diff -u -b -r1.283 -r1.284
--- ChangeLog 2005/01/28 00:12:32 1.283
+++ ChangeLog 2005/01/31 20:08:47 1.284
@@ -1,3 +1,112 @@
+2005-01-31 Ben Wing <ben(a)xemacs.org>
+
+ * xemacs/help.texi (Misc Help):
+ Delete references to DISTRIB. Point to FAQ.
+
+ * xemacs/new.texi:
+ Update sample code for version checking.
+
+ * xemacs/xemacs.texi (Distrib):
+ * xemacs/xemacs.texi (Intro):
+ Delete references to DISTRIB. Point directly to web site.
+ Update stuff referring to GNU Emacs. Delete references to Win-Emacs.
+
+2005-01-31 Ben Wing <ben(a)xemacs.org>
+
+ * Makefile:
+ * Makefile (info_files):
+ * Makefile (html_files):
+ * Makefile (dvi_files):
+ * Makefile (pdf_files):
+ * Makefile ($(INFODIR)/beta.info):
+ Add beta.texi and built files.
+
+ * xemacs-faq.texi (Top):
+ * xemacs-faq.texi (Introduction):
+ * xemacs-faq.texi (Q1.0.3):
+ * xemacs-faq.texi (Q1.0.4):
+ * xemacs-faq.texi (Q1.0.5):
+ * xemacs-faq.texi (Q1.0.6):
+ * xemacs-faq.texi (Q1.1.1):
+ * xemacs-faq.texi (Q1.1.2):
+ * xemacs-faq.texi (Q1.1.3):
+ * xemacs-faq.texi (Q1.1.4):
+ * xemacs-faq.texi (Q1.2.1):
+ * xemacs-faq.texi (Q1.2.2):
+ * xemacs-faq.texi (Q1.2.3):
+ * xemacs-faq.texi (Q1.2.4):
+ * xemacs-faq.texi (Q1.2.5):
+ * xemacs-faq.texi (Q1.2.6):
+ * xemacs-faq.texi (Q1.2.7):
+ * xemacs-faq.texi (Q1.2.8):
+ * xemacs-faq.texi (Q1.2.9):
+ * xemacs-faq.texi (Q1.2.10):
+ * xemacs-faq.texi (Q1.2.11):
+ * xemacs-faq.texi (Q1.2.12):
+ * xemacs-faq.texi (Q1.2.13):
+ * xemacs-faq.texi (Q1.3.1):
+ * xemacs-faq.texi (Q1.3.2):
+ * xemacs-faq.texi (Q1.3.3):
+ * xemacs-faq.texi (Q1.3.4):
+ * xemacs-faq.texi (Q1.3.5):
+ * xemacs-faq.texi (Q1.3.6):
+ * xemacs-faq.texi (Q1.3.7):
+ * xemacs-faq.texi (Q1.3.8):
+ * xemacs-faq.texi (Q1.4.1):
+ * xemacs-faq.texi (Q1.4.2):
+ * xemacs-faq.texi (double-word): New.
+ * xemacs-faq.texi (Q1.4.3):
+ * xemacs-faq.texi (Q1.4.4):
+ * xemacs-faq.texi (Q1.4.5):
+ * xemacs-faq.texi (Q1.5.1):
+ * xemacs-faq.texi (Q1.5.2):
+ * xemacs-faq.texi (Q1.5.3):
+ * xemacs-faq.texi (Q1.6.1):
+ * xemacs-faq.texi (Q1.6.2):
+ * xemacs-faq.texi (Q1.6.3):
+ * xemacs-faq.texi (Q1.6.4):
+ * xemacs-faq.texi (Q1.6.5):
+ * xemacs-faq.texi (Q1.6.6):
+ * xemacs-faq.texi (Q1.7.1):
+ * xemacs-faq.texi (Q1.8.1):
+ * xemacs-faq.texi (Q1.8.2):
+ * xemacs-faq.texi (Q1.8.3):
+ * xemacs-faq.texi (Q1.8.4):
+ * xemacs-faq.texi (Q1.8.5):
+ * xemacs-faq.texi (Q1.8.6):
+ * xemacs-faq.texi (Q1.8.7):
+ * xemacs-faq.texi (Q1.8.8):
+ * xemacs-faq.texi (Q1.8.9):
+ * xemacs-faq.texi (Q2.2.1):
+ * xemacs-faq.texi (Q2.2.2):
+ * xemacs-faq.texi (Q2.4.2):
+ * xemacs-faq.texi (Advanced):
+ * xemacs-faq.texi (Q7.0.1):
+ * xemacs-faq.texi (Q7.0.2):
+ * xemacs-faq.texi (Q7.0.3):
+ * xemacs-faq.texi (Q7.0.4):
+ * xemacs-faq.texi (Q7.0.5):
+ * xemacs-faq.texi (Q7.0.6):
+ * xemacs-faq.texi (Q7.1.1):
+ * xemacs-faq.texi (Q7.1.2):
+ * xemacs-faq.texi (Q7.1.3):
+ * xemacs-faq.texi (Q7.1.4):
+ * xemacs-faq.texi (Q7.1.5):
+ * xemacs-faq.texi (Q7.1.6):
+ * xemacs-faq.texi (Q7.1.7):
+ * xemacs-faq.texi (Q7.1.8):
+ * xemacs-faq.texi (Q7.1.9):
+ * xemacs-faq.texi (Q7.1.10):
+ * xemacs-faq.texi (Q7.1.11):
+ * xemacs-faq.texi (Q7.2.1):
+ * xemacs-faq.texi (Q7.2.2):
+ * xemacs-faq.texi (Q7.2.3):
+ * xemacs-faq.texi (Other Packages):
+ * xemacs-faq.texi (Current Events):
+ * xemacs-faq.texi (Legacy Versions):
+ Major overhaul of section 1. Add mailing list info, update
+ downloading info, add info on CVS, etc.
+
2004-10-17 Shyamal Prasad <shyamal(a)member.fsf.org>
* xemacs/programs.texi (Program Modes): Updated it to reflect
1.34 +10 -0 XEmacs/xemacs/man/Makefile
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Makefile
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/Makefile,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- Makefile 2004/12/07 12:52:45 1.33
+++ Makefile 2005/01/31 20:08:47 1.34
@@ -42,6 +42,7 @@
PHOTODIR = ../etc/photos
info_files = \
+ $(INFODIR)/beta.info \
$(INFODIR)/cl.info \
$(INFODIR)/custom.info \
$(INFODIR)/emodules.info \
@@ -59,6 +60,7 @@
$(INFODIR)/xemacs-faq.info
html_files = \
+ $(HTMLDIR)/beta.html \
$(HTMLDIR)/cl.html \
$(HTMLDIR)/custom.html \
$(HTMLDIR)/emodules.html \
@@ -76,6 +78,7 @@
$(HTMLDIR)/xemacs-faq.html
dvi_files = \
+ beta.dvi \
cl.dvi \
custom.dvi \
emodules.dvi \
@@ -93,6 +96,7 @@
xemacs-faq.dvi
pdf_files = \
+ beta.pdf \
cl.pdf \
custom.pdf \
emodules.pdf \
@@ -237,6 +241,9 @@
new-users-guide/search.texi \
new-users-guide/xmenu.texi
+$(INFODIR)/beta.info : beta.texi
+ $(MAKEINFO) -o $(INFODIR)/beta.info beta.texi
+
$(INFODIR)/cl.info : cl.texi
$(MAKEINFO) -o $(INFODIR)/cl.info cl.texi
@@ -339,6 +346,9 @@
$(RM) *~ \#* */*~ */\#*
############################################################################
+
+$(HTMLDIR)/beta.html : beta.texi
+ $(TEXI2HTML) beta.texi
$(HTMLDIR)/cl.html : cl.texi
$(TEXI2HTML_SPLIT) cl.texi
1.83 +1731 -1068XEmacs/xemacs/man/xemacs-faq.texi
(In the diff below, changes in quantity of whitespace are not shown.)
Index: xemacs-faq.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs-faq.texi,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- xemacs-faq.texi 2004/12/29 05:08:26 1.82
+++ xemacs-faq.texi 2005/01/31 20:08:48 1.83
@@ -7,7 +7,7 @@
@finalout
@titlepage
@title XEmacs FAQ
-@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2004/12/29
05:08:26 $
+@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2005/01/31
20:08:48 $
@sp 1
@author Ben Wing <ben@(a)xemacs.org>
@author Tony Rossini <rossini@(a)u.washington.edu>
@@ -194,63 +194,77 @@
1 Introduction, Policy, Credits
-1.0: Introduction
+1.0: What is XEmacs?
* Q1.0.1:: What is XEmacs?
* Q1.0.2:: What is the current version of XEmacs?
-* Q1.0.3:: Where can I find it?
-* Q1.0.4:: Are binaries available?
-* Q1.0.5:: How does XEmacs differ from GNU Emacs?
-* Q1.0.6:: How much does XEmacs differ?
-* Q1.0.7:: Is XEmacs "GNU"?
-* Q1.0.8:: What is the correct way to refer to XEmacs and GNU Emacs?
-* Q1.0.9:: Why haven't XEmacs and GNU Emacs merged?
-* Q1.0.10:: Where can I get help?
-* Q1.0.11:: Where are the mailing lists archived?
-* Q1.0.12:: How do you pronounce XEmacs?
-* Q1.0.13:: What does XEmacs look like?
-* Q1.0.14:: Where can I obtain a printed copy of the XEmacs User's Manual?
-
-1.1: Versions for Different Operating Systems
-* Q1.1.1:: Do I need X11 to run XEmacs?
-* Q1.1.2:: Is there a port of XEmacs to Microsoft Windows?
-* Q1.1.3:: Can I build XEmacs on MS Windows with X support? Do I need to?
-* Q1.1.4:: What are Cygwin and MinGW, and do I need them to run XEmacs?
-* Q1.1.5:: What are the differences between the various MS Windows emacsen?
-* Q1.1.6:: Is there a port of XEmacs to the Macintosh?
-* Q1.1.7:: Is there a port of XEmacs to NextStep?
-* Q1.1.8:: Is there a port of XEmacs to OS/2?
-* Q1.1.9:: How does the port cope with differences in the Windows user interface?
-
-1.2: Policies
-* Q1.2.1:: What is the FAQ editorial policy?
-* Q1.2.2:: How do I become a beta tester?
-* Q1.2.3:: How do I contribute to XEmacs itself?
-
-1.3: Credits
-* Q1.3.1:: Who wrote XEmacs?
-* Q1.3.2:: Who contributed to this version of the FAQ?
-* Q1.3.3:: Who contributed to the FAQ in the past?
-
-1.4: Internationalization
-* Q1.4.1:: What is the status of internationalization support aka MULE (including
Asian language support)?
-* Q1.4.2:: How can I help with internationalization?
-* Q1.4.3:: How do I type non-ASCII characters?
-* Q1.4.4:: Can XEmacs messages come out in a different language?
-* Q1.4.5:: Please explain the various input methods in MULE/XEmacs
-* Q1.4.6:: How do I portably code for MULE/XEmacs?
-* Q1.4.7:: How about Cyrillic modes?
-* Q1.4.8:: Does XEmacs support Unicode?
-* Q1.4.9:: How does XEmacs display Unicode?
-
-1.5: Getting Started
-* Q1.5.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
-* Q1.5.2:: Where do I put my @file{init.el} file?
-* Q1.5.3:: Can I use the same @file{init.el} with the other Emacs?
-* Q1.5.4:: Any good XEmacs tutorials around?
-* Q1.5.5:: May I see an example of a useful XEmacs Lisp function?
-* Q1.5.6:: And how do I bind it to a key?
-* Q1.5.7:: What's the difference between a macro and a function?
-* Q1.5.8:: What is @code{Custom}?
+* Q1.0.3:: How do you pronounce XEmacs?
+* Q1.0.4:: What does XEmacs look like?
+* Q1.0.5:: Who wrote XEmacs?
+* Q1.0.6:: Who wrote the FAQ?
+
+1.1: Getting XEmacs
+* Q1.1.1:: Where can I find XEmacs?
+* Q1.1.2:: Are binaries available?
+* Q1.1.3:: How do I get the bleeding-edge sources?
+* Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual?
+
+1.2: Versions for Different Operating Systems
+* Q1.2.1:: Do I need X11 to run XEmacs?
+* Q1.2.2:: What versions of Unix does XEmacs run on?
+* Q1.2.3:: Is there a port of XEmacs to Microsoft Windows?
+* Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
+* Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs?
+* Q1.2.6:: What are the differences between the various MS Windows emacsen?
+* Q1.2.7:: How does the port cope with differences in the Windows user interface?
+* Q1.2.8:: Is there a port of XEmacs to the Macintosh?
+* Q1.2.9:: Is there a port of XEmacs to MS-DOS?
+* Q1.2.10:: Is there a port of XEmacs to OS/2?
+* Q1.2.11:: Is there a port of XEmacs to NextStep?
+* Q1.2.12:: Is there a port of XEmacs to VMS?
+
+1.3: Getting Started
+* Q1.3.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
+* Q1.3.2:: Where do I put my @file{init.el} file?
+* Q1.3.3:: Can I use the same @file{init.el} with the other Emacs?
+* Q1.3.4:: Any good XEmacs tutorials around?
+* Q1.3.5:: May I see an example of a useful XEmacs Lisp function?
+* Q1.3.6:: And how do I bind it to a key?
+* Q1.3.7:: What's the difference between a macro and a function?
+* Q1.3.8:: What is @code{Custom}?
+
+1.4: Getting Help
+* Q1.4.1:: Where can I get help?
+* Q1.4.2:: Which mailing lists are there?
+* Q1.4.2:: Where are the mailing lists archived?
+* Q1.4.3:: How can I get two instances of info?
+* Q1.4.4:: How do I add new Info directories?
+
+1.5: Contributing to XEmacs
+* Q1.5.1:: How do I submit changes to the FAQ?
+* Q1.5.2:: How do I become a beta tester?
+* Q1.5.3:: How do I contribute to XEmacs itself?
+
+1.6: Politics (XEmacs vs. GNU Emacs)
+* Q1.6.1:: What is GNU Emacs?
+* Q1.6.2:: How does XEmacs differ from GNU Emacs?
+* Q1.6.3:: How much does XEmacs differ?
+* Q1.6.4:: Is XEmacs "GNU"?
+* Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs?
+* Q1.6.6:: Why haven't XEmacs and GNU Emacs merged?
+
+1.7: External Packages
+* Q1.7.1:: Which external packages are there?
+
+1.8: Internationalization
+* Q1.8.1:: What is the status of internationalization support aka MULE (including
Asian language support)?
+* Q1.8.2:: How can I help with internationalization?
+* Q1.8.3:: How do I type non-ASCII characters?
+* Q1.8.4:: Can XEmacs messages come out in a different language?
+* Q1.8.5:: Please explain the various input methods in MULE/XEmacs
+* Q1.8.6:: How do I portably code for MULE/XEmacs?
+* Q1.8.7:: How about Cyrillic modes?
+* Q1.8.8:: Does XEmacs support Unicode?
+* Q1.8.9:: How does XEmacs display Unicode?
2 Installation and Troubleshooting
@@ -473,36 +487,32 @@
7 Advanced Customization Using XEmacs Lisp
-7.0: Online Help
-* Q7.0.1:: How can I get two instances of info?
-* Q7.0.2:: How do I add new Info directories?
-
-7.1: Emacs Lisp and @file{init.el}
-* Q7.1.1:: What version of Emacs am I running?
-* Q7.1.2:: How can I evaluate Emacs-Lisp expressions?
-* Q7.1.3:: @code{(setq tab-width 6)} behaves oddly.
-* Q7.1.4:: How can I add directories to the @code{load-path}?
-* Q7.1.5:: How to check if a lisp function is defined?
-* Q7.1.6:: Can I force the output of @code{(face-list)} to a buffer?
-
-7.2: Emacs Lisp Programming Techniques
-* Q7.2.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
-* Q7.2.2:: Can I generate "fake" keyboard events?
-* Q7.2.3:: Could you explain @code{read-kbd-macro} in more detail?
-* Q7.2.4:: What is the performance hit of @code{let}?
-* Q7.2.5:: What is the recommended use of @code{setq}?
-* Q7.2.6:: What is the typical misuse of @code{setq}?
-* Q7.2.7:: I like the @code{do} form of cl, does it slow things down?
-* Q7.2.8:: I like recursion, does it slow things down?
-* Q7.2.9:: How do I put a glyph as annotation in a buffer?
-* Q7.2.10:: @code{map-extents} won't traverse all of my extents!
-* Q7.2.11:: My elisp program is horribly slow. Is there an easy way to find out
where it spends time?
-
-7.3: Mathematics
-* Q7.3.1:: What are bignums, ratios, and bigfloats in Lisp?
-* Q7.3.2:: XEmacs segfaults when I use very big numbers!
-* Q7.3.3:: Bignums are really slow!
-* Q7.3.4:: Equal bignums don't compare as equal! What gives?
+7.0: Emacs Lisp and @file{init.el}
+* Q7.0.1:: What version of Emacs am I running?
+* Q7.0.2:: How can I evaluate Emacs-Lisp expressions?
+* Q7.0.3:: @code{(setq tab-width 6)} behaves oddly.
+* Q7.0.4:: How can I add directories to the @code{load-path}?
+* Q7.0.5:: How to check if a lisp function is defined?
+* Q7.0.6:: Can I force the output of @code{(face-list)} to a buffer?
+
+7.1: Emacs Lisp Programming Techniques
+* Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
+* Q7.1.2:: Can I generate "fake" keyboard events?
+* Q7.1.3:: Could you explain @code{read-kbd-macro} in more detail?
+* Q7.1.4:: What is the performance hit of @code{let}?
+* Q7.1.5:: What is the recommended use of @code{setq}?
+* Q7.1.6:: What is the typical misuse of @code{setq}?
+* Q7.1.7:: I like the @code{do} form of cl, does it slow things down?
+* Q7.1.8:: I like recursion, does it slow things down?
+* Q7.1.9:: How do I put a glyph as annotation in a buffer?
+* Q7.1.10:: @code{map-extents} won't traverse all of my extents!
+* Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out
where it spends time?
+
+7.2: Mathematics
+* Q7.1.1:: What are bignums, ratios, and bigfloats in Lisp?
+* Q7.1.2:: XEmacs segfaults when I use very big numbers!
+* Q7.1.3:: Bignums are really slow!
+* Q7.1.4:: Equal bignums don't compare as equal! What gives?
8 Other External Packages
@@ -537,7 +547,6 @@
10.0: XEmacs 21.1
* Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1.
-
@end detailmenu
@end menu
@@ -574,66 +583,81 @@
Include @samp{XEmacs FAQ} on the Subject: line.
@menu
-1.0: Introduction
+1.0: What is XEmacs?
* Q1.0.1:: What is XEmacs?
* Q1.0.2:: What is the current version of XEmacs?
-* Q1.0.3:: Where can I find it?
-* Q1.0.4:: Are binaries available?
-* Q1.0.5:: How does XEmacs differ from GNU Emacs?
-* Q1.0.6:: How much does XEmacs differ?
-* Q1.0.7:: Is XEmacs "GNU"?
-* Q1.0.8:: What is the correct way to refer to XEmacs and GNU Emacs?
-* Q1.0.9:: Why haven't XEmacs and GNU Emacs merged?
-* Q1.0.10:: Where can I get help?
-* Q1.0.11:: Where are the mailing lists archived?
-* Q1.0.12:: How do you pronounce XEmacs?
-* Q1.0.13:: What does XEmacs look like?
-* Q1.0.14:: Where can I obtain a printed copy of the XEmacs User's Manual?
-
-1.1: Versions for Different Operating Systems
-* Q1.1.1:: Do I need X11 to run XEmacs?
-* Q1.1.2:: Is there a port of XEmacs to Microsoft Windows?
-* Q1.1.3:: Can I build XEmacs on MS Windows with X support? Do I need to?
-* Q1.1.4:: What are Cygwin and MinGW, and do I need them to run XEmacs?
-* Q1.1.5:: What are the differences between the various MS Windows emacsen?
-* Q1.1.6:: Is there a port of XEmacs to the Macintosh?
-* Q1.1.7:: Is there a port of XEmacs to NextStep?
-* Q1.1.8:: Is there a port of XEmacs to OS/2?
-* Q1.1.9:: How does the port cope with differences in the Windows user interface?
-
-1.2: Policies
-* Q1.2.1:: What is the FAQ editorial policy?
-* Q1.2.2:: How do I become a beta tester?
-* Q1.2.3:: How do I contribute to XEmacs itself?
-
-1.3: Credits
-* Q1.3.1:: Who wrote XEmacs?
-* Q1.3.2:: Who contributed to this version of the FAQ?
-* Q1.3.3:: Who contributed to the FAQ in the past?
-
-1.4: Internationalization
-* Q1.4.1:: What is the status of internationalization support aka MULE (including
Asian language support)?
-* Q1.4.2:: How can I help with internationalization?
-* Q1.4.3:: How do I type non-ASCII characters?
-* Q1.4.4:: Can XEmacs messages come out in a different language?
-* Q1.4.5:: Please explain the various input methods in MULE/XEmacs
-* Q1.4.6:: How do I portably code for MULE/XEmacs?
-* Q1.4.7:: How about Cyrillic modes?
-* Q1.4.8:: Does XEmacs support Unicode?
-* Q1.4.9:: How does XEmacs display Unicode?
-
-1.5: Getting Started
-* Q1.5.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
-* Q1.5.2:: Where do I put my @file{init.el} file?
-* Q1.5.3:: Can I use the same @file{init.el} with the other Emacs?
-* Q1.5.4:: Any good XEmacs tutorials around?
-* Q1.5.5:: May I see an example of a useful XEmacs Lisp function?
-* Q1.5.6:: And how do I bind it to a key?
-* Q1.5.7:: What's the difference between a macro and a function?
-* Q1.5.8:: What is @code{Custom}?
+* Q1.0.3:: How do you pronounce XEmacs?
+* Q1.0.4:: What does XEmacs look like?
+* Q1.0.5:: Who wrote XEmacs?
+* Q1.0.6:: Who wrote the FAQ?
+
+1.1: Getting XEmacs
+* Q1.1.1:: Where can I find XEmacs?
+* Q1.1.2:: Are binaries available?
+* Q1.1.3:: How do I get the bleeding-edge sources?
+* Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual?
+
+1.2: Versions for Different Operating Systems
+* Q1.2.1:: Do I need X11 to run XEmacs?
+* Q1.2.2:: What versions of Unix does XEmacs run on?
+* Q1.2.3:: Is there a port of XEmacs to Microsoft Windows?
+* Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
+* Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs?
+* Q1.2.6:: What are the differences between the various MS Windows emacsen?
+* Q1.2.7:: How does the port cope with differences in the Windows user interface?
+* Q1.2.8:: Is there a port of XEmacs to the Macintosh?
+* Q1.2.9:: Is there a port of XEmacs to MS-DOS?
+* Q1.2.10:: Is there a port of XEmacs to OS/2?
+* Q1.2.11:: Is there a port of XEmacs to NextStep?
+* Q1.2.12:: Is there a port of XEmacs to VMS?
+
+1.3: Getting Started
+* Q1.2.13::
+* Q1.3.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
+* Q1.3.2:: Where do I put my @file{init.el} file?
+* Q1.3.3:: Can I use the same @file{init.el} with the other Emacs?
+* Q1.3.4:: Any good XEmacs tutorials around?
+* Q1.3.5:: May I see an example of a useful XEmacs Lisp function?
+* Q1.3.6:: And how do I bind it to a key?
+* Q1.3.7:: What's the difference between a macro and a function?
+* Q1.3.8:: What is @code{Custom}?
+
+1.4: Getting Help
+* Q1.4.1:: Where can I get help?
+* Q1.4.2:: Which mailing lists are there?
+* Q1.4.3:: How can I get two instances of info?
+* Q1.4.4:: How do I add new Info directories?
+
+1.5: Contributing to XEmacs
+* Q1.4.5::
+* Q1.5.1:: How do I submit changes to the FAQ?
+* Q1.5.2:: How do I become a beta tester?
+* Q1.5.3:: How do I contribute to XEmacs itself?
+
+1.6: Politics (XEmacs vs. GNU Emacs)
+* Q1.6.1:: What is GNU Emacs?
+* Q1.6.2:: How does XEmacs differ from GNU Emacs?
+* Q1.6.3:: How much does XEmacs differ?
+* Q1.6.4:: Is XEmacs "GNU"?
+* Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs?
+* Q1.6.6:: Why haven't XEmacs and GNU Emacs merged?
+
+1.7: External Packages
+* Q1.7.1:: Which external packages are there?
+
+1.8: Internationalization
+* Q1.8.1:: What is the status of internationalization support aka MULE (including
Asian language support)?
+* Q1.8.2:: How can I help with internationalization?
+* Q1.8.3:: How do I type non-ASCII characters?
+* Q1.8.4:: Can XEmacs messages come out in a different language?
+* Q1.8.5:: Please explain the various input methods in MULE/XEmacs
+* Q1.8.6:: How do I portably code for MULE/XEmacs?
+* Q1.8.7:: How about Cyrillic modes?
+* Q1.8.8:: Does XEmacs support Unicode?
+* Q1.8.9:: How does XEmacs display Unicode?
@end menu
-@unnumberedsec 1.0: Introduction
+@unnumberedsec 1.0: What is XEmacs?
@node Q1.0.1, Q1.0.2, Introduction, Introduction
@unnumberedsubsec Q1.0.1: What is XEmacs?
@@ -667,134 +691,1208 @@
and was also the last version without international language support.
@node Q1.0.3, Q1.0.4, Q1.0.2, Introduction
-@unnumberedsubsec Q1.0.3: Where can I find it?
-
-The canonical source and binaries can be found at:
+@unnumberedsubsec Q1.0.3: How do you pronounce XEmacs?
-@example
-@uref{http://ftp.xemacs.org/pub/xemacs/}
-@end example
+The most common pronounciation is @samp{Eks eemax}.
@node Q1.0.4, Q1.0.5, Q1.0.3, Introduction
-@unnumberedsubsec Q1.0.4: Are binaries available?
-
-MS Windows binaries are available at
-@uref{http://www.xemacs.org/Download/win32/} for the native versions
-of 21.4 and 21.1. Cygwin binaries are now available as part of the
-standard Cygwin installation process. XEmacs also comes pre-built as
-part of many Linux distributions, such as Red Hat and SuSE.
+@unnumberedsubsec Q1.0.4: What does XEmacs look like?
-Otherwise, you will need to build XEmacs yourself or get your system
-administrator to do it. Generally, this is not a difficult process
-under Unix and Mac OS X, as XEmacs has been tested under all of the
-common Unix versions and under Mac OS X and comes with an extensive
-configure script that is able to automatically detect most aspects of
-the configuration of your particular system.
+Screen snapshots are available at
+@uref{http://www.xemacs.org/About/Screenshots/index.html}
+as part of the XEmacs website.
@node Q1.0.5, Q1.0.6, Q1.0.4, Introduction
-@unnumberedsubsec Q1.0.5: How does XEmacs differ from GNU Emacs?
-
-For a detailed description of the differences between GNU Emacs and
-XEmacs and a detailed history of XEmacs, check out the
-@example
-@uref{http://www.xemacs.org/About/XEmacsVsGNUemacs.html, NEWS file}
-@end example
+@unnumberedsubsec Q1.0.5: Who wrote XEmacs?
-@table @strong
-@item User-Visible Editing Features
-XEmacs in general tries hard to conform to exist user-interface
-standards, and to work "out-of-the-box" without the need for obscure
-customization changes. GNU Emacs, particularly version 21, has gotten
-better about this (in many cases by copying the XEmacs behavior!), but
-still has some weirdnesses. For example, the standard method of
-selecting text using the Shift key works out-of-the-box in XEmacs.
+XEmacs is the result of the time and effort of many people, and the
+active developers have changed over time. There are two major
+components of the XEmacs effort -- writing the code itself and providing
+all the support work (testing the code, releasing beta and final
+versions, handling patches, reading bug reports, maintaining the web
+site, managing the mailing lists, etc. etc.). Neither component would
+work without the other.
-XEmacs has a built-in toolbar. Four toolbars can actually be configured
-simultaneously: top, bottom, left, and right toolbars.
+@subheading CODING
-XEmacs has vertical and horizontal scrollbars. Unlike in GNU Emacs 19
-(which provides a primitive form of vertical scrollbar), these are true
-toolkit scrollbars. A look-alike Motif scrollbar is provided for those
-who don't have Motif. (Even for those who do, the look-alike may be
-preferable as it is faster.)
+The primary code contributor over the years has been Ben Wing (active
+since late 1992). Between 1991 and 1995, large amounts of coding was
+contributed by Jamie Zawinski and Chuck Thompson. Many other people
+have authored major subsystems or otherwise contributed large amounts of
+code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris,
+Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard
+Mlynarik, Stig, William Perry and plenty of others.
-XEmacs has buffer tabs along the top of the frame (although the
-position can be changed) that make it very easy to switch buffers.
+Primary XEmacs-specific subsystems and their authors:
-The menubar under XEmacs is better-designed, with more thought put into
-it.
+@table @asis
+@item Objects
+@itemize @minus
+@item
+Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard
Mlynarik, 1994
+@item
+Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz
+@item
+Portable dumper, object descriptions: Olivier Galibert
+@item
+KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students
+@item
+Random object work (object equal and hash methods, weak lists, lcrecord lists, bit
vectors, dynarr, blocktype, opaque, string resizing): Ben Wing
+@item
+Profiling: Ben Wing
+@item
+Some byte-compilation and hash-table improvements: Martin Buchholz
+@item
+Bignum: Jerry James
+@end itemize
-XEmacs can ask questions using popup dialog boxes. Any command executed
-from a menu will ask yes/no questions with dialog boxes, while commands
-executed via the keyboard will use the minibuffer.
+@item Internationalization/Mule
+@itemize @minus
+@item
+mostly Ben Wing; many ideas for future work, Stephen Turnbull
+@end itemize
-XEmacs under MS Windows provides uses the standard file-dialog box for
-opening and saving files. Standard menu-accelerator behavior can easily
-be enabled using the Options menu, and integrates well into the existing
-keymap.
+@item I/O
+@itemize @minus
+@item
+Basic event/event-stream implementation: Jamie Zawinski
+@item
+Most event work since 1994: Ben Wing
+@item
+Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing
+@item
+Process method abstraction, Windows process work: Kirill Katsnelson
+@item
+Misc-user events, async timeouts, most quit-checking and signal code, most other work
since 1994: Ben Wing
+@item
+Lstreams: Ben Wing
+@end itemize
-XEmacs has (still experimental) support for widgets of various sorts --
-buttons, text boxes, sliders, progress bars, etc. A progress bar is
-used in font lock to show the progress.
+@item Display
+@itemize @minus
+@item
+Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people
+@item
+Glyphs: mostly Ben Wing
+@item
+Specifiers: Ben Wing
+@item
+Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing
+@item
+Widgets: Andy Piper
+@item
+JPEG/PNG/TIFF image converters: Ben Wing, William Perry, Jareth Hein, others (see
comment in @file{glyphs-eimage.c})
+@item
+Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
+@item
+Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
+@item
+Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype
by chuck thompson
+@item
+Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
+@item
+Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
+@item
+Toolbars: implementation, chuck, much interface work, Ben Wing
+@item
+Gutters, tabs: andy piper
+@end itemize
-Experimental support for drag-and-drop protocols is provided from
-XEmacs 21.
+@item Device subsystems
+@itemize @minus
+@item
+X Windows: Jamie Zawinksi, Ben Wing, others
+@item
+GTK: William Perry, Malcolm Purvis
+@item
+MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben
Wing
+@item
+TTY: Chuck Thompson, Ben Wing
+@item
+Cygwin: Andy Piper
+@end itemize
-@item General Platform Support
-If you're running on a machine with audio hardware, you can specify
-sound files for XEmacs to play instead of the default X beep. See the
-documentation of the function load-sound-file and the variable
-sound-alist. XEmacs also supports the network sound protocols NAS and
-EsounD.
+@item Misc
+@itemize @minus
+@item
+Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much
rewriting, Martin Buchholz
+@item
+Most initialization-related code: Ben Wing
+@item
+Internals manual, much of Lisp manual: Ben Wing
+@item
+FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing
+@end itemize
+@end table
-XEmacs 21 supports database protocols with LISP bindings, currently
-including Berkeley DB, LDAP, and PostgreSQL (21.2 only).
+@subheading SUPPORT
-XEmacs 20 and 21 support the Canna, Wnn, and SJ3 Japanese input method
-servers directly, as well as through the X Input Method (XIM)
-protocol. GNU Emacs 20 supports only the XIM protocol. Both Emacsen
-support the Quail family of input methods (implemented in LISP) for many
-languages.
+Currently, support duties are handled by many different people.
-XEmacs provides support for ToolTalk on systems that have
-it.
+Release managers have been
-@item Packaged LISP Libraries
-Many more packages are provided standard with XEmacs than with GNU Emacs
-19 or 20.
+@itemize @minus
+@item
+Stephen Turnbull (April 2001 - January 2003, March 2004 - present, 21.2.47 - 21.4.12,
21.5.2 - 21.5.7, 21.5.17 - present)
+@item
+Vin Shelton (May 2003 - present, 21.4.13 - present)
+@item
+Steve Youngs (July 2002 - September 2003, 21.5.8 - 21.5.16)
+@item
+Martin Buchholz (December 1998, November 1999 - May 2001, 21.2.7 - 21.2.8, 21.2.21 -
21.2.46, 21.5.0 - 21.5.1)
+@item
+Steve Baur (early 1997 - December 1998, February 1999 - November 1999, 19.15 - 21.2.5,
21.2.9 - 21.2.20)
+@item
+Andy Piper (December 1998, 21.2.6)
+@item
+Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
+@item
+Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
+@end itemize
-XEmacs 21 supports an integrated package management system which uses
-EFS to download, then automatically install prebuilt LISP
-libraries. This allows XEmacs users much more straightforward access to
-the "latest and greatest" version of any given library.
+The recent overlapping dates are intentional, since two or three trees
+are maintained simultaneously at any point.
-We are working on a standard method for enabling, disabling and
-otherwise controlling packages, which should make them very easy to use.
+Other major support work:
-@item LISP Programming
-From XEmacs 20 on, characters are a separate type. Characters can be
-converted to integers (and many integers can be converted to
-characters), but characters are not integers. GNU Emacs 19, XEmacs 19,
-Mule 2.3 (an extensive patch to GNU Emacs 18.55 and 19.x), and GNU Emacs
-20 (incorporating Mule 3 and later Mule 4) represent them as integers.
+@itemize @minus
+@item
+Adrian Aichner wrote and maintains the web site.
+@item
+Stephen Turnbull has produced many of the beta and semi-stable releases
+and has attempted to be the "face" of XEmacs on the newsgroups and
+mailing lists.
+@item
+Steve Youngs currently produces the beta releases (???).
+@item
+Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
+maintaining the packages.
+@item
+Vin Shelton maintains the stable releases.
+@item
+Testing - #### Norbert, Adrian, ???
+@end itemize
-From XEmacs 20 on, the buffer is treated as an array of characters, and
-the representation of buffer text is not exposed to LISP. The GNU Emacs
-20 functions like buffer-as-multibyte are not supported.
+Portraits and email of some of the major developers:
-In XEmacs, events are first-class objects. GNU Emacs 19 represents them
-as integers, which obscures the differences between a key gesture and
-the ancient ASCII code used to represent a particular overlapping subset
-of them.
+@itemize @bullet
+@item @email{andy@(a)xemacs.org, Andy Piper}
+@html
+<br><img src="piper.png" alt="Portrait of Andy
Piper"><br>
+@end html
-In XEmacs, keymaps are first-class opaque objects. GNU Emacs 19
-represents them as complicated combinations of association lists and
-vectors. If you use the advertised functional interface to manipulation
-of keymaps, the same code will work in XEmacs, GNU Emacs 18, and GNU
-Emacs 19; if your code depends on the underlying implementation of
-keymaps, it will not.
+@item @email{ben@(a)xemacs.org, Ben Wing}
+@html
+<br><img src="ben.png" alt="Portrait of Ben
Wing"><br>
+@end html
-XEmacs uses "extents" to represent all non-textual aspects of buffers;
+@item @email{cthomp@(a)xemacs.org, Chuck Thompson}
+@html
+<br><img src="cthomp.png" alt="Portrait of Chuck
Thompson"><br>
+@end html
+
+@item @email{hniksic@(a)xemacs.org, Hrvoje Niksic}
+
+@html
+<br><img src="hniksic.png" alt="Portrait of Hrvoje
Niksic"><br>
+@end html
+
+@item @email{jwz@(a)jwz.org, Jamie Zawinski}
+@html
+<br><img src="jwz.png" alt="Portrait of Jamie
Zawinski"><br>
+@end html
+
+@item @email{martin@(a)xemacs.org, Martin Buchholz}
+@html
+<br><img src="martin.png" alt="Portrait of Martin
Buchholz"><br>
+@end html
+
+@item @email{mly@(a)adoc.xerox.com, Richard Mlynarik}
+@html
+<br><img src="mly.png" alt="Portrait of Richard
Mlynarik"><br>
+@end html
+
+@item @email{stephen@(a)xemacs.org, Stephen Turnbull}
+
+@item @email{steve@(a)xemacs.org, Steve Baur}
+@html
+<br><img src="slb.png" alt="Portrait of Steve
Baur"><br>
+@end html
+@end itemize
+
+Many other people have contributed to XEmacs; this is partially
+enumerated in the @samp{About XEmacs} option in the Help menu.
+
+@node Q1.0.6, Q1.1.1, Q1.0.5, Introduction
+@unnumberedsubsec Q1.0.6: Who wrote the FAQ?
+
+The current version of this FAQ was created by @email{ben@(a)xemacs.org,
+Ben Wing}.
+
+Previous contributors to the FAQ include
+
+@itemize @bullet
+@item @email{steve@(a)xemacs.org, SL Baur}
+
+@item @email{hniksic@(a)xemacs.org, Hrvoje Niksic}
+
+@item @email{binge@(a)aloft.att.com, Curtis.N.Bingham}
+
+@item @email{bruncott@(a)dormeur.inria.fr, Georges Brun-Cottan}
+
+@item @email{rjc@(a)cogsci.ed.ac.uk, Richard Caley}
+
+@item @email{cognot@(a)ensg.u-nancy.fr, Richard Cognot}
+
+@item @email{daku@(a)nortel.ca, Mark Daku}
+
+@item @email{wgd@(a)martigny.ai.mit.edu, William G. Dubuque}
+
+@item @email{eeide@(a)cs.utah.edu, Eric Eide}
+
+@item @email{af@(a)biomath.jussieu.fr, Alain Fauconnet}
+
+@item @email{cflatter@(a)nrao.edu, Chris Flatters}
+
+@item @email{ginsparg@(a)adra.com, Evelyn Ginsparg}
+
+@item @email{hall@(a)aplcenmp.apl.jhu.edu, Marty Hall}
+
+@item @email{dkindred@(a)cmu.edu, Darrell Kindred}
+
+@item @email{dmoore@(a)ucsd.edu, David Moore}
+
+@item @email{arup+@(a)cmu.edu, Arup Mukherjee}
+
+@item @email{nickel@(a)prz.tu-berlin.de, Juergen Nickelsen}
+
+@item @email{powell@(a)csl.ncsa.uiuc.edu, Kevin R. Powell}
+
+@item @email{dworkin@(a)ccs.neu.edu, Justin Sheehy}
+
+@item @email{stig@(a)hackvan.com, Stig}
+
+@item @email{Aki.Vehtari@(a)hut.fi, Aki Vehtari}
+@end itemize
+
+@unnumberedsec 1.1: Getting XEmacs
+
+@node Q1.1.1, Q1.1.2, Q1.0.6, Introduction
+@unnumberedsubsec Q1.1.1: Where can I find XEmacs?
+
+To download XEmacs, visit the XEmacs WWW page at
+@uref{http://www.xemacs.org/Download/}. The most up-to-date list of
+distribution sites can always be found there. Try to pick a site that
+is networkologically close to you. If you know of other mirrors of
+the XEmacs archives, please send e-mail to
+@uref{mailto:webmaster@@xemacs.org} and we will list them here as well.
+
+The canonical distribution point is
ftp.xemacs.org, available either
+through HTTP (@uref{http://ftp.xemacs.org/}) or anonymous FTP
+(@uref{ftp://ftp.xemacs.org/pub/xemacs/}).
+
+@node Q1.1.2, Q1.1.3, Q1.1.1, Introduction
+@unnumberedsubsec Q1.1.2: Are binaries available?
+
+MS Windows binaries are available at
+@uref{http://www.xemacs.org/Download/win32/} for the native versions
+of 21.4 and 21.1. Cygwin binaries are now available as part of the
+standard Cygwin installation process. XEmacs also comes pre-built as
+part of many Linux distributions, such as Red Hat and SuSE.
+
+Otherwise, you will need to build XEmacs yourself or get your system
+administrator to do it. Generally, this is not a difficult process
+under Unix and Mac OS X, as XEmacs has been tested under all of the
+common Unix versions and under Mac OS X and comes with an extensive
+configure script that is able to automatically detect most aspects of
+the configuration of your particular system.
+
+@node Q1.1.3, Q1.1.4, Q1.1.2, Introduction
+@unnumberedsubsec Q1.1.3: How do I get the bleeding-edge sources?
+
+If you are interested in developing XEmacs, or getting the absolutely most
+recent, up-to-the-moment, bleeding-edge source code, you can directly
+access the master CVS source tree (read-only, of course, until you ask for
+and are granted permission to directly modify portions of the source tree)
+at
cvs.xemacs.org. Directions on how to access the source tree are located
+at @uref{http://www.xemacs.org/Develop/cvsaccess.html}.
+
+Nightly CVS snapshots are available at
+@uref{http://www.dk.xemacs.org/Download/CVS-snapshots/}.
+
+@node Q1.1.4, Q1.2.1, Q1.1.3, Introduction
+@unnumberedsubsec Q1.1.4: Where can I obtain a printed copy of the XEmacs User's
Manual?
+
+Pre-printed manuals are not available. If you are familiar with
+TeX, you can generate your own manual from the XEmacs sources.
+
+HTML and Postscript versions of XEmacs manuals are available from the
+XEmacs web site at
+@uref{http://www.xemacs.org/Documentation/index.html}.
+
+@unnumberedsec 1.2: Versions for Different Operating Systems
+
+@node Q1.2.1, Q1.2.2, Q1.1.4, Introduction
+@unnumberedsubsec Q1.2.1: Do I need X11 to run XEmacs?
+
+No. The name @dfn{XEmacs} is unfortunate in the sense that it is
+@strong{not} an X Window System-only version of Emacs. XEmacs has
+full color support on a color-capable character terminal.
+
+@node Q1.2.2, Q1.2.3, Q1.2.1, Introduction
+@unnumberedsubsec Q1.2.2: What versions of Unix does XEmacs run on?
+
+For problems with particular machines and versions of Unix, see the
+@file{PROBLEMS} file.
+
+Much effort has gone into making XEmacs work on as many different
+machines, configurations, and compilers as possible.
+
+Much effort has gone into making XEmacs 64-bit clean.
+
+Much effort has gone into removing system-specific code, and replacing
+such code with autodetection at configure time.
+
+The XEmacs core should build "out of the box" on most Unix-like systems.
+
+XEmacs 21.2 was tested and @samp{make check} succeeded on these Unix
+configurations as of 2001-02-10:
+
+@example
+alphaev56-dec-osf4.0e (both Compaq C and gcc)
+i386-unknown-freebsd4.2
+i386-unknown-netbsdelf1.5
+i586-sco-sysv5uw7.0.1 (both SCO's cc and gcc)
+i686-pc-linux-gnu
+hppa2.0-hp-hpux10.20 (both HP's ANSI cc and gcc)
+mips-sgi-irix6.5 (both MIPSpro cc and gcc)
+rs6000-ibm-aix4.3.0.0 (both IBM's xlc and gcc)
+sparc-sun-solaris2.6 (both Sun's Forte C and gcc)
+sparc-sun-solaris2.7 (both Sun's Forte C and gcc)
+sparc-sun-sunos4.1.4 (gcc)
+@end example
+
+Some systems have a dual mode 32-bit/64-bit compiler. On most of
+these, XEmacs requires the @samp{--pdump} configure option to build
+correctly with the 64-bit version of the compiler.
+
+@example
+mips-sgi-irix6.5, CC="gcc -mabi=64"
+mips-sgi-irix6.5, CC="cc -64"
+rs6000-ibm-aix4.3.0.0, CC="cc -q64"
+@end example
+
+On most of these systems, XEmacs also builds with a C++ compiler,
+but not "out of the box". This feature is only for use by the
+maintainers.
+
+XEmacs 21.2 is known @emph{not} to work on any machines with m680x0
+processors. Sorry, all you sun3 and Unix PC nostalgia buffs out there.
+
+VMS has never been supported by XEmacs. In fact, all the old VMS code
+inherited from Emacs has been removed. Sorry, all you VMS fans out there.
+
+@node Q1.2.3, Q1.2.4, Q1.2.2, Introduction
+@unnumberedsubsec Q1.2.3: Is there a port of XEmacs to Microsoft Windows?
+
+Yes. Beginning with release 21.0, XEmacs has worked under MS Windows
+and is fully-featured and actively developed. A group of dedicated
+developers actively maintains and improves the Windows-specific
+portions of the code. Some of the core developers, in fact, use
+Windows as their only development environment, and some features, such
+as printing, actually work better on Windows than native Unix and Mac
+OS X. The mailing list at @email{xemacs-winnt@(a)xemacs.org} is dedicated
+to that effort (please use the -request address to
+subscribe). (Despite its name, XEmacs actually works on all versions
+of Windows.)
+
+The list name is misleading, as XEmacs supports and has been compiled on
+Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows
+XP, and all newer versions of Windows. The MS Windows-specific code is
+based on Microsoft Win32 API, and will not work on MS Windows 3.x or on
+MS-DOS.
+
+XEmacs also supports the Cygwin and MinGW development and runtime
+environments, where it also uses native Windows code for graphical
+features. In addition, under Cygwin it is possible to compile XEmacs
+to use an X server (and XFree86 is available as part of the standard
+Cygwin installation).
+
+@node Q1.2.4, Q1.2.5, Q1.2.3, Introduction
+@unnumberedsubsec Q1.2.4: Can I build XEmacs on MS Windows with X support? Do I need
to?
+
+Yes, you can, but no you do not need to. In fact, we recommend that you
+use a native-GUI version unless you have a specific need for an X
+version.
+
+@node Q1.2.5, Q1.2.6, Q1.2.4, Introduction
+@unnumberedsubsec Q1.2.5: What are Cygwin and MinGW, and do I need them to run XEmacs?
+
+To answer the second part of the question: No, you, you don't need
+Cygwin or MinGW to build or to run XEmacs. But if you have them and
+want to use them, XEmacs supports these environments.
+
+(One important reason to support Cygwin is that it lets the MS Windows
+developers test out their code in a Unix environment without actually
+having to have a Unix machine around. For this reason alone, Cygwin
+support is likely to remain supported for a long time in XEmacs. Same
+goes for the X support under Cygwin, for the same reasons. MinGW
+support, on the other hand, depends on volunteers to keep it up to date;
+but this is generally not hard.)
+
+Cygwin is a set of tools providing Unix-like API on top of Win32.
+It makes it easy to port large Unix programs without significant
+changes to their source code. It is a development environment as well
+as a runtime environment.
+
+When built with Cygwin, XEmacs supports all display types -- TTY, X &
+Win32 GUI, and can be built with support for all three simultaneously.
+If you build with Win32 GUI support then the Cygwin version uses the
+majority of the Windows-specific code, which is mostly related to
+display. If you want to build with X support you need X libraries (and
+an X server to display XEmacs on); see @ref{Q2.2.7}. TTY and Win32 GUI
+require no additional libraries beyond what comes standard with Cygwin.
+
+The advantages of the Cygwin version are that it integrates well with
+the Cygwin environment for existing Cygwin users; uses configure so
+building with different features is very easy; and actively supports X &
+TTY. Furthermore, the entire Cygwin environment and compiler are free,
+whereas Visual C++ costs money.
+
+The disadvantage is that it requires the whole Cygwin environment,
+whereas the native port requires only a suitable MS Windows compiler.
+Also, it follows the Unix filesystem and process model very closely
+(some will undoubtedly view this as an advantage).
+
+See @uref{http://www.cygwin.com/} for more information on
+Cygwin.
+
+MinGW is a collection of header files and import libraries that allow
+one to use GCC under the Cygwin environment to compile and produce
+exactly the same native Win32 programs that you can using Visual C++.
+Programs compiled with MinGW make use of the standard Microsoft runtime
+library @file{MSVCRT.DLL}, present on all Windows systems, and look,
+feel, and act like a standard Visual-C-produced application. (The only
+difference is the compiler.) This means that, unlike a
+standardly-compiled Cygwin application, no extra runtime support
+(e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the
+fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y
+environment, for those die-hard Unix hackers out there), is the main
+advantage of MinGW. It is also potentially faster than Cygwin because
+it has less overhead when calling Windows, but you lose the POSIX
+emulation layer, which makes Unix programs harder to port. (But this is
+irrelevant for XEmacs since it's already ported to Win32.)
+
+See @uref{http://www.mingw.org/} for more information on MinGW.
+
+@node Q1.2.6, Q1.2.7, Q1.2.5, Introduction
+@unnumberedsubsec Q1.2.6: What are the differences between the various MS Windows
emacsen?
+
+XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
+Could you briefly explain the differences between them?
+
+Here is a recount of various Emacs versions running on MS Windows:
+
+@itemize @bullet
+
+@item
+XEmacs
+
+@itemize @minus
+
+@item
+Beginning with XEmacs 19.12, XEmacs' architecture was redesigned
+in such a way to allow clean support of multiple window systems. At
+this time the TTY support was added, making X and TTY the first two
+"window systems" supported by XEmacs. The 19.12 design is the basis for
+the current native MS Windows code.
+
+@item
+Some time during 1997, David Hobley (soon joined by Marc Paquette)
+imported some of the NT-specific portions of GNU Emacs, making XEmacs
+with X support compile under Windows NT, and creating the "X" port.
+
+@item
+Several months later, Jonathan Harris sent out initial patches to use
+the Win32 API, thus creating the native port. Since then, various
+people have contributed, including Kirill M. Katsnelson (contributed
+support for menubars, subprocesses and network, as well as loads of
+other code), Andy Piper (ported XEmacs to Cygwin environment,
+contributed Windows unexec, Windows-specific glyphs and toolbars code,
+and more), Ben Wing (loads of improvements; primary MS Windows developer
+since 2000), Jeff Sparkes (contributed scrollbars support) and many
+others.
+@end itemize
+
+@item
+NT Emacs
+
+@itemize @minus
+
+@item
+NT Emacs was an early version of GNU Emacs 19 modified to compile and
+run under MS Windows 95 and NT using the native Win32 API. It was
+written by Geoff Voelker, and has long since been incorporated into
+the mainline GNU Emacs distribution.
+@end itemize
+
+@item
+Win-Emacs
+
+@itemize @minus
+
+@item
+Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
+compatibility libraries. Win-Emacs was written by Ben Wing. The MS
+Windows code never made it back to Lucid Emacs, and its creator (Pearl
+Software) has long since gone out of business.
+@end itemize
+
+@item
+GNU Emacs for DOS
+
+@itemize @minus
+
+@item
+GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS
+port of GCC). Such an Emacs is heavily underfeatured, because it does
+not support long file names, lacks proper subprocesses support, and
+is far too big compared with typical DOS editors.
+@end itemize
+
+@item
+GNU Emacs compiled with Win32
+
+@itemize @minus
+
+@item
+Starting with GNU Emacs 19.30, it has been possible to compile GNU Emacs
+under MS Windows using the DJGPP compiler and X libraries. The result
+is very similar to GNU Emacs compiled under MS DOS, only it works
+somewhat better because it runs in 32-bit mode, makes use of all the
+system memory, supports long file names, etc.
+@end itemize
+
+@end itemize
+
+@node Q1.2.7, Q1.2.8, Q1.2.6, Introduction
+@unnumberedsubsec Q1.2.7: How does the port cope with differences in the Windows user
interface?
+
+The XEmacs (and Emacs in general) user interface is pretty different
+from what is expected of a typical MS Windows program. How does the MS
+Windows port cope with it?
+
+As a general rule, we follow native MS Windows conventions as much as
+possible. 21.4 is a fairly complete Windows application, supporting
+native printing, system file dialog boxes, tool tips, etc. In cases
+where there's a clear UI conflict, we currently use normal Unix XEmacs
+behavior by default, but make sure the MS Windows "look and feel" (mark
+via shift-arrow, self-inserting deletes region, Alt selects menu items,
+etc.) is easily configurable (respectively: using the variable
+@code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact
+the default in these versions], or the @file{pc-select} package; using
+the @file{pending-del} package; and setting the variable
+@code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above).
+In fact, if you use the sample @file{init.el} file as your init file,
+you will get all these behaviors automatically turned on.
+
+In future versions, some of these features might be turned on by
+default in the MS Windows environment.
+
+@node Q1.2.8, Q1.2.9, Q1.2.7, Introduction
+@unnumberedsubsec Q1.2.8: Is there a port of XEmacs to the Macintosh?
+
+Yes.
+
+XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly
+will not feel very much like a Mac application as it has no Mac-specific
+code in it.
+
+There is also a port of XEmacs 19.14 that works on all recent versions
+of MacOS, from 8.1 through MacOS X, by @email{pjarvis@(a)ispchannel.com,
+Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY
+mode only (one single Macintosh window, 25 colors), but has a large
+number of Mac-specific additions. It's available at
+@uref{http://homepage.mac.com/pjarvis/xemacs.html}.
+
+@node Q1.2.9, Q1.2.10, Q1.2.8, Introduction
+@unnumberedsubsec Q1.2.9: Is there a port of XEmacs to the Macintosh?
+
+Yes.
+
+XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly
+will not feel very much like a Mac application as it has no Mac-specific
+code in it.
+
+There is also a port of XEmacs 19.14 that works on all recent versions
+of MacOS, from 8.1 through MacOS X, by @email{pjarvis@(a)ispchannel.com,
+Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY
+mode only (one single Macintosh window, 25 colors), but has a large
+number of Mac-specific additions. It's available at
+@uref{http://homepage.mac.com/pjarvis/xemacs.html}.
+
+@node Q1.2.10, Q1.2.11, Q1.2.9, Introduction
+@unnumberedsubsec Q1.2.10: Is there a port of XEmacs to MS-DOS?
+
+No. We have never supported running on MS-DOS or Windows 3.1, and in
+fact have long since deleted all MS-DOS-related code.
+
+@node Q1.2.11, Q1.2.12, Q1.2.10, Introduction
+@unnumberedsubsec Q1.2.11: Is there a port of XEmacs to OS/2?
+
+No, but Alexander Nikolaev <avn_1251@(a)mail.ru> was at one point
+working on it.
+
+@node Q1.2.12, Q1.2.13, Q1.2.11, Introduction
+@unnumberedsubsec Q1.2.12: Is there a port of XEmacs to NextStep?
+
+Carl Edman, apparently no longer at @email{cedman@(a)princeton.edu}, did
+the port of GNU Emacs to NeXTstep and expressed interest in doing the
+XEmacs port, but never went any farther.
+
+@node Q1.2.13, Q1.3.1, Q1.2.12, Introduction
+@unnumberedsubsec Q1.2.13: Is there a port of XEmacs to VMS?
+
+VMS has never been supported by XEmacs. In fact, all the old VMS code
+inherited from GNU Emacs has been removed. Sorry, all you VMS fans
+out there.
+
+@unnumberedsec 1.3: Getting Started
+
+@node Q1.3.1, Q1.3.2, Q1.2.13, Introduction
+@unnumberedsubsec Q1.3.1: What is an @file{init.el} or @file{.emacs} and is there a
sample one?
+
+The @file{init.el} or @file{.emacs} file is used to customize XEmacs to
+your tastes. Starting in 21.4, the preferred location for the init file
+is @file{~/.xemacs/init.el}; in previous versions, it was
+(a)file{~/.emacs}. 21.4 still accepts the old location, but the first
+time you run it, it will ask to migrate your file to the new location.
+If you answer yes, the file will be moved, and a "compatibility"
+(a)file{.emacs} file will be placed in the old location so that you can
+still run older versions of XEmacs, and versions of GNU Emacs, which
+expect the old location. The @file{.emacs} file present is just a stub
+that loads the real file in @file{~/.xemacs/init.el}.
+
+No two init files are alike, nor are they expected to be alike, but
+that's the point. The XEmacs distribution contains an excellent starter
+example in the @file{etc/} directory called @file{sample.init.el}
+(starting in 21.4) or @file{sample.emacs} in older versions. Copy this
+file from there to @file{~/.xemacs/init.el} (starting in 21.4) or
+(a)file{~/.emacs} in older versions, where @samp{~} means your home
+directory, of course. Then edit it to suit.
+
+You may bring the @file{sample.init.el} or @file{sample.emacs} file into
+an XEmacs buffer from the menubar. (The menu entry for it is always
+under the @samp{Help} menu, but its location under that has changed in
+various versions. Recently, look under the @samp{Samples} submenu.) To
+determine the location of the @file{etc/} directory type the command
+@kbd{C-h v data-directory @key{RET}}.
+
+@node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
+@unnumberedsubsec Q1.3.2: Where do I put my @file{init.el} file?
+
+(a)file{init.el} is the name of the init file starting with 21.4, and is
+located in the subdirectory @file{.xemacs/} of your home directory. In
+prior versions, the init file is called @file{.emacs} and is located in
+your home directory.
+
+Your home directory under Windows is determined by the @samp{HOME}
+environment variable. If this is not set, it defaults to @samp{C:\}.
+To set this variable, modify @file{AUTOEXEC.BAT} under Windows 95/98, or
+select @samp{Control Panel->System->Advanced->Environment Variables...}
+under Windows NT/2000.
+
+@node Q1.3.3, Q1.3.4, Q1.3.2, Introduction
+@unnumberedsubsec Q1.3.3: Can I use the same @file{init.el} with the other Emacs?
+
+Yes. The sample @file{init.el} included in the XEmacs
+distribution will show you how to handle different versions and flavors
+of Emacs.
+
+@node Q1.3.4, Q1.3.5, Q1.3.3, Introduction
+@unnumberedsubsec Q1.3.4: Any good XEmacs tutorials around?
+
+There's the XEmacs tutorial available from the Help Menu under
+@samp{Help->Tutorials}, or by typing @kbd{C-h t}. To check whether
+it's available in a non-english language, type @kbd{C-u C-h t TAB}, type
+the first letters of your preferred language, then type @key{RET}.
+
+@comment There's an Emacs Lisp tutorial at
+@comment
+@comment @example
+@comment @uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}.
+@comment @end example
+@comment
+@comment @email{erik@(a)petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web
+@comment page at
+@comment @iftex
+@comment @*
+@comment @end iftex
+@comment @uref{http://petaxp.rug.ac.be/~erik/xemacs/}.
+
+@node Q1.3.5, Q1.3.6, Q1.3.4, Introduction
+@unnumberedsubsec Q1.3.5: May I see an example of a useful XEmacs Lisp function?
+
+The following function does a little bit of everything useful. It does
+something with the prefix argument, it examines the text around the
+cursor, and it's interactive so it may be bound to a key. It inserts
+copies of the current word the cursor is sitting on at the cursor. If
+you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will
+insert 3 copies.
+
+@lisp
+(defun double-word (count)
+ "Insert a copy of the current word underneath the cursor"
+ (interactive "*p")
+ (let (here there string)
+ (save-excursion
+ (forward-word -1)
+ (setq here (point))
+ (forward-word 1)
+ (setq there (point))
+ (setq string (buffer-substring here there)))
+ (while (>= count 1)
+ (insert string)
+ (decf count))))
+@end lisp
+
+The best way to see what is going on here is to let XEmacs tell you.
+Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor
+sitting just to the right of the function you want explained. Eg. move
+the cursor to the SPACE between @code{interactive} and @samp{"*p"} and
+hit @kbd{C-h f} to see what the function @code{interactive} does. Doing
+this will tell you that the @code{*} requires a writable buffer, and
+@code{p} converts the prefix argument to a number, and
+@code{interactive} allows you to execute the command with @kbd{M-x}.
+
+@node Q1.3.6, Q1.3.7, Q1.3.5, Introduction
+@unnumberedsubsec Q1.3.6: And how do I bind it to a key?
+
+To bind to a key do:
+
+@lisp
+(global-set-key "\C-cd" 'double-word)
+@end lisp
+
+Or interactively, @kbd{M-x global-set-key} and follow the prompts.
+
+@node Q1.3.7, Q1.3.8, Q1.3.6, Introduction
+@unnumberedsubsec Q1.3.7: What's the difference between a macro and a function?
+
+Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual:
+
+@dfn{Macros} enable you to define new control constructs and other
+language features. A macro is defined much like a function, but instead
+of telling how to compute a value, it tells how to compute another Lisp
+expression which will in turn compute the value. We call this
+expression the @dfn{expansion} of the macro.
+
+Macros can do this because they operate on the unevaluated expressions
+for the arguments, not on the argument values as functions do. They can
+therefore construct an expansion containing these argument expressions
+or parts of them.
+
+Do not confuse the two terms with @dfn{keyboard macros}, which are
+another matter, entirely. A keyboard macro is a key bound to several
+other keys. Refer to manual for details.
+
+@node Q1.3.8, Q1.4.1, Q1.3.7, Introduction
+@unnumberedsubsec Q1.3.8: What is @code{Custom}?
+
+@code{Custom} is a system for customizing XEmacs options.
+
+You can access @code{Advanced (Customize)} from the @code{Options} menu
+or invoking one of customize commands by typing eg.
+@kbd{M-x customize}, @kbd{M-x customize-face},
+@kbd{M-x customize-variable} or @kbd{M-x customize-apropos}.
+
+There is also new @samp{browser} mode for Customize.
+Try it out with @kbd{M-x customize-browse}
+
+@unnumberedsec 1.4: Getting Help
+
+@node Q1.4.1, Q1.4.2, Q1.3.8, Introduction
+@unnumberedsubsec Q1.4.1: Where can I get help?
+
+Probably the easiest way, if everything is installed, is to use Info, by
+pressing @kbd{C-h i}, or looking for an Info item on the
+Help Menu. @kbd{M-x apropos} can be used to look for particular commands.
+
+For items not found in the manual, try reading this FAQ
+and reading the Usenet group comp.emacs.xemacs.
+
+If you choose to post to a newsgroup, @strong{please use
+comp.emacs.xemacs}. Please do not post XEmacs related questions to
+gnu.emacs.help.
+
+If you cannot post or read Usenet news, there is a corresponding mailing
+list @email{xemacs-news@(a)xemacs.org} which is available. It can be
+subscribed to via the Mailman Web interface or by sending mail to to
+@email{xemacs-news-request@(a)xemacs.org} with @samp{subscribe} in the
+body of the message. See also
+@uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a
+subscription, you may use the @email{xemacs-news-request@(a)xemacs.org}
+address or the Web interface. Send a message with a subject of
+@samp{unsubscribe} to be removed.
+
+@node Q1.4.2, Q1.4.3, Q1.4.1, Introduction
+@unnumberedsubsec Q1.4.2: Which mailing lists are there?
+
+For complete, up-to-date info on the lists and how to subscribe, see
+@uref{http://www.xemacs.org/Lists/}.
+
+@table @samp
+
+@item comp.emacs.xemacs
+is a Usenet newsgroup
+for XEmacs users to discuss problems and issues that arise
+for them. It's not generally an appropriate place to ask
+about apparent bugs (use @samp{xemacs-beta}), or future plans
+(use @samp{xemacs-design}).
+
+@item xemacs-announce
+is a read-only, low
+volume list for announcements concerning the XEmacs project
+and new releases of the XEmacs software.
+
+@item xemacs-beta
+is an open list for bug
+reports about beta versions of XEmacs. This includes the bug
+reports themselves, by both users and developers, as well as
+queries, follow-ups, and discussions further determining their
+nature and status. This is the primary channel for this kind
+of discussion; related code changes will usually not be
+applied until they have been discussed here. When such
+discussions touch on significant changes to the code (in
+particular, structural changes), or on changes to API's or
+external functionality, they should be moved to
+@samp{xemacs-design}. Requests and proposals for
+non-bug-related changes do not belong on @samp{xemacs-beta},
+and should be sent to @samp{xemacs-design} instead.
+
+@item xemacs-beta-ja
+is an open list for bug
+reports and design discussion related to Mule features,
+including Japanese handling, in beta versions of XEmacs.
+Japanese is the preferred language of discussion. For most
+timely presentation to reviewers, please consider sending
+appropriate discussion to @samp{xemacs-mule} or
+@samp{xemacs-design} in English when convenient for
+the participants in discussion. When possible, bug reports
+not related to Mule (including Japanese) should be reported on
+@samp{xemacs-beta} in English.
+
+@item xemacs-buildreports
+is an open list for
+submission of build-reports on beta versions of XEmacs. For
+information on what the build-reports should contain, please
+see the `etc/BETA' file which is included in each beta
+distribution.
+
+@item xemacs-cvs
+is a read-only list for notices
+and information on what has been committed to the XEmacs CVS
+trees, by whom, and for what.
+
+@item xemacs-design
+is an open list for
+discussing the design of XEmacs. This includes discussion
+about planned and ongoing changes to functionality and API
+changes and additions as well as requests for them. This is
+the primary channel for this kind of discussion; related code
+changes will usually not be applied until they have been
+discussed here. This does not include bug reports, which go
+to @samp{xemacs-beta}.
+
+@item xemacs-mule
+is an open mailing list for
+discussion of International extensions to XEmacs including
+Mule, XIM, I18n issues, etc, and is not confined to
+developmental issues. This list is not restricted to
+English, postings in all languages are welcome.
+
+@item xemacs-news
+is an open list for discussion
+and bug reporting for XEmacs. This mailing list is
+bi-directionally gatewayed with the USENET newsgroup
+comp.emacs.xemacs.
+
+@item xemacs-nt
+is a developers-only mailing
+list and is intended for people who wish to work actively on
+the porting of XEmacs to Microsoft Windows NT and Microsoft
+Windows '95.
+
+@item xemacs-patches
+is an open, moderated
+list for submission of patches to the XEmacs distribution
+and its packages. Anyone may subscribe or submit to
+xemacs-patches, but all submissions are reviewed by the list
+moderator before they are distributed to the
+list. Discussion is not appropriate on xemacs-patches.
+
+@item xemacs-users-ja
+is an open list for
+discussion and bug reporting for XEmacs. Japanese is the
+preferred language of discussion. It is not gated to
+comp.emacs.xemacs or the @samp{xemacs} list. For
+fastest response, bugs not specifically related to Japanese
+or Mule features should be reported on
+@samp{xemacs-beta} (in English).
+
+@item xemacs-users-ru
+is an open list for
+discussion and bug reporting for XEmacs. Russian is the
+preferred language of discussion. It is not gated to
+comp.emacs.xemacs or the @samp{xemacs} list. For
+fastest response, bugs not specifically related to Russian
+or Mule features should be reported on
+@samp{xemacs-beta} (in English).
+@end table
+
+@node Q1.4.3, Q1.4.4, Q1.4.2, Introduction
+@unnumberedsubsec Q1.4.3: Where are the mailing lists archived?
+
+The archives can be found at @uref{http://list-archive.xemacs.org}
+
+@node Q1.4.4, Q1.4.5, Q1.4.3, Introduction
+@unnumberedsubsec Q1.4.4: How can I get two instances of info?
+
+Before 21.4, you can't. The @code{info} package does not provide for
+multiple info buffers. In 21.4, this should be fixed. #### how?
+
+@node Q1.4.5, Q1.5.1, Q1.4.4, Introduction
+@unnumberedsubsec Q1.4.5: How do I add new Info directories?
+
+You use something like:
+
+@lisp
+(setq Info-directory-list (cons
+ (expand-file-name "~/info")
+ Info-default-directory-list))
+@end lisp
+
+@email{davidm@(a)prism.kla.com, David Masterson} writes:
+
+@quotation
+Emacs Info and XEmacs Info do many things differently. If you're trying to
+support a number of versions of Emacs, here are some notes to remember:
+
+@enumerate
+@item
+Emacs Info scans @code{Info-directory-list} from right-to-left while
+XEmacs Info reads it from left-to-right, so append to the @emph{correct}
+end of the list.
+
+@item
+Use @code{Info-default-directory-list} to initialize
+@code{Info-directory-list} @emph{if} it is available at startup, but not
+all Emacsen define it.
+
+@item
+Emacs Info looks for a standard @file{dir} file in each of the
+directories scanned from #1 and magically concatenates them together.
+
+@item
+XEmacs Info looks for a @file{localdir} file (which consists of just the
+menu entries from a @file{dir} file) in each of the directories scanned
+from #1 (except the first), does a simple concatenation of them, and
+magically attaches the resulting list to the end of the menu in the
+@file{dir} file in the first directory.
+@end enumerate
+
+Another alternative is to convert the documentation to HTML with
+texi2html and read it from a web browser like Lynx or W3.
+@end quotation
+
+@unnumberedsec 1.5: Contributing to XEmacs
+
+@node Q1.5.1, Q1.5.2, Q1.4.5, Introduction
+@unnumberedsubsec Q1.5.1: How do I submit changes to the FAQ?
+
+The FAQ is actively maintained and modified regularly. All links should
+be up to date. Unfortunately, some of the information is out of date --
+a situation which the FAQ maintainer is working on. All submissions are
+welcome, please e-mail submissions to @email{faq@(a)xemacs.org, XEmacs FAQ
+maintainers}.
+
+Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
+If you think you have a better way of answering a question, or think a
+question should be included, we'd like to hear about it. Questions and
+answers included into the FAQ will be edited for spelling and grammar
+and will be attributed. Answers appearing without attribution are
+either from versions of the FAQ dated before May 1996 or are from
+previous FAQ maintainers. Answers quoted from Usenet news articles will
+always be attributed, regardless of the author.
+
+@node Q1.5.2, Q1.5.3, Q1.5.1, Introduction
+@unnumberedsubsec Q1.5.2: How do I become a beta tester?
+
+Send an email message to @email{xemacs-beta-request@(a)xemacs.org} with
+the line @samp{subscribe} in the body of the message.
+
+Be prepared to get your hands dirty, as beta testers are expected to
+identify problems as best they can.
+
+@node Q1.5.3, Q1.6.1, Q1.5.2, Introduction
+@unnumberedsubsec Q1.5.3: How do I contribute to XEmacs itself?
+
+It depends on the knowledge and time you possess. If you are able, by
+all means become a beta tester (@pxref{Q1.5.2}). If you are a
+programmer, try to build XEmacs and see if you can improve it.
+
+Otherwise, you can still help by using XEmacs as your everyday editor
+(for pre-built binary versions, @pxref{Q1.1.2}) and reporting bugs you
+find to the mailing list.
+
+Another area where we need help is the documentation: We need good
+documentation for building XEmacs and for using it. This FAQ is a
+small step in that direction.
+
+Ben Wing @email{ben@(a)xemacs.org} writes:
+
+@quotation
+BTW if you have a wish list of things that you want added, you have to
+speak up about it! More specifically, you can do the following if you
+want a feature added (in increasing order of usefulness):
+
+@itemize @bullet
+@item
+Make a posting about a feature you want added.
+
+@item
+Become a beta tester and make more postings about those same features.
+
+@item
+Convince us that you're going to use the features in some cool and
+useful way.
+
+@item
+Come up with a clear and well-thought-out API concerning the features.
+
+@item
+Write the code to implement a feature and send us a patch.
+@end itemize
+
+(not that we're necessarily requiring you to write the code, but we can
+always hope :)
+@end quotation
+
+@unnumberedsec 1.6: Politics (XEmacs vs. GNU Emacs)
+
+@node Q1.6.1, Q1.6.2, Q1.5.3, Introduction
+@unnumberedsubsec Q1.6.1: What is GNU Emacs?
+
+GNU Emacs and XEmacs are related open-source text editors. Both
+derive from GNU Emacs version 18; the split between the two happened
+in 1991 (for comparison, the oldest versions of GNU Emacs date from
+1984). For information on GNU Emacs, see
+@uref{http://www.gnu.org/software/emacs/emacs.html}.
+
+@node Q1.6.2, Q1.6.3, Q1.6.1, Introduction
+@unnumberedsubsec Q1.6.2: How does XEmacs differ from GNU Emacs?
+
+For a detailed description of the differences between GNU Emacs and
+XEmacs and a detailed history of XEmacs, check out the
+@example
+@uref{http://www.xemacs.org/About/XEmacsVsGNUemacs.html, NEWS file}
+@end example
+
+@table @strong
+@item User-Visible Editing Features
+XEmacs in general tries hard to conform to exist user-interface
+standards, and to work "out-of-the-box" without the need for obscure
+customization changes. GNU Emacs, particularly version 21, has gotten
+better about this (in many cases by copying the XEmacs behavior!), but
+still has some weirdnesses. For example, the standard method of
+selecting text using the Shift key works out-of-the-box in XEmacs.
+
+XEmacs has a built-in toolbar. Four toolbars can actually be configured
+simultaneously: top, bottom, left, and right toolbars.
+
+XEmacs has vertical and horizontal scrollbars. Unlike in GNU Emacs 19
+(which provides a primitive form of vertical scrollbar), these are true
+toolkit scrollbars. A look-alike Motif scrollbar is provided for those
+who don't have Motif. (Even for those who do, the look-alike may be
+preferable as it is faster.)
+
+XEmacs has buffer tabs along the top of the frame (although the
+position can be changed) that make it very easy to switch buffers.
+
+The menubar under XEmacs is better-designed, with more thought put into
+it.
+
+XEmacs can ask questions using popup dialog boxes. Any command executed
+from a menu will ask yes/no questions with dialog boxes, while commands
+executed via the keyboard will use the minibuffer.
+
+XEmacs under MS Windows provides uses the standard file-dialog box for
+opening and saving files. Standard menu-accelerator behavior can easily
+be enabled using the Options menu, and integrates well into the existing
+keymap.
+
+XEmacs has (still experimental) support for widgets of various sorts --
+buttons, text boxes, sliders, progress bars, etc. A progress bar is
+used in font lock to show the progress.
+
+Experimental support for drag-and-drop protocols is provided from
+XEmacs 21.
+
+@item General Platform Support
+If you're running on a machine with audio hardware, you can specify
+sound files for XEmacs to play instead of the default X beep. See the
+documentation of the function load-sound-file and the variable
+sound-alist. XEmacs also supports the network sound protocols NAS and
+EsounD.
+
+XEmacs 21 supports database protocols with LISP bindings, currently
+including Berkeley DB, LDAP, and PostgreSQL (21.2 only).
+
+XEmacs 20 and 21 support the Canna, Wnn, and SJ3 Japanese input method
+servers directly, as well as through the X Input Method (XIM)
+protocol. GNU Emacs 20 supports only the XIM protocol. Both Emacsen
+support the Quail family of input methods (implemented in LISP) for many
+languages.
+
+XEmacs provides support for ToolTalk on systems that have
+it.
+
+@item Packaged LISP Libraries
+Many more packages are provided standard with XEmacs than with GNU Emacs
+19 or 20.
+
+XEmacs 21 supports an integrated package management system which uses
+EFS to download, then automatically install prebuilt LISP
+libraries. This allows XEmacs users much more straightforward access to
+the "latest and greatest" version of any given library.
+
+We are working on a standard method for enabling, disabling and
+otherwise controlling packages, which should make them very easy to use.
+
+@item LISP Programming
+From XEmacs 20 on, characters are a separate type. Characters can be
+converted to integers (and many integers can be converted to
+characters), but characters are not integers. GNU Emacs 19, XEmacs 19,
+Mule 2.3 (an extensive patch to GNU Emacs 18.55 and 19.x), and GNU Emacs
+20 (incorporating Mule 3 and later Mule 4) represent them as integers.
+
+From XEmacs 20 on, the buffer is treated as an array of characters, and
+the representation of buffer text is not exposed to LISP. The GNU Emacs
+20 functions like buffer-as-multibyte are not supported.
+
+In XEmacs, events are first-class objects. GNU Emacs 19 represents them
+as integers, which obscures the differences between a key gesture and
+the ancient ASCII code used to represent a particular overlapping subset
+of them.
+
+In XEmacs, keymaps are first-class opaque objects. GNU Emacs 19
+represents them as complicated combinations of association lists and
+vectors. If you use the advertised functional interface to manipulation
+of keymaps, the same code will work in XEmacs, GNU Emacs 18, and GNU
+Emacs 19; if your code depends on the underlying implementation of
+keymaps, it will not.
+
+XEmacs uses "extents" to represent all non-textual aspects of buffers;
GNU Emacs 19 uses two distinct objects, "text properties" and
"overlays", which divide up the functionality between them. Extents are
a superset of the union of the functionality of the two GNU Emacs data
@@ -850,11 +1948,11 @@
automatically qualify for CVS accounts for their packages.
@end table
-@node Q1.0.6, Q1.0.7, Q1.0.5, Introduction
-@unnumberedsubsec Q1.0.6: How much does XEmacs differ?
+@node Q1.6.3, Q1.6.4, Q1.6.2, Introduction
+@unnumberedsubsec Q1.6.3: How much does XEmacs differ?
RMS has asserted at times that XEmacs is merely a "patch" on top of
-GNU Emacs (@pxref{Q1.0.7}). In fact, probably not more than 5% of the
+GNU Emacs (@pxref{Q1.6.4}). In fact, probably not more than 5% of the
code, if that, remains unchanged, and nearly 14 years of work has gone
into XEmacs at this point. (GNU Emacs itself is only than 20 years
old, and thus XEmacs has existed as a separate product for over 2/3 of
@@ -870,8 +1968,8 @@
This stems from self-imposed licensing restrictions on the part of GNU
Emacs -- and almost certainly out of hostility, as well.)
-@node Q1.0.7, Q1.0.8, Q1.0.6, Introduction
-@unnumberedsubsec Q1.0.7: Is XEmacs "GNU"?
+@node Q1.6.4, Q1.6.5, Q1.6.3, Introduction
+@unnumberedsubsec Q1.6.4: Is XEmacs "GNU"?
RMS insists on the term "GNU XEmacs" and maintains that
@@ -884,7 +1982,7 @@
@end quotation
In fact, FSF is @emph{not} the copyright holder for most of the code,
-as very little unmodified FSF code remains (@pxref{Q1.0.6}).
+as very little unmodified FSF code remains (@pxref{Q1.6.3}).
Furthermore, RMS's assertion that XEmacs is "GNU" seems rather bizarre
to the XEmacs developers given RMS's hostility and general lack of
@@ -897,8 +1995,8 @@
non-GNU software projects on the FSF web site, but again XEmacs is not
one of them.
-@node Q1.0.8, Q1.0.9, Q1.0.7, Introduction
-@unnumberedsubsec Q1.0.8: What is the correct way to refer to XEmacs and GNU Emacs?
+@node Q1.6.5, Q1.6.6, Q1.6.4, Introduction
+@unnumberedsubsec Q1.6.5: What is the correct way to refer to XEmacs and GNU Emacs?
Unfortunately even the naming of these two applications has become
politicized. Much of this stems from RMS, who has a history of
@@ -907,12 +2005,12 @@
Emacs" be used, which are neutral and acceptable to most people. RMS,
however, is not willing to accept these terms. He insists that, if
his product is called "GNU Emacs", then ours must be called "GNU
-XEmacs". (For our opinion of this term, @xref{Q1.0.7}.) On the other
+XEmacs". (For our opinion of this term, @xref{Q1.6.4}.) On the other
hand, if our product is to be called "XEmacs", as we prefer, then his
product must simply be called "Emacs". The intent of this seems
clear: RMS wants to make sure the names reflect his view that his
version is the "real" Emacs and ours is merely a derivative,
-second-class product (@pxref{Q1.0.6}).
+second-class product (@pxref{Q1.6.3}).
The XEmacs developers hope that you will use the neutral terms
"XEmacs" and "GNU Emacs" for these two specific products.
"Emacs", on
@@ -933,8 +2031,8 @@
to be insulting, so we refrain from using them as much as possible in
preference to GNU Emacs.)
-@node Q1.0.9, Q1.0.10, Q1.0.8, Introduction
-@unnumberedsubsec Q1.0.9: Why haven't XEmacs and GNU Emacs merged?
+@node Q1.6.6, Q1.7.1, Q1.6.5, Introduction
+@unnumberedsubsec Q1.6.6: Why haven't XEmacs and GNU Emacs merged?
There are currently irreconcilable differences in the views about
technical, programming, design, organizational and legal matters
@@ -1013,656 +2111,426 @@
avoid posting to the newsgroups, because of the very heated flamewars
that often result. Mail your questions to
@email{xemacs-beta@(a)xemacs.org} and @email{emacs-devel@(a)gnu.org}.
-
-@node Q1.0.10, Q1.0.11, Q1.0.9, Introduction
-@unnumberedsubsec Q1.0.10: Where can I get help?
-
-Probably the easiest way, if everything is installed, is to use Info, by
-pressing @kbd{C-h i}, or looking for an Info item on the
-Help Menu. @kbd{M-x apropos} can be used to look for particular commands.
-
-For items not found in the manual, try reading this FAQ
-and reading the Usenet group comp.emacs.xemacs.
-
-If you choose to post to a newsgroup, @strong{please use
-comp.emacs.xemacs}. Please do not post XEmacs related questions to
-gnu.emacs.help.
-
-If you cannot post or read Usenet news, there is a corresponding mailing
-list @email{xemacs-news@(a)xemacs.org} which is available. It can be
-subscribed to via the Mailman Web interface or by sending mail to to
-@email{xemacs-news-request@(a)xemacs.org} with @samp{subscribe} in the
-body of the message. See also
-@uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a
-subscription, you may use the @email{xemacs-news-request@(a)xemacs.org}
-address or the Web interface. Send a message with a subject of
-@samp{unsubscribe} to be removed.
-
-@node Q1.0.11, Q1.0.12, Q1.0.10, Introduction
-@unnumberedsubsec Q1.0.11: Where are the mailing lists archived?
-
-The archives can be found at @uref{http://list-archive.xemacs.org}
-
-@node Q1.0.12, Q1.0.13, Q1.0.11, Introduction
-@unnumberedsubsec Q1.0.12: How do you pronounce XEmacs?
-
-The most common pronounciation is @samp{Eks eemax}.
-
-@node Q1.0.13, Q1.0.14, Q1.0.12, Introduction
-@unnumberedsubsec Q1.0.13: What does XEmacs look like?
-
-Screen snapshots are available at
-@uref{http://www.xemacs.org/About/Screenshots/index.html}
-as part of the XEmacs website.
-@node Q1.0.14, Q1.1.1, Q1.0.13, Introduction
-@unnumberedsubsec Q1.0.14: Where can I obtain a printed copy of the XEmacs User's
Manual?
+@unnumberedsec 1.7: External Packages
-Pre-printed manuals are not available. If you are familiar with
-TeX, you can generate your own manual from the XEmacs sources.
+@node Q1.7.1, Q1.8.1, Q1.6.6, Introduction
+@unnumberedsubsec Q1.7.1: Which external packages are there?
-HTML and Postscript versions of XEmacs manuals are available from the
-XEmacs web site at
-@uref{http://www.xemacs.org/Documentation/index.html}.
+@subheading Normal Packages
-@unnumberedsec 1.1: Versions for Different Operating Systems
+A very broad collection of elisp packages.
-@node Q1.1.1, Q1.1.2, Q1.0.14, Introduction
-@unnumberedsubsec Q1.1.1: Do I need X11 to run XEmacs?
+@table @asis
+@item Sun
+Support for Sparcworks.
-No. The name @dfn{XEmacs} is unfortunate in the sense that it is
-@strong{not} an X Window System-only version of Emacs. XEmacs has
-full color support on a color-capable character terminal.
+@item ada
+Ada language support.
-@node Q1.1.2, Q1.1.3, Q1.1.1, Introduction
-@unnumberedsubsec Q1.1.2: Is there a port of XEmacs to Microsoft Windows?
+@item apel
+A Portable Emacs Library. Used by XEmacs MIME support.
-Yes. Beginning with release 21.0, XEmacs has worked under MS Windows
-and is fully-featured and actively developed. A group of dedicated
-developers actively maintains and improves the Windows-specific
-portions of the code. Some of the core developers, in fact, use
-Windows as their only development environment, and some features, such
-as printing, actually work better on Windows than native Unix and Mac
-OS X. The mailing list at @email{xemacs-winnt@(a)xemacs.org} is dedicated
-to that effort (please use the -request address to
-subscribe). (Despite its name, XEmacs actually works on all versions
-of Windows.)
+@item auctex
+Basic TeX/LaTeX support.
-The list name is misleading, as XEmacs supports and has been compiled on
-Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows
-XP, and all newer versions of Windows. The MS Windows-specific code is
-based on Microsoft Win32 API, and will not work on MS Windows 3.x or on
-MS-DOS.
+@item bbdb
+The Big Brother Data Base: a rolodex-like database program.
-XEmacs also supports the Cygwin and MinGW development and runtime
-environments, where it also uses native Windows code for graphical
-features. In addition, under Cygwin it is possible to compile XEmacs
-to use an X server (and XFree86 is available as part of the standard
-Cygwin installation).
+@item build
+Build XEmacs from within (UNIX, Windows).
-@node Q1.1.3, Q1.1.4, Q1.1.2, Introduction
-@unnumberedsubsec Q1.1.3: Can I build XEmacs on MS Windows with X support? Do I need
to?
+@item c-support
+Basic single-file add-ons for editing C code.
-Yes, you can, but no you do not need to. In fact, we recommend that you
-use a native-GUI version unless you have a specific need for an X
-version.
+@item calc
+Emacs calculator.
-@node Q1.1.4, Q1.1.5, Q1.1.3, Introduction
-@unnumberedsubsec Q1.1.4: What are Cygwin and MinGW, and do I need them to run XEmacs?
+@item calendar
+Calendar and diary support.
-To answer the second part of the question: No, you, you don't need
-Cygwin or MinGW to build or to run XEmacs. But if you have them and
-want to use them, XEmacs supports these environments.
+@item cc-mode
+C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language support.
-(One important reason to support Cygwin is that it lets the MS Windows
-developers test out their code in a Unix environment without actually
-having to have a Unix machine around. For this reason alone, Cygwin
-support is likely to remain supported for a long time in XEmacs. Same
-goes for the X support under Cygwin, for the same reasons. MinGW
-support, on the other hand, depends on volunteers to keep it up to date;
-but this is generally not hard.)
+@item clearcase
+New Clearcase Version Control for XEmacs (UNIX, Windows).
-Cygwin is a set of tools providing Unix-like API on top of Win32.
-It makes it easy to port large Unix programs without significant
-changes to their source code. It is a development environment as well
-as a runtime environment.
+@item clearcase
+Support for the Clearcase version control system.
-When built with Cygwin, XEmacs supports all display types -- TTY, X &
-Win32 GUI, and can be built with support for all three simultaneously.
-If you build with Win32 GUI support then the Cygwin version uses the
-majority of the Windows-specific code, which is mostly related to
-display. If you want to build with X support you need X libraries (and
-an X server to display XEmacs on); see @ref{Q2.2.7}. TTY and Win32 GUI
-require no additional libraries beyond what comes standard with Cygwin.
+@item cookie
+"Fortune cookie"-style messages. Includes Spook (suspicious phrases)
+and Yow (Zippy quotes).
-The advantages of the Cygwin version are that it integrates well with
-the Cygwin environment for existing Cygwin users; uses configure so
-building with different features is very easy; and actively supports X &
-TTY. Furthermore, the entire Cygwin environment and compiler are free,
-whereas Visual C++ costs money.
+@item crisp
+Crisp/Brief emulation.
-The disadvantage is that it requires the whole Cygwin environment,
-whereas the native port requires only a suitable MS Windows compiler.
-Also, it follows the Unix filesystem and process model very closely
-(some will undoubtedly view this as an advantage).
+@item debug
+GUD, gdb, dbx debugging support.
-See @uref{http://www.cygwin.com/} for more information on
-Cygwin.
+@item dictionary
+Interface to RFC2229 dictionary servers.
-MinGW is a collection of header files and import libraries that allow
-one to use GCC under the Cygwin environment to compile and produce
-exactly the same native Win32 programs that you can using Visual C++.
-Programs compiled with MinGW make use of the standard Microsoft runtime
-library @file{MSVCRT.DLL}, present on all Windows systems, and look,
-feel, and act like a standard Visual-C-produced application. (The only
-difference is the compiler.) This means that, unlike a
-standardly-compiled Cygwin application, no extra runtime support
-(e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the
-fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y
-environment, for those die-hard Unix hackers out there), is the main
-advantage of MinGW. It is also potentially faster than Cygwin because
-it has less overhead when calling Windows, but you lose the POSIX
-emulation layer, which makes Unix programs harder to port. (But this is
-irrelevant for XEmacs since it's already ported to Win32.)
+@item dired
+The DIRectory EDitor is for manipulating, and running commands on
+files in a directory.
-See @uref{http://www.mingw.org/} for more information on MinGW.
+@item docbookide
+DocBook editing support.
-@node Q1.1.5, Q1.1.6, Q1.1.4, Introduction
-@unnumberedsubsec Q1.1.5: What are the differences between the various MS Windows
emacsen?
+@item ecb
+Emacs source code browser.
-XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
-Could you briefly explain the differences between them?
+@item ecrypto
+Crypto functionality in Emacs Lisp.
-Here is a recount of various Emacs versions running on MS Windows:
+@item edebug
+An Emacs Lisp debugger.
-@itemize @bullet
+@item ediff
+Interface over GNU patch.
-@item
-XEmacs
+@item edit-utils
+Miscellaneous editor extensions, you probably need this.
-@itemize @minus
+@item edt
+DEC EDIT/EDT emulation.
-@item
-Beginning with XEmacs 19.12, XEmacs' architecture was redesigned
-in such a way to allow clean support of multiple window systems. At
-this time the TTY support was added, making X and TTY the first two
-"window systems" supported by XEmacs. The 19.12 design is the basis for
-the current native MS Windows code.
+@item efs
+Treat files on remote systems the same as local files.
-@item
-Some time during 1997, David Hobley (soon joined by Marc Paquette)
-imported some of the NT-specific portions of GNU Emacs, making XEmacs
-with X support compile under Windows NT, and creating the "X" port.
+@item eieio
+Enhanced Implementation of Emacs Interpreted Objects.
-@item
-Several months later, Jonathan Harris sent out initial patches to use
-the Win32 API, thus creating the native port. Since then, various
-people have contributed, including Kirill M. Katsnelson (contributed
-support for menubars, subprocesses and network, as well as loads of
-other code), Andy Piper (ported XEmacs to Cygwin environment,
-contributed Windows unexec, Windows-specific glyphs and toolbars code,
-and more), Ben Wing (loads of improvements; primary MS Windows developer
-since 2000), Jeff Sparkes (contributed scrollbars support) and many
-others.
-@end itemize
+@item elib
+Portable Emacs Lisp utilities library.
-@item
-NT Emacs
+@item emerge
+Another interface over GNU patch.
-@itemize @minus
+@item erc
+ERC is an Emacs InternetRelayChat client.
-@item
-NT Emacs was an early version of GNU Emacs 19 modified to compile and
-run under MS Windows 95 and NT using the native Win32 API. It was
-written by Geoff Voelker, and has long since been incorporated into
-the mainline GNU Emacs distribution.
-@end itemize
+@item escreen
+Multiple editing sessions withing a single frame (like screen).
-@item
-Win-Emacs
+@item eshell
+Command shell implemented entirely in Emacs Lisp.
-@itemize @minus
+@item ess
+ESS: Emacs Speaks Statistics.
-@item
-Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
-compatibility libraries. Win-Emacs was written by Ben Wing. The MS
-Windows code never made it back to Lucid Emacs, and its creator (Pearl
-Software) has long since gone out of business.
-@end itemize
+@item eterm
+Terminal emulation.
-@item
-GNU Emacs for DOS
+@item eudc
+Emacs Unified Directory Client (LDAP, PH).
-@itemize @minus
+@item footnote
+Footnoting in mail message editing modes.
-@item
-GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS
-port of GCC). Such an Emacs is heavily underfeatured, because it does
-not support long file names, lacks proper subprocesses support, and
-is far too big compared with typical DOS editors.
-@end itemize
+@item forms
+Forms editing support (obsolete, use Widget instead).
-@item
-GNU Emacs compiled with Win32
+@item fortran-modes
+Fortran support.
-@itemize @minus
+@item fortran-modes
+Fortran language support.
-@item
-Starting with GNU Emacs 19.30, it has been possible to compile GNU Emacs
-under MS Windows using the DJGPP compiler and X libraries. The result
-is very similar to GNU Emacs compiled under MS DOS, only it works
-somewhat better because it runs in 32-bit mode, makes use of all the
-system memory, supports long file names, etc.
-@end itemize
+@item frame-icon
+Set up mode-specific icons for each frame under XEmacs.
-@end itemize
+@item fsf-compat
+GNU Emacs compatibility files.
-@node Q1.1.6, Q1.1.7, Q1.1.5, Introduction
-@unnumberedsubsec Q1.1.6: Is there a port of XEmacs to the Macintosh?
+@item games
+Tetris, Sokoban, and Snake.
-Yes.
+@item general-docs
+General documentation. Presently, empty.
-XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly
-will not feel very much like a Mac application as it has no Mac-specific
-code in it.
+@item gnats
+XEmacs bug reports.
-There is also a port of XEmacs 19.14 that works on all recent versions
-of MacOS, from 8.1 through MacOS X, by @email{pjarvis@(a)ispchannel.com,
-Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY
-mode only (one single Macintosh window, 25 colors), but has a large
-number of Mac-specific additions. It's available at
-@uref{http://homepage.mac.com/pjarvis/xemacs.html}.
+@item gnus
+The Gnus Newsreader and Mailreader.
-@node Q1.1.7, Q1.1.8, Q1.1.6, Introduction
-@unnumberedsubsec Q1.1.7: Is there a port of XEmacs to NextStep?
+@item haskell-mode
+Haskell editing support.
-Carl Edman, apparently no longer at @email{cedman@(a)princeton.edu}, did
-the port of GNU Emacs to NeXTstep and expressed interest in doing the
-XEmacs port, but never went any farther.
+@item hm--html-menus
+HTML editing.
-@node Q1.1.8, Q1.1.9, Q1.1.7, Introduction
-@unnumberedsubsec Q1.1.8: Is there a port of XEmacs to OS/2?
+@item hyperbole
+Hyperbole: The Everyday Info Manager.
-No, but Alexander Nikolaev <avn_1251@(a)mail.ru> is working on it.
+@item ibuffer
+Advanced replacement for buffer-menu.
-@node Q1.1.9, Q1.2.1, Q1.1.8, Introduction
-@unnumberedsubsec Q1.1.9: How does the port cope with differences in the Windows user
interface?
+@item idlwave
+Editing and Shell mode for the Interactive Data Language.
-The XEmacs (and Emacs in general) user interface is pretty different
-from what is expected of a typical MS Windows program. How does the MS
-Windows port cope with it?
+@item igrep
+Enhanced front-end for Grep.
-As a general rule, we follow native MS Windows conventions as much as
-possible. 21.4 is a fairly complete Windows application, supporting
-native printing, system file dialog boxes, tool tips, etc. In cases
-where there's a clear UI conflict, we currently use normal Unix XEmacs
-behavior by default, but make sure the MS Windows "look and feel" (mark
-via shift-arrow, self-inserting deletes region, Alt selects menu items,
-etc.) is easily configurable (respectively: using the variable
-@code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact
-the default in these versions], or the @file{pc-select} package; using
-the @file{pending-del} package; and setting the variable
-@code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above).
-In fact, if you use the sample @file{init.el} file as your init file,
-you will get all these behaviors automatically turned on.
+@item ilisp
+Front-end for interacting with Inferior Lisp (external lisps).
-In future versions, some of these features might be turned on by
-default in the MS Windows environment.
+@item ispell
+Spell-checking with GNU ispell.
-@unnumberedsec 1.2: Policies
+@item jde
+Integrated Development Environment for Java.
-@node Q1.2.1, Q1.2.2, Q1.1.9, Introduction
-@unnumberedsubsec Q1.2.1: What is the FAQ editorial policy?
+@item liece
+IRC (Internet Relay Chat) client for Emacs. Note, this package is
+deprecated and will be removed, use riece instead.
-The FAQ is actively maintained and modified regularly. All links should
-be up to date. Unfortunately, some of the information is out of date --
-a situation which the FAQ maintainer is working on. All submissions are
-welcome, please e-mail submissions to @email{faq@(a)xemacs.org, XEmacs FAQ
-maintainers}.
+@item mail-lib
+Fundamental lisp files for providing email support.
-Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
-If you think you have a better way of answering a question, or think a
-question should be included, we'd like to hear about it. Questions and
-answers included into the FAQ will be edited for spelling and grammar
-and will be attributed. Answers appearing without attribution are
-either from versions of the FAQ dated before May 1996 or are from
-previous FAQ maintainers. Answers quoted from Usenet news articles will
-always be attributed, regardless of the author.
+@item mailcrypt
+Support for messaging encryption with PGP.
-@node Q1.2.2, Q1.2.3, Q1.2.1, Introduction
-@unnumberedsubsec Q1.2.2: How do I become a beta tester?
+@item mew
+Messaging in an Emacs World; a MIME-based email program.
-Send an email message to @email{xemacs-beta-request@(a)xemacs.org} with
-the line @samp{subscribe} in the body of the message.
+@item mh-e
+The XEmacs Interface to the MH Mail System.
-Be prepared to get your hands dirty, as beta testers are expected to
-identify problems as best they can.
+@item mine
+Elisp implementation of the game 'Minehunt'.
-@node Q1.2.3, Q1.3.1, Q1.2.2, Introduction
-@unnumberedsubsec Q1.2.3: How do I contribute to XEmacs itself?
+@item misc-games
+Other amusements and diversions.
-It depends on the knowledge and time you possess. If you are able, by
-all means become a beta tester (@pxref{Q1.2.2}). If you are a
-programmer, try to build XEmacs and see if you can improve it.
+@item mmm-mode
+Support for Multiple Major Modes within a single buffer.
-Otherwise, you can still help by using XEmacs as your everyday editor
-(for pre-built binary versions, @pxref{Q1.0.4}) and reporting bugs you
-find to the mailing list.
+@item net-utils
+Miscellaneous Networking Utilities.
-Another area where we need help is the documentation: We need good
-documentation for building XEmacs and for using it. This FAQ is a
-small step in that direction.
+@item ocaml
+Objective Caml editing support.
-Ben Wing @email{ben@(a)xemacs.org} writes:
+@item oo-browser
+OO-Browser: The Multi-Language Object-Oriented Code Browser.
-@quotation
-BTW if you have a wish list of things that you want added, you have to
-speak up about it! More specifically, you can do the following if you
-want a feature added (in increasing order of usefulness):
+@item ocaml
+Objective Caml editing support.
-@itemize @bullet
-@item
-Make a posting about a feature you want added.
+@item os-utils
+Miscellaneous single-file O/S utilities, for printing, archiving,
+compression, remote shells, etc.
-@item
-Become a beta tester and make more postings about those same features.
+@item pc
+PC style interface emulation.
-@item
-Convince us that you're going to use the features in some cool and
-useful way.
+@item pcl-cvs
+CVS frontend.
-@item
-Come up with a clear and well-thought-out API concerning the features.
+@item pcomplete
+Provides programmatic completion.
-@item
-Write the code to implement a feature and send us a patch.
-@end itemize
+@item perl-modes
+Perl support.
-(not that we're necessarily requiring you to write the code, but we can
-always hope :)
-@end quotation
+@item pgg
+Emacs interface to various PGP implementations.
-@unnumberedsec 1.3: Credits
+@item prog-modes
+Support for various programming languages.
-@node Q1.3.1, Q1.3.2, Q1.2.3, Introduction
-@unnumberedsubsec Q1.3.1: Who wrote XEmacs?
+@item ps-print
+Printing functions and utilities.
-XEmacs is the result of the time and effort of many people, and the
-active developers have changed over time. There are two major
-components of the XEmacs effort -- writing the code itself and providing
-all the support work (testing the code, releasing beta and final
-versions, handling patches, reading bug reports, maintaining the web
-site, managing the mailing lists, etc. etc.). Neither component would
-work without the other.
+@item psgml
+Validated HTML/SGML editing.
-@subheading CODING
+@item psgml-dtds
+A collection of DTDs for psgml. Note that this package is deprecated
+and will be removed in the future, most likely Q2/2003. Instead of using
+this, you should install needed DTDs yourself.
-The primary code contributor over the years has been Ben Wing (active
-since late 1992). Between 1991 and 1995, large amounts of coding was
-contributed by Jamie Zawinski and Chuck Thompson. Many other people
-have authored major subsystems or otherwise contributed large amounts of
-code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris,
-Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard
-Mlynarik, Stig, William Perry and plenty of others.
+@item python-modes
+Python language support.
-Primary XEmacs-specific subsystems and their authors:
+@item reftex
+Emacs support for LaTeX cross-references, citations.
-@table @asis
-@item Objects
-@itemize @minus
-@item
-Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard
Mlynarik, 1994
-@item
-Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz
-@item
-Portable dumper, object descriptions: Olivier Galibert
-@item
-KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students
-@item
-Random object work (object equal and hash methods, weak lists, lcrecord lists, bit
vectors, dynarr, blocktype, opaque, string resizing): Ben Wing
-@item
-Profiling: Ben Wing
-@item
-Some byte-compilation and hash-table improvements: Martin Buchholz
-@item
-Bignum: Jerry James
-@end itemize
+@item riece
+IRC (Internet Relay Chat) client for Emacs.
-@item Internationalization/Mule
-@itemize @minus
-@item
-mostly Ben Wing; many ideas for future work, Stephen Turnbull
-@end itemize
+@item rmail
+An obsolete Emacs mailer. If you do not already use it don't start.
-@item I/O
-@itemize @minus
-@item
-Basic event/event-stream implementation: Jamie Zawinski
-@item
-Most event work since 1994: Ben Wing
-@item
-Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing
-@item
-Process method abstraction, Windows process work: Kirill Katsnelson
-@item
-Misc-user events, async timeouts, most quit-checking and signal code, most other work
since 1994: Ben Wing
-@item
-Lstreams: Ben Wing
-@end itemize
+@item ruby-modes
+Ruby support.
-@item Display
-@itemize @minus
-@item
-Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people
-@item
-Glyphs: mostly Ben Wing
-@item
-Specifiers: Ben Wing
-@item
-Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing
-@item
-Widgets: Andy Piper
-@item
-JPEG/PNG/TIFF image converters: Ben Wing, William Perry, Jareth Hein, others (see
comment in @file{glyphs-eimage.c})
-@item
-Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
-@item
-Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
-@item
-Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype
by chuck thompson
-@item
-Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
-@item
-Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
-@item
-Toolbars: implementation, chuck, much interface work, Ben Wing
-@item
-Gutters, tabs: andy piper
-@end itemize
+@item sasl
+Simple Authentication and Security Layer (SASL) library.
-@item Device subsystems
-@itemize @minus
-@item
-X Windows: Jamie Zawinksi, Ben Wing, others
-@item
-GTK: William Perry, Malcolm Purvis
-@item
-MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben
Wing
-@item
-TTY: Chuck Thompson, Ben Wing
-@item
-Cygwin: Andy Piper
-@end itemize
+@item scheme
+Front-end support for Inferior Scheme.
-@item Misc
-@itemize @minus
-@item
-Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much
rewriting, Martin Buchholz
-@item
-Most initialization-related code: Ben Wing
-@item
-Internals manual, much of Lisp manual: Ben Wing
-@item
-FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing
-@end itemize
-@end table
+@item semantic
+Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator.
-@subheading SUPPORT
+@item sgml
+SGML/Linuxdoc-SGML editing.
-Currently, support duties are handled by many different people.
+@item sh-script
+Support for editing shell scripts.
-Release managers have been
+@item sieve
+Manage Sieve email filtering scripts.
-@itemize @minus
-@item
-Stephen Turnbull (April 2001 - present, 21.x - 21.x?)
-@item
-Vin Shelton?
-@item
-Steve Youngs (July 2002 - present??, 21.x - 21.x?)
-@item
-Martin Buchholz (December 1998 - May 2001, 21.x - 21.x?)
-@item
-Steve Baur (early 1997 - November 1998, 19.15 - 21.0)
-@item
-Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
-@item
-Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
-@end itemize
+@item slider
+User interface tool.
-The recent overlapping dates are intentional, since two or three trees
-are maintained simultaneously at any point.
+@item sml-mode
+SML editing support.
-Other major support work:
+@item sounds-au
+XEmacs Sun sound files.
-@itemize @minus
-@item
-Adrian Aichner wrote and maintains the web site.
-@item
-Stephen Turnbull has produced many of the beta and semi-stable releases
-and has attempted to be the "face" of XEmacs on the newsgroups and
-mailing lists.
-@item
-Steve Youngs currently produces the beta releases (???).
-@item
-Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
-maintaining the packages.
-@item
-Vin Shelton maintains the stable releases.
-@item
-Testing - #### Norbert, Adrian, ???
-@end itemize
+@item sounds-wav
+XEmacs Microsoft sound files.
-Portraits and email of some of the major developers:
+@item speedbar
+Provides a separate frame with convenient references.
-@itemize @bullet
-@item @email{andy@(a)xemacs.org, Andy Piper}
-@html
-<br><img src="piper.png" alt="Portrait of Andy
Piper"><br>
-@end html
+@item strokes
+Mouse enhancement utility.
-@item @email{ben@(a)xemacs.org, Ben Wing}
-@html
-<br><img src="ben.png" alt="Portrait of Ben
Wing"><br>
-@end html
+@item supercite
+An Emacs citation tool for News & Mail messages.
-@item @email{cthomp@(a)xemacs.org, Chuck Thompson}
-@html
-<br><img src="cthomp.png" alt="Portrait of Chuck
Thompson"><br>
-@end html
+@item texinfo
+XEmacs TeXinfo support.
+
+@item text-modes
+Miscellaneous support for editing text files.
-@item @email{hniksic@(a)xemacs.org, Hrvoje Niksic}
+@item textools
+Miscellaneous TeX support.
-@html
-<br><img src="hniksic.png" alt="Portrait of Hrvoje
Niksic"><br>
-@end html
+@item time
+Display time & date on the modeline.
-@item @email{jwz@(a)jwz.org, Jamie Zawinski}
-@html
-<br><img src="jwz.png" alt="Portrait of Jamie
Zawinski"><br>
-@end html
+@item tm
+Emacs MIME support. Not needed for gnus >= 5.8.0.
-@item @email{martin@(a)xemacs.org, Martin Buchholz}
-@html
-<br><img src="martin.png" alt="Portrait of Martin
Buchholz"><br>
-@end html
+@item tooltalk
+Support for building with Tooltalk.
-@item @email{mly@(a)adoc.xerox.com, Richard Mlynarik}
-@html
-<br><img src="mly.png" alt="Portrait of Richard
Mlynarik"><br>
-@end html
+@item tpu
+DEC EDIT/TPU support.
-@item @email{stephen@(a)xemacs.org, Stephen Turnbull}
+@item tramp
+Remote shell-based file editing. This is similar to EFS or Ange-FTP,
+but works with rsh/ssh and rcp/scp.
-@item @email{steve@(a)xemacs.org, Steve Baur}
-@html
-<br><img src="slb.png" alt="Portrait of Steve
Baur"><br>
-@end html
-@end itemize
+@item vc
+Version Control for Free systems.
-Many other people have contributed to XEmacs; this is partially
-enumerated in the @samp{About XEmacs} option in the Help menu.
+@item vc-cc
+Version Control for ClearCase (UnFree) systems.
-@node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
-@unnumberedsubsec Q1.3.2: Who contributed to this version of the FAQ?
+@item vhdl
+Support for VHDL.
-The current version of this FAQ was created by @email{ben@(a)xemacs.org,
-Ben Wing}.
+@item view-process
+A Unix process browsing tool.
-@node Q1.3.3, Q1.4.1, Q1.3.2, Introduction
-@unnumberedsubsec Q1.3.3: Who contributed to the FAQ in the past?
+@item viper
+VI emulation support.
-This is only a partial list, as many names were lost in a hard disk
-crash some time ago.
+@item vm
+An Emacs mailer.
-@itemize @bullet
-@item @email{steve@(a)xemacs.org, SL Baur}
+@item w3
+A Web browser.
-@item @email{hniksic@(a)xemacs.org, Hrvoje Niksic}
+@item x-symbol
+Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
-@item @email{binge@(a)aloft.att.com, Curtis.N.Bingham}
+@item xemacs-base
+Fundamental XEmacs support, you almost certainly need this.
-@item @email{bruncott@(a)dormeur.inria.fr, Georges Brun-Cottan}
+@item xemacs-devel
+XEmacs Lisp developer support. This package contains utilities for
+supporting Lisp development. It is a single-file package so it may be
+tailored.
-@item @email{rjc@(a)cogsci.ed.ac.uk, Richard Caley}
+@item xlib
+Emacs interface to X server.
-@item @email{cognot@(a)ensg.u-nancy.fr, Richard Cognot}
+@item xslide
+XSL editing support.
-@item @email{daku@(a)nortel.ca, Mark Daku}
+@item xslt-process
+A minor mode for (X)Emacs which allows running an XSLT processor on a
+buffer.
-@item @email{wgd@(a)martigny.ai.mit.edu, William G. Dubuque}
+@item xwem
+X Emacs Window Manager.
-@item @email{eeide@(a)cs.utah.edu, Eric Eide}
+@item zenirc
+ZENIRC IRC Client.
+@end table
-@item @email{af@(a)biomath.jussieu.fr, Alain Fauconnet}
+@subheading Mule Support (mule)
-@item @email{cflatter@(a)nrao.edu, Chris Flatters}
+MULti-lingual Enhancement. Support for world scripts such as
+Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
+To use these packages your XEmacs must be compiled with Mule
+support.
-@item @email{ginsparg@(a)adra.com, Evelyn Ginsparg}
+@table @asis
+@item edict
+MULE: Lisp Interface to EDICT, Kanji Dictionary.
-@item @email{hall@(a)aplcenmp.apl.jhu.edu, Marty Hall}
+@item egg-its
+MULE: Wnn (4.2 and 6) support. SJ3 support.
-@item @email{dkindred@(a)cmu.edu, Darrell Kindred}
+@item latin-unity
+MULE: find single ISO 8859 character set to encode a buffer.
-@item @email{dmoore@(a)ucsd.edu, David Moore}
+@item latin-unity
+Unify character sets in a buffer. When characters belong to disjoint
+character sets, this attempts to translate the characters so
+that they belong to one character set. If the buffer coding system is
+not sufficient, this suggests different coding systems.
-@item @email{arup+@(a)cmu.edu, Arup Mukherjee}
+@item leim
+MULE: Quail. All non-English and non-Japanese language support.
-@item @email{nickel@(a)prz.tu-berlin.de, Juergen Nickelsen}
+@item locale
+MULE: Localized menubars and localized splash screens.
-@item @email{powell@(a)csl.ncsa.uiuc.edu, Kevin R. Powell}
+@item lookup
+Dictionary support. (This isn't an English dictionary program)
-@item @email{dworkin@(a)ccs.neu.edu, Justin Sheehy}
+@item mule-base
+MULE: Basic Mule support, required for building with Mule.
-@item @email{stig@(a)hackvan.com, Stig}
+@item mule-ucs
+MULE: Extended coding systems (including Unicode) for XEmacs.
-@item @email{Aki.Vehtari@(a)hut.fi, Aki Vehtari}
-@end itemize
+@item mule-ucs
+Extended coding systems (including Unicode) for XEmacs.
+
+@item skk
+Another Japanese Language Input Method. Can be used without a
+separate process running as a dictionary server.
+@end table
-@unnumberedsec 1.4: Internationalization
+@unnumberedsec 1.8: Internationalization
-@node Q1.4.1, Q1.4.2, Q1.3.3, Introduction
-@unnumberedsubsec Q1.4.1: What is the status of internationalization support aka MULE
(including Asian language support)?
+@node Q1.8.1, Q1.8.2, Q1.7.1, Introduction
+@unnumberedsubsec Q1.8.1: What is the status of internationalization support aka MULE
(including Asian language support)?
Both the stable and development versions of XEmacs include
internationalization support (aka MULE). MULE currently (21.4) works on
@@ -1672,8 +2540,8 @@
instability of the development tree. Binaries compiled without MULE
support run faster than MULE capable XEmacsen.
-@node Q1.4.2, Q1.4.3, Q1.4.1, Introduction
-@unnumberedsubsec Q1.4.2: How can I help with internationalization?
+@node Q1.8.2, Q1.8.3, Q1.8.1, Introduction
+@unnumberedsubsec Q1.8.2: How can I help with internationalization?
If you would like to help, you may want to join the
@email{xemacs-mule@(a)xemacs.org} mailing list. Especially needed are
@@ -1683,24 +2551,24 @@
Translations of the TUTORIAL and man page are welcome, and XEmacs does
support multilingual menus, but we have few current translations.
-(a)xref{Q1.2.2, How do I become a Beta Tester?}.
+(a)xref{Q1.5.2, How do I become a Beta Tester?}.
-@node Q1.4.3, Q1.4.4, Q1.4.2, Introduction
-@unnumberedsubsec Q1.4.3: How do I type non-ASCII characters?
+@node Q1.8.3, Q1.8.4, Q1.8.2, Introduction
+@unnumberedsubsec Q1.8.3: How do I type non-ASCII characters?
@xref{Q3.0.6, How can you type in special characters in XEmacs?}, in
part 3 of this FAQ, for some simple methods that also work in non-MULE
builds of XEmacs (but only for one-octet coded character sets, and
mostly for ISO 8859/1). Many of the methods available for Cyrillic
-((a)pxref{Q1.4.7, How about Cyrillic modes?}) work without MULE. MULE
-has more general capabilities. @xref{Q1.4.5, Please explain the
+((a)pxref{Q1.8.7, How about Cyrillic modes?}) work without MULE. MULE
+has more general capabilities. @xref{Q1.8.5, Please explain the
various input methods in MULE/XEmacs}.
@xref{Q4.0.8, How do I display non-ASCII characters?}, which covers
display of non-ASCII characters.
-@node Q1.4.4, Q1.4.5, Q1.4.3, Introduction
-@unnumberedsubsec Q1.4.4: Can XEmacs messages come out in a different language?
+@node Q1.8.4, Q1.8.5, Q1.8.3, Introduction
+@unnumberedsubsec Q1.8.4: Can XEmacs messages come out in a different language?
The message-catalog support was written but is badly bit-rotted. XEmacs
20 and 21 did @emph{not} support it, and early releases of XEmacs 22
@@ -1718,8 +2586,8 @@
The name of the resource is derived from the non-localized entry by
removing punctuation and capitalizing as above.
-@node Q1.4.5, Q1.4.6, Q1.4.4, Introduction
-@unnumberedsubsec Q1.4.5: Please explain the various input methods in MULE/XEmacs
+@node Q1.8.5, Q1.8.6, Q1.8.4, Introduction
+@unnumberedsubsec Q1.8.5: Please explain the various input methods in MULE/XEmacs
Mule supports a wide variety of input methods. There are three basic
classes: Lisp implementations, generic platform support, and library
@@ -1811,8 +2679,8 @@
Much of this information was provided by @email{morioka@(a)jaist.ac.jp,
MORIOKA Tomohiko}.
-@node Q1.4.6, Q1.4.7, Q1.4.5, Introduction
-@unnumberedsubsec Q1.4.6: How do I portably code for MULE/XEmacs?
+@node Q1.8.6, Q1.8.7, Q1.8.5, Introduction
+@unnumberedsubsec Q1.8.6: How do I portably code for MULE/XEmacs?
MULE has evolved rapidly over the last few years, and the original third
party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite
@@ -1876,8 +2744,8 @@
@end lisp
@end quotation
-@node Q1.4.7, Q1.4.8, Q1.4.6, Introduction
-@unnumberedsubsec Q1.4.7: How about Cyrillic modes?
+@node Q1.8.7, Q1.8.8, Q1.8.6, Introduction
+@unnumberedsubsec Q1.8.7: How about Cyrillic modes?
@email{ilya@(a)math.ohio-state.edu, Ilya Zakharevich} writes:
@@ -1914,8 +2782,8 @@
XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html}
@end quotation
-@node Q1.4.8, Q1.4.9, Q1.4.7, Introduction
-@unnumberedsubsec Q1.4.8: Does XEmacs support Unicode?
+@node Q1.8.8, Q1.8.9, Q1.8.7, Introduction
+@unnumberedsubsec Q1.8.8: Does XEmacs support Unicode?
To get Unicode support, you need a Mule-enabled XEmacs.
@@ -1923,7 +2791,7 @@
don't yet use it as the internal encoding.
21.4 supports Unicode partially -- as an external encoding for files,
-processes, and terminals, but without font support. @xref{Q1.4.9, How
+processes, and terminals, but without font support. @xref{Q1.8.9, How
does XEmacs display Unicode?}. To get Unicode support in 21.4,
install Mule-UCS from packages in the usual way, and put
@@ -1938,13 +2806,13 @@
that files that are not UTF-8 are being mis-recognized as UTF-8.
Install standard national fonts (not Unicode fonts) for all character
-sets you use. @xref{Q1.4.9, How does XEmacs display Unicode??}.
+sets you use. @xref{Q1.8.9, How does XEmacs display Unicode??}.
Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not
support 31-bit forms of Unicode (UTF-32 or UCS-4).
-@node Q1.4.9, Q1.5.1, Q1.4.8, Introduction
-@unnumberedsubsec Q1.4.9: How does XEmacs display Unicode?
+@node Q1.8.9, , Q1.8.8, Introduction
+@unnumberedsubsec Q1.8.9: How does XEmacs display Unicode?
Mule doesn't have a Unicode charset internally, so there's nothing to
bind a Unicode registry to. It would not be straightforward to create,
@@ -1965,158 +2833,6 @@
Real Unicode support will be introduced in XEmacs 22.0.
-@unnumberedsec 1.5: Getting Started
-
-@node Q1.5.1, Q1.5.2, Q1.4.9, Introduction
-@unnumberedsubsec Q1.5.1: What is an @file{init.el} or @file{.emacs} and is there a
sample one?
-
-The @file{init.el} or @file{.emacs} file is used to customize XEmacs to
-your tastes. Starting in 21.4, the preferred location for the init file
-is @file{~/.xemacs/init.el}; in previous versions, it was
-(a)file{~/.emacs}. 21.4 still accepts the old location, but the first
-time you run it, it will ask to migrate your file to the new location.
-If you answer yes, the file will be moved, and a "compatibility"
-(a)file{.emacs} file will be placed in the old location so that you can
-still run older versions of XEmacs, and versions of GNU Emacs, which
-expect the old location. The @file{.emacs} file present is just a stub
-that loads the real file in @file{~/.xemacs/init.el}.
-
-No two init files are alike, nor are they expected to be alike, but
-that's the point. The XEmacs distribution contains an excellent starter
-example in the @file{etc/} directory called @file{sample.init.el}
-(starting in 21.4) or @file{sample.emacs} in older versions. Copy this
-file from there to @file{~/.xemacs/init.el} (starting in 21.4) or
-(a)file{~/.emacs} in older versions, where @samp{~} means your home
-directory, of course. Then edit it to suit.
-
-You may bring the @file{sample.init.el} or @file{sample.emacs} file into
-an XEmacs buffer from the menubar. (The menu entry for it is always
-under the @samp{Help} menu, but its location under that has changed in
-various versions. Recently, look under the @samp{Samples} submenu.) To
-determine the location of the @file{etc/} directory type the command
-@kbd{C-h v data-directory @key{RET}}.
-
-@node Q1.5.2, Q1.5.3, Q1.5.1, Introduction
-@unnumberedsubsec Q1.5.2: Where do I put my @file{init.el} file?
-
-(a)file{init.el} is the name of the init file starting with 21.4, and is
-located in the subdirectory @file{.xemacs/} of your home directory. In
-prior versions, the init file is called @file{.emacs} and is located in
-your home directory.
-
-Your home directory under Windows is determined by the @samp{HOME}
-environment variable. If this is not set, it defaults to @samp{C:\}.
-To set this variable, modify @file{AUTOEXEC.BAT} under Windows 95/98, or
-select @samp{Control Panel->System->Advanced->Environment Variables...}
-under Windows NT/2000.
-
-@node Q1.5.3, Q1.5.4, Q1.5.2, Introduction
-@unnumberedsubsec Q1.5.3: Can I use the same @file{init.el} with the other Emacs?
-
-Yes. The sample @file{init.el} included in the XEmacs
-distribution will show you how to handle different versions and flavors
-of Emacs.
-
-@node Q1.5.4, Q1.5.5, Q1.5.3, Introduction
-@unnumberedsubsec Q1.5.4: Any good XEmacs tutorials around?
-
-There's the XEmacs tutorial available from the Help Menu under
-@samp{Help->Tutorials}, or by typing @kbd{C-h t}. To check whether
-it's available in a non-english language, type @kbd{C-u C-h t TAB}, type
-the first letters of your preferred language, then type @key{RET}.
-
-@comment There's an Emacs Lisp tutorial at
-@comment
-@comment @example
-@comment @uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}.
-@comment @end example
-@comment
-@comment @email{erik@(a)petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web
-@comment page at
-@comment @iftex
-@comment @*
-@comment @end iftex
-@comment @uref{http://petaxp.rug.ac.be/~erik/xemacs/}.
-
-@node Q1.5.5, Q1.5.6, Q1.5.4, Introduction
-@unnumberedsubsec Q1.5.5: May I see an example of a useful XEmacs Lisp function?
-
-The following function does a little bit of everything useful. It does
-something with the prefix argument, it examines the text around the
-cursor, and it's interactive so it may be bound to a key. It inserts
-copies of the current word the cursor is sitting on at the cursor. If
-you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will
-insert 3 copies.
-
-@lisp
-(defun double-word (count)
- "Insert a copy of the current word underneath the cursor"
- (interactive "*p")
- (let (here there string)
- (save-excursion
- (forward-word -1)
- (setq here (point))
- (forward-word 1)
- (setq there (point))
- (setq string (buffer-substring here there)))
- (while (>= count 1)
- (insert string)
- (decf count))))
-@end lisp
-
-The best way to see what is going on here is to let XEmacs tell you.
-Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor
-sitting just to the right of the function you want explained. Eg. move
-the cursor to the SPACE between @code{interactive} and @samp{"*p"} and
-hit @kbd{C-h f} to see what the function @code{interactive} does. Doing
-this will tell you that the @code{*} requires a writable buffer, and
-@code{p} converts the prefix argument to a number, and
-@code{interactive} allows you to execute the command with @kbd{M-x}.
-
-@node Q1.5.6, Q1.5.7, Q1.5.5, Introduction
-@unnumberedsubsec Q1.5.6: And how do I bind it to a key?
-
-To bind to a key do:
-
-@lisp
-(global-set-key "\C-cd" 'double-word)
-@end lisp
-
-Or interactively, @kbd{M-x global-set-key} and follow the prompts.
-
-@node Q1.5.7, Q1.5.8, Q1.5.6, Introduction
-@unnumberedsubsec Q1.5.7: What's the difference between a macro and a function?
-
-Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual:
-
-@dfn{Macros} enable you to define new control constructs and other
-language features. A macro is defined much like a function, but instead
-of telling how to compute a value, it tells how to compute another Lisp
-expression which will in turn compute the value. We call this
-expression the @dfn{expansion} of the macro.
-
-Macros can do this because they operate on the unevaluated expressions
-for the arguments, not on the argument values as functions do. They can
-therefore construct an expansion containing these argument expressions
-or parts of them.
-
-Do not confuse the two terms with @dfn{keyboard macros}, which are
-another matter, entirely. A keyboard macro is a key bound to several
-other keys. Refer to manual for details.
-
-@node Q1.5.8, , Q1.5.7, Introduction
-@unnumberedsubsec Q1.5.8: What is @code{Custom}?
-
-@code{Custom} is a system for customizing XEmacs options.
-
-You can access @code{Advanced (Customize)} from the @code{Options} menu
-or invoking one of customize commands by typing eg.
-@kbd{M-x customize}, @kbd{M-x customize-face},
-@kbd{M-x customize-variable} or @kbd{M-x customize-apropos}.
-
-There is also new @samp{browser} mode for Customize.
-Try it out with @kbd{M-x customize-browse}
-
@node Installation, Editing, Introduction, Top
@unnumbered 2 Installation and Troubleshooting
@@ -2442,11 +3158,11 @@
there is little reason not to use it.
The second way to build is the Cygwin port. It takes advantage of
-Cygnus emulation library under Win32. @xref{Q1.1.4, What are Cygwin
+Cygnus emulation library under Win32. @xref{Q1.2.5, What are Cygwin
and MinGW, and do I need them to run XEmacs?}, for more information.
A third way is the MinGW port. It uses the Cygwin environment to
-build but does not require it at runtime. @xref{Q1.1.4, What are
+build but does not require it at runtime. @xref{Q1.2.5, What are
Cygwin and MinGW, and do I need them to run XEmacs?}, for more
information.
@@ -2465,7 +3181,7 @@
some beta testers currently trying to compile with
VC.NET, aka version
7.0, but we can't yet report complete success.) For the Cygwin and
MinGW versions, you need the Cygwin environment, which comes with GCC,
-the compiler used for those versions. @xref{Q1.1.4, What are Cygwin
+the compiler used for those versions. @xref{Q1.2.5, What are Cygwin
and MinGW, and do I need them to run XEmacs?}, for more information on
Cygwin and MinGW.
@@ -3195,7 +3911,7 @@
problem for most people. 21.4 implements "portable dumping", which
eliminates the problem altogether. We recommend you use the 21.4
binaries, but you can use the 21.1 binaries if you are very paranoid
-about stability. @xref{Q1.0.4, Are binaries available?}.
+about stability. @xref{Q1.1.2, Are binaries available?}.
@node Q2.4.3, Q2.4.4, Q2.4.2, Installation
@unnumberedsubsec Q2.4.3: XEmacs won't start without network.
@@ -5957,95 +6673,39 @@
section is devoted to advanced customization using XEmacs Lisp.
@menu
-7.0: Online Help
-* Q7.0.1:: How can I get two instances of info?
-* Q7.0.2:: How do I add new Info directories?
-
-7.1: Emacs Lisp and @file{init.el}
-* Q7.1.1:: What version of Emacs am I running?
-* Q7.1.2:: How can I evaluate Emacs-Lisp expressions?
-* Q7.1.3:: @code{(setq tab-width 6)} behaves oddly.
-* Q7.1.4:: How can I add directories to the @code{load-path}?
-* Q7.1.5:: How to check if a lisp function is defined?
-* Q7.1.6:: Can I force the output of @code{(face-list)} to a buffer?
-
-7.2: Emacs Lisp Programming Techniques
-* Q7.2.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
-* Q7.2.2:: Can I generate "fake" keyboard events?
-* Q7.2.3:: Could you explain @code{read-kbd-macro} in more detail?
-* Q7.2.4:: What is the performance hit of @code{let}?
-* Q7.2.5:: What is the recommended use of @code{setq}?
-* Q7.2.6:: What is the typical misuse of @code{setq}?
-* Q7.2.7:: I like the @code{do} form of cl, does it slow things down?
-* Q7.2.8:: I like recursion, does it slow things down?
-* Q7.2.9:: How do I put a glyph as annotation in a buffer?
-* Q7.2.10:: @code{map-extents} won't traverse all of my extents!
-* Q7.2.11:: My elisp program is horribly slow. Is there an easy way to find out
where it spends time?
-
-7.3: Mathematics
-* Q7.3.1:: What are bignums, ratios, and bigfloats in Lisp?
-* Q7.3.2:: XEmacs segfaults when I use very big numbers!
-* Q7.3.3:: Bignums are really slow!
-* Q7.3.4:: Equal bignums don't compare as equal! What gives?
+7.0: Emacs Lisp and @file{init.el}
+* Q7.0.1:: What version of Emacs am I running?
+* Q7.0.2:: How can I evaluate Emacs-Lisp expressions?
+* Q7.0.3:: @code{(setq tab-width 6)} behaves oddly.
+* Q7.0.4:: How can I add directories to the @code{load-path}?
+* Q7.0.5:: How to check if a lisp function is defined?
+* Q7.0.6:: Can I force the output of @code{(face-list)} to a buffer?
+
+7.1: Emacs Lisp Programming Techniques
+* Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
+* Q7.1.2:: Can I generate "fake" keyboard events?
+* Q7.1.3:: Could you explain @code{read-kbd-macro} in more detail?
+* Q7.1.4:: What is the performance hit of @code{let}?
+* Q7.1.5:: What is the recommended use of @code{setq}?
+* Q7.1.6:: What is the typical misuse of @code{setq}?
+* Q7.1.7:: I like the @code{do} form of cl, does it slow things down?
+* Q7.1.8:: I like recursion, does it slow things down?
+* Q7.1.9:: How do I put a glyph as annotation in a buffer?
+* Q7.1.10:: @code{map-extents} won't traverse all of my extents!
+* Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out
where it spends time?
+
+7.2: Mathematics
+* Q7.2.1:: What are bignums, ratios, and bigfloats in Lisp?
+* Q7.2.2:: XEmacs segfaults when I use very big numbers!
+* Q7.2.3:: Bignums are really slow!
+* Q7.2.4:: Equal bignums don't compare as equal! What gives?
@end menu
-@unnumberedsec 7.0: Online Help
+@unnumberedsec 7.0: Emacs Lisp and @file{init.el}
@node Q7.0.1, Q7.0.2, Advanced, Advanced
-@unnumberedsubsec Q7.0.1: How can I get two instances of info?
-
-Before 21.4, you can't. The @code{info} package does not provide for
-multiple info buffers. In 21.4, this should be fixed. #### how?
-
-@node Q7.0.2, Q7.1.1, Q7.0.1, Advanced
-@unnumberedsubsec Q7.0.2: How do I add new Info directories?
-
-You use something like:
-
-@lisp
-(setq Info-directory-list (cons
- (expand-file-name "~/info")
- Info-default-directory-list))
-@end lisp
-
-@email{davidm@(a)prism.kla.com, David Masterson} writes:
-
-@quotation
-Emacs Info and XEmacs Info do many things differently. If you're trying to
-support a number of versions of Emacs, here are some notes to remember:
-
-@enumerate
-@item
-Emacs Info scans @code{Info-directory-list} from right-to-left while
-XEmacs Info reads it from left-to-right, so append to the @emph{correct}
-end of the list.
-
-@item
-Use @code{Info-default-directory-list} to initialize
-@code{Info-directory-list} @emph{if} it is available at startup, but not
-all Emacsen define it.
-
-@item
-Emacs Info looks for a standard @file{dir} file in each of the
-directories scanned from #1 and magically concatenates them together.
-
-@item
-XEmacs Info looks for a @file{localdir} file (which consists of just the
-menu entries from a @file{dir} file) in each of the directories scanned
-from #1 (except the first), does a simple concatenation of them, and
-magically attaches the resulting list to the end of the menu in the
-@file{dir} file in the first directory.
-@end enumerate
-
-Another alternative is to convert the documentation to HTML with
-texi2html and read it from a web browser like Lynx or W3.
-@end quotation
-
-@unnumberedsec 7.1: Emacs Lisp and @file{init.el}
+@unnumberedsubsec Q7.0.1: What version of Emacs am I running?
-@node Q7.1.1, Q7.1.2, Q7.0.2, Advanced
-@unnumberedsubsec Q7.1.1: What version of Emacs am I running?
-
How can @file{init.el} determine which of the family of
Emacsen I am using?
@@ -6061,8 +6721,8 @@
(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
@end lisp
-@node Q7.1.2, Q7.1.3, Q7.1.1, Advanced
-@unnumberedsubsec Q7.1.2: How can I evaluate Emacs-Lisp expressions?
+@node Q7.0.2, Q7.0.3, Q7.0.1, Advanced
+@unnumberedsubsec Q7.0.2: How can I evaluate Emacs-Lisp expressions?
I know I can evaluate Elisp expressions from @code{*scratch*} buffer
with @kbd{C-j} after the expression. How do I do it from another
@@ -6071,8 +6731,8 @@
Press @kbd{M-:} (the default binding of @code{eval-expression}), and
enter the expression to the minibuffer.
-@node Q7.1.3, Q7.1.4, Q7.1.2, Advanced
-@unnumberedsubsec Q7.1.3: @code{(setq tab-width 6)} behaves oddly.
+@node Q7.0.3, Q7.0.4, Q7.0.2, Advanced
+@unnumberedsubsec Q7.0.3: @code{(setq tab-width 6)} behaves oddly.
If you put @code{(setq tab-width 6)} in your
@file{init.el} file it does not work! Is there a reason
@@ -6081,8 +6741,8 @@
Use @code{setq-default} instead, since @code{tab-width} is
all-buffer-local.
-@node Q7.1.4, Q7.1.5, Q7.1.3, Advanced
-@unnumberedsubsec Q7.1.4: How can I add directories to the @code{load-path}?
+@node Q7.0.4, Q7.0.5, Q7.0.3, Advanced
+@unnumberedsubsec Q7.0.4: How can I add directories to the @code{load-path}?
Here are two ways to do that, one that puts your directories at the
front of the load-path, the other at the end:
@@ -6109,8 +6769,8 @@
@end lisp
@end quotation
-@node Q7.1.5, Q7.1.6, Q7.1.4, Advanced
-@unnumberedsubsec Q7.1.5: How to check if a lisp function is defined?
+@node Q7.0.5, Q7.0.6, Q7.0.4, Advanced
+@unnumberedsubsec Q7.0.5: How to check if a lisp function is defined?
Use the following elisp:
@@ -6134,8 +6794,8 @@
much better more often in more places if it did the above instead of
trying to divine its environment from the value of one variable.
-@node Q7.1.6, Q7.2.1, Q7.1.5, Advanced
-@unnumberedsubsec Q7.1.6: Can I force the output of @code{(face-list)} to a buffer?
+@node Q7.0.6, Q7.1.1, Q7.0.5, Advanced
+@unnumberedsubsec Q7.0.6: Can I force the output of @code{(face-list)} to a buffer?
It would be good having it in a buffer, as the output of
@code{(face-list)} is too wide to fit to a minibuffer.
@@ -6147,10 +6807,10 @@
simply press @kbd{C-h l} to get the former minibuffer contents in a
buffer.
-@unnumberedsec 7.2: Emacs Lisp Programming Techniques
+@unnumberedsec 7.1: Emacs Lisp Programming Techniques
-@node Q7.2.1, Q7.2.2, Q7.1.6, Advanced
-@unnumberedsubsec Q7.2.1: What is the difference in key sequences between XEmacs and
GNU Emacs?
+@node Q7.1.1, Q7.1.2, Q7.0.6, Advanced
+@unnumberedsubsec Q7.1.1: What is the difference in key sequences between XEmacs and
GNU Emacs?
@email{clerik@(a)naggum.no, Erik Naggum} writes;
@@ -6182,8 +6842,8 @@
<up>}, and converts it to the internal key representation of the Emacs
you use. The function is available both on XEmacs and GNU Emacs.
-@node Q7.2.2, Q7.2.3, Q7.2.1, Advanced
-@unnumberedsubsec Q7.2.2: Can I generate "fake" keyboard events?
+@node Q7.1.2, Q7.1.3, Q7.1.1, Advanced
+@unnumberedsubsec Q7.1.2: Can I generate "fake" keyboard events?
I wonder if there is an interactive function that can generate
@dfn{fake} keyboard events. This way, I could simply map them inside
@@ -6203,8 +6863,8 @@
(lambda () (interactive) (cg--generate-char-event 4)))
@end lisp
-@node Q7.2.3, Q7.2.4, Q7.2.2, Advanced
-@unnumberedsubsec Q7.2.3: Could you explain @code{read-kbd-macro} in more detail?
+@node Q7.1.3, Q7.1.4, Q7.1.2, Advanced
+@unnumberedsubsec Q7.1.3: Could you explain @code{read-kbd-macro} in more detail?
The @code{read-kbd-macro} function returns the internal Emacs
representation of a human-readable string (which is its argument).
@@ -6294,8 +6954,8 @@
use whitespace.
@end quotation
-@node Q7.2.4, Q7.2.5, Q7.2.3, Advanced
-@unnumberedsubsec Q7.2.4: What is the performance hit of @code{let}?
+@node Q7.1.4, Q7.1.5, Q7.1.3, Advanced
+@unnumberedsubsec Q7.1.4: What is the performance hit of @code{let}?
In most cases, not noticeable. Besides, there's no avoiding
@code{let}---you have to bind your local variables, after all. Some
@@ -6304,8 +6964,8 @@
future implementation), @code{let}-s should be used (nested) in a way to
provide the clearest code.
-@node Q7.2.5, Q7.2.6, Q7.2.4, Advanced
-@unnumberedsubsec Q7.2.5: What is the recommended use of @code{setq}?
+@node Q7.1.5, Q7.1.6, Q7.1.4, Advanced
+@unnumberedsubsec Q7.1.5: What is the recommended use of @code{setq}?
@itemize @bullet
@item Global variables
@@ -6367,8 +7027,8 @@
@end lisp
@end itemize
-@node Q7.2.6, Q7.2.7, Q7.2.5, Advanced
-@unnumberedsubsec Q7.2.6: What is the typical misuse of @code{setq}?
+@node Q7.1.6, Q7.1.7, Q7.1.5, Advanced
+@unnumberedsubsec Q7.1.6: What is the typical misuse of @code{setq}?
A typical misuse is probably @code{setq}ing a variable that was meant to
be local. Such a variable will remain bound forever, never to be
@@ -6409,8 +7069,8 @@
** assignment to free variable flurghoze
@end lisp
-@node Q7.2.7, Q7.2.8, Q7.2.6, Advanced
-@unnumberedsubsec Q7.2.7: I like the @code{do} form of cl, does it slow things down?
+@node Q7.1.7, Q7.1.8, Q7.1.6, Advanced
+@unnumberedsubsec Q7.1.7: I like the @code{do} form of cl, does it slow things down?
It shouldn't. Here is what Dave Gillespie has to say about cl.el
performance:
@@ -6451,8 +7111,8 @@
function.
@end quotation
-@node Q7.2.8, Q7.2.9, Q7.2.7, Advanced
-@unnumberedsubsec Q7.2.8: I like recursion, does it slow things down?
+@node Q7.1.8, Q7.1.9, Q7.1.7, Advanced
+@unnumberedsubsec Q7.1.8: I like recursion, does it slow things down?
Yes. The Emacs byte-compiler cannot do much to optimize recursion. But
think well whether this is a real concern in Emacs. Much of the Emacs
@@ -6462,8 +7122,8 @@
Please try not to make your code much uglier to gain a very small speed
gain. It's not usually worth it.
-@node Q7.2.9, Q7.2.10, Q7.2.8, Advanced
-@unnumberedsubsec Q7.2.9: How do I put a glyph as annotation in a buffer?
+@node Q7.1.9, Q7.1.10, Q7.1.8, Advanced
+@unnumberedsubsec Q7.1.9: How do I put a glyph as annotation in a buffer?
Here is a solution that will insert the glyph annotation at the
beginning of buffer:
@@ -6489,8 +7149,8 @@
name), and inserts the glyph at @code{(point)} instead of
@code{(point-min)}.
-@node Q7.2.10, Q7.2.11, Q7.2.9, Advanced
-@unnumberedsubsec Q7.2.10: @code{map-extents} won't traverse all of my extents!
+@node Q7.1.10, Q7.1.11, Q7.1.9, Advanced
+@unnumberedsubsec Q7.1.10: @code{map-extents} won't traverse all of my extents!
I tried to use @code{map-extents} to do an operation on all the extents
in a region. However, it seems to quit after processing a random number
@@ -6520,8 +7180,8 @@
nil))
@end lisp
-@node Q7.2.11, Q7.3.1, Q7.2.10, Advanced
-@unnumberedsubsec Q7.2.11: My elisp program is horribly slow. Is there an easy way to
find out where it spends time?
+@node Q7.1.11, Q7.2.1, Q7.1.10, Advanced
+@unnumberedsubsec Q7.1.11: My elisp program is horribly slow. Is there an easy way to
find out where it spends time?
@c New
@email{hniksic@(a)xemacs.org, Hrvoje Niksic} writes:
@@ -6532,10 +7192,10 @@
where the time is being spent.
@end quotation
-@unnumberedsec 7.3: Mathematics
+@unnumberedsec 7.2: Mathematics
-@node Q7.3.1, Q7.3.2, Q7.2.11, Advanced
-@unnumberedsubsec Q7.3.1: What are bignums, ratios, and bigfloats in Lisp?
+@node Q7.2.1, Q7.2.2, Q7.1.11, Advanced
+@unnumberedsubsec Q7.2.1: What are bignums, ratios, and bigfloats in Lisp?
Thanks to @email{james@(a)xemacs.org, Jerry James}, XEmacs 21.5.18 and
later can use the capabilities of multiple-precision libraries that may
@@ -6563,7 +7223,7 @@
@itemize
@item
Arithmetic can cause a segfault, depending on your MP library
-(a)ref{Q7.3.2, XEmacs segfaults when I use very big numbers!}.
+(a)ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}.
@item
Terminology is not Common-Lisp-conforming. For example, ``integer'' for
@@ -6589,7 +7249,7 @@
can't be ruled out. ``Arbitrary'' precision means precisely what it
says. If you work with extremely large numbers, your machine may
arbitrarily decide to hand you an unpleasant surprise rather than a
-bignum @ref{Q7.3.2, XEmacs segfaults when I use very big numbers!}.
+bignum @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}.
To configure with GNU MP, add
@samp{--use-number-lib=gmp}
@@ -6604,8 +7264,8 @@
than to writing new code, feel free to fill in the gap!
-@node Q7.3.2, Q7.3.3, Q7.3.1, Advanced
-@unnumberedsubsec Q7.3.2: XEmacs segfaults when I use very big numbers!
+@node Q7.2.2, Q7.2.3, Q7.2.1, Advanced
+@unnumberedsubsec Q7.2.2: XEmacs segfaults when I use very big numbers!
GMP by default allocates temporaries on the stack. If you run out of
stack space, you're dead; there is no way that we know of to reliably
@@ -6622,8 +7282,8 @@
yet.)
-@node Q7.3.3, Q7.3.4, Q7.3.2, Advanced
-@unnumberedsubsec Q7.3.3: Bignums are really slow!
+@node Q7.2.3, Q7.2.4, Q7.2.2, Advanced
+@unnumberedsubsec Q7.2.3: Bignums are really slow!
Many Linux distributions compile all their packages for the i386, and
this is costly. An optimized version can give you two or three orders
@@ -6631,8 +7291,8 @@
See @uref{http://www.swox.com/gmp/gmp-speed.html}.)
-@node Q7.3.4, , Q7.3.3, Advanced
-@unnumberedsubsec Q7.3.4: Equal bignums don't compare as equal! What gives?
+@node Q7.2.4, , Q7.2.3, Advanced
+@unnumberedsubsec Q7.2.4: Equal bignums don't compare as equal! What gives?
Ah, Grasshopper, I see you are using @code{(eq x y)}. The Bodhisattva
CLTL2 warned of the illusion that equal numbers would be @samp{eq}!
@@ -6654,6 +7314,7 @@
elsewhere in XEmacs.
@menu
+8.0: TeX
* Q8.0.1:: Is there something better than LaTeX mode?
* Q8.0.2:: What is AUCTeX? Where do you get it?
* Q8.0.3:: Problems installing AUCTeX.
@@ -7010,6 +7671,7 @@
the same directory, or @file{OONEWS} for really old versions.
@menu
+9.0: Changes
* Q9.0.1:: What new features will be in XEmacs soon?
* Q9.0.2:: What's new in XEmacs 21.4?
* Q9.0.3:: What's new in XEmacs 21.1?
@@ -7339,6 +8001,7 @@
to released XEmacsen, but users can apply themselves) are also accepted.
@menu
+10.0: XEmacs 21.1
* Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1.
@end menu
1.1 XEmacs/xemacs/man/beta.texi
Index: beta.texi
===================================================================
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename ../info/beta.info
@settitle Info on beta versions of XEmacs
@direntry
* Beta: (beta). Info on beta versions of XEmacs.
@end direntry
@c footnotestyle separate
@c paragraphindent 2
@c %**end of header
@ifinfo
This file describes info relevant to beta versions of XEmacs.
Copyright @copyright{} 2005 Ben Wing.
This file is part of XEmacs.
XEmacs is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with XEmacs; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
@end ifinfo
@c Combine indices.
@syncodeindex fn cp
@syncodeindex vr cp
@syncodeindex ky cp
@syncodeindex pg cp
@syncodeindex tp cp
@setchapternewpage odd
@finalout
@titlepage
@title Info on beta versions of XEmacs
@author XEmacs Development Team
@page
@vskip 0pt plus 1fill
@noindent
Copyright @copyright{} 2005 Ben Wing. @*
This file is part of XEmacs.
XEmacs is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with XEmacs; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
@end titlepage
@page
@ifinfo
@node Top, Introduction, (dir), (dir)
This Info file describes info relevant to beta versions of XEmacs.
@menu
* Introduction::
* Compiling Beta XEmacs::
* Packages::
* Improving XEmacs::
@detailmenu
--- The Detailed Node Listing ---
Introduction
* Mailing Lists::
* Beta Release Schedule::
* Reporting Problems::
* Getting the Source::
Mailing Lists
* XEmacs Beta Mailing List::
* XEmacs Patches Mailing List::
* XEmacs Design Mailing List::
* List Administrivia::
* Managing your subscription via the Web::
* Subscribing by e-mail::
* Unsubscribing by e-mail::
Compiling Beta XEmacs
* Building an XEmacs from patches::
* Building XEmacs from a full distribution::
Packages
* Binary package installation::
* Manual procedures for package management::
* Building XEmacs and XEmacs packages from scratch::
Improving XEmacs
* Creating patches for submission::
* Large contributions::
Creating patches for submission
* Patch discussion etiquette::
Large contributions
* Updates to existing packages::
* New packages::
* Syncing with GNU Emacs::
@end detailmenu
@end menu
@end ifinfo
@node Introduction, Compiling Beta XEmacs, Top, Top
@chapter Introduction
You are running a potentially unstable version of XEmacs. Please do
not report problems with Beta XEmacs to comp.emacs.xemacs. Report
them to @uref{mailto:xemacs-beta@@xemacs.org}, preferably with
@kbd{M-x report-xemacs-bug RET}.
@menu
* Mailing Lists::
* Beta Release Schedule::
* Reporting Problems::
* Getting the Source::
@end menu
@node Mailing Lists, Beta Release Schedule, Introduction, Introduction
@section Mailing Lists
@menu
* XEmacs Beta Mailing List::
* XEmacs Patches Mailing List::
* XEmacs Design Mailing List::
* List Administrivia::
* Managing your subscription via the Web::
* Subscribing by e-mail::
* Unsubscribing by e-mail::
@end menu
@node XEmacs Beta Mailing List, XEmacs Patches Mailing List, Mailing Lists, Mailing
Lists
@subsection XEmacs Beta Mailing List
If you are not subscribed to the XEmacs beta list you should be.
Currently all discussion of development issues, including bug reports
and coding discussion, takes place on the XEmacs Beta mailing list.
Only patches and administrative actions regarding patches are sent
elsewhere (to the XEmacs Patches list).
@node XEmacs Patches Mailing List, XEmacs Design Mailing List, XEmacs Beta Mailing List,
Mailing Lists
@subsection XEmacs Patches Mailing List
XEmacs Patches records proposed changes to XEmacs, and their
disposition. It is open subscription, and all patches that are
seriously proposed for inclusion in XEmacs should be posted here. You
can follow progress of your patch by subscribing to the mailing list
or in the archives.
Besides patches, only actions by members of the XEmacs Review Board
should be posted to this list. All discussion should be redirected to
XEmacs Beta or XEmacs Design.
@node XEmacs Design Mailing List, List Administrivia, XEmacs Patches Mailing List,
Mailing Lists
@subsection XEmacs Design Mailing List
XEmacs Design is for design discussions such as adding major features
or whole modules, or reimplementation of existing functions, to XEmacs.
@node List Administrivia, Managing your subscription via the Web, XEmacs Design Mailing
List, Mailing Lists
@subsection List Administrivia
In the descriptions below, the word LIST (all uppercase) is a
variable. Substitute "beta", "design", or "patches" as
appropriate
(to get "xemacs-beta" as the mailbox for the XEmacs Beta mailing list,
or @uref{http://www.xemacs.org/Lists/#xemacs-beta} for its URL).
The XEmacs mailing lists are managed by the Mailman mailing list package,
and the usual Mailman commands work. Do not send mailing list requests to
the main address (@uref{mailto:xemacs-LIST@@xemacs.org}), always send them
to @uref{mailto:xemacs-LIST-request@@xemacs.org}. If you have problems with
the list itself, they should be brought to the attention of the XEmacs
Mailing List manager @uref{mailto:list-manager@@xemacs.org} (the same
mailbox, "list-manager", for all lists). All public mailing lists have
searchable archives. The URL is
@uref{http://list-archive.xemacs.org/xemacs-LIST}
Note that the xemacs-LIST-admin address is used internally by the
Mailman software; it is NOT a synonym for xemacs-LIST-request.
@node Managing your subscription via the Web, Subscribing by e-mail, List Administrivia,
Mailing Lists
@subsection Managing your subscription via the Web
Subscription, unsubscription, and options (such as digests and
temporarily suspending delivery) can be accomplished via the web
interface at @uref{http://www.xemacs.org/Lists/#xemacs-LIST}.
@node Subscribing by e-mail, Unsubscribing by e-mail, Managing your subscription via the
Web, Mailing Lists
@subsection Subscribing by e-mail
Send an email message to @uref{mailto:xemacs-LIST-request@@xemacs.org} with
@samp{subscribe} (without the quotes) as the BODY of the message.
@node Unsubscribing by e-mail, , Subscribing by e-mail, Mailing Lists
@subsection Unsubscribing by e-mail
Send an email message to @uref{mailto:xemacs-LIST-request@@xemacs.org} with
@samp{unsubscribe} (without the quotes) as the BODY of the message.
@node Beta Release Schedule, Reporting Problems, Mailing Lists, Introduction
@section Beta Release Schedule
We would like to achieve a weekly or fortnightly release cycle (you
know the Open Source model: release early, release often), and in a
perfect world that would indeed be the case. There are at least three
things that often get in the way of that goal: 1) The Release Manager
has a life outside of XEmacs (hard to believe, I know, but true),
2) we like to make releases that will build (at least on the Release
Manager's box), and 3) Murphy likes to throw a spanner in the works
right when you least expect it (Murphy's Law: Whatever can go wrong,
will go wrong).
If you'd like to keep right up to date and ride the bleeding edge, use
CVS (see @uref{http://www.xemacs.org/Develop/cvsaccess.html}). If you
can't use CVS for some reason and must use FTP, please let us know.
it will make it more likely that we release betas more often.
@node Reporting Problems, Getting the Source, Beta Release Schedule, Introduction
@section Reporting Problems
The best way to get problems fixed in XEmacs is to submit good problem
reports, @kbd{M-x report-xemacs-bug RET} will help you do this (assuming
you have a usable XEmacs). 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:
@enumerate
@item
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.
@item
Attempt to recreate the problem starting with an invocation of
XEmacs with @code{xemacs -no-autoloads}. 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). If you have trouble
getting anything to work at all with the above invocation, use
@code{xemacs -vanilla} instead. If you need to load your user init
file or the site file to get the problem to occur, then it has
something to do with them, and you should try to isolate the
issue in those files.
@item
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.
@end enumerate
@node Getting the Source, , Reporting Problems, Introduction
@section Getting the Source
In addition to the normal tar distribution, XEmacs source is now
available via CVS. Please see
@uref{http://www.xemacs.org/Develop/cvsaccess.html}
@node Compiling Beta XEmacs, Packages, Introduction, Top
@chapter Compiling Beta XEmacs
@menu
* Building an XEmacs from patches::
* Building XEmacs from a full distribution::
@end menu
@node Building an XEmacs from patches, Building XEmacs from a full distribution,
Compiling Beta XEmacs, Compiling Beta XEmacs
@section 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 21.5-beta9 to XEmacs
21.5-beta10 and you have a full unmodified XEmacs 21.5-beta9 source
tree to work with. Change to the top level directory and issue the
shell command:
@example
$ gunzip -c /tmp/xemacs-21.5.9-21.5.10.patch.gz | patch -p1
@end example
After patching, check to see that no patches were missed by doing
@example
$ find . -name \*.rej -print
@end example
Any rejections should be treated as serious problems to be resolved
before building XEmacs.
After seeing that there were no rejections, issue the commands
@example
$ ./config.status --recheck
$ make beta > ./beta.err 2>&1
$ make check > ./xemacs-make-check.err 2>&1
@end example
Redirect the output from make to those files because you'll use them
later when you send off a build report with @kbd{M-x build-report RET}
@node Building XEmacs from a full distribution, , Building an XEmacs from patches,
Compiling Beta XEmacs
@section Building XEmacs from a full distribution
@enumerate
@item
Locate a convenient place where you have at least 100MB of free space
and issue the command
@example
$ gunzip -c /tmp/xemacs-21.5.10.tar.gz | tar xvf -
@end example
(or simply @code{tar zxvf /tmp/xemacs-21.5.10.tar.gz} if you use GNU tar).
@item
cd to the top level directory and issue an appropriate configure
command.
@item
Run @code{configure}. If you are new, just consider running it with no
options, to see if you can get a succesful build. When you are more
experienced, you should put various flags in. Here is what we suggest:
@enumerate
@item
It's a good idea to use
@example
--extra-verbose
--debug
--memory-usage-stats
--error-checking=all
@end example
These turn on extra debugging info and checks. The last one in particular
will add a great deal of extra error-checking -- which will slow your XEmacs
down somewhat but is likely to catch bugs much sooner and make your bug
reports much more useful.
@item
You should also strongly consider
@example
--with-mule
--use-pkcc
--pdump
--with-clash-detection
--with-wmcommand
--with-xfs
@end example
These turn on optional features, which can always use testing.
@item
If you have gcc, consider using
@example
--compiler=gcc
--xemacs-compiler=g++
@end example
This will compile XEmacs using g++, which will turn on a lot of additional
error-checking.
@item
If your packages are not installed under /usr/local, you should add a
line like
@example
--package-path=~/.xemacs::/xemacs/site-packages:/xemacs/xemacs-packages:/xemacs/mule-packages
@end example
@item
If you want to build multiple configurations from the same source
tree, make separate build directories for each configuration, run
@code{configure} from the top level of these (currently empty)
directories and use an option like
@example
--srcdir=/xemacs/source-tree
@end example
(or wherever your source tree is). This will magically create symlinks and
populate your build directory.
@item
Use --site-prefixes (or --site-includes and --site-libraries) if you have
some packages that XEmacs can compile with that are located in an unusual
place. For example:
@example
--site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1
@end example
@item
Depending on your build environment, consuder setting or not setting
options for menubars, scrollbars, window systems, native sound, etc. If
you're not sure, leave them out and let configure do the auto-detection.
(If you get bugs compiling GTK, use @code{--with-gtk=no --with-gnome=no}.)
Part of the configure output is a summary that looks something
like the following. (this summary is also available as the file
'Installation' in the top directory of your build tree, and via
the command @kbd{M-x describe-installation RET}).
@example
uname -a: Linux eicq 2.4.20 #1 Wed Dec 18 02:14:29 EST 2002 i586 unknown
./configure '--extra-verbose'
'--site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1'
'--dynamic=yes' '--with-gtk=no' '--with-gnome=no'
'--with-toolbars' '--with-wmcommand' '--with-athena=next'
'--with-menubars=lucid' '--with-scrollbars=athena'
'--with-dialogs=athena' '--with-widgets=athena' '--with-gif'
'--with-sound=native,noesd' '--with-site-lisp=no'
'--with-site-modules' '--pdump' '--with-mule' '--with-xfs'
'--debug' '--error-checking=all' '--memory-usage-stats'
'--use-kkcc' '--with-clash-detection'
XEmacs 21.5-b10 "burdock" (+CVS-20030131) configured for `i586-pc-linux'.
Compilation / Installation:
Source code location: /usr/local/src/xemacs
Installation prefix: /usr/local
Additional prefixes: /usr/local/pgsql /usr/local/BerkeleyDB.4.1
Operating system description file: `s/linux.h'
Machine description file: `m/intel386.h'
Compiler: gcc -Wall -Wno-switch -Winline -Wmissing-prototypes
-Wsign-compare -Wundef -Wstrict-prototypes -Wshadow -Wmissing-declarations -O1 -ggdb3
-Wall -Wchar-subscripts -Wunused -Wundef -Wshadow -Wsign-compare -Wmissing-declarations
-march=k6
Relocating allocator for buffers: no
GNU version of malloc: yes
- Using Doug Lea's new malloc from the GNU C Library.
Window System:
Compiling in support for the X window system:
- X Windows headers location: /usr/X11/include
- X Windows libraries location: /usr/X11/lib
- Handling WM_COMMAND properly.
Compiling in support for the Athena widget set:
- Athena headers location: X11/neXtaw
- Athena library to link: neXtaw
Using Lucid menubars.
Using Athena scrollbars.
Using Athena dialog boxes.
Using Athena native widgets.
TTY:
Compiling in support for ncurses.
Compiling in support for GPM (General Purpose Mouse).
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Compiling in support for X-Face message headers.
Sound:
Compiling in support for sound (native).
Databases:
Compiling in support for Berkeley database.
Compiling in support for PostgreSQL.
- Using PostgreSQL header file: libpq-fe.h
- Using PostgreSQL V7 bindings.
Internationalization:
Compiling in support for Mule (multi-lingual Emacs).
Compiling in support for XIM (X11R5+ I18N input method).
- Using raw Xlib to provide XIM support.
- Using XFontSet to provide bilingual menubar.
Mail:
Compiling in support for "dot-locking" mail spool file locking method.
Other Features:
Inhibiting IPv6 canonicalization at startup.
Compiling in support for dynamic shared object modules.
Using the new GC algorithms.
Using the new portable dumper.
Compiling in support for extra debugging code.
WARNING: WARNING: Compiling in support for runtime error checking.
WARNING: XEmacs will run noticeably more slowly as a result.
WARNING: Error checking is on by default for XEmacs beta releases.
WARNING:
@end example
@end enumerate
@item
Then...
@example
$ make > ./beta.err 2>&1
$ make check > ./xemacs-make-check.err 2>&1
@end example
...and you should have a working XEmacs.
@item
After you have verified that you have a functional editor, fire up
your favorite mail program and send a build report to
@uref{mailto:xemacs-buildreports@@xemacs.org}.
Preferably this is best done from XEmacs, following these simple steps:
@enumerate
@kbd{M-x customize-group RET build-report RET}
@kbd{M-x build-report RET}
@end enumerate
See also
@uref{http://www.xemacs.org/Releases/Public-21.2/tester.html#reporting}
If you create the report manually by other means, here is what the
build report should include:
@enumerate
@item
Your hardware configuration (OS version, etc.)
@item
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.
@item
The options given to configure
@item
The configuration report illustrated above
For convenience all of the above items are placed in a file called
`Installation' in the top level build directory. They are also
available by performing @kbd{M-x describe-installation} inside XEmacs.
@item
Any other unusual items you feel should be brought to the attention
of the developers.
@end enumerate
@end enumerate
@node Packages, Improving XEmacs, Compiling Beta XEmacs, Top
@chapter Packages
[Note: these instructions have been partly updated, but not carefully
reviewed in some time. Caveat tester.]
Starting with XEmacs 21.1, much of the functionality of XEmacs has
been unbundled into "the packages." For more information about the
package system, see the Info nodes on Packages (in the XEmacs User
Manual) and on Packaging (in the Lisp Reference).
When bootstrapping XEmacs, you may need to manually install some
packages (at least xemacs-base and efs). These packages are available
by FTP at @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/}.
@menu
* Binary package installation::
* Manual procedures for package management::
* Building XEmacs and XEmacs packages from scratch::
@end menu
@node Binary package installation, Manual procedures for package management, Packages,
Packages
@section Binary package installation
Prerequisite: XEmacs 21.0-b1.
Binary packages are complete entities that can be untarred at the top
level of an XEmacs package hierarchy and work at runtime. To install files
in this directory, run the command @kbd{M-x package-admin-add-binary-package}
and fill in appropriate values to the prompts.
@node Manual procedures for package management, Building XEmacs and XEmacs packages from
scratch, Binary package installation, Packages
@section Manual procedures for package management
Prerequisite: XEmacs 21.0
When adding and deleting files from a lisp directory the
auto-autoloads.el (global symbols) and custom-load.el (Customization
groups) must be kept in synch. Assuming one is manipulating a
directory called `lisp-utils', the command to rebuild the
auto-autoloads.el file is:
@example
xemacs -vanilla -batch \
-eval \("setq autoload-package-name \"lisp-utils\""\) \
-f batch-update-directory lisp-utils
@end example
The command to rebuild the custom-load.el file is:
@example
xemacs -vanilla -batch -f Custom-make-dependencies lisp-utils
@end example
To byte-compile both of these files the command is:
@example
xemacs -vanilla -batch -f batch-byte-compile \
lisp-utils/auto-autoloads.el lisp-utils/custom-load.el
@end example
Of course, being a beta tester, you'd be aware that it is much easier
to manage your XEmacs packages with PUI.
@node Building XEmacs and XEmacs packages from scratch, , Manual procedures for package
management, Packages
@section Building XEmacs and XEmacs packages from scratch
To build everything completely from scratch isn't hard, just time
consuming.
@subheading Step 1 - grab the sources (core and packages)
@example
$ cvs -d :pserver:cvs@@cvs.xemacs.org:/pack/xemacscvs login
[password: "cvs" (sans quotes)]
$ cvs -d :pserver:cvs@@cvs.xemacs.org:/pack/xemacscvs co -d xemacs-21.5 xemacs
$ cvs -d :pserver:cvs@@cvs.xemacs.org:/pack/xemacscvs co packages
@end example
@subheading Step 2 - build XEmacs
@example
$ cd xemacs-21.5
$ ./configure [options...]
$ make > ./beta.err 2>&1
$ make check > ./xemacs-make-check.err 2>&1
@end example
And optionally:
@example
$ make install > ./xemacs-make-install.err 2>&1
@end example
@subheading Step 3 - build and install the packages
@example
$ cd packages
$ cp Local.rules.template Local.rules
@end example
Then edit Local.rules to suit your needs/environment
(@pxref{Local.rules file,,, xemacs, XEmacs User's Manual}) for details
about this file.
And then:
@example
$ make install
@end example
@node Improving XEmacs, , Packages, Top
@chapter Improving XEmacs
@menu
* Creating patches for submission::
* Large contributions::
@end menu
@node Creating patches for submission, Large contributions, Improving XEmacs, Improving
XEmacs
@section Creating patches for submission
All patches to XEmacs that are seriously proposed for inclusion (eg,
bug fixes) should be mailed to @uref{mailto:xemacs-patches@@xemacs.org}. Each
patch will be reviewed by the patches review board, and will be
acknowledged and added to the distribution, or rejected with an
explanation. Progress of the patch is tracked on the XEmacs Patches
mailing list, which is open subscription. (If a patch is simply
intended to facilitate discussion, "I mean something that works like
this but this is really rough", a Cc to XEmacs Patches is optional,
but doesn't hurt.)
Patches to XEmacs Lisp packages should be sent to the maintainer of
the package. If the maintainer is listed as `XEmacs Development Team'
patches should be sent to @uref{mailto:xemacs-patches@@xemacs.org}.
Emailed patches should preferably be sent in MIME format and quoted
printable encoding (if necessary).
The simplest way to create well-formed patches is to use CVS and
Didier Verna's Patcher library (available as patcher.el in the
xemacs-devel package). Patcher is new and requires some setup, but
most of the core developers are now using it for their own patches.
Patcher also can be configured to create patches for several projects,
and recognize the project from the directory it is invoked in. This
makes it a useful general tool (as long as XEmacs-style patches are
accepted at your other projects, which is likely since they conform to
the GNU standards).
When making patches by hand, please use the `-u' option, or if your
diff doesn't support it, `-c'. Using ordinary (context-free) diffs
are notoriously prone to error, since line numbers tend to change when
others make changes to the same source file.
An example of the `diff' usage:
@example
$ diff -u OLDFILE NEWFILE
@end example
-or-
@example
$ diff -c OLDFILE NEWFILE
@end example
Also, it is helpful if you create the patch in the top level of the
XEmacs source directory:
@example
$ cp -p lwlib/xlwmenu.c lwlib/xlwmenu.c.orig
hack, hack, hack....
$ diff -u lwlib/xlwmenu.c.orig lwlib/xlwmenu.c
@end example
Also note that if you cut & paste from an xterm to an XEmacs mail
buffer you will probably lose due to tab expansion. The best thing to
do is to use an XEmacs shell buffer to run the diff commands, or ...
@kbd{M-x cd} to the appropriate directory, and issue the command
@kbd{C-u M-!} from within XEmacs.
Patches should be as single-minded as possible. Mammoth patches can
be very difficult to place into the right slot. They are much easier
to deal with when broken down into functional or conceptual chunks.
The patches submitted by Kyle Jones and Hrvoje Niksic are stellar
examples of how to "Do The Right Thing".
Each patch should be accompanied by an update to the appropriate
ChangeLog file. Guidelines for writing ChangeLog entries is governed
by the GNU coding standards. Please see
@uref{http://www.gnu.org/prep/standards_toc.html} [Change Logs section]
for details.
Do not submit context diffs (either -c or -u) of ChangeLogs. Because
of the "stack" nature of ChangeLogs (new entries are always pushed on
the top), context diffs will fail to apply more often than they
succeed. Simply cutting and pasting the entry from an Emacs buffer to
the mail buffer (beware of tab expansion!) is probably easiest. The
Patcher library also will set up your ChangeLogs for you, and copy
them to the mail. Context-less unified diffs (-U 0) are also
acceptable.
@menu
* Patch discussion etiquette::
@end menu
@node Patch discussion etiquette, , Creating patches for submission, Creating patches
for submission
@subsection Patch discussion etiquette
If you intend a patch for _application_ to the sources as is, _always_
post it to xemacs-patches, even if there are minor points you would
like to have discussed by others. Not doing so will resulting in
patches getting "lost". If you expect that the patch will not be
acceptable, but are using it to stimulate discussion, then don't post
to xemacs-patches. Intermediate cases are up to your judgment;
unless you're sure you'll follow up with a "real" patch, better to
err
on the side of posting to xemacs-patches.
Discussion of the _content_ of the patch (ie responses to reviewer
comments beyond "that's right, ok, I'll do it your way") should
_always_
be posted to xemacs-beta or to xemacs-design. If you're not sure
which is more appropriate, send it to xemacs-beta. That is the most
widely read channel.
If discussion results in a bright idea and you come up with a new
patch, normally you should post it to both mailing lists. The people
discussing on XEmacs Beta will want to know the outcome of the thread,
and you need to submit to XEmacs Patches as the "list of record."
If the old patch has been applied to CVS, then just submit the new one
as usual. If it has not been applied, then it is best to submit a new
patch against CVS. If possible do this as a reply to the original
patch post, or something following it in the thread. (The point is to
get the original patch post's Message-ID in your References header.)
In this case, also use the keyword SUPERSEDES in the Subject header to
indicate that the old patch is no longer valid, and that this one
replaces it.
These rules will result in a fair number of cross posts, but we don't
yet have a better way to handle that.
Note: Developers should never post to xemacs-patches unless there is a
patch in the post. We plan to enforce this with an automatic filter.
The exceptions are administrative. If you have commit authorization,
then post a short COMMIT notice to xemacs-patches when you commit to
CVS. Members of the Review Board will also post short notices of
administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches.
@node Large contributions, , Creating patches for submission, Improving XEmacs
@section Large contributions
Perhaps you have a whole new mode, or a major synchronization with
upstream for a neglected package, or a synchronization with GNU Emacs
you would like to contribute. We welcome such contributions, but they
are likely to be relatively controversial, generate more comments and
requests for revision, and take longer to integrate. Please be
patient with the process.
@menu
* Updates to existing packages::
* New packages::
* Syncing with GNU Emacs::
@end menu
@node Updates to existing packages, New packages, Large contributions, Large
contributions
@subsection Updates to existing packages
If a package has gotten a bit out of date, or even started to bitrot,
we welcome patches to synchronize it with upstream/GNU Emacs versions.
Most packages end up varying somewhat from their GNU origins. See
"Syncing with GNU Emacs" for hints. Note that if you do a reasonably
large amount of syncing with GNU Emacs, you should log this in the
file itself as well as in the ChangeLog.
If the package is important to you, please consider becoming the
maintainer. (See "New packages", below.)
@node New packages, Syncing with GNU Emacs, Updates to existing packages, Large
contributions
@subsection New packages
If you have a new mode or other large addition that does not require
changes to the core, please consider submitting it as a package, and
becoming the maintainer. You get direct commit privileges to the
repository for your package, "approval" privileges for your own
patches as well as third party patches to your package, and some
degree of veto power over patches you don't like. In return, you are
expected to maintain friendly liaison with the upstream developer (if
you aren't the upstream developer), keep watch on the XEmacs Patches
list for relevant patches, and be available by email to other
developers for discussion of changes that impact your package. It's
also a pretty standard route to the "core" development group, where we
have plenty of extra work waiting for volunteers.
You don't have to become the maintainer, but it virtually ensures
rapid acceptance of the package.
For help in creating new packages, see the (rather sparse) discussions
in the XEmacs User's Guide and the Lisp Reference Manual. The XEmacs
Package Release Engineer (Ville Skyttä @uref{mailto:scop@@xemacs.org}
is currently serving with Norbert Koch @uref{mailto:viteno@@xemacs.org}
assisting; Steve Youngs @uref{mailto:youngs@@xemacs.org} and Stephen
Turnbull @uref{mailto:stephen@@xemacs.org} also can help) are the most
likely sources of advice.
@node Syncing with GNU Emacs, , New packages, Large contributions
@subsection Syncing with GNU Emacs
Syncing with GNU Emacs is an important activity. Although each
version has its advantages and areas of concentration, it is very
desirable that common functionality share specifications and APIs.
When porting GNU code to XEmacs, the following points should be given
special attention:
@itemize @bullet
@item
Recent GNU Emacsen cannot be built without Mule, but XEmacs can.
Make sure your changes do not assume the presence of Mule.
@item
GNU Emacs nomenclature often differs from that of XEmacs.
Sometimes syncing the names is desirable, other times not.
@item
GNU Emacs functionality often differs from that of XEmacs.
Syncing functionality is often controversial.
@end itemize
It is important that you let other developers know that
synchronization has taken place, to what degree, and when. For this
purpose, we use comments of the form
@example
/* Synched up with: FSF 21.3 by Stephen Turnbull */
@end example
in the source file itself, as the last element of the prefatory
material (copyright notice and commentary). Obviously the comment
marker needs to be changed to leading semicolons for Lisp, but
otherwise the format is the same.
Of course you should note syncing as the purpose in the ChangeLog,
too. But entries get buried deep in the ChangeLog file, and may even
get moved to a separate ChangeLog.OLD file for rarely synched files.
Rather than dates we use the version of GNU Emacs to sync to. If the
synchronization is partial, add a new comment describing what has
actually been synched, leaving the description of the last full sync
in place. At each full sync, remove all previous synchronization
comments.
This applies to Lisp that we have broken out into packages, but
remains in the GNU Emacs core, as well to core Lisp in XEmacs.
@c Print the tables of contents
@contents
@c That's all
@node Index, , Defining Variables, Top
@unnumbered Index
@printindex cp
@bye
1.5 +9 -10 XEmacs/xemacs/man/xemacs/help.texi
(In the diff below, changes in quantity of whitespace are not shown.)
Index: help.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/help.texi,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- help.texi 2004/08/13 09:47:57 1.4
+++ help.texi 2005/01/31 20:08:50 1.5
@@ -442,13 +442,12 @@
information. @kbd{C-h C-w} (@code{describe-no-warranty}) displays the
full details on the complete absence of warranty for XEmacs. @kbd{C-h
n} (@code{view-emacs-news}) displays the file @file{xemacs/etc/NEWS},
-which contains documentation on XEmacs changes arranged chronologically.
-@kbd{C-h F} (@code{xemacs-local-faq}) displays local version of the
-XEmacs frequently-answered-questions-list. @kbd{C-h t}
-(@code{help-with-tutorial}) displays the learn-by-doing XEmacs
-tutorial. @kbd{C-h C-c} (@code{describe-copying}) displays the file
-@file{xemacs/etc/COPYING}, which tells you the conditions you must obey
-in distributing copies of XEmacs. @kbd{C-h C-d}
-(@code{describe-distribution}) displays another file named
-@file{xemacs/etc/DISTRIB}, which tells you how you can order a copy of
-the latest version of XEmacs.
+which contains documentation on XEmacs changes arranged
+chronologically. @kbd{C-h F} (@code{xemacs-local-faq}) displays the
+local version of the XEmacs FAQ (Frequently Answered Questions list).
+@kbd{C-h t} (@code{help-with-tutorial}) displays the learn-by-doing
+XEmacs tutorial. @kbd{C-h C-c} (@code{describe-copying}) displays the
+file @file{xemacs/etc/COPYING}, which tells you the conditions you
+must obey in distributing copies of XEmacs. @kbd{C-h C-d}
+(@code{describe-distribution} displays the section of the FAQ that
+tells you how you can get the latest version of XEmacs.
1.3 +48 -13 XEmacs/xemacs/man/xemacs/new.texi
(In the diff below, changes in quantity of whitespace are not shown.)
Index: new.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/new.texi,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- new.texi 2001/04/12 18:22:29 1.2
+++ new.texi 2005/01/31 20:08:50 1.3
@@ -235,39 +235,74 @@
@cindex version number
@example
-(cond ((string-match "Lucid" emacs-version)
+(cond ((string-match "XEmacs" emacs-version)
;;
- ;; Code for any version of Lucid Emacs or XEmacs goes here
+ ;; Code for any version of XEmacs goes here.
;;
))
-(cond ((and (string-match "XEmacs" emacs-version)
- (or (> emacs-major-version 19)
- (>= emacs-minor-version 12)))
+(cond ((not (string-match "XEmacs" emacs-version)))
;;
- ;; Code which requires XEmacs version 19.12 or newer goes here
+ ;; Code for any version of GNU Emacs goes here.
;;
))
-(cond ((>= emacs-major-version 19)
+(cond ((and (string-match "XEmacs" emacs-version)
+ (emacs-version>= 21 4))
;;
- ;; Code for any vintage-19 emacs goes here
+ ;; Code which requires XEmacs version 21.4 or newer goes here
;;
))
-(cond ((and (not (string-match "Lucid" emacs-version))
- (= emacs-major-version 19))
+(cond ((and (string-match "XEmacs" emacs-version)
+ (emacs-version>= 21 4 12)
+ (not (emacs-version>= 21 4 15)))
;;
- ;; Code specific to FSF Emacs 19 (not XEmacs) goes here
+ ;; Code which requires exactly XEmacs version 21.4.12 through
+ ;; 21.4.14, inclusive, goes here. (e.g. A bug was introduced in
+ ;; 21.4.12 and fixed in 21.4.15 but many of the versions of
+ ;; XEmacs around in the computer laboratory run those versions,
+ ;; so I need to introduce a workaround. In such a case, you
+ ;; should ideally try to conditionalize on something else,
+ ;; e.g. a feature symbol or a simple test that can be run to
+ ;; smoke out the bug.)
;;
))
-(cond ((< emacs-major-version 19)
+(cond ((and (not (string-match "XEmacs" emacs-version)
+ (emacs-version>= 20 2))
;;
- ;; Code specific to emacs 18 goes here
+ ;; Code which requires GNU Emacs version 20.2 or newer, but not XEmacs,
+ ;; goes here
;;
))
+
+@end example
+
+@emph{NOTE}: @strong{DO} use @code{(emacs-version>= ...)}. @strong{DO NOT}
+try to do this yourself using @code{emacs-major-version} and
+@code{emacs-minor-version}. You will, with high probability, get it
+wrong. Typical attempts to replace @code{(emacs-version>= 21 4)} use
+
+@example
+(and (>= emacs-major-version 21)
+ (>= emacs-minor-version 4))
+@end example
+
+which correctly excludes 21.3 and all previous versions,
+but also excludes 22.0 through 22.3, 23.0 through 23.3, etc.
+
+A "more clever" version, as advocated in earlier versions
+of this very manual, was like this:
+
+@example
+(or (> emacs-major-version 21)
+ (>= emacs-minor-version 4))
@end example
+
+which correctly includes 21.4 and all following versions,
+but also includes 20.4 through 20.99999, 19.4 through
+19.99999, etc.
Alternatively, use @file{.xemacs/init.el} for an init file. @xref{Init File}.
1.18 +5 -21 XEmacs/xemacs/man/xemacs/xemacs.texi
(In the diff below, changes in quantity of whitespace are not shown.)
Index: xemacs.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/xemacs.texi,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- xemacs.texi 2005/01/28 00:12:39 1.17
+++ xemacs.texi 2005/01/31 20:08:50 1.18
@@ -996,27 +996,12 @@
the GNU General Public License that comes with XEmacs and also appears
following this section.
-The easiest way to get a copy of XEmacs is from someone else who has it.
-You need not ask for permission to do so, or tell any one else; just copy
-it.
+To get XEmacs, go to @uref{http://www.xemacs.org/Download/}.
-If you have access to the Internet, you can get the latest version of
-XEmacs from the anonymous FTP server @file{ftp.xemacs.org} in the directory
-@file{/pub/xemacs}. It can also be found at numerous other archive
-sites around the world; check the file @file{etc/DISTRIB} in an XEmacs
-distribution for the latest known list.
-
-
@unnumberedsec Getting Other Versions of Emacs
-
-The Free Software Foundation's version of Emacs (called @dfn{FSF Emacs}
-in this manual and often referred to as @dfn{GNU Emacs}) is available
-by anonymous FTP from @file{prep.ai.mit.edu}.
-Win-Emacs, an older version of XEmacs that runs on Microsoft Windows
-and Windows NT, is available by anonymous FTP from @file{ftp.netcom.com}
-in the directory @file{/pub/pe/pearl}, or from @file{ftp.cica.indiana.edu}
-as the files @file{wemdemo*.zip} in the directory @file{/pub/pc/win3/demo}.
+The Free Software Foundation's version of Emacs (@dfn{GNU Emacs}) is
+available at @uref{http://www.gnu.org/software/emacs/emacs.html}.
@node Intro, Glossary, Distrib, Top
@unnumbered Introduction
@@ -1025,9 +1010,8 @@
self-documenting, customizable, extensible real-time display editor
Emacs. XEmacs provides many powerful display and user-interface
capabilities not found in other Emacsen and is mostly upwardly
-compatible with GNU Emacs from the Free Software Foundation
-(referred to as @dfn{FSF Emacs} in this manual). XEmacs also
-comes standard with a great number of useful packages.
+compatible with GNU Emacs from the Free Software Foundation. XEmacs
+also comes standard with a great number of useful packages.
We say that XEmacs is a @dfn{display} editor because normally the text
being edited is visible on the screen and is updated automatically as you
1.180 +5 -0 XEmacs/xemacs/nt/ChangeLog
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/nt/ChangeLog,v
retrieving revision 1.179
retrieving revision 1.180
diff -u -b -r1.179 -r1.180
--- ChangeLog 2005/01/29 00:32:38 1.179
+++ ChangeLog 2005/01/31 20:08:52 1.180
@@ -1,3 +1,8 @@
+2005-01-31 Ben Wing <ben(a)xemacs.org>
+
+ * xemacs.mak (install):
+ Also copy BUGS, README, COPYING and Installation.
+
2005-01-28 Ben Wing <ben(a)xemacs.org>
* config.inc.samp (COMPFACE_DIR):
1.112 +8 -0 XEmacs/xemacs/nt/xemacs.mak
(In the diff below, changes in quantity of whitespace are not shown.)
Index: xemacs.mak
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/nt/xemacs.mak,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -b -r1.111 -r1.112
--- xemacs.mak 2005/01/28 01:54:47 1.111
+++ xemacs.mak 2005/01/31 20:08:52 1.112
@@ -1457,8 +1457,16 @@
@echo Installing in $(INSTALL_DIR) ...
@echo PlaceHolder > PlaceHolder
@$(COPY) $(SRCROOT)\PROBLEMS "$(INSTALL_DIR)\"
+ @$(COPY) $(SRCROOT)\BUGS "$(INSTALL_DIR)\"
+ @$(COPY) $(SRCROOT)\README "$(INSTALL_DIR)\"
+ @$(COPY) $(SRCROOT)\COPYING "$(INSTALL_DIR)\"
+ @$(COPY) $(SRCROOT)\Installation "$(INSTALL_DIR)\"
@$(COPY) PlaceHolder "$(INSTALL_DIR)\lock\"
-$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder"
+# @$(COPY) $(BLDLIB_SRC)\*.exe "$(INSTALL_DIR)\lib-src\"
+# @$(COPY) $(BLDLIB_SRC)\DOC "$(INSTALL_DIR)\lib-src\"
+# @$(COPY) $(CONFIG_VALUES) "$(INSTALL_DIR)\lib-src\"
+# @$(COPY) $(BLDSRC)\xemacs.exe "$(INSTALL_DIR)\bin\"
@$(COPY) $(BLDLIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\"
@$(COPY) $(BLDLIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"
@$(COPY) $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)"