Reformatted.
[chise/xemacs-chise.git.1] / lisp / about.el
1 ;;; about.el --- the About The Authors page (shameless self promotion).
2
3 ;; Copyright (c) 1997, 2005 Free Software Foundation, Inc.
4 ;; Copyright (C) 2001 Ben Wing.
5
6 ;; Keywords: extensions
7 ;; Version: 2.5
8 ;; Maintainer: XEmacs Development Team
9
10 ;; This file is part of XEmacs.
11
12 ;; XEmacs is free software; you can redistribute it and/or modify it
13 ;; under the terms of the GNU General Public License as published by
14 ;; the Free Software Foundation; either version 2, or (at your option)
15 ;; any later version.
16
17 ;; XEmacs is distributed in the hope that it will be useful, but
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 ;; General Public License for more details.
21
22 ;; You should have received a copy of the GNU General Public License
23 ;; along with XEmacs; see the file COPYING.  If not, write to the
24 ;; Free Software Foundation, 59 Temple Place - Suite 330,
25 ;; Boston, MA 02111-1307, USA.
26
27 ;;; Synched up with: Not in FSF.
28
29 ;; Original code: Jamie Zawinski <jwz@jwz.org>
30 ;; Text: Ben Wing <ben@xemacs.org>, Jamie Zawinski <jwz@jwz.org>
31 ;; Hard: Amiga 1000, Progressive Peripherals Frame Grabber.
32 ;; Soft: FG 2.0, DigiPaint 3.0, pbmplus (dec 91), xv 3.0.
33 ;; Modified for 19.11 by Eduardo Pelegri-Llopart <pelegri@eng.sun.com>
34 ;;                    and Chuck Thompson <cthomp@xemacs.org>
35 ;; More hacking for 19.12 by Chuck Thompson and Ben Wing.
36 ;; 19.13 and 19.14 updating done by Chuck Thompson.
37 ;; 19.15 and 20.0 updating done by Steve Baur and Martin Buchholz.
38
39 ;; Completely rewritten for 20.3 by Hrvoje Niksic <hniksic@xemacs.org>.
40 ;; The original had no version numbers; I numbered the rewrite as 2.0.
41 ;; Extensively revamped and most text rewritten by Ben Wing
42 ;; <ben@xemacs.org> for 21.4.
43
44 ;; Many things in this file are to gag.  Ideally, we should just use
45 ;; HTML (or some other extension, e.g. info) for this sort of thing.
46 ;; However, W3 loads too long and is too large to be dumped with
47 ;; XEmacs.
48
49 ;; If you think this is ugly now -- o boy, you should have seen it
50 ;; before.
51
52 (require 'wid-edit)
53
54 ;; People in this list have their individual links from the main page,
55 ;; or from the `Legion' page.  If they have an image, it should be
56 ;; named after the CAR of the list element (baw -> baw.png).
57 ;;
58 ;; If you add to this list, you'll want to update
59 ;; `about-personal-info' and `about-hackers', and add the name to one
60 ;; of the three mutually exclusive lists just below.
61
62 (defface about-headline-face
63   '((((class color) (background dark))
64      (:foreground "red" :bold t))
65     ;; red4 is hardly different from black on windows.
66     (((class color) (background light)
67       (type mswindows))
68      (:foreground "red" :bold t))
69     (((class color) (background light))
70      (:foreground "red4" :bold t))
71     (((class grayscale) (background light))
72      (:foreground "LightGray" :bold t))
73     (((class grayscale) (background dark))
74      (:foreground "DimGray" :bold t))
75     (t (:bold t)))
76   "Face used for color-highlighted headlines in the About page.")
77
78 (defface about-link-face
79   '((((class color) (background dark))
80      (:foreground "blue" :underline t))
81     ;; blue4 is hardly different from black on windows.
82     (((class color) (background light) (type mswindows))
83      (:foreground "blue3" :underline t))
84     (((class color) (background light))
85      (:foreground "blue4" :underline t))
86     (((class grayscale) (background light))
87      (:foreground "DimGray" :bold t :italic t :underline t))
88     (((class grayscale) (background dark))
89      (:foreground "LightGray" :bold t :italic t :underline t))
90     (t (:underline t)))
91   "Face used for links in the About page.")
92
93 (defvar xemacs-hackers
94   '(
95     ;; to sort the stuff below, use M-x sort-regexp-fields RET
96     ;; ^.*$ RET (\([a-z]*\) RET
97     (adrian   "Adrian Aichner"    "adrian@xemacs.org")
98     (aj       "Andreas Jaeger"    "aj@xemacs.org")
99     (ajc      "Andrew Cosgriff"   "ajc@xemacs.org")
100     (alastair "Alastair Houghton" "alastair@xemacs.org")
101     (baw      "Barry Warsaw"      "bwarsaw@xemacs.org")
102     (ben      "Ben Wing"          "ben@xemacs.org")
103     (bw       "Bob Weiner"        "weiner@xemacs.org")
104     (cgw      "Charles Waldman"   "cgw@xemacs.org")
105     (chr      "Christian Nybø"    "chr@xemacs.org")
106     (craig    "Craig Lanning"     "craig@xemacs.org")
107     (cthomp   "Chuck Thompson"    "cthomp@xemacs.org")
108     (daiki    "Daiki Ueno"        "daiki@xemacs.org")
109     (dan      "Dan Holmsand"      "dan@xemacs.org")
110     (darrylo  "Darryl Okahata"    "darrylo@xemacs.org")
111     (devin    "Matthieu Devin"    "devin@xemacs.org")
112     (dkindred "Darrell Kindred"   "dkindred@xemacs.org")
113     (dmoore   "David Moore"       "dmoore@xemacs.org")
114     (didier   "Didier Verna"      "didier@xemacs.org")
115     (eb       "Eric Benson"       "eb@xemacs.org")
116     (fabrice  "Fabrice Popineau"  "fabrice@xemacs.org")
117     (golubev  "Ilya Golubev"      "golubev@xemacs.org")
118     (gunnar   "Gunnar Evermann"   "gunnar@xemacs.org")
119     (hbs      "Harlan Sexton"     "hbs@xemacs.org")
120     (hisashi  "Hisashi Miyashita" "hisashi@xemacs.org")
121     (hmuller  "Hans Muller"       "hmuller@xemacs.org")
122     (hniksic  "Hrvoje Niksic"     "hniksic@xemacs.org")
123     (hobley   "David hobley"      "hobley@xemacs.org")
124     (jan      "Jan Vroonhof"      "jan@xemacs.org")
125     (jareth   "Jareth Hein"       "jareth@xemacs.org")
126     (jas      "Simon Josefsson"   "simon@xemacs.org")
127     (jason    "Jason R. Mastaler" "jason@xemacs.org")
128     (jens     "Jens Lautenbacher" "jens@xemacs.org")
129     (jmiller  "Jeff Miller"       "jmiller@xemacs.org")
130     (jonathan "Jonathan Harris"   "jonathan@xemacs.org")
131     (juhp     "Jens-Ulrik Holger Petersen" "petersen@xemacs.org")
132     (jwz      "Jamie Zawinski"    "jwz@xemacs.org")
133     (kazz     "IENAGA Kazuyuki"   "ienaga@xemacs.org")
134     (kirill   "Kirill Katsnelson" "kirill@xemacs.org")
135     (kyle     "Kyle Jones"        "kyle@xemacs.org")
136     (larsi    "Lars Magne Ingebrigtsen" "larsi@xemacs.org")
137     (marcpa   "Marc Paquette"     "marcpa@xemacs.org")
138     (martin   "Martin Buchholz"   "martin@xemacs.org")
139     (mcook    "Michael R. Cook"   "mcook@xemacs.org")
140     (mly      "Richard Mlynarik"  "mly@xemacs.org")
141     (morioka  "MORIOKA Tomohiko"  "morioka@xemacs.org")
142     (mta      "Mike Alexander"    "mta@xemacs.org")
143     (ograf    "Oliver Graf"       "ograf@xemacs.org")
144     (olivier  "Olivier Galibert"  "olivier@xemacs.org")
145     (oscar    "Oscar Figueiredo"  "oscar@xemacs.org")
146     (pelegri  "Eduardo Pelegri-Llopart" "pelegri@xemacs.org")
147     (pez      "Peter Pezaris"     "pez@xemacs.org")
148     (piper    "Andy Piper"        "andy@xemacs.org")
149     (pittman  "Daniel Pittman"    "pittman@xemacs.org")
150     (rickc    "Rick Campbell"     "rickc@xemacs.org")
151     (rose     "John Rose"         "rose@xemacs.org")
152     (rossini  "Anthony Rossini"   "rossini@xemacs.org")
153     (slb      "Steve Baur"        "steve@xemacs.org")
154     (sperber  "Michael Sperber"   "mike@xemacs.org")
155     (stig     "Jonathan Stigelman" "stig@xemacs.org")
156     (stigb    "Stig Bjorlykke"    "stigb@xemacs.org")
157     (thiessel "Marcus Thiessel"   "marcus@xemacs.org")
158     (tomonori "Tomonori Ikeyama"  "tomonori@xemacs.org")
159     (tuck     "Matt Tucker"       "tuck@xemacs.org")
160     (turnbull "Stephen Turnbull"  "turnbull@xemacs.org")
161     (vin      "Vin Shelton"       "acs@xemacs.org")
162     (vladimir "Vladimir Ivanovic" "vladimir@xemacs.org")
163     (wmperry  "William Perry"     "wmperry@xemacs.org")
164     (yoshiki  "Yoshiki Hayashi"   "yoshiki@xemacs.org")
165     (youngs   "Steve Youngs"      "youngs@xemacs.org")
166     )
167   "Alist of XEmacs hackers.")
168
169 (defvar about-current-release-maintainers
170   ;; this list should not necessarily be in sorted order.
171   '(vin turnbull adrian ben martin piper sperber youngs))
172
173 (defvar about-other-current-hackers
174   ;; to sort this list or the one below, use:
175   ;; M-x sort-regexp-fields RET [a-z]+ RET \(.*\) RET
176   '(aj alastair cgw craig daiki dan didier fabrice golubev gunnar hisashi hniksic
177        jan jareth jmiller jason jonathan kazz kirill larsi morioka mta ograf
178        olivier oscar pittman tomonori tuck wmperry yoshiki))
179
180 (defvar about-once-and-future-hackers
181   '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller
182         hobley jas jens juhp jwz kyle marcpa mcook mly ograf pelegri pez
183         rickc rose rossini slb stig stigb thiessel vladimir))
184
185 ;; The CAR of alist elements is a valid argument to `about-url-link'.
186 ;; It is preferred to a simple string, because it makes maintenance
187 ;; easier.  Please add new URLs to this list.
188 (defvar about-url-alist
189     ;; to sort the stuff below, use M-x sort-regexp-fields RET
190     ;; ^.*$ RET (\([a-z]*\) RET
191   '((ajc        . "http://www-personal.monash.edu.au/~ajc/")
192     (alastair   . "http://website.lineone.net/~ajhoughton/")
193     (baw        . "http://barry.wooz.org/")
194     (ben        . "http://www.666.com/ben/")
195     (ben-xemacs . "http://www.xemacs.org/Architecting-XEmacs/index.html")
196     (beopen     . "http://www.beopen.com/")
197     (cc-mode    . "http://cc-mode.sourceforge.net/")
198     (chr        . "http://www.xemacs.org/faq/")
199     (daiki      . "http://deisui.bug.org/diary/servlet/view")
200     (dkindred   . "http://www.cs.cmu.edu/People/dkindred/me.html")
201     (dmoore     . "http://oj.egbt.org/dmoore/")
202     (didier     . "http://didier.lrde.org/")
203     (dvljazz    . "http://www.didierverna.com/")
204     (fabrice    . "http://www.ese-metz.fr/~popineau/")
205     (fptex      . "http://www.fptex.org/")
206     (jas        . "http://josefsson.org/")
207     (jason      . "http://www.mastaler.com/")
208     (juhp       . "http://www.01.246.ne.jp/~juhp/")
209     (jwz        . "http://www.jwz.org/")
210     (kazz       . "http://www.imasy.or.jp/~kazz/")
211     (kyle       . "http://www.wonderworks.com/kyle/")
212     (larsi      . "http://quimby.gnus.org/lmi/")
213     (marcpa     . "http://www.positron911.com/products/power.htm")
214     (ograf      . "http://www.fga.de/~ograf/")
215     (pez        . "http://cbs.sportsline.com/")
216     (piper      . "http://www.andypiper.com/")
217     (rossini    . "http://faculty.washington.edu/rossini/")
218     (stigb      . "http://www.tihlde.hist.no/~stigb/")
219     (vin        . "http://www.upa.org/")
220     (vladimir   . "http://www.leonora.org/~vladimir/")
221     (wget       . "http://sunsite.dk/wget/")
222     (xemacs     . "http://www.xemacs.org/")
223     (youngs     . "http://eicq.sourceforge.net/"))
224   "Some of the more important URLs.")
225
226 (defvar about-left-margin 3)
227
228 (defun about-lookup-url (name)
229   (let ((result (cdr (assq name about-url-alist))))
230     (assert result)
231     result))
232
233 ;; Insert a URL link in the buffer.  TEXT-TO-INSERT is the text that will
234 ;; be hyperlinked; if omitted, the URL is used.  HELP-ECHO is some text that
235 ;; will be displayed when the mouse moves over the link.
236 (defun about-url-link (url &optional text-to-insert help-echo)
237   (assert url)
238   (when (symbolp url)
239     (setq url (about-lookup-url url)))
240   (when (and text-to-insert (symbolp text-to-insert))
241     (setq text-to-insert (about-lookup-url text-to-insert)))
242   (widget-create 'url-link
243                  :button-prefix ""
244                  :button-suffix ""
245                  :help-echo help-echo
246                  :tag (or text-to-insert url)
247                  url))
248
249 ;; Insert a mail link in the buffer.
250 (defun about-mailto-link (address)
251   (lexical-let ((address address))
252     (widget-create 'link
253                    :tag address
254                    :button-prefix ""
255                    :button-suffix ""
256                    :action (lambda (widget &optional event)
257                              (compose-mail address))
258                    :help-echo (format "Send mail to %s" address))))
259
260 ;; Attach a face to a string, in order to be inserted into the buffer.
261 ;; Make sure that the extent is duplicable, but unique.  Returns the
262 ;; string.
263 (defun about-with-face (string face)
264   (let ((ext (make-extent 0 (length string) string)))
265     (set-extent-property ext 'duplicable t)
266     (set-extent-property ext 'unique t)
267     (set-extent-property ext 'start-open t)
268     (set-extent-property ext 'end-open t)
269     (set-extent-face ext face))
270   string)
271
272 ;; Switch to buffer NAME.  If it doesn't exist, make it and switch to it.
273 (defun about-get-buffer (name)
274   (cond ((get-buffer name)
275          (switch-to-buffer name)
276          (delete-other-windows)
277          (goto-char (point-min))
278          name)
279         (t
280          (switch-to-buffer name)
281          (delete-other-windows)
282          (buffer-disable-undo)
283          ;; #### This is a temporary fix until wid-edit gets fixed right.
284          ;; We don't do everything that widget-button-click does -- i.e.
285          ;; we don't change the link color on button down -- but that's
286          ;; not important.
287          (add-local-hook
288           'mouse-track-click-hook
289           #'(lambda (event count)
290               (cond
291                ((widget-event-point event)
292                 (let* ((pos (widget-event-point event))
293                        (button (get-char-property pos 'button)))
294                   (when button
295                     (widget-apply-action button event)
296                     t))))))
297          (set-specifier left-margin-width about-left-margin (current-buffer))
298          (set (make-local-variable 'widget-button-face) 'about-link-face)
299          nil)))
300
301 ;; Set up the stuff needed by widget.  Allowed types are `bury' and
302 ;; `kill'.  The reason why we offer both types is performance: when a
303 ;; large buffer is merely buried, `about' will find it again when the
304 ;; user requests it, instead of recreating it.  Small buffers can be
305 ;; killed because it is cheap to generate their contents.
306
307 (defun about-finish-buffer (&optional type)
308   (or type (setq type 'bury))
309   (widget-insert "\n")
310   (if (eq type 'bury)
311       (widget-create 'link
312                      :help-echo "Bury this buffer"
313                      :action (lambda (widget event)
314                                (if event
315                                    ;; For some reason,
316                                    ;; (bury-buffer (event-buffer event))
317                                    ;; doesn't work.
318                                    (with-selected-window (event-window event)
319                                      (bury-buffer))
320                                  (bury-buffer)))
321                      :tag "Bury")
322     (widget-create 'link
323                    :help-echo "Kill this buffer"
324                    :action (lambda (widget event)
325                              (if event
326                                  (kill-buffer (event-buffer event))
327                                (kill-buffer (current-buffer))))
328                    :tag "Kill"))
329   (widget-insert " this buffer and return to previous.\n")
330   (use-local-map (make-sparse-keymap))
331   (set-keymap-parent (current-local-map) widget-keymap)
332   (if (eq type 'bury)
333       (progn
334         (local-set-key "q" 'bury-buffer)
335         (local-set-key "l" 'bury-buffer))
336     (let ((dispose (lambda () (interactive) (kill-buffer (current-buffer)))))
337       (local-set-key "q" dispose)
338       (local-set-key "l" dispose)))
339   (local-set-key " " 'scroll-up)
340   (local-set-key [backspace] 'scroll-down)
341   (local-set-key "\177" 'scroll-down)
342   (widget-setup)
343   (goto-char (point-min))
344   (toggle-read-only 1)
345   (set-buffer-modified-p nil))
346
347 ;; Make the appropriate number of spaces.
348 (defun about-center (string-or-glyph)
349   (let ((n (- (startup-center-spaces string-or-glyph) about-left-margin)))
350     (make-string (if (natnump n) n 0) ?\ )))
351
352 ;; Main entry page.
353
354 ;;;###autoload
355 (defun about-xemacs ()
356   "Describe the True Editor and its minions."
357   (interactive)
358   (unless (about-get-buffer "*About XEmacs*")
359     (widget-insert (about-center xemacs-logo))
360     (widget-create 'default
361                    :format "%t"
362                    :tag-glyph xemacs-logo)
363     (widget-insert "\n")
364     (let* ((emacs-short-version (format "%d.%d.%d"
365                                         emacs-major-version
366                                         emacs-minor-version
367                                         emacs-patch-level))
368            (emacs-about-version (format "version %s; %s %s"
369                                         emacs-short-version
370                                         (cdr (assoc (substring emacs-build-time
371                                                                4 7)
372                                                     '(("Jan" . "January")
373                                                       ("Feb" . "February")
374                                                       ("Mar" . "March")
375                                                       ("Apr" . "April")
376                                                       ("May" . "May")
377                                                       ("Jun" . "June")
378                                                       ("Jul" . "July")
379                                                       ("Aug" . "August")
380                                                       ("Sep" . "September")
381                                                       ("Oct" . "October")
382                                                       ("Nov" . "November")
383                                                       ("Dec" . "December"))))
384                                         (substring emacs-build-time -4))))
385       (widget-insert (about-center emacs-about-version))
386       (widget-create 'link :help-echo "What's new in XEmacs"
387                      :action 'about-news
388                      emacs-about-version))
389
390     (widget-insert
391      "\n\n"
392      (about-with-face "XEmacs" 'bold-italic)
393      " is a powerful, highly customizable open source text editor and
394 application development system, with full GUI support.  It is protected
395 under the GNU Public License and related to other versions of Emacs, in
396 particular GNU Emacs.  Its emphasis is on modern graphical user
397 interface support and an open software development model, similar to
398 Linux.  XEmacs has an active development community numbering in the
399 hundreds (and thousands of active beta testers on top of this), and runs
400 on all versions of MS Windows, on Linux, and on nearly every other
401 version of Unix in existence.  ")
402     (widget-create 'link :help-echo "An XEmacs history lesson"
403                    :action 'about-collaboration
404                    :button-prefix ""
405                    :button-suffix ""
406                    "Support for XEmacs")
407     (widget-insert
408      " has been supplied by
409 Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical
410 Laboratory, Amdahl Corporation, BeOpen, and others, as well as the
411 unpaid time of a great number of individual developers.
412
413 XEmacs has many ")
414     (widget-create 'link :help-echo "See a list of XEmacs advantages over GNU Emacs"
415                    :action 'about-advantages
416                    :button-prefix ""
417                    :button-suffix ""
418                    "advantages")
419     (widget-insert " over GNU Emacs.  In addition, XEmacs 21.4
420 provides many ")
421     (widget-create 'link :help-echo "See a list of new features in XEmacs 21.4"
422                    :action 'about-news
423                    :button-prefix ""
424                    :button-suffix ""
425                    "new features")
426     (widget-insert " not found in previous versions of XEmacs.
427 More details on XEmacs's functionality, including bundled packages, can
428 be obtained through the ")
429     (widget-create 'info-link
430                    :help-echo "Browse the info system"
431                    :button-prefix ""
432                    :button-suffix ""
433                    :tag "info"
434                    "(dir)")
435
436     (widget-insert
437      " on-line information system.\n
438 The XEmacs web page can be browsed, using any WWW browser at\n
439 \t\t    ")
440     (about-url-link 'xemacs nil "Visit XEmacs WWW page")
441     (widget-insert "\n
442 Note that W3 (XEmacs's own browser), might need customization (due to
443 firewalls) in order to work correctly.
444
445 XEmacs is the result of the time and effort of many people.  The
446 developers responsible for this release are:\n\n")
447
448     (flet ((setup-person (who)
449             (widget-insert "\t* ")
450             (let* ((entry (assq who xemacs-hackers))
451                    (name (cadr entry))
452                    (address (caddr entry)))
453               (widget-create 'link
454                              :help-echo (concat "Find out more about " name)
455                              :button-prefix ""
456                              :button-suffix ""
457                              :action 'about-maintainer
458                              :tag name
459                              :value who)
460               (widget-insert (format "  <%s>\n" address)))))
461       ;; Setup persons responsible for this release.
462       (mapc 'setup-person about-current-release-maintainers)
463       (widget-insert "\n\t* ")
464       (widget-create 'link :help-echo "A legion of XEmacs hackers"
465                      :action 'about-hackers
466                      :button-prefix ""
467                      :button-suffix ""
468                      "The full list of contributors...")
469       (widget-insert "\n
470 Steve Baur was the primary maintainer for 19.15 through 21.0.\n\n")
471       (setup-person 'slb)
472       (widget-insert "
473 Chuck Thompson and Ben Wing were the maintainers for 19.11 through 19.14
474 and heavy code contributors for 19.8 through 19.10.\n\n")
475       (setup-person 'cthomp)
476       (setup-person 'ben)
477       (widget-insert "
478 Jamie Zawinski was the maintainer for 19.0 through 19.10 (the entire
479 history of Lucid Emacs).\n\n")
480       (setup-person 'jwz))
481     (about-finish-buffer)
482     ;; it looks horrible with the cursor on the first line, since it's
483     ;; so big.
484     (goto-line 2)))
485
486 ;; View news
487 (defun about-news (&rest ignore)
488   (view-emacs-news)
489   (message "%s" (substitute-command-keys
490                  "Press \\[kill-buffer] to exit this buffer")))
491
492 (defun about-collaboration (&rest ignore)
493   (unless (about-get-buffer "*About Collaboration*")
494     (let ((title "Why Another Version of Emacs"))
495       (widget-insert
496        "\n"
497        (about-center title)
498        (about-with-face title 'bold)))
499     (widget-insert
500      "\n\n"
501      (about-with-face "The Lucid, Inc. Point of View"
502                       'italic)
503      " (quite outdated)\n
504 At the time of the inception of Lucid Emacs (the former name of
505 XEmacs), Lucid's latest product was Energize, a C/C++ development
506 environment.  Rather than invent (and force our users to learn) a new
507 user interface, we chose to build part of our environment on top of
508 the world's best editor, GNU Emacs.  (Though our product is
509 commercial, the work we did on GNU Emacs is free software, and is
510 useful in its own right.)
511
512 We needed a version of Emacs with mouse-sensitive regions, multiple
513 fonts, the ability to mark sections of a buffer as read-only, the
514 ability to detect which parts of a buffer have been modified, and many
515 other features.
516
517 For our purposes, the existing version of Epoch was not sufficient; it
518 did not allow us to put arbitrary pixmaps/icons in buffers, `undo' did
519 not restore changes to regions, regions did not overlap and merge
520 their attributes in the way we needed, and several other things.
521
522 We could have devoted our time to making Epoch do what we needed (and,
523 in fact, we spent some time doing that in 1990) but, since the FSF
524 planned to include Epoch-like features in their version 19, we decided
525 that our efforts would be better spent improving Emacs 19 instead of
526 Epoch.
527
528 Our original hope was that our changes to Emacs would be incorporated
529 into the \"official\" v19.  However, scheduling conflicts arose, and
530 we found that, given the amount of work still remaining to be done, we
531 didn't have the time or manpower to do the level of coordination that
532 would be necessary to get our changes accepted by the FSF.
533 Consequently, we released our work as a forked branch of Emacs,
534 instead of delaying any longer.
535
536 Roughly a year after Lucid Emacs 19.0 was released, a beta version of
537 the FSF branch of Emacs 19 was released.  The FSF version is better in
538 some areas, and worse in others, as reflects the differing focus of
539 our development efforts.
540
541 We plan to continue developing and supporting Lucid Emacs, and merging
542 in bug fixes and new features from the FSF branch as appropriate; we
543 do not plan to discard any of the functionality that we implemented
544 which RMS has chosen not to include in his version.
545
546 Certain elements of Lucid Emacs, or derivatives of them, have been
547 ported to the FSF version.  We have not been doing work in this
548 direction, because we feel that Lucid Emacs has a cleaner and more
549 extensible substrate, and that any kind of merger between the two
550 branches would be far easier by merging the FSF changes into our
551 version than the other way around.
552
553 We have been working closely with the Epoch developers to merge in the
554 remaining Epoch functionality which Lucid Emacs does not yet have.
555 Epoch and Lucid Emacs will soon be one and the same thing.  Work is
556 being done on a compatibility package which will allow Epoch 4 code to
557 run in XEmacs with little or no change.\n\n"
558      (about-with-face "The Sun Microsystems, Inc. Point of View"
559                       'italic)
560      "\n
561 Emacs 18 has been around for a long, long time.  Version 19 was
562 supposed to be the successor to v18 with X support.  It was going to
563 be available \"real soon\" for a long time (some people remember
564 hearing about v19 as early as 1984!), but it never came out.  v19
565 development was going very, very slowly, and from the outside it
566 seemed that it was not moving at all.  In the meantime other people
567 gave up waiting for v19 and decided to build their own X-aware
568 Emacsen.  The most important of these was probably Epoch, which came
569 from the University of Illinois (\"UofI\") and was based on v18.
570
571 Around 1990, the Developer Products group within Sun Microsystems
572 Inc., decided that it wanted an integrated editor.  (This group is now
573 known as DevPro.  It used to be known as SunPro - the name was changed
574 in mid-1994.)  They contracted with the University of Illinois to
575 provide a number of basic enhancements to the functionality in Epoch.
576 UofI initially was planning to deliver this on top of Epoch code.
577
578 In the meantime, (actually some time before they talked with UofI)
579 Lucid had decided that it also wanted to provide an integrated
580 environment with an integrated editor.  Lucid decided that the Version
581 19 base was a better one than Version 18 and thus decided not to use
582 Epoch but instead to work with Richard Stallman, the head of the Free
583 Software Foundation and principal author of Emacs, on getting v19 out.
584 At some point Stallman and Lucid parted ways.  Lucid kept working and
585 got a v19 out that they called Lucid Emacs 19.
586
587 After Lucid's v19 came out it became clear to us (the UofI and Sun)
588 that the right thing to do was to push for an integration of both
589 Lucid Emacs and Epoch, and to get the deliverables that Sun was asking
590 from the University of Illinois on top of this integrated platform.
591 Until 1994, Sun and Lucid both actively supported XEmacs as part of
592 their product suite and invested a comparable amount of effort into
593 it.  Substantial portions of the current code have originated under
594 the support of Sun, either directly within Sun, or at UofI but paid
595 for by Sun.  This code was kept away from Lucid for a while, but later
596 was made available to them.  Initially Lucid didn't know that Sun was
597 supporting UofI, but later Sun was open about it.
598
599 Around 1992 DevPro-originated code started showing up in Lucid Emacs,
600 starting with the infusion of the Epoch redisplay code.  The separate
601 code bases at Lucid, Sun, and the University of Illinois were merged,
602 allowing a single XEmacs to evolve from that point on.
603
604 Sun originally called the integrated product ERA, for \"Emacs
605 Rewritten Again\".  SunPro and Lucid eventually came to an agreement
606 to find a name for the product that was not specific to either
607 company.  An additional constraint that Lucid placed on the name was
608 that it must contain the word \"Emacs\" in it -- thus \"ERA\" was not
609 acceptable.  The tentatively agreed-upon name was \"XEmacs\", and this
610 has been the name of the program since version 19.11.)
611
612 As of 1997, Sun is shipping XEmacs as part of its Developer Products
613 integrated programming environment \"Sun WorkShop\".  Sun is
614 continuing to support XEmacs development, with focus on
615 internationalization and quality improvement.\n\n"
616      (about-with-face "Lucid goes under" 'italic)
617      "\n
618 Around mid-'94, Lucid went out of business.  Lucid founder Richard
619 Gabriel's book \"Patterns of Software\", which is highly recommended
620 reading in any case, documents the demise of Lucid and suggests
621 lessons to be learned for the whole software development community.
622
623 Development on XEmacs, however, has continued unabated under the
624 auspices of Sun Microsystems and the University of Illinois, with help
625 from Amdahl Corporation and INS Engineering Corporation.  Sun plans to
626 continue to support XEmacs into the future.\n\n"
627      (about-with-face "The Amdahl Corporation point of view"
628                       'italic)
629      "\n
630 Amdahl Corporation's Storage Products Group (SPG) uses XEmacs as the
631 focal point of a environment for development of the microcode used in
632 Amdahl's large-scale disk arrays, or DASD's.  SPG has joint ventures
633 with Japanese companies, and decided in late 1994 to contract out for
634 work on XEmacs in order to hasten the development of Mule support
635 \(i.e. support for Japanese, Chinese, etc.) in XEmacs and as a gesture
636 of goodwill towards the XEmacs community for all the work they have
637 done on making a powerful, modern, freely available text editor.
638 Through this contract, Amdahl provided a large amount of work in
639 XEmacs in the form of rewriting the basic text-processing mechanisms
640 to allow for Mule support and writing a large amount of the support
641 for multiple devices.
642
643 Although Amdahl is no longer hiring a full-time contractor, they are
644 still funding part-time work on XEmacs and providing resources for
645 further XEmacs development.\n\n"
646      (about-with-face "The INS Engineering point of view"
647                       'italic)
648      "\n
649 INS Engineering Corporation, based in Tokyo, bought rights to sell
650 Energize when Lucid went out of business.  Unhappy with the
651 performance of the Japanese support in XEmacs 19.11, INS also
652 contributed to the XEmacs development from late 1994 to early
653 1995.\n")
654     (about-finish-buffer)))
655
656 (defun about-advantages (&rest ignore)
657   (unless (about-get-buffer "*About Advantages*")
658     (let ((title "XEmacs Advantages over GNU Emacs"))
659       (widget-insert
660        "\n"
661        (about-center title)
662        (about-with-face title 'bold)))
663     (widget-insert
664      "\n
665 * Much better GUI support:
666
667   -- a real toolbar
668   -- more comprehensive and better-designed menubars
669   -- horizontal and vertical scrollbars in all windows
670   -- proper dialog boxes
671   -- tabs for selecting buffers
672   -- support for variable-width and variable height fonts
673   -- support for arbitrary pixmaps and widgets in a buffer
674   -- face support on TTY's, including color
675
676 * An installable package system, with a huge number of packages available
677   that have been tested and are known to work with the latest version
678   of XEmacs.
679
680 * Comprehensive support for the GTK toolkit.
681
682 * An open development community, with contributions welcome and no need
683   to sign over your copyright to any organization. (Please send
684   contributions to xemacs-patches@xemacs.org.  See http://www.xemacs.org
685   for more information on XEmacs mailing lists, and other info.)
686
687 * Support for display on multiple simultaneous X and/or TTY devices.
688
689 * Powerful, flexible control over the display characteristics of most
690   of the visual aspects of XEmacs through the use of specifiers, which
691   allow separate values to be specified for individual buffers,
692   windows, frames, devices, device classes, and device types.
693
694 * A clean, modern, abstracted Lisp interface to the menubar, toolbar,
695   window-system events, key combinations, extents (regions in a buffer
696   with specific properties), and all other display aspects.
697
698 * Proper integration with Xt and Motif (including Motif menubars and
699   scrollbars).  Motif look-alike menubars and scrollbars are provided
700   for those systems without real Motif support.
701
702 * Many improvements to the multilingual support, such as the ability to
703   enter text for complex languages using the XIM mechanism and
704   localization of menubar text for the Japanese locale.
705 \n\n")
706     (about-finish-buffer)))
707
708 (defvar about-glyphs nil
709   "Cached glyphs")
710
711 ;; Return a maintainer's glyph
712 (defun about-maintainer-glyph (who)
713   (let ((glyph (cdr (assq who about-glyphs))))
714     (unless glyph
715       (let ((file (expand-file-name
716                    (concat (symbol-name who)
717                            (if (memq (device-class)
718                                      '(color grayscale))
719                                "" "m")
720                            ".png")
721                    (locate-data-directory "photos")))
722             (data nil))
723         (setq glyph
724               (cond ((stringp data)
725                      (make-glyph
726                       (if (featurep 'png)
727                           `([png :data ,data]
728                             [string :data "[Image]"])
729                         `([string :data "[Image]"]))))
730                     ((eq data 'error)
731                      (make-glyph [string :data "[Error]"]))
732                     (file
733                      (make-glyph
734                       (if (featurep 'png)
735                           `([png :file ,file]
736                             [string :data "[Image]"])
737                         `([string :data "[Image]"]))))
738                     (t
739                      (make-glyph [nothing]))))
740         (set-glyph-property glyph 'baseline 100)
741         ;; Cache the glyph
742         (push (cons who glyph) about-glyphs)))
743     glyph))
744
745 ;; Insert personal info about a maintainer.  See also
746 ;; `about-hacker-contribution'.  Note that the info in
747 ;; `about-hacker-contribution' is automatically displayed in the
748 ;; person's own page, so there is no need to duplicate it.
749 (defun about-personal-info (entry)
750   (ecase (car entry)
751     ;; you can sort the stuff below with something like
752     ;;(sort-regexp-fields nil
753     ;; " *(\\([^()]\\|([^()]*)\\|(\\([^()]\\|([^()]*)\\)*)\\)*)\n"
754     ;; " *(\\([a-z]*\\)"
755     ;; (region-beginning) (region-end))
756     (adrian
757      (widget-insert
758       "\
759 Sorry, no personal information available about me yet.\n"))
760     (aj
761      (widget-insert "\
762 I'm a software developer working for the SuSE Labs of the Linux
763 distributor SuSE.  My main task is to improve the GNU C library.")
764      (widget-insert ".\n"))
765     (ajc
766      (widget-insert "\
767 When not helping maintain the XEmacs website, Andrew is a Network
768 Software Engineer(tm) for Monash University in Australia, maintaining
769 webservers and doing random other things.  As well as spending spare
770 time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus
771 et. al., he spends his time pursuing, among other things, a Life.
772 Some of this currently involves doing an A-Z (by country) of
773 restaurants with friends, and has, in the past, involved dyeing his
774 hair various colours (see ")
775      (about-url-link 'ajc nil "Visit Andrew's home page")
776      (widget-insert ".\n"))
777     (alastair
778      (widget-insert
779       "\
780 Alastair, apart from being an all-round hacker, occasional contributor
781 to free software projects and general good egg(!), currently works for
782 Telsis, a manufacturer of telephony equipment on the south coast of
783 England.  He'd quite like to have his own company one day, but has yet
784 to think of that killer product...
785
786 See also ")
787         (about-url-link 'alastair nil "Visit Alastair's home page")
788         (widget-insert ".\n"))
789     (baw
790      (widget-insert "\
791 As of November 2000, I am a software engineer with the Pythonlabs at
792 Digital Creations.  Pythonlabs is the core team developing and
793 maintaining the Python open source, object-oriented scripting
794 language.  Digital Creations is the publisher of Zope, an open source
795 content management system written in Python.
796
797 In addition to my Python and Zope work, I am lead developer for the
798 GNU Mailman project, a mailing list management system written,
799 naturally, in Python.  See the trend?
800
801 On the side I play bass with a number of Washington DC area bands and
802 also write poems about cows, milk, and fathers.  Here's a sample, and
803 drop me an email if you live in the NYC to Charlotte region; I'll let
804 you know when the band's playing in your area.  It'd be cool to meet
805 you, and talking about XEmacs would make my wife very happy by helping
806 to fend off the legions of groupies that seem to follow me everywhere.
807
808     Milk Me Daddy
809     (C) 1990 Warsaw
810     ===============
811     Oh daddy with your fingers pink 
812     From whose udders do you drink? 
813     Thy milk offends with putrid stink 
814     I'll vomit now, lactose I think 
815
816     If I could dream, I'd be a cow 
817     Not horse, or mule, or barnyard sow 
818     The cud I'd chew would drip and how! 
819     So milk me daddy, milk me now! 
820
821     My bovine nature knows no bounds 
822     I'd naught awake at midnight sounds 
823     Of teens approaching o'er the grounds 
824     To tip with glee, then screech like clowns 
825
826     And so I stare into this glass 
827     Of sweaty juice, I gulp so fast 
828     Each drop I lick, down to the last 
829     The vertigo I know will pass 
830
831     My mother smiles and pats my head 
832     She's proud of me, so she has said 
833     My pop just now gets out of bed 
834     His eyes quite comatose and red 
835
836     He'll empathize my milky fate 
837     Whilest sopping gravy from his plate 
838     And as the hour is getting late 
839     His belly taut with all he ate 
840
841     He isn't often quite so chatty 
842     His arteries clogged with meat so fatty 
843     With burps that launch soup, thick and splatty 
844     Oh how I wish you'd milk me daddy\n\n\t")
845      (about-url-link 'baw nil "Visit Barry's home page")
846      (widget-insert "\n"))
847     (ben
848      (widget-insert
849       "\
850 Since September 1992, I've worked on XEmacs as a contractor for
851 various companies and more recently as an unpaid volunteer.
852
853 Alas, life has not been good to me recently.  This former San
854 Francisco \"Mission Critter\" developed insidious hand and neck
855 problems after a brief stint working on a Java-based VRML toolkit for
856 the now defunct Dimension X, and I was forced to quit working.  I was
857 exiled first to \"Stroller Valley\" and later all the way to Tucson,
858 Arizona, and for two years was almost completely disabled due to pain.
859 More recently I have fought my way back with loads and loads of
860 narcotic painkillers, and currently I'm an art student at the
861 University of Arizona.\n\n")
862      (widget-insert "Architecting XEmacs: ")
863      (about-url-link 'ben-xemacs nil "Find the miracles in store for XEmacs")
864      (widget-insert "\nBen's home page:     ")
865      (about-url-link 'ben nil "Visit Ben's page")
866      (widget-insert "\n"))
867     (bw
868      (widget-insert "\
869 His interests include user interfaces, information management, CASE
870 tools, communications and enterprise integration.\n"))
871     (cgw
872      (widget-insert
873       "\
874 Sorry, no personal information available about me yet.\n"))
875     (chr
876      (widget-insert "\
877 Christian is a student at the Norwegian School of Economics and
878 Business Administration in Bergen, Norway.  He used to work for an
879 internet startup called New Media Science, doing scripting and
880 violation of HTML DTD's.  After graduation, spring 1999, he'll be
881 looking for a job involving lisp programming, French and Russian.\n"))
882     (craig
883      (widget-insert
884       "\
885 Sorry, no personal information available about me yet.\n"))
886     (cthomp
887      (widget-insert "\
888 Chuck is a senior system and network administrator for the Computer
889 Science department at the Unversity of Illinois.  In one previous life
890 he spent every waking hour working on XEmacs.  In another he dabbled
891 as a project manager for a streaming video startup (RIP).  His current
892 reason for not having time to contribute to XEmacs is the Thompson
893 Twins.\n"))
894     (daiki
895      (about-url-link 'daiki nil "Visit Daiki's page"))
896     (dan
897      (widget-insert
898       "\
899 Sorry, no personal information available about me yet.\n"))
900     (darrylo
901      (widget-insert
902       "\
903 Perennial Emacs hacker since 1986 or so, when he first started on GNU
904 Emacs 17.something.  Over the years, he's developed \"OEmacs\", the first
905 version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of
906 Perl4 for MSDOS.  In recent years, reality has intruded and he no longer
907 has much time for playing with cool programs.  What little time he has
908 now goes to XEmacs hacking, where he's worked on speeding up dired under
909 MS Windows, and to feeding his two cats.\n"))
910     (devin
911      (widget-insert
912       "\
913 Sorry, no personal information available about me yet.\n"))
914     (dkindred
915      (widget-insert "\
916 Darrell is currently a doctoral student in computer science at
917 Carnegie Mellon University, but he's trying hard to kick that
918 habit.
919
920 See ")
921      (about-url-link 'dkindred nil "Visit Darrell's WWW page")
922      (widget-insert ".\n"))
923     (dmoore
924      (widget-insert "\
925 David is a student in the Computer Systems Laboratory at UCSD.  When
926 he manages to have free time, he usually spends it on 200 mile bicycle
927 rides, learning German or showing people the best mail & news
928 environment he's found in 10 years.  (That'd be XEmacs, Gnus and bbdb,
929 of course.)  He can be found at `druidmuck.egbt.org 4201' at various
930 hours of the day.
931
932 He has a page at ")
933      (about-url-link 'dmoore nil "Visit David's home page")
934      (widget-insert ".\n"))
935     (didier
936      (widget-insert "\
937 Didier has a Ph.D. in Computer Science and is currently working as an
938 assistant professor for an engineering school in Paris).  He gives
939 lectures on Operating Systems, Computer Graphics, Functional Programming
940 and Typesetting.  His research interests include Genericity, Object
941 Orientation and Functional Programming, all in one language:
942
943 ... Common Lisp.
944
945
946 Apart from the world of XEmacs and Emacs Lisp, Didier is also the author
947 of several LaTeX packages (FiNK, FiXme, QCM and CurVe) and an occasional
948 contributor to other Free Software projects (the GNU Autotools most
949 notably; he was one of the technical reviewers for the \"Goat Book\").
950
951 But all of this is only 60% true... Two days per week, Didier is indeed
952 a semi-professional Jazz guitar player (and singer), which means that he
953 doesn't quite earn his crust with it, but things may very well reverse in
954 the future...\n")
955      (widget-insert "\nVisit Didier's scientific website: ")
956      (about-url-link 'didier nil "Visit Didier's scientific website")
957      (widget-insert "\nVisit Didier's musical website: ")
958      (about-url-link 'dvljazz nil "Visit Didier's musical website")
959      (widget-insert "\n"))
960     (eb
961      (widget-insert
962       "\
963 Sorry, no personal information available about me yet.\n"))
964     (fabrice
965      (widget-insert
966       "\
967 I'm a computer science researcher and teacher in a French electrical
968 engineering institution called Supelec. My fields of interest are
969 symbolic artificial intelligence, theoretical computer science, functional
970 languages ... and TeX.
971
972 Lately, my hacking time has been devoted to porting the Web2C/teTeX
973 distribution of TeX for Unix to Win32, and I'm still maintaining it.
974 It is included in the TeX Live cdrom edited by Sebastian Rahtz.\n")
975      (widget-insert "Visit fpTeX home page: ")
976      (about-url-link 'fptex nil "Visit fpTeX home page")
977      (widget-insert "\nFabrice's home page:   ")
978      (about-url-link 'fabrice nil "Visit Fabrice's page")
979      (widget-insert "\n"))
980     (golubev
981      (widget-insert
982       "\
983 I appreciate power of XEmacs, but elementary editing operations should
984 be done by single keystrokes with no modifiers.  So would not use
985 XEmacs until discovered viper, and now can't live without viper.
986 Occasionally dislike something in there or in other free software, and
987 try to get it fixed.  .plan file contains classic (perhaps reinvented
988 independently) formula:
989
990 Hacking world for ever
991
992 (borrowed from \"Hacking X for Y\" in ")
993      (about-url-link "http://www.jargon.org/"
994                      "Jargon File" "www.jargon.org")
995      (widget-insert ").\n"))
996     (gunnar
997      (widget-insert
998       "\
999 Sorry, no personal information available about me yet.\n"))
1000     (hbs
1001      (widget-insert
1002       "\
1003 Sorry, no personal information available about me yet.\n"))
1004     (hisashi
1005      (widget-insert
1006       "\
1007 Sorry, no personal information available about me yet.\n"))
1008     (hmuller
1009      (widget-insert
1010       "\
1011 Sorry, no personal information available about me yet.\n"))
1012     (hniksic
1013      (widget-insert "\
1014 Hrvoje thinks he works in the server-side web business.  In reality,
1015 he cranks out huge quantities of HTML, Tcl, and Java for the German
1016 branch of ")
1017      (about-url-link "http://www.arsdigita.com/"
1018                      "ArsDigita, Inc." "www.arsdigita.com")
1019      ;; Avoid literal I18N characters in strings.  *Displaying* a
1020      ;; Latin 1 character should always be safe, though, with or
1021      ;; without Mule.
1022      (let ((muenchen (format "M%cnchen" (make-char 'latin-iso8859-1 252))))
1023        (widget-insert (format "\
1024   He joined the ranks of Gastarbeiters only
1025 recently; he is trying to learn German and get attuned to %s
1026 and Bav^H^H^HGermany.\n" muenchen)))
1027
1028      (widget-insert "\
1029
1030 Before ArsDigita, he worked as a programmer at ")
1031      (about-url-link "http://www.iskon.hr/" "Iskon," "www.iskon.hr")
1032      (widget-insert " a fast-growing
1033 Croatian ISP.  Even before that, he worked part-time for academic
1034 institutions like ")
1035      (about-url-link "http://www.srce.hr/" "SRCE" "www.srce.hr")
1036      (widget-insert " and ")
1037      (about-url-link "http://www.carnet.hr/" "CARNet," "www.carnet.hr")
1038      (widget-insert " and tried to attend university.
1039
1040 He takes perverse pleasure in building and maintaining free software
1041 in his free time.  Apart from XEmacs, his major contribution is ")
1042      (about-url-link 'wget "Wget," "Wget home page")
1043      (widget-insert "
1044 his very own creation, now jointly maintained by a happy crew.
1045
1046 He dreams of having a home page.\n"))
1047     (hobley
1048      (widget-insert "\
1049 I used to do real work, but now I am a Project Manager for one of the
1050 Telco's in Australia. In my spare time I like to get back to basics and
1051 muck around with things. As a result I started the NT port. Hopefully I
1052 will get to finish it sometime sooner rather than later. I do vaguely
1053 remember University where it seems like I had more spare time that I can
1054 believe now. Oh well, such is life.\n"))
1055     (jan
1056      (widget-insert "\
1057 Jan Vroonhof has been using XEmacs since he needed to write .tex files
1058 for his work as a physics and maths student at the Univerisity of Leiden.
1059 His XEmacs hacking started when XEmacs kept freezing up under a his
1060 window manager. He submitted a fix and has been hooked every since.
1061
1062 XEmacs has followed him first to Switzerland where he did a maths
1063 doctorate at the ETH in Zurich, working on a conjecture by Migdal on
1064 the behavior of vertex corrections in Electron-Phonon theory.  Finally
1065 sharing a house with his loved one, he now lives in Oxford (UK)
1066 working on the Jeode Java Virtual Machine, which like XEmacs is
1067 portable, implements a language, includes a non-trivial bit of
1068 graphics and a garbage collector, but is multithreaded to boot!
1069 Unfortunately his XEmacs time is directly limited by the amount of
1070 traffic on the M40.\n"))
1071     (jas
1072      (widget-insert "\
1073
1074 Simon lives in Stockholm where he has discovered that computers
1075 can be a powerful procrastinating tool.  Combined with a
1076 frustrating desire to see computers simply work, he spends most
1077 of his time complaining.  Occasionally he rises up to the task
1078 and produces something that others may complain about, which
1079 brings him increased satisfaction with every bug report.  Today
1080 he is pretending to be a network security guy, with a preference
1081 for standardization issues, while secretly longing to start a
1082 cafe or becoming a theoretical computer scientist.  His personal
1083 interest is literature, and to some extent traveling, but will
1084 try anything for fun, such as juggling, skiing, wine, and
1085 long-distance biking.
1086
1087 See: ")
1088      (about-url-link 'jas nil "Visit Simon's homepage")
1089      (widget-insert ".\n"))
1090     (jareth
1091      (widget-insert "\
1092 Jareth Hein is a mountain boy who abandoned his home state of Colorado
1093 for the perpetual state of chaos known as Tokyo in a failed attempt to
1094 become a cel-animator, and a more successful one to become a
1095 computer-game programmer. As he happens to be bilingual (guess which
1096 two?) he's been doing quite a bit of MULE hacking.  He's also getting
1097 his hands dirty in the graphics areas as well.\n"))
1098     (jason
1099      (widget-insert "\
1100 Jason resides in Northern New Mexico where he works as a Systems
1101 Scientist(tm) in the Los Alamos National Laboratory's Advanced
1102 Computing Group.
1103
1104 See: ")
1105       (about-url-link 'jason nil "Visit Jason's homepage")
1106       (widget-insert ".\n"))
1107     (jens
1108      (widget-insert "\
1109 I'm currently working for 1&1 Internet AG, a large Domain and Webspace
1110 Provider in Germany and Europe.  I do mostly Java/XML/OO/Component
1111 stuff today.  I'm interested EJB, Corba and other middleware or
1112 distributed Systems.  Besides work, I occasionally hack on The Gimp
1113 and other gtk/gnome related projects.  Maybe the advent of XEmacs/Gtk
1114 will get me back to spend some time again hacking on XEmacs in the
1115 near future.\n"))
1116     (jmiller
1117      (widget-insert "\
1118 Jeff grew up in Indiana and is a country boy at heart.  He currently
1119 lives in, of all places, Millersville Maryland.  He spends a lot of
1120 his free time tinkering with Linux and hacking on XEmacs and loves it
1121 when he finds new cool features in either.  When he's not doing that,
1122 he enjoys downhill skiing, puzzles, and sci-fi.  Jeff is also really
1123 interested in classical Roman history and enjoys making trips to
1124 Italy, where he was born, and seeing the sights")
1125      (widget-insert ".\n"))
1126     (jonathan
1127      (widget-insert "\
1128 I work for Symbian Ltd in London, England, looking after low-level
1129 kernel, peripheral and toolchain stuff for the EPOC OS.
1130
1131 I've been using XEmacs since 1994, but didn't start hacking on it
1132 until late 1997 when I started working at Symbian, a Windows-only
1133 company, and felt lost without my favourite editing environment.\n"))
1134     (juhp
1135      (widget-insert "\
1136 Jens was born in Copenhagen, grew up in Britain and is now living in
1137 Japan.  He started using XEmacs 20 (instead of Emacs) as his
1138 work-environment in June 1997 while still an EU postdoc at RIMS, Kyoto
1139 University, and quickly got involved in XEmacs development.  Recently
1140 he is getting into Haskell, a very nice pure functional programming
1141 language.
1142
1143 ")
1144      (about-url-link 'juhp nil "Visit Jens' homepage")
1145      (widget-insert "\n"))
1146     (jwz
1147      (widget-insert
1148       "\t"
1149       (about-with-face "\"So much to do, so little time.\"" 'italic)
1150       "\n
1151 Jamie Zawinski was primarily to blame for Lucid Emacs from its
1152 inception in 1991, to 1994 when Lucid Inc. finally died.  After that,
1153 he was one of the initial employees of Netscape Communications, writing
1154 the first Unix version of Netscape Navigator, and designing and
1155 implementing the first version of the Netscape Mail and News readers.
1156 He then helped create and run ")
1157      (about-url-link "http://www.mozilla.org/"
1158                      "mozilla.org"
1159                      "Visit The Mozilla Organization")
1160      (widget-insert " for its first two years,
1161 until America Online bought Netscape Communications, at which point he
1162 gave up in disgust and dropped out of the computer industry entirely.
1163
1164 He now runs a ")
1165      (about-url-link "http://www.dnalounge.com/"
1166                      "nightclub"
1167                      "Visit The DNA Lounge")
1168      (widget-insert " in San Francisco, and occasionally writes
1169 screen savers.\n\n")
1170      (widget-insert "Visit jwz's ")
1171      (about-url-link 'jwz "home page" "Visit jwz's home page")
1172      (widget-insert ".\n"))
1173     (kazz
1174      (widget-insert "\
1175 Kazz is the XEmacs lead on BSD (especially FreeBSD).
1176 His main workspace is, probably, the latest stable version of
1177 FreeBSD and it makes him comfortable and not.
1178 His *mission* is to make XEmacs runs on FreeBSD without
1179 any problem.
1180
1181 In real life, he is working on a PDM product based on CORBA,
1182 and doing consultation, design and implemention.
1183 He loves to play soccer, yes football!
1184 See also:")
1185      (about-url-link 'kazz nil "Visit Kazz's home page")
1186      (widget-insert ".\n"))
1187     (kirill
1188      (widget-insert
1189       "\
1190 Sorry, no personal information available about me yet.\n"))
1191     (kyle
1192      (widget-insert "\
1193 See\n")
1194      (about-url-link 'kyle nil "Visit Kyle's Home page")
1195      (widget-insert ".\n"))
1196     (larsi
1197      (widget-insert "\
1198 Lars's day job is as the head of the IT department of a Norwegian
1199 Internet stock broker.  He claims no responsibility for the Dot
1200 Com Bomb, but he snickers a lot.
1201
1202 See ")
1203      (about-url-link 'larsi nil "Visit the Larsissistic pages")
1204      (widget-insert ".\n"))
1205     (marcpa
1206      (widget-insert "\
1207 I work for Positron Industries Inc., Public Safety Division.
1208 I'm part of the team producing POWER 911, a 911 emergency response
1209 system written in Modula3:\n")
1210      (about-url-link 'marcpa nil "Visit POWER 911")
1211      (widget-insert "\
1212 \n\nPreviously, I worked at Softimage Inc., now a Microsoft company
1213 \(eeekkk!), as a UNIX system administrator.  This is where I've been
1214 converted to NT.
1215
1216 In a previous life, I was a programmer/sysadmin at CRIM (Centre de
1217 Recherche Informatique de Montreal) for the speech recognition group.\n"))
1218     (martin
1219      (widget-insert "\
1220 Martin was the XEmacs guy at DevPro, a part of Sun Microsystems.
1221 Martin used to do XEmacs as a `hobby' while at IBM, and was crazy
1222 enough to try to make a living doing it at Sun.
1223
1224 Martin starting using Emacs originally not to edit files, but to get
1225 the benefit of shell mode. He actually used to run nothing but a shell
1226 buffer, and use `xterm -e vi' to edit files.  But then he saw the
1227 light.  He dreams of rewriting shell mode from scratch.  Stderr should
1228 show up in red!!
1229
1230 Martin is no longer doing XEmacs for a living, and is Just Another
1231 Volunteer.\n"))
1232     (mcook
1233      (widget-insert
1234       "\
1235 Sorry, no personal information available about me yet.\n"))
1236     (mly
1237      (widget-insert "Cars are evil.  Ride a bike.\n"))
1238     (morioka
1239      (widget-insert "\
1240 I am a doctoral student at School of Information Science of JAIST
1241 \(Japan Advanced Institute of Science and Technology, Hokuriku).  I'm
1242 interested in Natural Language, Affordance and writing systems.\n"))
1243     (mta
1244      (widget-insert
1245       "\
1246 I am a software developer who worked for the University of Michigan
1247 for many years where I was one of the principal architects of the
1248 Michigan Terminal System.  For the last several years I've been
1249 working for Arbortext, a publisher of XML publishing and content
1250 management software.\n"))
1251     (ograf
1252      (widget-insert "\
1253 I'm a student of computer sciences at the University of Koblenz. My
1254 major is computational linguistics (human language generation and
1255 analysis).
1256
1257 I make my living as a managing director of a small but fine company
1258 which I started two years ago with one of my friends. We provide
1259 business network solutions based on linux servers and various other
1260 networking products.
1261
1262 Most of my spare time I spent on the development of the XEmacs
1263 Drag'n'Drop API, a enhanced version of Tk called TkStep (better looks,
1264 also Drag'n'Drop, and more), and various other hacks: ISDN-tools,
1265 cd players, python, etc...
1266
1267 To see some of these have a look at ")
1268      (about-url-link 'ograf nil "one of my homepages")
1269      (widget-insert ".\n"))
1270     (olivier
1271      (widget-insert
1272       "\
1273 Sorry, no personal information available about me yet.\n"))
1274     (oscar
1275      (widget-insert "\
1276 Oscar heads the Computer Science department at CPE Lyon, a french
1277 engineering school in France. Besides his administrative tasks he
1278 teaches networking basics, Internet technologies (you know, all these
1279 xxML and hairy script languages !)  and the Scheme language.\n"))
1280     (pelegri
1281      (widget-insert
1282       "\
1283 I did my PhD at UCB and a postdoc at CSL/PARC.  I joined Sun in 1990,
1284 spent some time in DevPro (that is when I made my contribution to
1285 XEmacs) and joined JavaSoft in fall '95, where I've been the lead for
1286 several JSP-related specifications and JAX-RPC.  I'm currently the Web
1287 Layer architect for J2EE. 
1288
1289 I was born in Barcelona and I grew up mostly in Caracas; I have two kids
1290 and I speak only catalan to them; I can juggle some (career, family, and
1291 4 balls or 3 pins); and my english can be idiosyncratic!.\n"))
1292     (pez
1293      (widget-insert "\
1294 Peter currently serves as Senior Vice President, Product Development
1295 for CBS SportsLine.  See ")
1296      (about-url-link 'pez nil "CBS SportsLine")
1297      (widget-insert ".\n"))
1298     (piper
1299      (widget-insert "\
1300 My home page is here:\n")
1301      (about-url-link 'piper nil "Visit andy's home page")
1302      (widget-insert "\n
1303  Andy has been active in the XEmacs team for a number of years,
1304 helping port XEmacs to MS Windows operating systems. He is also the
1305 current MS Windows release manager and maintains the MS Windows
1306 netinstaller.\n"))
1307     (pittman
1308      (widget-insert
1309       "\
1310 Sorry, no personal information available about me yet.\n"))
1311     (rickc
1312      (widget-insert "\
1313 The hacker formerly known as Rick Busdiecker is a developer and
1314 technical manager at Deutsche Bank in New York during daylight hours.
1315 In the evenings he maintains three children, and when he ought to be
1316 sleeping he builds XEmacs betas, and tinkers with various personal
1317 hacking projects.\n"))
1318     (rose
1319      (widget-insert
1320       "\
1321 Sorry, no personal information available about me yet.\n"))
1322     (rossini
1323      (widget-insert "\
1324 Current development lead for ESS (Emacs Speaks Statistics), a mode and
1325 inferior mode for statistical programming and data analysis for SAS,
1326 S, S-PLUS, R, XLispStat; configurable for nearly any other statistical
1327 language/package one might want.  In spare time, chases his son around
1328 and acts as a Ph.D. (bio)statistician for money and amusement,
1329 primarily focusing on statistical computing, visualization, and the
1330 design and analysis of HIV vaccine trials.  Current position: Research
1331 Assistant Professor of Biostatistics at the University of Washington
1332 and the Fred Hutchinson Cancer Research Center.
1333
1334 See ")
1335      (about-url-link 'rossini nil "Visit Anthony's home page")
1336      (widget-insert ".\n"))
1337     (slb
1338      (widget-insert "\
1339 Peaches Baur, 1986-1999.
1340 Rest in peace")
1341      (widget-insert ".\n"))
1342     (sperber
1343      (widget-insert "\
1344 When Mike isn't busy putting together patches for free software he has
1345 just installed or changing his hairstyle, he does research in modern
1346 programming languages and their implementation, and hopes that one day
1347 XEmacs will speak Scheme.\n"))
1348     (stig
1349      (widget-insert "\
1350 Peripatetic uninominal Emacs hacker.  Stig sometimes operates out of a
1351 big white van set up for nomadic living and hacking.  Stig is sort of
1352 a tool fetishist.  He has a hate/love relationship with computers and
1353 he hacks on XEmacs because it's a good tool that makes computers
1354 somewhat less of a nuisance.  Besides XEmacs, Stig especially likes
1355 his Leatherman, his Makita, and his lockpicks.  Stig wants a MIG
1356 welder and air tools.
1357
1358 Stig likes to perch, hang from the ceiling, and climb on the walls.
1359 Stig has a cool van.  Stig would like to be able to telecommute from,
1360 say, the north rim of the Grand Canyon or the midst of Baja.\n"))
1361     (stigb
1362      (widget-insert "\
1363 Currently studying computer science in Trondheim, Norway.  Full time
1364 Linux user and proud of it.  XEmacs hacker light.
1365
1366 See:\t")
1367      (about-url-link 'stigb nil "Visit Stig's home page"))
1368     (thiessel
1369      (widget-insert "\
1370 Worked at University of Kaiserslautern where he took part in the
1371 development and design of a CAD framework for analog integrated
1372 circuits with special emphasis on distributed software concepts. He
1373 has now joined HP as technical consultant.
1374
1375                       All of the buildings,
1376                       all of the cars
1377                       were once just a dream
1378                       in somebody's head.\n
1379                                      P. Gabriel\n"))
1380     (tomonori
1381      (widget-insert
1382       "\
1383 Sorry, no personal information available about me yet.\n"))
1384     (tuck
1385      (widget-insert
1386       "\
1387 Sorry, no personal information available about me yet.\n"))
1388     (turnbull
1389      (widget-insert "\
1390 Stephen lives with his Japanese wife and children in Tsukuba, Japan,
1391 where he is a professor of economics at the University of Tsukuba.\n"))
1392     (vin
1393      (widget-insert "\
1394 I'm a software engineer and manager for Adaptive Optics Associates
1395 in Cambridge, Massachusetts.  I used to play a lot of Ultimate (see\n")
1396      (about-url-link 'vin nil "Visit the Ultimate Players Association homepage")
1397      (widget-insert " for more details), but I don't have time to
1398 play much any more.  Nowadays I'm a family man, so I spend most of
1399 my time with my wife, Becky, and our sons, Noah and Francisco.\n"))
1400     (vladimir
1401      (widget-insert "\
1402 Former technical lead for XEmacs at Sun.  He is now writing a book on
1403 distributed Java and is working at Xerox PARC documenting AspectJ, a
1404 light-weight extension to Java that supports crosscutting concerns.
1405 See ")
1406      (about-url-link 'vladimir nil "Visit Vladimir's home page")
1407      (widget-insert ".\n"))
1408     (wmperry
1409      (widget-insert "\
1410 Happily living in Indiana telecommuting for a company based in Seattle
1411 \(who I now prefer not to name), wishing I was in Ireland instead.\n"))
1412     (yoshiki
1413      (widget-insert
1414       "\
1415 Sorry, no personal information available about me yet.\n"))
1416     (youngs
1417      (widget-insert "\
1418 I live in Brisbane, Australia with my wife, Michelle and our daughter,
1419 Kaitlyn.  I've only been hacking XEmacs for a short time (approx 18
1420 mths), but I've been fooling around with computers since the early
1421 80's.
1422
1423 In the past, I've been a bank officer, car salesman, insurance agent,
1424 managed a computer firm and owned and operated my own business.  I now
1425 divide my time between my family, planning my next business idea (a
1426 computer consulting firm that uses zero Microsoft products), looking
1427 after the XEmacs Packages and hacking my own XEmacs package, Eicq.
1428
1429 \tSee: ")
1430      (about-url-link 'youngs nil "Visit the Eicq homepage")
1431      (widget-insert ".\n"))
1432     ))
1433
1434 ;; Insert info about a maintainer's contribution to XEmacs.  See also
1435 ;; `about-personal-info'.
1436 (defun about-hacker-contribution (entry)
1437   (ecase (car entry)
1438     ;; to sort the entries below, use M-x sort-regexp-fields RET
1439     ;; then this regexp: ([^(]*([^"]*"[^"]*"[^)]*))
1440     ;; then this regexp: (\([a-z]*\)
1441     (adrian
1442      (widget-insert
1443       "\
1444 Adrian has done invaluable work rewriting and maintaining the XEmacs
1445 web pages at www.xemacs.org.  During his tenureship, he has
1446 established a consistent look and feel, placed the web pages under
1447 CVS, set up maintenance procedures, written scripts to handle
1448 automatic updating, validation and mirroring, and done innumerable
1449 other tasks.  He has also helped with many other administrative tasks,
1450 such as the thankless work of dealing with the providers of resources
1451 to XEmacs at SourceForge and tux.org.\n"))
1452     (aj
1453      (widget-insert "\
1454 Former `Package Patch Tender', beta tester and GNU libc developer.\n"))
1455     (ajc
1456      (widget-insert "\
1457 Former XEmacs web site maintainer.\n"))
1458     (alastair
1459      (widget-insert
1460       "\
1461 Rewrote the selection code, adding many new features such as better
1462 support for arbitrary selection types (especially under MS Windows,
1463 where the full power of the clipboard system is available under
1464 XEmacs).\n"))
1465     (baw
1466      (widget-insert "\
1467 I'm the author of ")
1468      (about-url-link 'cc-mode "CC Mode" "Visit the CC Mode page")
1469      (widget-insert ", for C, C++, Objective-C and Java editing,
1470 Supercite for mail and news citing, and sundry other XEmacs packages
1471 such as ELP (the Emacs Lisp Profiler), Reporter, xrdb-mode, and
1472 winring.  Even though I still live almost 100% in XEmacs these days,
1473 my Lisp hacking has fallen off in recent years as I became more
1474 involved in Python, and in fact, I currently maintain the Python
1475 editing mode.  See also: ")
1476      (about-url-link "http://www.python.org/emacs" nil
1477                      "Visit the python.org Emacs Goodies page")
1478      (widget-insert ".\n"))
1479     (ben
1480      (widget-insert
1481       "\
1482 I am the largest code contributor to XEmacs, and the architect of many
1483 of the features that distinguish XEmacs from GNU Emacs and other Emacs
1484 versions.  My main contributions to XEmacs include rewriting large
1485 parts of the internals and the gory Xt/Xlib interfacing, adding the
1486 Mule \(international) support, improving the MS Windows support,
1487 adding many GUI features to XEmacs, architecting the
1488 device-abstraction and specifier code, writing most of the XEmacs
1489 Internals Manual and the XEmacs-specific parts of the XEmacs Lisp
1490 Reference Manual, synching a great deal of code with GNU Emacs, and
1491 being a general nuisance ... er, brainstormer for many of the new
1492 features of XEmacs.\n"))
1493     (bw
1494      (widget-insert "\
1495 Author of the Hyperbole everyday information management hypertext
1496 system and the OO-Browser multi-language code browser.  He also
1497 designed the BeOpen InfoDock integrated development environment
1498 for software engineers.  It runs atop XEmacs and is available from
1499 his firm, BeOpen, which offers distributions, custom development,
1500 support, and training packages for corporate users of XEmacs, GNU
1501 Emacs and InfoDock.  See ")
1502      (about-url-link 'beopen nil "Visit BeOpen WWW page")
1503      (widget-insert ".\n"))
1504     (cgw
1505      (widget-insert
1506       "\
1507 Author of an earlier version of the MS Windows setup program for XEmacs.\n"))
1508     (chr
1509      (widget-insert "\
1510 Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n"))
1511     (craig
1512      (widget-insert
1513       "\
1514 Sorry, no information about my XEmacs contributions yet.\n"))
1515     (cthomp
1516      (widget-insert
1517       "\
1518 Maintainer of XEmacs from mid-1994 through 1996.  Author of the
1519 redisplay engine, the original toolbar and scrollbars and some of the
1520 device-abstraction, TTY and glyph code.  Creator of the xemacs.org
1521 domain and comp.emacs.xemacs.\n"))
1522     (daiki
1523      (widget-insert
1524       "\
1525 Sorry, no information about my XEmacs contributions yet.\n"))
1526     (dan
1527      (widget-insert
1528       "\
1529 Sorry, no information about my XEmacs contributions yet.\n"))
1530     (darrylo
1531      (widget-insert
1532       "\
1533 Sorry, no information about my XEmacs contributions yet.\n"))
1534     (devin
1535      (widget-insert "\
1536 Part of the original (pre-19.0) Lucid Emacs development team.
1537 Matthieu wrote the initial Energize interface, designed the
1538 toolkit-independent Lucid Widget library, and fixed enough redisplay
1539 bugs to last a lifetime.  The features in Lucid Emacs were largely
1540 inspired by Matthieu's initial prototype of an Energize interface
1541 using Epoch.\n"))
1542     (dkindred
1543      (widget-insert "\
1544 Darrell tends to come out of the woodwork a couple of weeks
1545 before a new release with a flurry of fixes for bugs that 
1546 annoy him.  He hopes he's spared you from a core dump or two.\n"))
1547     (dmoore
1548      (widget-insert "\
1549 David has contributed greatly to the quest to speed up XEmacs.\n"))
1550     (didier
1551      (widget-insert "\
1552 Didier joined the development of XEmacs in 1996, and has been one of
1553 the core maintainers since 1998.  His very first contribution was the
1554 translation of the tutorial to French. Since then, he has contributed
1555 various bug fixes and enhancements in fields as diverse as the GUI,
1556 redisplay engine and autoconf support.
1557
1558 Didier is the official maintainer of some core libraries (rect, cus-edit,
1559 wid-edit) and the author of the multicast support.  He is also the author
1560 of several packages, including mchat and Patcher.\n"))
1561     (eb
1562      (widget-insert "\
1563 Also part of the original Lucid Emacs development team.  Eric played a
1564 big part in the design of many aspects of the system, including the
1565 new command loop and keymaps, fixed numerous bugs, and has been a
1566 reliable beta tester ever since.\n"))
1567     (fabrice
1568      (widget-insert
1569       "\
1570 I have started to provide binary kits for the 21.2 series when there
1571 was no installer available. I contributed a few lines of core code
1572 occasionally to make things smoother with the native win32 port which
1573 I'm using all the day.
1574
1575 I also contributed elisp code long ago to make Gnus run under XEmacs.\n"))
1576     (golubev
1577      (widget-insert
1578       "\
1579 Used XEmacs since early 1997.  Fixed bugs that annoy me, both in
1580 XEmacs core and in packages I use, mostly viper.  Hoping to get
1581 coding-cookie package distributed, which is also a fix of what I
1582 consider a bug.\n"))
1583     (gunnar
1584      (widget-insert
1585       "\
1586 Sorry, no information about my XEmacs contributions yet.\n"))   
1587     (hbs
1588      (widget-insert "\
1589 Part of the original (pre-19.0) Lucid Emacs development team.  Harlan
1590 designed and implemented many of the low level data structures which
1591 are original to the Lucid version of Emacs, including extents and hash
1592 tables.\n"))
1593     (hisashi
1594      (widget-insert
1595       "\
1596 Sorry, no information about my XEmacs contributions yet.\n"))
1597     (hmuller
1598      (widget-insert "\
1599 Author of the code used to connect XEmacs with ToolTalk, and of an
1600 early client of the external Emacs widget.\n"))
1601     (hniksic
1602      (widget-insert
1603       "\
1604 Hrvoje's contribution to XEmacs consists of many hours spent working
1605 on code and taking part in public discussions.
1606
1607 He wrote `savehist' and `htmlize' packages, the latter having a pretty
1608 large gathering of users.  He worked to improve many parts of XEmacs
1609 Lisp code, including isearch (FSF synch and new features), cl, edmacro
1610 \(FSF synch and an almost complete rewrite), profile, gnuserv,
1611 hyper-apropos, etags, about, and custom.
1612
1613 He has worked on improving and optimizing the C core.  He ported many
1614 FSF core features such as indirect buffers, tty-erase-char,
1615 save-current-buffer and friends, debug-ignored-errors, etc.  He also
1616 wrote line numbering optimizations for large buffers, initial support
1617 for TTY frames, abbrev improvements, Lisp printer and reader
1618 improvements, support for extent modification functions, and lots of
1619 minor bugfixes, optimizations, and Muleifications.
1620
1621 He contributed to Lispref and Internals documentation, including a
1622 section on writing Mule-compliant C code.  Maintains NEWS.  He
1623 participated on xemacs-beta since 1996 and on the Patch Review Board
1624 since its inception in 1998.\n"))
1625     (hobley
1626      (widget-insert
1627       "\
1628 Creator of the earliest version of the MS Windows port of XEmacs.\n"))
1629     (jan
1630      (widget-insert "\
1631 Apart from hunting down redisplay bugs Jan has worked on such
1632 things as improvements to the package system, implementing lazy-shot,
1633 a short stint at tracking patches and currently acts as a guardian
1634 of the XEmacs custom subsystem and gnuserv.\n"))
1635     (jareth
1636      (widget-insert "\
1637 Owner of cvs.xemacs.org, the machine that holds the XEmacs CVS
1638 repository, and author of some of the graphics code in XEmacs.\n"))
1639     (jas
1640      (widget-insert "\
1641 Wrote and/or integrated several packages for Gnus, such as
1642 support for IMAP, Sieve, format=flowed, GnuTLS, S/MIME, and PGP.
1643 Irregularly synchronizes lisp code between Emacs and XEmacs.  He
1644 maintains the mail-lib, sieve, sasl, pgg and ecrypto XEmacs
1645 packages.  Operates the secondary DNS and mail server for
1646 xemacs.org.\n"))
1647     (jason
1648      (widget-insert "\
1649 Beta tester, manager of the various XEmacs mailing lists and binary
1650 kit manager.  Also, originator and maintainer of the gnus.org domain.\n"))
1651     (jens
1652      (widget-insert "\
1653 Jens did the artwork for graphics added to XEmacs 20.2 and 19.15. He's
1654 also the author of \"XEmacs Mine\", a game similar to Minesweeper, but
1655 running in XEmacs\n"))
1656     (jmiller
1657      (widget-insert "\
1658 Beta tester and last hacker of calendar.\n"))
1659     (jonathan
1660      (widget-insert "\
1661 I started the native port of XEmacs to MS Windows. Author of the
1662 Windows frame, redisplay, face and event loop support.\n"))
1663     (juhp
1664      (widget-insert "\
1665 Author of \"find-func.el\", improvements to \"help.el\" and a good
1666 number of bug fixes during June 1997 to December 1998.\n"))
1667     (jwz
1668      (widget-insert
1669       "\
1670 Creator and maintainer of Lucid Emacs (the predecessor of XEmacs),
1671 from 1991 through mid-1994.\n"))
1672     (kazz
1673      (widget-insert "\
1674 IENAGA Kazuyuki is the XEmacs technical lead on BSD, particularly
1675 FreeBSD.\n"))
1676     (kirill
1677      (widget-insert
1678       "\
1679 Abstracted the subprocess code and wrote much of the MS Windows
1680 support in XEmacs, including the subprocess interface, dialog boxes,
1681 printing support, and much of the event loop.\n"))
1682     (kyle
1683      (widget-insert "\
1684 Author of VM, a mail-reading package that is included in the standard
1685 XEmacs distribution, and contributor of many improvements and bug
1686 fixes.  Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox
1687 format for its folders; thus, you can use VM concurrently with other
1688 UNIX mail readers such as Berkeley Mail and ELM.
1689
1690 Also rewrote the object allocation system in XEmacs to support full
1691 32-bit pointers and 31-bit integers.\n"))
1692     (larsi
1693      (widget-insert "\
1694 Author of Gnus the Usenet news and Mail reading package in the
1695 standard XEmacs distribution, and contributor of various enhancements
1696 and portability fixes.\n"))
1697     (marcpa
1698      (widget-insert
1699       "\
1700 Sorry, no information about my XEmacs contributions yet.\n"))
1701     (martin
1702      (widget-insert
1703       "\
1704 Beta release manager and author of many stability fixes and speed
1705 improvements in XEmacs.\n"))
1706     (mcook
1707      (widget-insert "\
1708 Author of the \"shy groups\" and minimal matching regular expression
1709 extensions.\n"))
1710     (mly
1711      (widget-insert "\
1712 Early code contributor to Lucid Emacs.  Synched up Lucid Emacs with
1713 the first actual release of GNU Emacs 19, and architected and wrote
1714 the first version of XEmacs's object allocation system.\n"))
1715     (morioka
1716      (widget-insert "\
1717 I am the author of tm-view (general MIME Viewer for GNU Emacs) and
1718 major author and maintainer of tm (Tools for MIME; general MIME
1719 package for GNU Emacs).  In addition, I am working to unify MULE API
1720 for Emacs and XEmacs.  In XEmacs, I have ported many mule features.\n"))
1721     (mta
1722      (widget-insert
1723       "\
1724 Contributed minor improvements to the Windows support, especially
1725 related to subprocess communication and portable dumping as well as
1726 a bit of general bug fixing.\n"))
1727     (ograf
1728      (widget-insert "\
1729 Author of the XEmacs Drag'n'Drop API.\n"))
1730     (olivier
1731      (widget-insert
1732       "\
1733 Author of the portable dumper.\n"))
1734     (oscar
1735      (widget-insert "\
1736 Oscar's major contributions to XEmacs are the internal LDAP support
1737 and the EUDC package, an interface to query various directory services
1738 in a uniform manner (when composing mail for instance).\n"))
1739     (pelegri
1740      (widget-insert "\
1741 Author of EOS, a package included in the standard XEmacs distribution
1742 that integrates XEmacs with the SPARCworks development environment
1743 from Sun.  Past lead for XEmacs at Sun; advocated the validity of
1744 using Epoch, and later Lemacs, at Sun through several early
1745 prototypes.\n"))
1746     (pez
1747      (widget-insert "\
1748 Author of SQL Mode, edit-toolbar, mailtool-mode, and various other
1749 small packages with varying degrees of usefulness.\n"))
1750     (piper
1751      (widget-insert "\
1752 Author of the Cygwin port of XEmacs including unexec, the widget,
1753 gutter and buffer-tab support, glyphs under MS-Windows, toolbars under
1754 MS-Windows, the original \"fake\" XEmacs toolbar, outl-mouse for mouse
1755 gesture based outlining, and the original CDE drag-n-drop
1756 support.\n"))
1757     (pittman
1758      (widget-insert
1759       "\
1760 Sorry, no information about my XEmacs contributions yet.\n"))
1761     (rickc
1762      (widget-insert "\
1763 Maintainer of ILISP.\n"))
1764     (rose
1765      (widget-insert "\
1766 Author of many extensions to the `extents' code, including the initial
1767 implementation of `duplicable' properties.\n"))
1768     (rossini
1769      (widget-insert "\
1770 Author of the first XEmacs FAQ;
1771 Development lead on Emacs Speaks Statistics;
1772 Assisted Jareth Hein with setting up the JitterBug tracking system.\n"))
1773     (slb
1774      (widget-insert
1775       "\
1776 Maintainer of XEmacs from 1996 through 1998.  Author of the package
1777 system.\n"))
1778     (sperber
1779      (widget-insert "\
1780 Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
1781 also responsible for the ports of facemenu.el and enriched.el, the
1782 code to handle path-frobbing at startup for the XEmacs core and the
1783 package system, the init file migration from .emacs to
1784 .xemacs/init.el, and the CVS Great Trunk Move.\n"))
1785     (stig
1786      (widget-insert "\
1787 Implemented the faster stay-up Lucid menus and hyper-apropos.
1788 Contributor of many dispersed improvements in the core Lisp code, and
1789 back-seat contributor for several of its major packages.\n"))
1790     (stigb
1791      (widget-insert "\
1792 Maintainer of the RPM package.\n"))
1793     (thiessel
1794      (widget-insert "\
1795 Does beta testing and helps take care of the XEmacs web site.\n"))
1796     (tomonori
1797      (widget-insert
1798       "\
1799 Sorry, no information about my XEmacs contributions yet.\n"))
1800     (tuck
1801      (widget-insert
1802       "\
1803 Sorry, no information about my XEmacs contributions yet.\n"))
1804     (turnbull
1805      (widget-insert
1806       "\
1807 Responsible for getting the current release of XEmacs out the
1808 door.\n"))
1809     (vin
1810      (widget-insert "\
1811 Vin maintains the stable version of XEmacs.  This involves reviewing
1812 a lot of other peoples' patches and testing and applying them.
1813 He also gets to generate his own patches from time to time.  Being
1814 release manager is a fun way to contribute to the XEmacs project.
1815 Write me at acs@xemacs.org if you're interested in learning more.\n"))
1816     (vladimir
1817      (widget-insert "\
1818 Former technical lead for XEmacs at Sun.\n"))
1819     (wmperry
1820      (widget-insert "\
1821 Author of the GTK support in XEmacs, Emacs-w3 (the builtin web browser
1822 that comes with XEmacs), and various additions to the C code (e.g. the
1823 database support, the PNG support, some of the GIF/JPEG support, the
1824 strikethru face attribute support).\n"))
1825     (yoshiki
1826      (widget-insert
1827       "\
1828 Sorry, no information about my XEmacs contributions yet.\n"))
1829     (youngs
1830      (widget-insert "\
1831 Maintainer and release manager of the packages.\n"))
1832     ))
1833
1834 ;; Setup the buffer for a maintainer.
1835 (defun about-maintainer (widget &optional event)
1836   (let* ((entry (assq (widget-value widget) xemacs-hackers))
1837          (who (car entry))
1838          (name (cadr entry))
1839          (address (caddr entry))
1840          (bufname (format "*About %s*" name)))
1841     (unless (about-get-buffer bufname)
1842       ;; Display the glyph and name
1843       (widget-insert "\n")
1844       (widget-create 'default :format "%t"
1845                      :tag-glyph (about-maintainer-glyph who))
1846       (widget-insert
1847        "\n\n" (about-with-face (format "%s" name) 'bold)
1848        " <")
1849       (about-mailto-link address)
1850       (widget-insert ">\n\n")
1851       ;; Display the actual info
1852       (about-personal-info entry)
1853       (widget-insert "\n")
1854       (widget-insert
1855        (about-with-face "Contributions to XEmacs:\n\n" 'about-headline-face))
1856       (about-hacker-contribution entry)
1857       (widget-insert "\n")
1858       (about-finish-buffer 'kill)
1859       (forward-line 2))))
1860
1861 (defsubst about-tabs (str)
1862   (let ((x (length str)))
1863     (cond ((>= x 24) " ")
1864           ((>= x 16) "\t")
1865           ((>= x 8) "\t\t")
1866           (t "\t\t\t"))))
1867
1868 (defun about-show-linked-info (who)
1869   (let* ((entry (assq who xemacs-hackers))
1870          (name (cadr entry))
1871          (address (caddr entry)))
1872     (widget-create 'link :help-echo (concat "Find out more about " name)
1873                    :action 'about-maintainer
1874                    :button-prefix ""
1875                    :button-suffix ""
1876                    :tag name
1877                    :value who)
1878     (widget-insert (about-tabs name)
1879                    "<")
1880     (about-mailto-link address)
1881     (widget-insert ">\n")
1882     (about-hacker-contribution entry)
1883     (widget-insert "\n")))
1884
1885 (defun about-hackers (&rest ignore)
1886   (unless (about-get-buffer "*About Contributors*")
1887     (let ((title "A Legion of Contributors to XEmacs"))
1888       (widget-insert
1889        (about-center title)
1890        (about-with-face title 'bold)))
1891     (widget-insert
1892      "\n
1893 Like most free software, XEmacs is a collaborative effort.  These are
1894 some of the contributors.  We have no doubt forgotten someone; we
1895 apologize!  You can see some of our faces under the links.\n\n"
1896      (about-with-face "Primary maintainers for this release:"
1897                       'about-headline-face)
1898      "\n\n")
1899     (mapc 'about-show-linked-info about-current-release-maintainers)
1900     (widget-insert
1901      "\n"
1902      (about-with-face "Other notable current hackers:"
1903                       'about-headline-face)
1904      "\n\n")
1905     (mapc 'about-show-linked-info about-other-current-hackers)
1906     (widget-insert
1907      "\n"
1908      (about-with-face "Other notable once and future hackers:"
1909                       'about-headline-face)
1910      "\n\n")
1911     (mapc 'about-show-linked-info about-once-and-future-hackers)
1912     (flet ((print-short (name addr &optional shortinfo)
1913              (widget-insert (concat (about-with-face name 'italic)
1914                                     (about-tabs name)
1915                                     "<"))
1916              (about-mailto-link addr)
1917              (widget-insert
1918               (concat ">\n"
1919                       (if shortinfo (concat shortinfo "\n") "")))))
1920       (widget-insert
1921        "\n\
1922 In addition to those just mentioned, the following people have spent a
1923 great deal of effort providing feedback, testing beta versions of
1924 XEmacs, providing patches to the source code, or doing all of the
1925 above.  We couldn't have done it without them.\n\n")
1926       (print-short "Nagi M. Aboulenein" "aboulene@ponder.csci.unt.edu")
1927       (print-short "Per Abrahamsen" "abraham@dina.kvl.dk")
1928       (print-short "Gary Adams" "gra@zeppo.East.Sun.COM")
1929       (print-short "Gennady Agranov" "agranov@csa.CS.Technion.Ac.IL")
1930       (print-short "Mark Allender" "allender@vnet.IBM.COM")
1931       (print-short "Stephen R. Anderson" "sra@bloch.ling.yale.edu")
1932       (print-short "Butch Anton" "butch@zaphod.uchicago.edu")
1933       (print-short "Fred Appelman" "Fred.Appelman@cv.ruu.nl")
1934       (print-short "Erik \"The Pope\" Arneson" "lazarus@mind.net")
1935       (print-short "Tor Arntsen" "tor@spacetec.no")
1936       (print-short "Marc Aurel" "4-tea-2@bong.saar.de")
1937       (print-short "Larry Auton" "lda@control.att.com")
1938       (print-short "Larry Ayers" "layers@marktwain.net")
1939       (print-short "Oswald P. Backus IV" "backus@altagroup.com")
1940       (print-short "Mike Battaglia" "mbattagl@dsccc.com")
1941       (print-short "Neal Becker" "neal@ctd.comsat.com")
1942       (print-short "Paul Bibilo" "peb@delcam.com")
1943       (print-short "Leonard Blanks" "ltb@haruspex.demon.co.uk")
1944       (print-short "Jan Borchers" "job@tk.uni-linz.ac.at")
1945       (print-short "Mark Borges" "mdb@cdc.noaa.gov")
1946       (print-short "David P. Boswell" "daveb@tau.space.thiokol.com")
1947       (print-short "Tim Bradshaw" "tfb@edinburgh.ac.uk")
1948       (print-short "Rick Braumoeller" "rickb@mti.sgi.com")
1949       (print-short "Matthew J. Brown" "mjb@doc.ic.ac.uk")
1950       (print-short "Alastair Burt" "burt@dfki.uni-kl.de")
1951       (print-short "David Bush" "david.bush@adn.alcatel.com")
1952       (print-short "Richard Caley" "rjc@cstr.edinburgh.ac.uk")
1953       (print-short "Stephen Carney" "carney@gvc.dec.com")
1954       (print-short "Lorenzo M. Catucci" "lorenzo@argon.roma2.infn.it")
1955       (print-short "Philippe Charton" "charton@lmd.ens.fr")
1956       (print-short "Peter Cheng" "peter.cheng@sun.com")
1957       (print-short "Jin S. Choi" "jin@atype.com")
1958       (print-short "Tomasz J. Cholewo" "tjchol01@mecca.spd.louisville.edu")
1959       (print-short "Serenella Ciongoli" "czs00@ladybug.oes.amdahl.com")
1960       (print-short "Glynn Clements" "glynn@sensei.co.uk")
1961       (print-short "Richard Cognot" "cognot@ensg.u-nancy.fr")
1962       (print-short "Andy Cohen" "cohen@andy.bu.edu")
1963       (print-short "Richard Coleman" "coleman@math.gatech.edu")
1964       (print-short "Mauro Condarelli" "MC5686@mclink.it")
1965       (print-short "Nick J. Crabtree" "nickc@scopic.com")
1966       (print-short "Christopher Davis" "ckd@kei.com")
1967       (print-short "Soren Dayton" "csdayton@cs.uchicago.edu")
1968       (print-short "Chris Dean" "ctdean@cogit.com")
1969       (print-short "Michael Diers" "mdiers@logware.de")
1970       (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu")
1971       (print-short "Steve Dunham" "dunham@dunham.tcimet.net")
1972       (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk")
1973       (print-short "Carl Edman" "cedman@Princeton.EDU")
1974       (print-short "Dave Edmondson" "davided@sco.com")
1975       (print-short "Jonathan Edwards" "edwards@intranet.com")
1976       (print-short "Eric Eide" "eeide@asylum.cs.utah.edu")
1977       (print-short "EKR" "ekr@terisa.com")
1978       (print-short "David Fletcher" "frodo@tsunami.com")
1979       (print-short "Paul Flinders" "ptf@delcam.co.uk")
1980       (print-short "Jered J Floyd" "jered@mit.edu")
1981       (print-short "Gary D. Foster" "Gary.Foster@Corp.Sun.COM")
1982       (print-short "Jerry Frain" "jerry@sneffels.tivoli.com")
1983       (print-short "Holger Franz" "hfranz@physik.rwth-aachen.de")
1984       (print-short "Benjamin Fried" "bf@morgan.com")
1985       (print-short "Barry Friedman" "friedman@nortel.ca")
1986       (print-short "Noah Friedman" "friedman@splode.com")
1987       (print-short "Kazuyoshi Furutaka" "furutaka@Flux.tokai.jaeri.go.jp")
1988       (print-short "Lew Gaiter III" "lew@StarFire.com")
1989       (print-short "Itay Gat" "itay@cs.huji.ac.il")
1990       (print-short "Tim Geisler" "Tim.Geisler@informatik.uni-muenchen.de")
1991       (print-short "Dave Gillespie" "daveg@synaptics.com")
1992       (print-short "Christian F. Goetze" "cg@bigbook.com")
1993       (print-short "Yusuf Goolamabbas" "yusufg@iss.nus.sg")
1994       (print-short "Wolfgang Grieskamp" "wg@cs.tu-berlin.de")
1995       (print-short "John Griffith" "griffith@sfs.nphil.uni-tuebingen.de")
1996       (print-short "James Grinter" "jrg@demon.net")
1997       (print-short "Ben Gross" "bgross@uiuc.edu")
1998       (print-short "Dirk Grunwald" "grunwald@foobar.cs.Colorado.EDU")
1999       (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de")
2000       (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com")
2001       (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE")
2002       (print-short "Kai Haberzettl" "khaberz@synnet.de")
2003       (print-short "Adam Hammer" "hammer@cs.purdue.edu")
2004       (print-short "Magnus Hammerin" "magnush@epact.se")
2005       (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr")
2006       (print-short "Derek Harding" "dharding@lssec.bt.co.uk")
2007       (print-short "Michael Harnois" "mharnois@sbt.net")
2008       (print-short "John Haxby" "J.Haxby@isode.com")
2009       (print-short "Karl M. Hegbloom" "karlheg@inetarena.com")
2010       (print-short "Benedikt Heinen" "beh@icemark.thenet.ch")
2011       (print-short "Stephan Herrmann" "sh@first.gmd.de")
2012       (print-short "August Hill" "awhill@inlink.com")
2013       (print-short "Mike Hill" "mikehill@hgeng.com")
2014       (print-short "Charles Hines" "chuck_hines@VNET.IBM.COM")
2015       (print-short "Shane Holder" "holder@rsn.hp.com")
2016       (print-short "Chris Holt" "xris@migraine.stanford.edu")
2017       (print-short "Tetsuya HOYANO" "hoyano@ari.bekkoame.or.jp")
2018       (print-short "David Hughes" "djh@harston.cv.com")
2019       (print-short "Tudor Hulubei" "tudor@cs.unh.edu")
2020       (print-short "Tatsuya Ichikawa" "ichikawa@hv.epson.co.jp")
2021       (print-short "Andrew Innes" "andrewi@harlequin.co.uk")
2022       (print-short "Markku Jarvinen" "Markku.Jarvinen@simpukka.funet.fi")
2023       (print-short "Robin Jeffries" "robin.jeffries@sun.com")
2024       (print-short "Philip Johnson" "johnson@uhics.ics.Hawaii.Edu")
2025       (print-short "J. Kean Johnston" "jkj@paradigm-sa.com")
2026       (print-short "John W. Jones" "jj@asu.edu")
2027       (print-short "Andreas Kaempf" "andreas@sccon.com")
2028       (print-short "Yoshiaki Kasahara" "kasahara@nc.kyushu-u.ac.jp")
2029       (print-short "Amir Katz" "amir@ndsoft.com")
2030       (print-short "Doug Keller" "dkeller@vnet.ibm.com")
2031       (print-short "Hunter Kelly" "retnuh@corona")
2032       (print-short "Gregor Kennedy" "gregork@dadd.ti.com")
2033       (print-short "Michael Kifer" "kifer@cs.sunysb.edu")
2034       (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp")
2035       (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu")
2036       (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu")
2037       (print-short "Norbert Koch" "n.koch@delta-ii.de")
2038       (print-short "Rob Kooper" "kooper@cc.gatech.edu")
2039       (print-short "Peter Skov Knudsen" "knu@dde.dk")
2040       (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de")
2041       (print-short "Maximilien Lincourt" "max@toonboom.com")
2042       (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se")
2043       (print-short "Simon Leinen" "simon@instrumatic.ch")
2044       (print-short "Carsten Leonhardt" "leo@arioch.oche.de")
2045       (print-short "James LewisMoss" "moss@cs.sc.edu")
2046       (print-short "Mats Lidell" "mats.lidell@contactor.se")
2047       (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu")
2048       (print-short "Christian Limpach" "Christian.Limpach@nice.ch")
2049       (print-short "Maximilien Lincourt" "max@toonboom.com")
2050       (print-short "Markus Linnala" "maage@b14b.tupsu.ton.tut.fi")
2051       (print-short "Robert Lipe" "robertl@arnet.com")
2052       (print-short "Derrell Lipman" "derrell@vis-av.com")
2053       (print-short "Damon Lipparelli" "lipp@aa.net")
2054       (print-short "Hamish Macdonald" "hamish@bnr.ca")
2055       (print-short "Ian MacKinnon" "imackinnon@telia.co.uk")
2056       (print-short "Patrick MacRoberts" "macro@hpcobr30.cup.hp.com")
2057       (print-short "Tonny Madsen" "Tonny.Madsen@netman.dk")
2058       (print-short "Ketil Z Malde" "ketil@ii.uib.no")
2059       (print-short "Steve March" "smarch@quaver.urbana.mcd.mot.com")
2060       (print-short "Ricardo Marek" "ricky@ornet.co.il")
2061       (print-short "Pekka Marjola" "pema@iki.fi")
2062       (print-short "Simon Marshall" "simon@gnu.ai.mit.edu")
2063       (print-short "Dave Mason" "dmason@plg.uwaterloo.ca")
2064       (print-short "Jaye Mathisen" "mrcpu@cdsnet.net")
2065       (print-short "Jason McLaren" "mclaren@math.mcgill.ca")
2066       (print-short "Michael McNamara" "mac@silicon-sorcery.com")
2067       (print-short "Michael Meissner" "meissner@osf.org")
2068       (print-short "David M. Meyer" "meyer@ns.uoregon.edu")
2069       (print-short "John Mignault" "jbm@panix.com")
2070       (print-short "Brad Miller" "bmiller@cs.umn.edu")
2071       (print-short "John Morey" "jmorey@crl.com")
2072       (print-short "Rob Mori" "rob.mori@sun.com")
2073       (print-short "Heiko Muenkel" "muenkel@tnt.uni-hannover.de")
2074       (print-short "Arup Mukherjee" "arup+@cs.cmu.edu")
2075       (print-short "Colas Nahaboo" "Colas.Nahaboo@sophia.inria.fr")
2076       (print-short "Lynn D. Newton" "lynn@ives.phx.mcd.mot.com")
2077       (print-short "Casey Nielson" "knielson@joule.elee.calpoly.edu")
2078       (print-short "Georg Nikodym" "Georg.Nikodym@canada.sun.com")
2079       (print-short "Andy Norman" "ange@hplb.hpl.hp.com")
2080       (print-short "Joe Nuspl" "nuspl@sequent.com")
2081       (print-short "Kim Nyberg" "kny@tekla.fi")
2082       (print-short "Kevin Oberman" "oberman@es.net")
2083       (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU")
2084       (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br")
2085       (print-short "Tore Olsen" "toreo@colargol.idb.hist.no")
2086       (print-short "Greg Onufer" "Greg.Onufer@eng.sun.com")
2087       (print-short "Achim Oppelt" "aoppelt@theorie3.physik.uni-erlangen.de")
2088       (print-short "Rebecca Ore" "rebecca.ore@op.net")
2089       (print-short "Sudeep Kumar Palat" "palat@idt.unit.no")
2090       (print-short "Joel Peterson" "tarzan@aosi.com")
2091       (print-short "Thomas A. Peterson" "tap@src.honeywell.com")
2092       (print-short "Tibor Polgar" "tibor@alteon.com")
2093       (print-short "Frederic Poncin" "fp@info.ucl.ac.be")
2094       (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us")
2095       (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at")
2096       (print-short "Colin Rafferty" "colin@xemacs.org")
2097       (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com")
2098       (print-short "Paul M Reilly" "pmr@pajato.com")
2099       (print-short "Jack Repenning" "jackr@sgi.com")
2100       (print-short "Daniel Rich" "drich@cisco.com")
2101       (print-short "Roland Rieke" "rol@darmstadt.gmd.de")
2102       (print-short "Art Rijos" "art.rijos@SNET.com")
2103       (print-short "Russell Ritchie" "ritchier@britannia-life.co.uk")
2104       (print-short "Roland" "rol@darmstadt.gmd.de")
2105       (print-short "Mike Russell" "mjruss@rchland.vnet.ibm.com")
2106       (print-short "Hajime Saitou" "hajime@jsk.t.u-tokyo.ac.jp")
2107       (print-short "Jan Sandquist" "etxquist@iqa.ericsson.se")
2108       (print-short "Marty Sasaki" "sasaki@spdcc.com")
2109       (print-short "SATO Daisuke" "densuke@ga2.so-net.or.jp")
2110       (print-short "Kenji Sato" "ken@ny.kdd.com")
2111       (print-short "Mike Scheidler" "c23mts@eng.delcoelect.com")
2112       (print-short "Daniel Schepler" "daniel@shep13.wustl.edu")
2113       (print-short "Holger Schauer" "schauer@coling.uni-freiburg.de")
2114       (print-short "Darrel Schneider" "darrel@slc.com")
2115       (print-short "Hayden Schultz" "haydens@ll.mit.edu")
2116       (print-short "Cotton Seed" "cottons@cybercom.net")
2117       (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de")
2118       (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no")
2119       (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org")
2120       (print-short "Justin Sheehy" "justin@linus.mitre.org")
2121       (print-short "John Shen" "zfs60@cas.org")
2122       (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp")
2123       (print-short "Matt Simmons" "simmonmt@acm.org")
2124       (print-short "Dinesh Somasekhar" "somasekh@ecn.purdue.edu")
2125       (print-short "Jeffrey Sparkes" "jsparkes@bnr.ca")
2126       (print-short "Manoj Srivastava" "srivasta@pilgrim.umass.edu")
2127       (print-short "Francois Staes" "frans@kiwi.uia.ac.be")
2128       (print-short "Anders Stenman" "stenman@isy.liu.se")
2129       (print-short "Jason Stewart" "jasons@cs.unm.edu")
2130       (print-short "Rick Tait" "rickt@gnu.ai.mit.edu")
2131       (print-short "TANAKA Hayashi" "tanakah@mxa.mesh.ne.jp")
2132       (print-short "Samuel Tardieu" "sam@inf.enst.fr")
2133       (print-short "James Thompson" "thompson@wg2.waii.com")
2134       (print-short "Nobu Toge" "toge@accad1.kek.jp")
2135       (print-short "Raymond L. Toy" "toy@rtp.ericsson.se")
2136       (print-short "Remek Trzaska" "remek@npac.syr.edu")
2137       (print-short "TSUTOMU Nakamura" "tsutomu@rs.kyoto.omronsoft.co.jp")
2138       (print-short "Stefanie Teufel" "s.teufel@ndh.net")
2139       (print-short "Gary Thomas" "g.thomas@opengroup.org")
2140       (print-short "John Turner" "turner@xdiv.lanl.gov")
2141       (print-short "UENO Fumihiro" "7m2vej@ritp.ye.IHI.CO.JP")
2142       (print-short "Aki Vehtari" "Aki.Vehtari@hut.fi")
2143       (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu")
2144       (print-short "Vladimir Vukicevic" "vladimir@intrepid.com")
2145       (print-short "David Walte" "djw18@cornell.edu")
2146       (print-short "Peter Ware" "ware@cis.ohio-state.edu")
2147       (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de")
2148       (print-short "Yoav Weiss" "yoav@zeus.datasrv.co.il")
2149       (print-short "Peter B. West" "p.west@uq.net.au")
2150       (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com")
2151       (print-short "Rich Williams" "rdw@hplb.hpl.hp.com")
2152       (print-short "Raymond Wiker" "raymond@orion.no")
2153       (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM")
2154       (print-short "David C Worenklein" "dcw@gcm.com")
2155       (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp")
2156       (print-short "Katsumi Yamaoka" "yamaoka@ga.sony.co.jp")
2157       (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu")
2158       (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au")
2159       (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu")
2160       (print-short "Volker Zell" "vzell@de.oracle.com")
2161       (print-short "Daniel Zivkovic" "daniel@canada.sun.com")
2162       (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl")
2163       (widget-insert "\n"))
2164     (about-finish-buffer)))
2165
2166 ;;; about.el ends here