PageRenderTime 103ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 1ms

/lisp/about.el

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