diff lisp/prim/about.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/prim/about.el	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,1005 @@
+;;; about.el --- the About The Authors page (shameless self promotion).
+;;;
+
+;; Copyright (c) 1995, 1996 XEmacs Advocacy Organization.
+
+;; 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, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+;;; Synched up with: Not in FSF.
+
+;;; This is kind of a kludge.  We were going to use W3 to do this, but
+;;; it's too slow to load, and HTML gives you too little control over
+;;; the layout (especially indentation and inter-paragraph spacing).
+;;; Maybe the text should have been written in limited HTML anyway,
+;;; and I should have hacked up a simple and fast parser for it, but
+;;; it's done now...
+;;;
+;;; Code: Jamie Zawinski <jwz@netscape.com>
+;;; Text: Ben Wing <wing@666.com>, Jamie Zawinski <jwz@netscape.com>
+;;; Hard: Amiga 1000, Progressive Peripherals Frame Grabber.
+;;; Soft: FG 2.0, DigiPaint 3.0, pbmplus (dec 91), xv 3.0.
+;;; Modified for 19.11 by Eduardo Pelegri-Llopart <pelegri@eng.sun.com>
+;;;		      and Chuck Thompson <cthomp@xemacs.org>
+;;; More hacking for 19.12 by Chuck Thompson and Ben Wing.
+;;; 19.13 and 19.14 updating done by Chuck Thompson.
+
+(require 'browse-url)
+(defvar about-xref-map (let ((map (make-sparse-keymap)))
+			 (define-key map 'button1 'about-xemacs-xref)
+			 (define-key map 'button2 'about-xemacs-xref)
+			 (define-key map '(return) 'about-xemacs-xref)
+			 map))
+
+;; This historically significant variable has been removed from service.
+(defvar what-are-we-calling-it-today "XEmacs")
+
+(defun about-face (text face)
+  (let ((p (point))
+	e)
+    (insert text)
+    (setq e (make-extent p (point)))
+    ;;(set-extent-property e 'start-open t)
+    (set-extent-face e face)
+    e))
+
+(defun about-xref (text xref help)
+  (let ((e (about-face text 'bold)))
+    (set-extent-property e 'keymap about-xref-map)
+    (set-extent-property e 'mouse-face 'highlight)
+    (set-extent-property e 'xref xref)
+    (set-extent-property e 'help-echo help)
+    e))
+
+;;;###autoload
+(defun about-xemacs ()
+  (interactive)
+  (switch-to-buffer (get-buffer-create "About XEmacs"))
+  (delete-other-windows)
+  (buffer-disable-undo (current-buffer))
+  (widen)
+  (set (make-local-variable 'tab-width) 8)
+  (setq buffer-read-only t)
+  (view-mode nil 'kill-buffer)		;; assume the new view-less
+  (let* ((buffer-read-only nil)
+         (emacs-short-version (concat emacs-major-version "." emacs-minor-version))
+         (emacs-about-version (format "version %s; June 1996" emacs-short-version))
+	 (indent-tabs-mode t)
+	 )
+    (erase-buffer)
+    (insert "\n")
+    (indent-to (startup-center-spaces xemacs-logo))
+    (let ((e (make-extent (point) (point))))
+      (set-extent-begin-glyph e xemacs-logo))
+    (insert "\n\n")
+    (indent-to (startup-center-spaces "(formerly known as Lucid Emacs)"))
+    (insert "(formerly known as Lucid Emacs)")
+    (insert "\n\n")
+    (indent-to (startup-center-spaces emacs-about-version))
+    (about-xref emacs-about-version 'news "The latest NEWS of XEmacs")
+    (insert "\n\n")
+
+    (insert "\n\t")
+    (about-face "XEmacs" 'italic)
+    (insert " is a powerful, extensible text editor with full GUI
+	support, initially based on an early version of GNU Emacs 19 from
+	the Free Software Foundation and since kept up to date with recent
+	versions of that product.  XEmacs stems from a ")
+    (about-xref "collaboration" 'history "An XEmacs History Lesson")
+    (insert "\n\tof Lucid, Inc. with Sun Microsystems, Inc. and the University
+	of Illinois with additional support having been provided by
+	Amdahl Corporation and INS Engineering Corporation.\n\n\t")
+
+	(insert "In almost all circumstances, Emacs-Lisp code written for
+	GNU Emacs versions 18 and 19 will run under XEmacs without
+        requiring any modifications, or at most will require small
+	changes to accommodate an improved functional interface.\n\n\t")
+
+    (insert "XEmacs provides a great number of ")
+    (about-xref "new features" 'features "See a list of the new features.")
+    (insert ".  More details
+	on XEmacs's functionality, including bundled packages can be
+	obtained through the ")
+
+    (about-xref "`info`" 'info "Look at the info pages")
+    (insert " on-line information system.
+
+	The WWW page for XEmacs can be browsed, using any WWW browser, at\n\t\t")
+    (about-xref "http://www.xemacs.org/" 'w3-xemacs "Go to the XEmacs World Wide Web page")
+    (insert "\n\n\tNote that w3 (XEmacs's own browser), might need customization
+	(due to firewalls) in order to work correctly.\n\n\t")
+
+    (insert "XEmacs is the result of the time and effort of many people.
+	The developers responsible for the " emacs-short-version " release are:
+
+		 * ") (about-xref "Chuck Thompson" 'cthomp "Find out more about Chuck Thompson") (insert "  <cthomp@xemacs.org>
+		 * ") (about-xref "Ben Wing" 'wing "Find out more about Ben Wing") (insert "  <wing@xemacs.org>
+
+		 * ") (about-xref "And many other contributors..." 'others "Read about the legion of XEmacs hackers") (insert "
+
+	Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10,
+	the last release actually named Lucid Emacs.  Richard Mlynarik
+	was crucial to most of those releases.
+
+		 * ") (about-xref "Jamie Zawinski" 'jwz "Find out more about Jamie Zawinski") (insert "  <jwz@netscape.com>
+		 * ")  (about-xref "Richard Mlynarik" 'mly "Find out more about Richard Mlynarik")  (insert "  <mly@adoc.xerox.com>")
+   (insert "\n\n\tClick ")
+   (about-xref "here" 'kill-buffer "Exit the About page")
+   (insert " to remove (kill) this buffer.")
+   (goto-char (point-min)))
+  )
+
+(defun about-load-mosaic (&optional who-to-load)
+  (save-excursion
+    (set-buffer (get-buffer-create "About XEmacs"))
+    (toggle-read-only 0)
+
+    (let ((rest (if who-to-load (list who-to-load)
+		  '(cthomp wing stig jwz mly vladimir baw piper bw wmperry)))
+	  (got-error nil))
+      (while rest
+	(let* ((who (car rest))
+	       (who-xpm (expand-file-name
+			 (concat (symbol-name who)
+				 (if (memq (device-class (selected-device))
+					   '(color grayscale))
+				     ""
+				   "m")
+				 ".xpm")
+			 data-directory)))
+	  (or (file-exists-p who-xpm) (setq who-xpm (concat who-xpm ".Z")))
+	  (if (eq nil (assoc who (buffer-local-variables)))
+	      (make-local-variable who))
+	  (if (and (boundp who)
+		   (glyphp (symbol-value who)))
+	      nil
+	    (message "One moment please...")
+	    (condition-case c
+		(save-restriction
+		  (set who nil)
+		  (narrow-to-region (point) (point))
+		  (insert-file-contents who-xpm)
+		  (if (looking-at "\037\235") ;may already be decompressed...
+		      (call-process-region (point-min) (point-max)
+					   "zcat" t t nil))
+		  (set who (make-glyph
+			    (prog1 (buffer-string)
+			      (delete-region (point-min) (point-max)))))
+		  )
+	      (error
+	       (setq got-error t)
+	       (message nil)
+	       (display-error c nil)
+	       (sit-for 2)))))
+	(setq rest (cdr rest)))
+      (or got-error (message nil)))
+    (toggle-read-only 1)
+    ))
+
+(defun about-add-mosaic ()
+  (goto-char (point-min))
+  (about-load-mosaic)
+
+  ;; HERE TO PLACE ADDITIONAL MUGSHOTS
+
+  (goto-char (point-max))
+  (insert "\n   ")
+
+  (let ((rest '(cthomp wing stig linebreak jwz mly vladimir linebreak baw piper bw linebreak wmperry))
+	(got-error nil))
+    (while rest
+      (if (eq (car rest) 'linebreak)
+	  (insert "\n\n  ")
+	(let* ((who (car rest))
+	       (b (get-buffer "About XEmacs"))
+	       (p (symbol-value-in-buffer who b nil)))
+	  (or (glyphp p) (setq p nil))
+	  (and p
+	       (let ((e (make-extent (point) (point))))
+		 (set-extent-begin-glyph e p)
+		 (set-extent-property e 'keymap about-xref-map)
+		 (set-extent-property e 'xref who)))
+	  (insert " ")
+	  (sit-for 0)))
+      (setq rest (cdr rest)))
+    (insert "\n")
+    (goto-char (point-min))
+    (or got-error (message nil)))
+  )
+
+(defun about-xemacs-xref ()
+  (interactive "@")
+  (let* ((e (or current-mouse-event last-input-event))
+	 (extent (or (and (null e) (extent-at (point)))
+		     (and (mouse-event-p e) (event-glyph-extent e))
+ 		     (extent-at (if (mouse-event-p e)
+				    (event-point e)
+				  (point))
+				(if (mouse-event-p e)
+				    (event-buffer e)
+				  (current-buffer))
+				'xref)))
+	 (xref (extent-property extent 'xref))
+	 prev-page)
+    ;; prev-page is used for the core people's pages since they can be
+    ;; reached from two different locations
+    (if (equal (buffer-name) "About XEmacs")
+	(setq prev-page 'about)
+      ;; Kill the sub-buffers when going back to the top, so that we
+      ;; don't hold pointers to the bitmaps longer than necessary.
+      (if (not (eq xref 'w3-jamie))
+	  (progn
+	    (kill-buffer (current-buffer))
+	    (setq prev-page 'others))))
+    (cond
+     ((eq xref 'about)
+      (about-xemacs))
+     ((eq xref 'info)
+      (info))
+     ((or (eq xref 'w3-xemacs) (eq xref 'w3-jamie))
+      (funcall browse-url-browser-function
+	       (if (eq xref 'w3-xemacs)
+		   "http://www.xemacs.org/"
+		 "http://www.netscape.com/people/jwz/")))
+     ((eq xref 'kill-buffer)
+      (kill-buffer (current-buffer)))
+     ((eq xref 'news)
+      (view-emacs-news)
+      (view-mode nil 'kill-buffer)		;; assume the new view-less
+      (save-excursion
+	(goto-char (point-min))
+	(let ((buffer-read-only nil))
+	  (insert "\nClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n\n")
+	  (set-buffer-modified-p nil)
+	  )))
+     (t
+      (switch-to-buffer (get-buffer-create
+			 (cond ((eq xref 'jwz) "About Jamie Zawinski")
+			       ((eq xref 'cthomp) "About Chuck Thompson")
+			       ((eq xref 'wing) "About Ben Wing")
+			       ((eq xref 'mly) "About Richard Mlynarik")
+			       ((eq xref 'vladimir) "About Vladimir Ivanovic")
+			       ((eq xref 'baw) "About Barry Warsaw")
+			       ((eq xref 'wmperry) "About William Perry")
+			       ((eq xref 'bw) "About Bob Weiner")
+			       ((eq xref 'piper) "About Andy Piper")
+			       ((eq xref 'stig) "About Jonathan Stigelman")
+			       ((eq xref 'others) "About Everyone")
+			       ((eq xref 'features) "New XEmacs Features")
+			       ((eq xref 'history) "XEmacs History")
+			       )))
+      (delete-other-windows)
+      (buffer-disable-undo (current-buffer))
+      (widen)
+      (setq buffer-read-only t)
+      (view-mode nil 'kill-buffer)		;; assume the new view-less
+      (let ((buffer-read-only nil)
+	    (case-fold-search nil)
+	    )
+	(if (and (not (eq xref 'others)) (not (eq xref 'history))
+		 (not (eq xref 'features)))
+	    (about-load-mosaic xref))
+	(erase-buffer)
+	(let* ((b (get-buffer "About XEmacs"))
+	       (p (and b (symbol-value-in-buffer xref b nil))))
+	  (or (glyphp p) (setq p nil))
+	  (cond (p
+		 (insert "\n\t")
+		 (set-extent-begin-glyph (make-extent (point) (point)) p)
+		 (insert "\n\t"))
+		(t
+		 (insert "\n\t"))))
+	(cond
+	 ((eq xref 'history)
+	  (insert "Click ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n\n\t")
+
+	  (about-face "XEmacs" 'bold)
+	  (insert "\n\n\n\t")
+	  (about-face "The Lucid, Inc. Point of View" 'italic)
+	  (insert "
+
+	At the time of the inception of Lucid Emacs (the former name
+	of XEmacs), Lucid's latest product was Energize, a C/C++
+	development environment.  Rather than invent (and force our
+	users to learn) a new user interface, we chose to build part
+	of our environment on top of the world's best editor, GNU
+	Emacs.  (Though our product is commercial, the work we did on
+	GNU Emacs is free software, and is useful in its own right.)
+
+	We needed a version of Emacs with mouse-sensitive regions,
+	multiple fonts, the ability to mark sections of a buffer as
+	read-only, the ability to detect which parts of a buffer has
+	been modified, and many other features.
+
+	For our purposes, the existing version of Epoch was not
+	sufficient; it did not allow us to put arbitrary pixmaps/icons
+	in buffers, `undo' did not restore changes to regions, regions
+	did not overlap and merge their attributes in the way we needed,
+	and several other things.
+
+	We could have devoted our time to making Epoch do what we needed
+	(and, in fact, we spent some time doing that in 1990) but, since
+	the FSF planned to include Epoch-like features in their version
+	19, we decided that our efforts would be better spent improving
+	Emacs 19 instead of Epoch.
+
+	Our original hope was that our changes to Emacs would be
+	incorporated into the \"official\" v19.  However, scheduling
+	conflicts arose, and we found that, given the amount of work
+	still remaining to be done, we didn't have the time or manpower
+	to do the level of coordination that would be necessary to get
+	our changes accepted by the FSF.  Consequently, we released our
+	work as a forked branch of Emacs, instead of delaying any
+	longer.
+
+	Roughly a year after Lucid Emacs 19.0 was released, a beta
+	version of the FSF branch of Emacs 19 was released.  The FSF
+	version is better in some areas, and worse in others, as
+	reflects the differing focus of our development efforts.
+
+	We plan to continue developing and supporting Lucid Emacs, and
+	merging in bug fixes and new features from the FSF branch as
+	appropriate; we do not plan to discard any of the functionality
+	that we implemented which RMS has chosen not to include in his
+	version.
+
+	Certain elements of Lucid Emacs, or derivatives of them, have
+	been ported to the FSF version.  We have not been doing work in
+	this direction, because we feel that Lucid Emacs has a cleaner
+	and more extensible substrate, and that any kind of merger
+	between the two branches would be far easier by merging the FSF
+	changes into our version than the other way around.
+
+	We have been working closely with the Epoch developers to merge
+	in the remaining Epoch functionality which Lucid Emacs does not
+	yet have.  Epoch and Lucid Emacs will soon be one and the same
+	thing.  Work is being done on a compatibility package which will
+	allow Epoch 4 code to run in XEmacs with little or no change.")
+
+	  (insert "\n\n\n\t")
+	  (about-face "The Sun Microsystems, Inc. Point of View" 'italic)
+	  (insert "
+
+	Emacs 18 has been around for a long, long time.  Version 19 was
+	supposed to be the successor to v18 with X support.  It was
+	going to be available \"real soon\" for a long time (some
+	people remember hearing about v19 as early as 1984!), but it
+	never came out.  v19 development was going very, very slowly,
+	and from the outside it seemed that it was not moving at all.
+	In the meantime other people gave up waiting for v19 and
+	decided to build their own X-aware Emacsen.  The most important
+	of these was probably Epoch, which came from University of
+	Illinois (\"UofI\") and was based on v18.
+
+	Around three or four years ago what was then called SunPro (a
+	division of Sun Microsystems, Inc.) decided that it wanted an
+	integrated editor.  They contracted with UofI to provide a
+	number of basic enhancements to the functionality in Epoch.
+	UofI initially was planning to deliver this on top of Epoch
+	code.
+
+	In the meantime (actually some time before they talked with UofI)
+	Lucid had decided that it also wanted to provide an integrated
+	environment with an integrated editor.  Lucid decided that the
+	v19 basis was a better one than v18 and thus decided not to use
+	Epoch but instead work with Richard Stallman, the head of the
+	Free Software Foundation and principle author of Emacs, on
+	getting v19 out.  At some point Stallman and Lucid parted ways.
+	Lucid kept working and got a v19 out that they called Lucid
+	Emacs 19.
+
+	After Lucid's v19 came out it became clear to UofI and SunPro
+	that the right thing to do was to push for an integration of
+	both Lucid Emacs and Epoch, and to get the deliverables that
+	SunPro was asking from UofI on top of this integrated
+	platform.  Through the last three or four years, SunPro has
+	been actively supporting this product and has been investing a
+	comparable amount of effort into it as Lucid has.  Substantial
+	portions of the current code have originated under the support
+	of SunPro, either directly in SunPro, or in UofI but paid for
+	by SunPro.  This code was kept away from Lucid for a while,
+	but later was made available to them.  Initially Lucid didn't
+	know that SunPro was supporting UofI, but later they were open
+	about it.
+
+	Around two years ago the SunPro-related code started showing up
+	in Lucid Emacs.  This started with the infusion of the Epoch
+	redisplay code.
+
+	At this moment there is basically no difference in the source
+	trees between what is at UofI and at Sun.  All the development
+	sites are in sync.
+
+	SunPro originally called the integrated product ERA, for
+	\"Emacs Rewritten Again\".  SunPro and Lucid eventually came
+	to an agreement to find a name for the product that was not
+	specific to either company.  An additional constraint that
+	Lucid placed on the name was that it must contain the word
+	\"Emacs\" in it -- thus \"ERA\" was not acceptable.  The
+	tentatively agreed-upon name was \"XEmacs\", and this has
+	been the name of the product since version 19.11.)")
+
+	  (insert "\n\n\n\t")
+	  (about-face "SunPro is now DevPro (SunSoft Developer Products)\n" 'italic)
+	  (insert "
+	In mid-'94 Sun completed a reorganization where SunPro moved to
+	SunSoft.  As a consequence, SunPro is now called SunSoft Developer
+	Products, or DevPro for short. ")
+
+	  (insert "\n\n\n\t")
+	  (about-face "Lucid goes under\n" 'italic)
+	  (insert "
+	Around mid-'94, Lucid went out of business.  Development on
+	XEmacs, however, has continued unabated under the auspices of
+	Sun Microsystems and the University of Illinois, with help
+	from Amdahl Corporation and INS Engineering Corporation.
+	Sun plans to continue to support XEmacs into the future.")
+
+	  (insert "\n\n\n\t")
+	  (about-face "The Amdahl Corporation point of view" 'italic)
+	  (insert "
+
+	Amdahl Corporation's Storage Products Group (SPG) uses XEmacs
+	as the focal point of a environment for development of the
+	microcode used in Amdahl's large-scale disk arrays, or DASD's.
+	SPG has joint ventures with Japanese companies, and decided
+	in late 1994 to contract out for work on XEmacs in order
+	to hasten the development of Mule support (i.e. support for
+	Japanese, Chinese, etc.) in XEmacs and as a gesture of goodwill
+	towards the XEmacs community for all the work they have done
+	on making a powerful, modern, freely available text editor.
+	Through this contract, Amdahl provided a large amount of work
+	in XEmacs in the form of rewriting the basic text-processing
+	mechanisms to allow for Mule support and writing a large
+	amount of the support for multiple devices.
+	
+	Although Amdahl is no longer hiring a full-time contractor,
+	they are still funding part-time work on XEmacs and providing
+	resources for further XEmacs development.")
+
+	  (insert "\n\n\n\t")
+	  (about-face "The INS Engineering point of view" 'italic)
+	  (insert "
+
+        INS Engineering Corporation, based in Tokyo, bought rights
+	to sell Energize when Lucid went out of business.  Unhappy
+	with the performance of the Japanese support in XEmacs 19.11,
+	INS also contributed to the XEmacs development from late 1994
+	to early 1995.")
+
+	  (insert "\n\n\n\t")
+	  (insert "Click ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n\n\t")
+	  )
+	 ((eq xref 'jwz)
+	  (about-face "Jamie Zawinski" 'bold)
+	  (insert "\t\t\"")
+	  (about-face "So much to do, so little time." 'italic)
+	  (insert "\"\n")
+	  (insert "\n
+	Jamie Zawinski was primarily to blame for Lucid Emacs from its
+	inception in 1991, to 1994 when Lucid Inc. finally died.  He is
+	now to be found at Netscape Communications, hacking on Netscape
+        Navigator (he did the first Unix version and the mail reader).
+        Thankfully his extensive sleep deprivation experiments conducted
+        during 1994 and 1995 are now a thing of the past, but his
+        predilection for dark, Gothic music remains unabated.
+
+	Come visit his glorified .plan file at
+
+		")
+	  (about-xref "http://www.netscape.com/people/jwz/" 'w3-jamie "Visit Jamie's WWW page")
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+	 ((eq xref 'cthomp)
+	  (about-face "Chuck Thompson" 'bold)
+	  (insert " <cthomp@xemacs.org>
+
+	Chuck, through being in the wrong place at the right time, has
+	gotten stuck with being Jamie's replacement as the primary
+	maintainer of XEmacs.  This has caused his hair to begin
+	falling out and quadrupled his daily coffee dosage.  Though he
+	works at and for the University of Illinois his funding for
+	XEmacs work actually came from Sun Microsystems.
+
+	He has worked on XEmacs since November 1992, which fact
+	occasionally gives him nightmares.  As of October 1995, he no
+	longer works full-time on XEmacs, though he does continue as
+	an active maintainer.  His main contributions have been the
+	greatly enhanced redisplay engine, scrollbar support, the
+	toolbars, configure support and numerous other minor features
+	and fixes.
+
+	Rumors that Chuck is aka Black Francis aka Frank Black are
+	completely unfounded.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+	 ((eq xref 'wing)
+	  (about-face "Ben Wing" 'bold)
+	  (insert " <wing@666.com>
+
+	I'm not a thug -- I just play one on video.
+	My roommate says I'm a San Francisco \"Mission Critter\".\n\n\t")
+	  (about-face "Gory stuff follows:" 'italic)
+	  (insert "
+
+	In 1992 I left a stuffy East-Coast university, set out into the
+	real world, and ended up a co-founder of Pearl Software.  As
+	part of this company, I became the principal architect of
+	Win-Emacs, a port of Lucid Emacs to Microsoft Windows and
+	Windows NT (for more info, e-mail to ")
+	  (about-face "info@pearlsoft.com" 'italic)
+	  (insert ").
+
+	Since April 1993, I've worked on XEmacs as a contractor
+	for various companies, changing hats faster than Ronald Reagan's
+        hair color (oops, did I just show my age?).  My main contributions
+        to XEmacs include rewriting large parts of the internals and the
+        gory Xt/Xlib interfacing, adding the Mule support, implementing
+        the external client widget, improving the documentation (especially
+        the Emacs Lisp manual), and being a general nuisance ... er,
+        brainstormer for many of the new features of XEmacs.
+
+        Recently I took a job at Dimension X, where I'm working on a
+        Java-based toolkit for developing VRML applications.")
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+	 ((eq xref 'mly)
+	  (about-face "Richard Mlynarik" 'bold)
+	  (insert " <mly@adoc.xerox.com>
+
+	Cars are Evil.  Ride a bike.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+	 ((eq xref 'vladimir)
+	  (about-face "Vladimir Ivanovic" 'bold)
+	  (insert " <vladimir@mri.com>
+
+	Former technical lead for XEmacs at DevPro (formerly SunPro),
+	a division of Sun Microsystems.  He is now with Microtec
+	Research Inc., working on embedded systems development
+	tools.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'baw)
+	  (about-face "Barry Warsaw" 'bold)
+	  (insert " <bwarsaw@cnri.reston.va.us>
+
+	Author of cc-mode for C++, C, and Objective-C editing, and
+	Supercite for mail and news citing.  Also various and sundry other
+	Emacs utilities, fixes, enhancements and kludgery as whimsy,
+	boredom, and ToT dictate (but not necessarily in that order).
+
+
+	Daddy
+	© 1994 Warsaw
+	========
+	Drive me Daddy, drive me quick
+	Push my pedal, shift my stick
+	Fill me up with golden gas
+	My rubber squeals, I go real fast
+
+	Milk me Daddy, milk me now
+	Milk me like a big ol' cow
+	I've got milk inside my udder
+	Churn it up and make some butter")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'bw)
+	  (about-face "Bob Weiner" 'bold)
+	  (insert " <weiner@mot.com>
+
+	Author of the Hyperbole everyday information management
+	hypertext system and the OO-Browser multi-language code
+	browser.  He also designed the InfoDock integrated tool
+	framework for software engineers.  It runs atop XEmacs and is
+	available from \"/anonymous@ftp.xemacs.org:pub/infodock\".
+	His interests include user interfaces, information management,
+	CASE tools, communications and enterprise integration.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'piper)
+	  (about-face "Andy Piper" 'bold)
+	  (insert " <andyp@parallax.co.uk>
+
+	Author of the original \"fake\" XEmacs toolbar, and outl-mouse for
+	mouse gesture based outlining.  Accomplished kludge contributor.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'stig)
+	  (about-face "Jonathan Stigelman" 'bold)
+	  (insert " <stig@hackvan.com>
+
+	Stig is sort of a tool fetishist.  He has a hate/love relationship
+	with computers and he hacks on XEmacs because it's a good tool that
+	makes computers somewhat less of a nuisance.  Besides XEmacs, Stig
+	especially likes his Leatherman, his Makita, and his lockpicks.
+	Stig wants a MIG welder and air tools.
+
+	Stig likes to perch, hang from the ceiling, and climb on the walls.
+	Stig has a cool van.  Stig would like to be able to telecommute
+	from, say, the north rim of the Grand Canyon or the midst of Baja.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'wmperry)
+	  (about-face "William Perry" 'bold)
+	  (insert " <wmperry@spry.com>
+
+ 	Author of Emacs-w3, the builtin web browser that comes with XEmacs,
+        and various additions to the C code (e.g. the database support,
+        the PNG support, some of the GIF/JPEG support, the strikethru
+        face attribute support).
+
+        He is currently working on adding really cool stylesheets to the
+        web, which will stress the new capabilities of XEmacs to the limit.
+
+        He only gets paid for working on an HTTP server for Spry, but will
+        hack emacs for beer.")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
+	 ((eq xref 'others)
+	  (insert "Click ")
+	  (about-xref "here" 'about "Return to previous page")
+	  (insert " to go back to the previous page\n\n\t")
+
+	  (about-face "Other Contributors to XEmacs" 'italic)
+
+	  (insert "
+
+	Like most free software, XEmacs is a collaborative effort.
+	These are some of the contributors; we have no doubt forgotten
+	someone; we apologize!  You can see some of our faces further below.
+
+	Martin Buchholz <Martin.Buchholz@sun.com>
+	  Technical lead for XEmacs at DevPro (formerly SunPro), a
+	  division of Sun Microsystems.  Martin used to do XEmacs as a
+	  `hobby' while at IBM, and was crazy enough to try to do it
+	  for a living at Sun.  Martin is currently working mostly on
+	  Internationalization.
+
+	") (about-xref "Vladimir Ivanovic" 'vladimir "Find out more about Vladimir Ivanovic") (insert " <vladimir@mri.com>
+	  Former technical lead for XEmacs at Sun Microsystems.  He is
+	  now with Microtec Research Inc., working on embedded systems
+	  development tools.
+
+	") (about-xref "Jonathan Stigelman" 'stig "Find out more about Jonathan Stigelman") (insert " <stig@hackvan.com>
+          Peripatetic uninominal Emacs hacker.  Stig sometimes operates
+	  out of a big white van set up for nomadic living and hacking.
+	  Implemented the faster stay-up Lucid menus and hyper-apropos.
+	  Contributor of many dispersed improvements in the core Lisp code,
+	  and back-seat contributor for several of it's major packages.
+
+	") (about-xref "Barry Warsaw" 'baw "Find out more about Barry Warsaw") (insert " <bwarsaw@cnri.reston.va.us>
+	  Author of cc-mode for C++, C, and Objective-C editing, and
+	  Supercite for mail and news citing.  Also various and sundry other
+	  Emacs utilities, fixes, enhancements and kludgery as whimsy,
+	  boredom, and ToT dictate (but not necessarily in that order).
+
+	") (about-xref "Andy Piper" 'piper "Find out more about Andy Piper") (insert " <andyp@parallax.co.uk>
+	  Created the prototype for the toolbars.  Has been the first to make
+	  use of many of the new XEmacs graphics features.
+
+	") (about-xref "Bob Weiner" 'bw "Find out more about Bob Weiner") (insert " <weiner@mot.com>
+	  Author of the Hyperbole everyday information management
+	  hypertext system and the OO-Browser multi-language code
+	  browser.  He also designed the InfoDock integrated tool
+	  framework for software engineers.  It runs atop XEmacs and is
+	  available from \"/anonymous@ftp.xemacs.org:pub/infodock\".
+	  His interests include user interfaces, information management,
+	  CASE tools, communications and enterprise integration.
+
+	") (about-xref "William Perry" 'wmperry "Find out more about Bill Perry") (insert " <wmperry@spry.com>
+	  Author of W3, a package for browsing the World Wide Web
+	  which is included in the standard XEmacs distribution.
+	  Although W3 runs on all versions of Emacs, Bill has been
+	  quick to take advantage of the unique features of XEmacs
+	  (such as embedded images and windows).  Thus, the XEmacs
+	  version of W3 is significantly more powerful than versions
+	  running in other Emacs variants.
+
+	Kyle Jones <kyle@crystal.wonderworks.com>
+	  Author of VM (View Mail), a mail-reading package that is
+	  included in the standard XEmacs distribution, and
+	  contributor of many improvements and bug fixes.  Unlike most
+	  other mail-reading packages, VM uses the standard Unix-mail
+	  format for its mailboxes; thus, you can use VM concurrently
+	  with standard mail readers such as Unix mail and ELM.
+
+	Darrell Kindred <Darrell.Kindred@cmu.edu>
+	  Unofficial maintainer of the xemacs-beta list of extant
+	  bugs and contributor of an extraordinary number of
+	  important bug fixes, many of them in areas that neither
+	  Chuck nor Ben was particularly enthusiastic about
+	  investigating.
+
+	Eduardo Pelegri-Llopart <pelegri@eng.sun.com>
+	  Author of EOS, a package included in the standard XEmacs
+	  distribution that integrates XEmacs with the SPARCworks
+	  development environment from SunPro.  Past lead for XEmacs
+	  at SunPro; advocated the validity of using Epoch, and later
+	  Lemacs, at SunPro through several early prototypes.
+
+	Matthieu Devin <devin@rs.com>
+	  Part of the original (pre-19.0) Lucid Emacs development team.
+	  Matthieu wrote the initial Energize interface, designed the
+	  toolkit-independent Lucid Widget library, and fixed enough
+	  redisplay bugs to last a lifetime.  The features in Lucid
+	  Emacs were largely inspired by Matthieu's initial prototype
+	  of an Energize interface using Epoch.
+
+	Harlan Sexton <hbs@odi.com>
+	  Part of the original (pre-19.0) Lucid Emacs development team.
+	  Harlan designed and implemented many of the low level data
+	  structures which are original to the Lucid version of Emacs,
+	  including extents and hash tables.
+
+	Eric Benson <eb@kaleida.com>
+	  Part of the original (pre-19.0) Lucid Emacs development team.
+	  Eric played a big part in the design of many aspects of the
+	  system, including the new command loop and keymaps, fixed
+	  numerous bugs, and has been a reliable beta tester ever
+	  since.
+
+	John Rose <john.rose@sun.com>
+	  Author of many extensions to the `extents' code, including
+	  the initial implementation of `duplicable' properties.
+
+	Hans Muller <hmuller@eng.sun.com>
+	 Author of the code used to connect XEmacs with ToolTalk,
+	 and of an early client of the external Emacs widget.
+
+	In addition to those just mentioned, the following people have
+	spent a great deal of effort providing feedback, testing beta
+	versions of XEmacs, providing patches to the source code,
+	or doing all of the above.  We couldn't have done it without
+	them.
+
+	  Nagi M. Aboulenein <aboulene@ponder.csci.unt.edu>
+	  Gary Adams <gra@zeppo.East.Sun.COM>
+	  Gennady Agranov <agranov@csa.CS.Technion.Ac.IL>
+	  Mark Allender <allender@vnet.IBM.COM>
+	  Butch Anton <butch@zaphod.uchicago.edu>
+	  Fred Appelman <Fred.Appelman@cv.ruu.nl>
+	  Tor Arntsen <tor@spacetec.no>
+	  Mike Battaglia <mbattagl@dsccc.com>
+	  Steven L Baur <steve@miranova.com>
+	  Neal Becker <neal@ctd.comsat.com>
+	  Paul Bibilo <peb@delcam.com>
+	  Jan Borchers <job@tk.uni-linz.ac.at>
+	  Mark Borges <mdb@cdc.noaa.gov>
+	  David P. Boswell <daveb@tau.space.thiokol.com>
+	  Tim Bradshaw <tfb@edinburgh.ac.uk>
+	  Rick Braumoeller <rickb@mti.sgi.com>
+	  Matthew J. Brown <mjb@doc.ic.ac.uk>
+	  Alastair Burt <burt@dfki.uni-kl.de>
+	  Rick Busdiecker <rfb@lehman.com>
+	  Richard Caley <rjc@cstr.edinburgh.ac.uk>
+	  Stephen Carney <carney@gvc.dec.com>
+	  Philippe Charton <charton@lmd.ens.fr>
+	  Peter Cheng <peter.cheng@sun.com>
+	  Jin S. Choi <jin@atype.com>
+	  Serenella Ciongoli <czs00@ladybug.oes.amdahl.com>
+	  Richard Cognot <cognot@ensg.u-nancy.fr>
+	  Andy Cohen <cohen@andy.bu.edu>
+	  Christopher Davis <ckd@kei.com>
+	  Michael Diers <mdiers@logware.de>
+	  William G. Dubuque <wgd@martigny.ai.mit.edu>
+	  Samuel J. Eaton <samuele@cogs.susx.ac.uk>
+	  Carl Edman <cedman@Princeton.EDU>
+	  Dave Edmondson <davided@sco.com>
+	  Eric Eide <eeide@asylum.cs.utah.edu>
+	  David Fletcher <frodo@tsunami.com>
+	  Paul Flinders <ptf@delcam.co.uk>
+	  Jered J Floyd <jered@mit.edu>
+	  Jerry Frain <jerry@sneffels.tivoli.com>
+	  Benjamin Fried <bf@morgan.com>
+	  Barry Friedman <friedman@bnr.ca>
+	  Lew Gaiter III <lew@StarFire.com>
+	  Tim Geisler <Tim.Geisler@informatik.uni-muenchen.de>
+	  Dave Gillespie <daveg@synaptics.com>
+	  Christian F. Goetze <cg@bigbook.com>
+	  Wolfgang Grieskamp <wg@cs.tu-berlin.de>
+	  James Grinter <jrg@demon.net>
+	  Ben Gross <bgross@uiuc.edu>
+	  Dirk Grunwald <grunwald@foobar.cs.Colorado.EDU>
+	  Dipankar Gupta <dg@hplb.hpl.hp.com>
+	  Markus Gutschke <gutschk@GOEDEL.UNI-MUENSTER.DE>
+	  Adam Hammer <hammer@cs.purdue.edu>
+	  Magnus Hammerin <magnush@epact.se>
+	  ChangGil Han <cghan@phys401.phys.pusan.ac.kr>
+	  Derek Harding <dharding@lssec.bt.co.uk>
+	  John Haxby <J.Haxby@isode.com>
+	  Jareth \"JHod\" Hein <jhod@po.iijnet.or.jp>
+	  Benedikt Heinen <beh@icemark.thenet.ch>
+	  Stephan Herrmann <sh@first.gmd.de>
+	  Charles Hines <chuck_hines@VNET.IBM.COM>
+	  David Hughes <djh@harston.cv.com>
+	  Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+	  Andrew Innes <andrewi@harlequin.co.uk>
+	  Markku Jarvinen <Markku.Jarvinen@simpukka.funet.fi>
+	  Robin Jeffries <robin.jeffries@sun.com>
+	  Philip Johnson <johnson@uhics.ics.Hawaii.Edu>
+	  J. Kean Johnston <jkj@paradigm-sa.com>
+	  Doug Keller <dkeller@vnet.ibm.com>
+	  Gregor Kennedy <gregork@dadd.ti.com>
+	  Michael Kifer <kifer@cs.sunysb.edu>
+	  Yasuhiko Kiuchi <kiuchi@dsp.ksp.fujixerox.co.jp>
+	  Jens Lautenbacher <jens@lemcbed.lem.uni-karlsruhe.de>
+	  Simon Leinen <simon@instrumatic.ch>
+	  James LewisMoss <moss@cs.sc.edu>
+	  Mats Lidell <mats.lidell@contactor.se>
+	  Matt Liggett <mliggett@seven.ucs.indiana.edu>
+	  Christian Limpach <Christian.Limpach@nice.ch>
+	  Robert Lipe <robertl@arnet.com>
+	  Damon Lipparelli <lipp@aa.net>
+	  Hamish Macdonald <hamish@bnr.ca>
+	  Ian MacKinnon <imac@rd.abs.alcatel.co.uk>
+	  Patrick MacRoberts <macro@hpcobr30.cup.hp.com>
+	  Tonny Madsen <Tonny.Madsen@netman.dk>
+	  Ketil Z Malde <ketil@ii.uib.no>
+	  Steve March <smarch@quaver.urbana.mcd.mot.com>
+	  Simon Marshall <Simon.Marshall@mail.esrin.esa.it>
+	  Dave Mason <dmason@plg.uwaterloo.ca>
+	  Jaye Mathisen <mrcpu@cdsnet.net>
+	  Michael Meissner <meissner@osf.org>
+	  David M. Meyer <meyer@ns.uoregon.edu>
+	  Brad Miller <bmiller@cs.umn.edu>
+	  John Morey <jmorey@crl.com>
+	  Rob Mori <rob.mori@sun.com>
+	  Heiko Muenkel <muenkel@tnt.uni-hannover.de>
+	  Arup Mukherjee <arup+@cs.cmu.edu>
+	  Colas Nahaboo <Colas.Nahaboo@sophia.inria.fr>
+	  Lynn D. Newton <lynn@ives.phx.mcd.mot.com>
+	  Georg Nikodym <Georg.Nikodym@canada.sun.com>
+	  Andy Norman <ange@hplb.hpl.hp.com>
+	  Joseph J. Nuspl Jr. <nuspl@cc.purdue.edu>
+	  Kim Nyberg <kny@tekla.fi>
+	  David Ofelt <ofelt@getalife.Stanford.EDU>
+	  Greg Onufer <Greg.Onufer@eng.sun.com>
+	  Achim Oppelt <aoppelt@theorie3.physik.uni-erlangen.de>
+	  Sudeep Kumar Palat <palat@idt.unit.no>
+	  Marc Paquette <Marc.Paquette@Softimage.com>
+	  Jens-U H Petersen <petersen@kurims.kyoto-u.ac.jp>
+	  Thomas A. Peterson <tap@src.honeywell.com>
+	  Peter Pezaris <pez@dwwc.com>
+	  Tibor Polgar <tlp00@eng.amdahl.com>
+	  E. Rehmi Post <rehmi@asylum.sf.ca.us>
+	  Paul M Reilly <pmr@pajato.com>
+	  Jack Repenning <jackr@sgi.com>
+	  Daniel Rich <drich@cisco.com>
+	  Roland Rieke <rol@darmstadt.gmd.de>
+	  Russell Ritchie <ritchier@msc.ie>
+	  Mike Russell <mjruss@rchland.vnet.ibm.com>
+	  Jan Sandquist <etxquist@iqa.ericsson.se>
+	  Marty Sasaki <sasaki@spdcc.com>
+	  Mike Scheidler <c23mts@eng.delcoelect.com>
+	  Darrel Schneider <darrel@slc.com>
+	  Hayden Schultz <haydens@ll.mit.edu>
+	  Cotton Seed <cottons@cybercom.net>
+	  Axel Seibert <seiberta@informatik.tu-muenchen.de>
+	  Odd-Magne Sekkingstad <oddms@ii.uib.no>
+	  John Shen <zfs60@cas.org>
+	  Jeffrey Sparkes <jsparkes@bnr.ca>
+	  Michael Sperber <sperber@informatik.uni-tuebingen.de>
+	  Manoj Srivastava <srivasta@pilgrim.umass.edu>
+	  Francois Staes <frans@kiwi.uia.ac.be>
+	  Jason Stewart <jasons@cs.unm.edu>
+	  Rick Tait <rickt@gnu.ai.mit.edu>
+	  James Thompson <thompson@wg2.waii.com>
+	  Morioka Tomohiko <morioka@jaist.ac.jp>
+	  Raymond L. Toy <toy@rtp.ericsson.se>
+	  John Turner <turner@xdiv.lanl.gov>
+	  Vladimir Vukicevic <vladimir@intrepid.com>
+	  Peter Ware <ware@cis.ohio-state.edu>
+	  Yoav Weiss <yoav@zeus.datasrv.co.il>
+	  Rod Whitby <rwhitby@asc.corp.mot.com>
+	  Rich Williams <rdw@hplb.hpl.hp.com>
+	  David C Worenklein <dcw@gcm.com>
+	  Takeshi Yamada <yamada@sylvie.kecl.ntt.jp>
+	  Jason Yanowitz <yanowitz@eternity.cs.umass.edu>
+	  La Monte Yarroll <piggy@hilbert.maths.utas.edu.au>
+	  Blair Zajac <blair@olympia.gps.caltech.edu>
+	  Daniel Zivkovic <daniel@canada.sun.com>
+	  Karel Zuiderveld <Karel.Zuiderveld@cv.ruu.nl>
+	  and the makers of Jolt Cola (tm)")
+	  (goto-char (point-min))
+	  (while (re-search-forward "^[ \t]*\\([^<>\n]+\\) <[^>\n]+>$"
+				    nil t)
+	    (set-extent-face (make-extent (match-beginning 1) (match-end 1))
+			     'bold))
+	  (goto-char (point-min))
+	  (while (re-search-forward "^[ \t]*<\\([^>\n]+\\)>$" nil t)
+	    (set-extent-face (make-extent (match-beginning 1) (match-end 1))
+			     'bold))
+
+	  (goto-char (point-max))
+	  (insert "\n")
+	  (about-add-mosaic)
+	  (goto-char (point-max))
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" 'about "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+	 ((eq xref 'features)
+	  (insert "Click ")
+	  (about-xref "here" 'about "Return to previous page")
+	  (insert " to go back to the previous page\n\n\t")
+
+	  (about-face "New Features in XEmacs" 'bold-italic)
+
+	  (insert "\n
+	 * A real toolbar.
+	 * Proper integration with Xt and Motif (including Motif menubars
+	   and scrollbars).  Motif look-alike menubars and scrollbars
+	   are provided for those systems without real Motif support.
+	 * Face support on TTY's, including color.
+	 * Horizontal and vertical scrollbars in all windows.
+	 * Support for variable-width and variable height fonts.
+	 * Support for display on multiple simultaneous X and/or TTY devices.
+	 * Support for arbitrary pixmaps in a buffer.
+	 * Access to the ToolTalk API.
+	 * Support for using XEmacs frames as Xt widgets.
+	 * Support for overlapping regions (or extents) and efficient handling
+	   of a large number of such extents in a single buffer.
+	 * Powerful, flexible control over the display characteristics
+	   of most of the visual aspects of XEmacs through the use
+	   of specifiers, which allow separate values to be specified
+	   for individual buffers, windows, frames, devices, device classes,
+	   and device types.
+	 * A clean interface to the menubar, window-system events, and key
+	   combinations."))
+	 ))
+      (goto-char (point-min))
+      ))))