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