PageRenderTime 66ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/lisp/about.el

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