XEmacs 21.4.0 "Solid Vapor".
authortomo <tomo>
Mon, 26 Aug 2002 11:34:01 +0000 (11:34 +0000)
committertomo <tomo>
Mon, 26 Aug 2002 11:34:01 +0000 (11:34 +0000)
24 files changed:
ChangeLog
etc/NEWS
lib-src/ChangeLog
lisp/ChangeLog
lisp/about.el
lisp/menubar-items.el
lisp/mouse.el
lwlib/ChangeLog
man/ChangeLog
man/xemacs-faq.texi
man/xemacs/building.texi
man/xemacs/custom.texi
man/xemacs/search.texi
man/xemacs/text.texi
netinstall/ChangeLog
nt/ChangeLog
src/ChangeLog
src/cmdloop.c
src/extents.c
src/lisp.h
src/regex.c
src/regex.h
tests/ChangeLog
version.sh

index 0d32ae9..1500188 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * etc/photos/wing*.png: Rename to ben*.png.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index c6bba49..32a69bc 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -39,7 +39,7 @@ now defaults to t.  `delete-key-deletes-forward' takes effect only on
 the systems that offer both a backspace and a delete key.  If set to
 nil, the key labeled "Delete" will always delete backward.  If set to
 non-nil, the "Delete" key will delete forward, except on keyboards
-where a "Backspace" key is not provided (e.g. old DEC keyboards.)
+where a "Backspace" key is not provided (e.g. old DEC keyboards).
 
 Unless our implementation has bugs, the only reason why you would want
 to set `delete-key-deletes-forward' to nil is if you want to use the
@@ -58,79 +58,157 @@ course, you'll need to have the GTK+ libraries and header files on the
 system.)  Gnome widgets and functionality are supported where
 available, and can be turned off.
 
-** Shifted motion keys now select text by default.  You can turn this
-off by setting `shifted-motion-keys-select-region' to nil.
+** Shifted motion keys now select text by default.
 
-** There is a new command `kill-entire-line' that always kills the
-entire line at point, regardless of whether the point is at the
-beginning of line, and regardless of the setting of `kill-whole-line'.
+You can turn this off by setting `shifted-motion-keys-select-region'
+to nil.  This works based off of particular keys, not particular
+commands: Thus, the arrow keys will normally trigger selection when
+the Shift key is held down regardless of their bindings, and non-arrow
+keys with the same bindings (e.g. C-f) will not work this way.  You
+can control which keys trigger shifted motion using
+`motion-keys-for-shifted-motion'.  See also
+`unshifted-motion-keys-deselect-region'.
 
-** The variable `kill-whole-line' now only takes effect when kill-line
-is called interactively.  Although this is a departure from a previous
-behavior in the case of setting this variable kill-whole-line to t,
-it is almost certainly what has always been intended, and most likely
-the old way of doing things introduced bugs.
+** XEmacs support for menu accelerators has been much improved.
 
-** The help buffers created by the plethora of C-h commands now
-contain hyperlinks.
+It now works properly under MS Windows, for example.  To enable
+accelerators, set `menu-accelerator-enabled' to `menu-force'.  Menus
+now have accelerators by default, currently on the first letter of the
+menu item unless another letter was indicated as the accelerator using
+%_ in the menu string.  These %_ specifications are automatically
+removed when displaying the menu item, and are handled correctly in
+functions such as `normalize-menu-item-name'.  Some auto-generated
+menus will have accelerators added dynamically, using numbers 1-9 and
+letters; to add this feature yourself, use the Lisp command
+`submenu-generate-accelerator-spec' in a menu filter.  The feature
+`menu-accelerator-support' has been added so that packages can check
+whether this support exists.
 
-** The modeline's text is now scrollable.  This is controlled by the
-variable `modeline-scrolling-method', which you need to set to a
-non-nil value.  You can also choose scrolling types; see the docstring
-of `modeline-scrolling-method' for more information.
+** Default menubar improvements.
 
-** XEmacs menus now have accelerators by default.  If a menu item does
-not have an accelerator specified, one is created dynamically, using
-numbers 1-9 and letters.
+*** The default menubar has been extensively reorganized.  Many more
+commands are available, and they are more logically organized.  The
+Options menu, in particular, has been significantly expanded, and
+almost everything on the new Cmds menu is new. (Much of the useful
+functionality from the `big-menubar' package has been imported.)
 
-** Interactive searching and matching case improvements.
+*** The font-menu is now available under MS Windows.
 
-Case sensitiveness in searching operations is normally controlled by
-the variable `case-fold-search' (if non-nil, case is ignored while
-searching).  This mechanism has now been slightly improved for
-interactive searches: if the search string (or regexp) contains
-uppercase characters, the searching is forced to be case-sensitive,
-`case-fold-search'.
+** Dialog box improvements.
 
-The new behavior affects all functions performing interactive
-searches, like `zap-to-char', `list-matching-lines', `tags-search'
-etc.  The incremental search facility has always behaved that way.
+*** XEmacs now has a proper file dialog box under MS Windows! (and
+under GTK as well ...) This will appear whenever you select a menu
+item that requires a file as an argument.
 
-** Incremental search will now highlight all visible matches, making
-it easier to anticipate where consecutive C-s or C-r will place the
-point.  If you want to disable the feature, set
-`isearch-highlight-all-matches' to nil.
+*** The old clunky file dialog box (visible on non-MS-Windows, non-GTK
+systems) is still clunky but has had many improvements to make it work
+significantly better.
 
-** The "coding systems" feature now works even in an XEmacs compiled
-without international (Mule) support.  This means that for example
-XEmacs can recognize newline convention used by the file you are
-editing.
+*** Keyboard traversal now works correctly in MS Windows dialog boxes.
+
+*** There is a Search dialog box available from Edit->Find..., but it
+is very experimental and needs a lot of work.
+
+** New buffer tabs.
 
-** You can now use the buffer tabs to switch between buffers.  The
-tabs are located between the toolbar and the uppermost window, in a
-location called "gutter".  If you dislike the buffer tabs, you can
+You can now use the buffer tabs to switch between buffers.
+
+The tabs are located between the toolbar and the uppermost window, in
+a location called "gutter".  If you dislike the buffer tabs, you can
 disable them by customizing `gutter-buffers-tab-visible-p', or by
 placing this in your .emacs:
 
    (set-gutter-element-visible-p default-gutter-visible-p 'buffers-tab nil)
 
 You can change the location of the gutter with
-`set-default-gutter-position', however currently only MS-Windows
+`set-default-gutter-position', however currently only MS Windows
 supports tab widgets with orientations other than vertical.
 
-** Kill and yank now interact with the clipboard by default under
+There are menu items on the Options menu to conveniently change these
+settings.
+
+** There is a new MS Windows installer, netinstall, ported from Cygwin.
+
+Nearly complete automation of the XEmacs install process from
+ftp.xemacs.org.  Includes selection of Lisp packages to install, etc.
+
+** The subprocess quote-handling mechanism under MS Windows is much improved.
+
+Specifically, the quote-handling mechanism has been completely rewritten,
+and you should now be able to use single or double quotes to quote arguments
+just like under Unix, and expect to get correct results regardless of the
+shell you are using (e.g. CMD.EXE, bash from Cygwin, etc.).  For example,
+the following command:
+
+M-x grep '<<<<<<<' *.c
+
+should work as intended.
+
+** Printing support now available under MS Windows.
+
+The File->Print... menu item pretty-prints using the standard MS
+Windows printing facilities.  Unfortunately it's still rather
+experimental.  There is a separate `msprinter' device tag for MS
+Windows printers, and so you can control the way that faces appear on
+the printer by using this tag to specify device-specific face
+settings.
+
+** Selection improvements.
+
+*** Kill and yank now interact with the clipboard by default under
 Windows.  This was done by changing the default value of
 `interprogram-cut-function' and `interprogram-paste-function'.  You
 can get the old behavior by setting these to nil, and there is an
 option on the options menu to do this.
 
-** When you press RET at a minibuffer prompt that provides a default
-value, the value is stored in history instead of an empty line.  Also,
-you can now edit the default value by pressing the down arrow,
-accessing the logical "future" value.  Not all minibuffer prompts have
-yet been converted to support this feature.
+*** MS Windows support for selection is now much more robust.
 
-** International keysyms are now supported under X.  This means that
+Generally selection should now do what you would expect under
+MS Windows: the middle mouse button will paste your current selection
+or the clipboard; conversions from different types of selection to the
+clipboard can be made; the kill-ring and friends will be updated as
+per X.
+
+The only thing selection doesn't do is set the clipboard automatically
+as this would break the MS Windows model.  If you want this behavior
+then set `selection-sets-clipboard' to t.
+
+*** Motif selection support is now more correct (but slower) in its
+behaviour.  Changes have been made to allow correct operation of
+cut/copy/paste operations between native widgets and XEmacs buffers.
+However, this can lead to a lot of X traffic which slows down the
+performance of `C-k'. If you want the old behaviour then set
+`x-selection-strict-motif-ownership' to nil.
+
+** Mail spool locking now works correctly.
+
+XEmacs has always come with a little auxiliary program, movemail,
+which moves mail out of the system's spool area into user storage.  To
+coordinate between XEmacs, the mail delivery agent, and other mail
+user agents, movemail needs to properly lock the spool file before
+moving it.  Movemail now correctly respects the --mail-locking option
+to configure.  Moreover, movemail's locking behavior can be specified
+at run-time, via a new command-line option -m to movemail, or through
+the environment variable EMACSLOCKMETHOD.
+
+When installing XEmacs, make sure you configure it according to your
+environment's mail spool locking conventions.  When you're using a
+binary kit, set the `mail-lock-method' variable at startup, or the
+EMACSLOCKMETHOD environment variable.
+
+** International support changes.
+
+*** The "coding system" feature now works even in an XEmacs compiled
+without international (Mule) support.  This means that for example
+XEmacs can recognize the newline convention used by the file you are
+editing.
+
+*** The default coding-priority-list is now safer.  This means that if
+you have no language environment set, Mule no longer automatically
+recognizes ISO 2022 escapes in your files.  This makes editing binary
+files safe.
+
+*** International keysyms are now supported under X.  This means that
 XEmacs running under Mule will automatically recognize the keysym
 `scaron' to be the lower-case `s' with caron in the Latin 2 character
 set.  (Specifically, it will bind the keysym to `self-insert' and
@@ -140,6 +218,53 @@ If XEmacs is compiled without Mule support, the feature still works,
 but it is unaware of different character sets -- it unconditionally
 sets the `ascii-character' property to values in the [160, 256) range.
 
+*** MS Windows 1251 code page is now supported as coding system
+`windows-1251'.
+
+*** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic support now
+available.
+
+*** The appropriate characters in Latin 3 and Latin 4 character sets
+are correctly defined as words.
+
+** Help buffers contain hyperlinks, and other changes.
+
+*** The help buffers created by C-h commands now contain hyperlinks to
+other commands, functions and variables mentioned in the
+documentation.  Use button2 to follow a link.  Use button3 to bring up
+a context menu that lets you follow the link, find the source for the
+item, do a tag search, etc.  The buffers are also syntax-highlighted.
+
+*** Help functions (e.g. `C-h f') now know how to print macro argument
+lists.  If your macro definition included an argument list for the
+sake of help output, you no longer need to do that.
+
+** The modeline's text is now scrollable.  This is controlled by the
+variable `modeline-scrolling-method', which you need to set to a
+non-nil value.  You can also choose scrolling types; see the docstring
+of `modeline-scrolling-method' for more information.
+
+** The mouse wheel under MS Windows now functions correctly -- it scrolls
+the XEmacs window under the pointer, not the selected window.
+
+** Interactive searching and matching case improvements.
+
+*** Incremental search will now highlight all visible matches, making
+it easier to anticipate where consecutive C-s or C-r will place the
+point.  If you want to disable the feature, set
+`isearch-highlight-all-matches' to nil.
+
+*** Case sensitiveness in searching operations is normally controlled
+by the variable `case-fold-search' (if non-nil, case is ignored while
+searching).  This mechanism has now been slightly improved for
+interactive searches: if the search string (or regexp) contains
+uppercase characters, the searching is forced to be case-sensitive,
+`case-fold-search'.
+
+The new behavior affects all functions performing interactive
+searches, like `zap-to-char', `list-matching-lines', `tags-search'
+etc.  The incremental search facility has always behaved that way.
+
 ** The rectangle functions have been almost completely rewritten in
 order to avoid inserting undesirable spaces, notably at the end of
 lines.  Two typical examples of the old behavior were
@@ -160,14 +285,15 @@ As a side effect, the FORCE argument to `move-to-column' now
 understands the special value `coerce', which means that the line
 should not be filled if it is too short to reach the desired column.
 
-** Customize now supports adding comments about your face and variable
-settings using a new menu entry.  Comments for variables can also be
-assigned by calling `customize-set-(value|variable)' with a prefix
-argument.
+** There is a new command `kill-entire-line' that always kills the
+entire line at point, regardless of whether the point is at the
+beginning of line, and regardless of the setting of `kill-whole-line'.
 
-** XEmacs now locates the early package hierarchies at
-~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/.  Previously,
-the early packages were located in ~/.xemacs/.
+** When you press RET at a minibuffer prompt that provides a default
+value, the value is stored in history instead of an empty line.  Also,
+you can now edit the default value by pressing the down arrow,
+accessing the logical "future" value.  Not all minibuffer prompts have
+yet been converted to support this feature.
 
 ** You can now create "indirect buffers", like in GNU Emacs.  An
 indirect buffer shares its text with another buffer ("base buffer"),
@@ -190,6 +316,17 @@ nil, if given an ordinary (non-indirect) buffer.  The function
 `buffer-indirect-children' returns a list of the indirect children of
 a base buffer.
 
+** Pixel-based scrolling has been implemented.
+By default this will attempt to scroll in increments equal to the
+height of the default face.  Set `window-pixel-scroll-increment' to
+modify this behavior.
+
+** Operation progress can be displayed using graphical widgets.
+See `progress-feedback' for details.  This support has been switched
+on by default for font-lock and some web browsing functions.  If you
+do not like this behavior, set `progress-feedback-use-echo-area' to
+nil.
+
 ** User names following the tilde character can now be completed at
 file name prompts; e.g. `C-x C-f ~hni<TAB>' will complete to
 `~hniksic/'.  To make this operation faster, a cache of user names is
@@ -201,51 +338,20 @@ The new primitives available for this purpose are functions named
 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD).
 It will try NAS first, then ESD, then playing native sound directly.
 
-** X-Face support is now available under MS-Windows.
-If an X-Face library built under MS-Windows is available then XEmacs
+** X-Face support is now available under MS Windows.
+If an X-Face library built under MS Windows is available then XEmacs
 will use this at build time.
 
-** The font-menu is now available under MS-Windows.
-
-** MS-Windows support for selection is now much more robust.
-
-Generally selection should now do what you would expect under
-MS-Windows: the middle mouse button will paste your current selection
-or the clipboard; conversions from different types of selection to the
-clipboard can be made; the kill-ring and friends will be updated as
-per X.
-
-The only thing selection doesn't do is set the clipboard automatically
-as this would break the MS-Windows model.  If you want this behavior
-then set `selection-sets-clipboard' to t.
-
-** Motif selection support is now more correct (but slower) in its behaviour.
-
-Changes have been made to allow correct operation of cut/copy/paste
-operations between native widgets and XEmacs buffers. However, this
-can lead to a lot of X traffic which slows down the performance of
-`C-k'. If you want the old behaviour then set
-`x-selection-strict-motif-ownership' to nil.
-
-** Mail spool locking now works correctly.
-XEmacs has always come with a little auxiliary program, movemail,
-which moves mail out of the system's spool area into user storage.  To
-coordinate between XEmacs, the mail delivery agent, and other mail
-user agents, movemail needs to properly lock the spool file before
-moving it.  Movemail now correctly respects the --mail-locking option
-to configure.  Moreover, movemail's locking behavior can be specified
-at run-time, via a new command-line option -m to movemail, or through
-the environment variable EMACSLOCKMETHOD.
-
-When installing XEmacs, make sure you configure it according to your
-environment's mail spool locking conventions.  When you're using a
-binary kit, set the `mail-lock-method' variable at startup, or the
-EMACSLOCKMETHOD environment variable.
+** The PostgreSQL Relational Database Management System is now supported.
+It is now possible to build XEmacs so that the programming interface
+to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp.
+Supported versions of PostgreSQL are 6.5.3 (earlier versions may work,
+but have not been tested) and 7.0-beta1.
 
 ** Indentation no longer indents comments that begin at column zero.
 This makes it easy to deal with commented out regions of code.
 
-** Init file changes.
+** Init file may be placed in alternative locations, and other changes.
 
 *** XEmacs now supports a `~/.xemacs/init.el' startup file.  If
 it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'.  The
@@ -254,6 +360,12 @@ file may be byte-compiled as `~/.xemacs/init.elc'.
 If present, the `~/.xemacs/' directory may contain startup files for
 XEmacs packages that support it.
 
+NOTE: Under MS Windows, your home directory (i.e. the directory named
+`~') is specified by the HOME environment variable, and defaults to
+C:\.  To set this variable, modify AUTOEXEC.BAT under Windows 95/98,
+or select Control Panel->System->Advanced->Environment Variables...
+under Windows NT/2000.
+
 *** Init file in your home directory may be called `.emacs.el'.
 
 Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file
@@ -264,7 +376,23 @@ the file in the usual way.
 If both `.emacs' and `.emacs.el' exist, the latter file is the one
 that is used.
 
+*** Much-improved sample init file.
+
+The sample init file, located in the `etc/' directory of the XEmacs
+installation, has been renamed from `sample.emacs' to `sample.init.el',
+and pretty much rewritten from scratch. (You can view it by selecting
+the menu item Help->Samples->View Sample init.el.)  Many of the
+most-useful optional features in XEmacs have been enabled, and other
+features that are useful but may be annoying to some are present but
+commented out.  There is also extensive documentation on how to add
+your own improvements to the init file and where to find more
+documentation elsewhere in XEmacs.  The file has been specifically
+designed so that most people can simply make it their own init file by
+copying it to ~/.xemacs/init.el, and they will be satisfied with the
+results.
+
 *** New command-line switches -user-init-file and -user-init-directory.
+
 These can be used to specify alternate locations for what is normally
 ~/.emacs and ~/.xemacs.
 
@@ -282,48 +410,36 @@ file, XEmacs now prefers them to be in a separate file
 change goes with the migration of the init file, and XEmacs offers
 automatic migration upon startup.
 
+** Customize now supports adding comments about your face and variable
+settings using a new menu entry.  Comments for variables can also be
+assigned by calling `customize-set-(value|variable)' with a prefix
+argument.
+
+** XEmacs now locates the early package hierarchies at
+~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/.  Previously,
+the early packages were located in ~/.xemacs/.
+
+** The `auto-save' library has been greatly improved. (This lets you
+group all your auto-save files into one directory, and is provided
+standardly with XEmacs.  See `etc/sample.init.el', available on the
+Help menu, for more info on how to set it up.)  Specifically, it now
+works under MS Windows, and it uses a completely reversible encoding
+(basically quoted-printable), so that all filenames (as well as
+non-filename buffers) are successfully handled regardless of any
+special characters in their names.
+
 ** New variable `mswindows-alt-by-itself-activates-menu'.
 If you set this variable to nil then pressing and releasing the Alt
-key under MS-Windows will no longer activate the menubar.  The default
+key under MS Windows will no longer activate the menubar.  The default
 is t.  This is not to be confused with `menu-accelerator-enabled',
 which enables the use of Alt+<Letter> accelerators to invoke the
 menus.
 
-** Pixel-based scrolling has been implemented.
-By default this will attempt to scroll in increments equal to the
-height of the default face.  Set `window-pixel-scroll-increment' to
-modify this behavior.
-
-** Operation progress can be displayed using graphical widgets.
-See `progress-feedback' for details.  This support has been switched
-on by default for font-lock and some web browsing functions.  If you
-do not like this behavior set `progress-feedback-use-echo-area'.
-
-** The PostgreSQL Relational Database Management System is now supported.
-It is now possible to build XEmacs so that the programming interface
-to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp.
-Supported versions of PostgreSQL are 6.5.3 (earlier versions may work,
-but have not been tested) and 7.0-beta1.
-
-** Help functions (e.g. `C-h f') now know how to print macro argument
-lists.  If your macro definition included an argument list for the
-sake of help output, you no longer need to do that.
-
-** Mule changes.
-
-*** Windows 1251 code page is now supported as coding system
-`windows-1251'.
-
-*** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic support now
-available.
-
-*** The appropriate characters in Latin 3 and Latin 4 character sets
-are correctly defined as words.
-
-*** The default coding-priority-list is now safer.  This means that if
-you have no language environment set, Mule no longer automatically
-recognizes ISO 2022 escapes in your files.  This makes editing binary
-files safe.
+** The variable `kill-whole-line' now only takes effect when kill-line
+is called interactively.  Although this is a departure from a previous
+behavior in the case of setting this variable kill-whole-line to t,
+it is almost certainly what has always been intended, and most likely
+the old way of doing things introduced bugs.
 
 ** Etags changes.
 
@@ -437,23 +553,13 @@ buffer.  As a side effect subwindow support now works once again.
 
 All of this is still fairly experimental and there is no
 documentation.  The current APIs might change in a future version of
-XEmacs.  Some widgets are only available under MS-Windows.  See the
+XEmacs.  Some widgets are only available under MS Windows.  See the
 file glyphs-test.el in the XEmacs src distribution for examples of
 usage.
 
 The buffers-tab functionality and progress gauge have been implemented
 using this feature.
 
-** A new Windows installer, netinstall ported from Cygwin.
-
-Nearly complete automation of the XEmacs install process from
-ftp.xemacs.org.  Includes selection of Lisp packages to install, etc.
-
-** Syntax tables may now be specified for a part of a buffer by
-attaching the `syntax-table' property to an extent.  For compatibility
-with GNU Emacs, you may use the text-property interface to achieve the
-same result.
-
 ** Case translation now supports international characters.
 
 *** Instead of being lists of 256-character strings, case tables are
@@ -474,6 +580,11 @@ know.
 to respect the case table settings.  This also applies to regexp
 search.
 
+** Syntax tables may now be specified for a part of a buffer by
+attaching the `syntax-table' property to an extent.  For compatibility
+with GNU Emacs, you may use the text-property interface to achieve the
+same result.
+
 ** Values of variables `user-init-file' and `user-init-directory' are
 now absolute file/directory names.  Previously, both variables used to
 be relative to `(concat "~" init-file-user)'.  This turned out to be
index 1924dd1..f3dac8e 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index bad67a8..4be62eb 100644 (file)
@@ -1,3 +1,43 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
+2001-04-15  Ben Wing  <ben@xemacs.org>
+
+       * about.el:
+       * about.el (about-headline-face): New.
+       * about.el (about-link-face): New.
+       * about.el (about-current-release-maintainers): New.
+       * about.el (about-other-current-hackers): New.
+       * about.el (about-url-alist):
+       * about.el (about-once-and-future-hackers): New.
+       * about.el (about-mailto-link): New.
+       * about.el (about-get-buffer):
+       * about.el (about-finish-buffer):
+       * about.el (about-xemacs):
+       * about.el (about-features): Removed.
+       * about.el (about-advantages): New.
+       * about.el (about-maintainer-info): Removed.
+       * about.el (about-personal-info): New.
+       * about.el (about-hacker-contribution): New.
+       * about.el (about-maintainer):
+       * about.el (about-show-linked-info):
+       * about.el (about-hackers):
+       Major revamping.  Rewriting of most of the text, improve the
+       link handling, separate info on contributors into personal
+       and contribution info, add new contributors, update personal
+       info, etc. etc.
+       
+       * menubar-items.el (default-menubar):
+       Help menubar entry for News now says more accurately
+       "What's New in XEmacs".
+       
+       * mouse.el:
+       * mouse.el (mouse-track-cleanup-hook):
+       * mouse.el (mouse-track):
+       Don't set-buffer to a dead buffer when calling mouse-track
+       cleanup hooks.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index 7c3a89e..362b815 100644 (file)
@@ -1,10 +1,11 @@
 ;;; about.el --- the About The Authors page (shameless self promotion).
 
 ;; Copyright (c) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 2001 Ben Wing.
 
 ;; Keywords: extensions
-;; Version: 2.4
-;; Maintainer: Hrvoje Niksic <hniksic@xemacs.org>
+;; Version: 2.5
+;; Maintainer: XEmacs Development Team
 
 ;; This file is part of XEmacs.
 
@@ -37,6 +38,8 @@
 
 ;; Completely rewritten for 20.3 by Hrvoje Niksic <hniksic@xemacs.org>.
 ;; The original had no version numbers; I numbered the rewrite as 2.0.
+;; Extensively revamped and most text rewritten by Ben Wing
+;; <ben@xemacs.org> for 21.4.
 
 ;; Many things in this file are to gag.  Ideally, we should just use
 ;; HTML (or some other extension, e.g. info) for this sort of thing.
 ;; named after the CAR of the list element (baw -> baw.png).
 ;;
 ;; If you add to this list, you'll want to update
-;; `about-maintainer-info' (and maybe `about-hackers'.
+;; `about-personal-info' and `about-hackers', and add the name to one
+;; of the three mutually exclusive lists just below.
+
+(defface about-headline-face
+  '((((class color) (background dark))
+     (:foreground "red" :bold t))
+    ;; red4 is hardly different from black on windows.
+    (((class color) (background light)
+      (type mswindows))
+     (:foreground "red" :bold t))
+    (((class color) (background light))
+     (:foreground "red4" :bold t))
+    (((class grayscale) (background light))
+     (:foreground "LightGray" :bold t))
+    (((class grayscale) (background dark))
+     (:foreground "DimGray" :bold t))
+    (t (:bold t)))
+  "Face used for color-highlighted headlines in the About page.")
+
+(defface about-link-face
+  '((((class color) (background dark))
+     (:foreground "blue" :underline t))
+    ;; blue4 is hardly different from black on windows.
+    (((class color) (background light) (type mswindows))
+     (:foreground "blue3" :underline t))
+    (((class color) (background light))
+     (:foreground "blue4" :underline t))
+    (((class grayscale) (background light))
+     (:foreground "DimGray" :bold t :italic t :underline t))
+    (((class grayscale) (background dark))
+     (:foreground "LightGray" :bold t :italic t :underline t))
+    (t (:underline t)))
+  "Face used for links in the About page.")
+
 (defvar xemacs-hackers
-  '((ajc      "Andrew Cosgriff"   "ajc@bing.wattle.id.au")
-    (aj       "Andreas Jaeger"    "aj@suse.de")
-    (baw      "Barry Warsaw"      "bwarsaw@python.org")
-    (bw       "Bob Weiner"        "weiner@beopen.com")
-    (chr      "Christian Nybø"    "chr@mediascience.no")
+  '(
+    ;; to sort the stuff below, use M-x sort-regexp-fields RET
+    ;; ^.*$ RET (\([a-z]*\) RET
+    (adrian   "Adrian Aichner"    "adrian@xemacs.org")
+    (aj       "Andreas Jaeger"    "aj@xemacs.org")
+    (ajc      "Andrew Cosgriff"   "ajc@xemacs.org")
+    (alastair "Alastair Houghton" "alastair@xemacs.org")
+    (baw      "Barry Warsaw"      "bwarsaw@xemacs.org")
+    (ben      "Ben Wing"          "ben@xemacs.org")
+    (bw       "Bob Weiner"        "weiner@xemacs.org")
+    (cgw      "Charles Waldman"   "cgw@xemacs.org")
+    (chr      "Christian Nybø"    "chr@xemacs.org")
+    (craig    "Craig Lanning"     "craig@xemacs.org")
     (cthomp   "Chuck Thompson"    "cthomp@xemacs.org")
-    (dmoore   "David Moore"       "dmoore@ucsd.edu")
-    (dkindred "Darrell Kindred"          "dkindred@cmu.edu")
+    (daiki    "Daiki Ueno"        "daiki@xemacs.org")
+    (dan      "Dan Holmsand"      "dan@xemacs.org")
+    (darrylo  "Darryl Okahata"    "darrylo@xemacs.org")
+    (devin    "Matthieu Devin"    "devin@xemacs.org")
+    (dkindred "Darrell Kindred"   "dkindred@xemacs.org")
+    (dmoore   "David Moore"       "dmoore@xemacs.org")
     (dv       "Didier Verna"      "didier@xemacs.org")
+    (eb       "Eric Benson"       "eb@xemacs.org")
+    (fabrice  "Fabrice Popineau"  "fabrice@xemacs.org")
+    (golubev  "I N Golubev"       "golubev@xemacs.org")
+    (gunnar   "Gunnar Evermann"   "gunnar@xemacs.org")
+    (hbs      "Harlan Sexton"     "hbs@xemacs.org")
+    (hisashi  "Hisashi Miyashita" "hisashi@xemacs.org")
+    (hmuller  "Hans Muller"       "hmuller@xemacs.org")
     (hniksic  "Hrvoje Niksic"     "hniksic@xemacs.org")
-       (jan      "Jan Vroonhof"      "jan@xemacs.org")
-    (jareth   "Jareth Hein"       "jareth@camelot.co.jp")
+    (hobley   "David hobley"      "hobley@xemacs.org")
+    (jan      "Jan Vroonhof"      "jan@xemacs.org")
+    (jareth   "Jareth Hein"       "jareth@xemacs.org")
     (jason    "Jason R. Mastaler" "jason@xemacs.org")
-    (jens     "Jens Lautenbacher" "jens@lemcbed.lem.uni-karlsruhe.de")
-    (jmiller  "Jeff Miller"       "jmiller@smart.net")
-    (juhp     "Jens-Ulrik Holger Petersen" "petersen@kurims.kyoto-u.ac.jp")
-    (jwz      "Jamie Zawinski"    "jwz@jwz.org")
+    (jens     "Jens Lautenbacher" "jens@xemacs.org")
+    (jmiller  "Jeff Miller"       "jmiller@xemacs.org")
+    (jonathan "Jonathan Harris"   "jonathan@xemacs.org")
+    (juhp     "Jens-Ulrik Holger Petersen" "petersen@xemacs.org")
+    (jwz      "Jamie Zawinski"    "jwz@xemacs.org")
     (kazz     "IENAGA Kazuyuki"   "ienaga@xemacs.org")
-    (kyle     "Kyle Jones"        "kyle_jones@wonderworks.com")
-    (larsi    "Lars Magne Ingebrigtsen" "larsi@gnus.org")
-    (marcpa   "Marc Paquette"    "marcpa@CAM.ORG")
-    (mcook    "Michael R. Cook"   "mcook@cognex.com")
-    (mly      "Richard Mlynarik"  "mly@adoc.xerox.com")
-    (morioka  "MORIOKA Tomohiko"  "morioka@jaist.ac.jp")
+    (kirill   "Kirill Katsnelson" "kirill@xemacs.org")
+    (kyle     "Kyle Jones"        "kyle@xemacs.org")
+    (larsi    "Lars Magne Ingebrigtsen" "larsi@xemacs.org")
+    (marcpa   "Marc Paquette"     "marcpa@xemacs.org")
     (martin   "Martin Buchholz"   "martin@xemacs.org")
-    (ograf    "Oliver Graf"       "ograf@fga.de")
-    (pez      "Peter Pezaris"    "pez@dwwc.com")
+    (mcook    "Michael R. Cook"   "mcook@xemacs.org")
+    (mly      "Richard Mlynarik"  "mly@xemacs.org")
+    (morioka  "MORIOKA Tomohiko"  "morioka@xemacs.org")
+    (mta      "Mike Alexander"    "mta@xemacs.org")
+    (ograf    "Oliver Graf"       "ograf@xemacs.org")
+    (olivier  "Olivier Galibert"  "olivier@xemacs.org")
+    (oscar    "Oscar Figueiredo"  "oscar@xemacs.org")
+    (pelegri  "Eduardo Pelegri-Llopart" "pelegri@xemacs.org")
+    (pez      "Peter Pezaris"     "pez@xemacs.org")
     (piper    "Andy Piper"        "andy@xemacs.org")
-    (rickc    "Rick Campbell"     "rickc@lehman.com")
-    (rossini  "Anthony Rossini"          "rossini@stat.sc.edu")
-    (vin      "Vin Shelton"      "acs@acm.org")
-    (sperber  "Michael Sperber"   "sperber@informatik.uni-tuebingen.de")
-    (slb      "SL Baur"           "steve@xemacs.org")
-    (stig     "Jonathan Stigelman" "stig@hackvan.com")
-    (stigb    "Stig Bjorlykke"   "stigb@tihlde.hist.no")
+    (pittman  "Daniel Pittman"    "pittman@xemacs.org")
+    (rickc    "Rick Campbell"     "rickc@xemacs.org")
+    (rose     "John Rose"         "rose@xemacs.org")
+    (rossini  "Anthony Rossini"   "rossini@xemacs.org")
+    (slb      "Steve Baur"        "steve@xemacs.org")
+    (sperber  "Michael Sperber"   "sperber@xemacs.org")
+    (stig     "Jonathan Stigelman" "stig@xemacs.org")
+    (stigb    "Stig Bjorlykke"    "stigb@xemacs.org")
     (thiessel "Marcus Thiessel"   "marcus@xemacs.org")
-    (vladimir "Vladimir Ivanovic" "vladimir@acm.com")
-    (wing     "Ben Wing"          "ben@xemacs.org")
-    (wmperry  "William Perry"     "wmperry@aventail.com"))
+    (tomonori "Tomonori Ikeyama"  "tomonori@xemacs.org")
+    (tuck     "Matt Tucker"       "tuck@xemacs.org")
+    (turnbull "Stephen Turnbull"  "turnbull@xemacs.org")
+    (vin      "Vin Shelton"       "acs@xemacs.org")
+    (vladimir "Vladimir Ivanovic" "vladimir@xemacs.org")
+    (wmperry  "William Perry"     "wmperry@xemacs.org")
+    (yoshiki  "Yoshiki Hayashi"   "yoshiki@xemacs.org")
+    (youngs   "Steve Youngs"      "youngs@xemacs.org")
+    )
   "Alist of XEmacs hackers.")
 
+(defvar about-current-release-maintainers
+  ;; this list should not necessarily be in sorted order.
+  '(turnbull adrian ben hniksic jason martin piper sperber youngs))
+
+(defvar about-other-current-hackers
+  ;; to sort this list or the one below, use:
+  ;; M-x sort-regexp-fields RET [a-z]+ RET \(.*\) RET
+  '(aj alastair cgw craig daiki dan dv fabrice golubev gunnar hisashi
+       jan jareth jmiller jonathan kazz kirill larsi morioka mta ograf
+       olivier oscar pittman tomonori tuck vin wmperry yoshiki))
+
+(defvar about-once-and-future-hackers
+  '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller
+       hobley jens juhp jwz kyle marcpa mcook mly ograf pelegri pez
+       rickc rose rossini slb stig stigb thiessel vladimir))
+
 ;; The CAR of alist elements is a valid argument to `about-url-link'.
 ;; It is preferred to a simple string, because it makes maintenance
 ;; easier.  Please add new URLs to this list.
 (defvar about-url-alist
+    ;; to sort the stuff below, use M-x sort-regexp-fields RET
+    ;; ^.*$ RET (\([a-z]*\) RET
   '((ajc        . "http://www-personal.monash.edu.au/~ajc/")
-    (beopen     . "http://www.beopen.com/")
-    (ben        . "http://www.666.com/ben/")
-    (ben-xemacs . "http://www.666.com/xemacs/")
     (baw        . "http://www.python.org/~bwarsaw/")
-    (cc-mode    . "http://www.python.org/ftp/emacs/")
+    (ben        . "http://www.666.com/ben/")
+    (ben-xemacs . "http://www.xemacs.org/Architecting-XEmacs/index.html")
+    (beopen     . "http://www.beopen.com/")
+    (cc-mode    . "http://cc-mode.sourceforge.net/")
     (chr        . "http://www.xemacs.org/faq/")
+    (daiki      . "http://deisui.bug.org/diary/servlet/view")
     (dkindred   . "http://www.cs.cmu.edu/People/dkindred/me.html")
     (dmoore     . "http://oj.egbt.org/dmoore/")
     (dv         . "http://www.lrde.epita.fr/~didier/")
     (jwz        . "http://www.jwz.org/")
     (kazz       . "http://www.imasy.or.jp/~kazz/")
     (kyle       . "http://www.wonderworks.com/kyle/")
-    (larsi      . "http://www.ifi.uio.no/~larsi/")
+    (larsi      . "http://quimby.gnus.org/lmi/")
     (marcpa     . "http://www.positron911.com/products/power.htm")
     (ograf      . "http://www.fga.de/~ograf/")
-    (pez        . "http://www.dwwc.com/")
+    (pez        . "http://cbs.sportsline.com/")
     (piper      . "http://www.xemacs.freeserve.co.uk/")
-    (vin        . "http://www.upa.org/")
     (stigb      . "http://www.tihlde.hist.no/~stigb/")
-    (wget       . "ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/")
+    (vin        . "http://www.upa.org/")
+    (vladimir   . "http://www.leonora.org/~vladimir/")
+    (wget       . "http://www.wget.org/")
+    (wget-ftp   . "ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/")
     (xemacs     . "http://www.xemacs.org/"))
   "Some of the more important URLs.")
 
                 :help-echo echo
                 what))
 
+;; Insert a mailto: link to the buffer.
+(defun about-mailto-link (address)
+  (widget-create 'url-link :help-echo (concat "Send mail to " address)
+                :button-prefix ""
+                :button-suffix ""
+                :tag address
+                (concat "mailto:" address)))
+
 ;; Attach a face to a string, in order to be inserted into the buffer.
 ;; Make sure that the extent is duplicable, but unique.  Returns the
 ;; string.
         (switch-to-buffer name)
         (delete-other-windows)
         (buffer-disable-undo)
+        ;; #### This is a temporary fix until wid-edit gets fixed right.
+        ;; We don't do everything that widget-button-click does -- i.e.
+        ;; we don't change the link color on button down -- but that's
+        ;; not important.
+        (add-local-hook
+         'mouse-track-click-hook
+         #'(lambda (event count)
+             (cond
+              ((widget-event-point event)
+               (let* ((pos (widget-event-point event))
+                      (button (get-char-property pos 'button)))
+                 (when button
+                   (widget-apply-action button event)
+                   t))))))
         (set-specifier left-margin-width about-left-margin (current-buffer))
+        (set (make-local-variable 'widget-button-face) 'about-link-face)
         nil)))
 
 ;; Set up the stuff needed by widget.  Allowed types are `bury' and
                   :action (lambda (&rest ignore)
                             (kill-buffer (current-buffer)))
                   "Kill"))
-  (widget-insert " this buffer.\n")
+  (widget-insert " this buffer and return to previous.\n")
   (use-local-map (make-sparse-keymap))
   (set-keymap-parent (current-local-map) widget-keymap)
   (if (eq type 'bury)
       (local-set-key "q" dispose)
       (local-set-key "l" dispose)))
   (local-set-key " " 'scroll-up)
+  (local-set-key [backspace] 'scroll-down)
   (local-set-key "\177" 'scroll-down)
   (widget-setup)
   (goto-char (point-min))
     (let* ((emacs-short-version (format "%d.%d"
                                        emacs-major-version
                                        emacs-minor-version))
-          (emacs-about-version (format "version %s; Aug 1998"
+          (emacs-about-version (format "version %s; April 2001"
                                        emacs-short-version)))
       (widget-insert (about-center emacs-about-version))
-      (widget-create 'link :help-echo "The latest NEWS of XEmacs"
+      (widget-create 'link :help-echo "What's new in XEmacs"
                     :action 'about-news
                     emacs-about-version))
 
     (widget-insert
      "\n\n"
-     (about-with-face "XEmacs" 'italic)
-     " (formerly known as "
-     (about-with-face "Lucid Emacs" 'italic)
-     ") is a powerful, extensible text
-editor with full GUI support, initially based on an early version of\n"
-     (about-with-face "GNU Emacs 19" 'italic)
-     " from the Free Software Foundation and since kept up to
-date with recent versions of that product.  XEmacs stems from a\n")
+     (about-with-face "XEmacs" 'bold-italic)
+     " is a powerful, highly customizable open source text editor and
+application development system, with full GUI support.  It is protected
+under the GNU Public License and related to other versions of Emacs, in
+particular GNU Emacs.  Its emphasis is on modern graphical user
+interface support and an open software development model, similar to
+Linux.  XEmacs has an active development community numbering in the
+hundreds (and thousands of active beta testers on top of this), and runs
+on all versions of MS Windows, on Linux, and on nearly every other
+version of Unix in existence.  ")
     (widget-create 'link :help-echo "An XEmacs history lesson"
                   :action 'about-collaboration
                   :button-prefix ""
                   :button-suffix ""
-                  "collaboration")
+                  "Support for XEmacs")
     (widget-insert
-     " of Lucid, Inc. with Sun Microsystems, Inc. and the
-University of Illinois with additional support having been provided by
-Amdahl Corporation, INS Engineering Corporation, and a huge amount of
-volunteer effort.
-
-XEmacs provides a great number of ")
-    (widget-create 'link :help-echo "See a list of the new features"
-                  :action 'about-features
+     " has been supplied by
+Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical
+Laboratory, Amdahl Corporation, BeOpen, and others, as well as the
+unpaid time of a great number of individual developers.
+
+XEmacs has many ")
+    (widget-create 'link :help-echo "See a list of XEmacs advantages over GNU Emacs"
+                  :action 'about-advantages
+                  :button-prefix ""
+                  :button-suffix ""
+                  "advantages")
+    (widget-insert " over GNU Emacs.  In addition, XEmacs 21.4
+provides many ")
+    (widget-create 'link :help-echo "See a list of new features in XEmacs 21.4"
+                  :action 'about-news
                   :button-prefix ""
                   :button-suffix ""
                   "new features")
-    (widget-insert ".  More details on
-XEmacs's functionality, including bundled packages, can be obtained
-through the ")
+    (widget-insert " not found in previous versions of XEmacs.
+More details on XEmacs's functionality, including bundled packages, can
+be obtained through the ")
     (widget-create 'info-link
                   :help-echo "Browse the info system"
                   :button-prefix ""
@@ -286,25 +409,29 @@ developers responsible for this release are:\n\n")
                             :value who)
              (widget-insert (format "  <%s>\n" address)))))
       ;; Setup persons responsible for this release.
-      (mapc 'setup-person '(slb hniksic kyle martin piper))
+      (mapc 'setup-person about-current-release-maintainers)
       (widget-insert "\n\t* ")
       (widget-create 'link :help-echo "A legion of XEmacs hackers"
                     :action 'about-hackers
                     :button-prefix ""
                     :button-suffix ""
-                    "And many other contributors...")
+                    "The full list of contributors...")
       (widget-insert "\n
-Chuck Thompson was Mr. XEmacs from 19.11 through 19.14.  Ben Wing was
-crucial to each of these releases.\n\n")
+Steve Baur was the primary maintainer for 19.15 through 21.0.\n\n")
+      (setup-person 'slb)
+      (widget-insert "
+Chuck Thompson and Ben Wing were the maintainers for 19.11 through 19.14
+and heavy code contributors for 19.8 through 19.10.\n\n")
       (setup-person 'cthomp)
-      (setup-person 'wing)
+      (setup-person 'ben)
       (widget-insert "
-Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10, the last
-release actually named Lucid Emacs.  A lot of work has been done by
-Richard Mlynarik.\n\n")
-      (setup-person 'jwz)
-      (setup-person 'mly))
-    (about-finish-buffer)))
+Jamie Zawinski was the maintainer for 19.0 through 19.10 (the entire
+history of Lucid Emacs).\n\n")
+      (setup-person 'jwz))
+    (about-finish-buffer)
+    ;; it looks horrible with the cursor on the first line, since it's
+    ;; so big.
+    (goto-line 2)))
 
 ;; View news
 (defun about-news (&rest ignore)
@@ -476,52 +603,56 @@ contributed to the XEmacs development from late 1994 to early
 1995.\n")
     (about-finish-buffer)))
 
-(defun about-features (&rest ignore)
-  (unless (about-get-buffer "*About Features*")
-    (let ((title "New features in XEmacs"))
+(defun about-advantages (&rest ignore)
+  (unless (about-get-buffer "*About Advantages*")
+    (let ((title "XEmacs Advantages over GNU Emacs"))
       (widget-insert
        "\n"
        (about-center title)
        (about-with-face title 'bold)))
     (widget-insert
      "\n
-* MULE (Multi-Lingual Emacs) support.  Simultaneous display of
-  multiple character sets is now possible.
+* Much better GUI support:
 
-* Support for arbitrary pixmaps in a buffer.
+  -- a real toolbar
+  -- more comprehensive and better-designed menubars
+  -- horizontal and vertical scrollbars in all windows
+  -- proper dialog boxes
+  -- tabs for selecting buffers
+  -- support for variable-width and variable height fonts
+  -- support for arbitrary pixmaps and widgets in a buffer
+  -- face support on TTY's, including color
 
-* A real toolbar.
+* An installable package system, with a huge number of packages available
+  that have been tested and are known to work with the latest version
+  of XEmacs.
 
-* Horizontal and vertical scrollbars in all windows.
+* Comprehensive support for the GTK toolkit.
 
-* Support for variable-width and variable height fonts.
+* An open development community, with contributions welcome and no need
+  to sign over your copyright to any organization. (Please send
+  contributions to xemacs-patches@xemacs.org.  See http://www.xemacs.org
+  for more information on XEmacs mailing lists, and other info.)
 
 * Support for display on multiple simultaneous X and/or TTY devices.
 
-* Face support on TTY's, including color.
-
-* Support for overlapping regions (or extents) and efficient handling
-  of a large number of such extents in a single buffer.
-
 * Powerful, flexible control over the display characteristics of most
   of the visual aspects of XEmacs through the use of specifiers, which
   allow separate values to be specified for individual buffers,
   windows, frames, devices, device classes, and device types.
 
-* A clean interface to the menubar, window-system events, and key
-  combinations.
+* A clean, modern, abstracted Lisp interface to the menubar, toolbar,
+  window-system events, key combinations, extents (regions in a buffer
+  with specific properties), and all other display aspects.
 
 * Proper integration with Xt and Motif (including Motif menubars and
   scrollbars).  Motif look-alike menubars and scrollbars are provided
   for those systems without real Motif support.
 
-* Text for complex languages can be entered using the XIM mechanism.
-
-* Localization of menubar text for the Japanese locale.
-
-* Access to the ToolTalk API.
-
-* Support for using XEmacs frames as Xt widgets.\n\n")
+* Many improvements to the multilingual support, such as the ability to
+  enter text for complex languages using the XIM mechanism and
+  localization of menubar text for the Japanese locale.
+\n\n")
     (about-finish-buffer)))
 
 (defvar about-glyphs nil
@@ -561,77 +692,104 @@ contributed to the XEmacs development from late 1994 to early
        (push (cons who glyph) about-glyphs)))
     glyph))
 
-;; Insert info about a maintainer.  Add the maintainer-specific info
-;; here.
-(defun about-maintainer-info (entry)
+;; Insert personal info about a maintainer.  See also
+;; `about-hacker-contribution'.  Note that the info in
+;; `about-hacker-contribution' is automatically displayed in the
+;; person's own page, so there is no need to duplicate it.
+(defun about-personal-info (entry)
   (ecase (car entry)
-    (slb
+    ;; you can sort the stuff below with something like
+    ;;(sort-regexp-fields nil
+    ;; " *(\\([^()]\\|([^()]*)\\|(\\([^()]\\|([^()]*)\\)*)\\)*)\n"
+    ;; " *(\\([a-z]*\\)"
+    ;; (region-beginning) (region-end))
+    (adrian
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (aj
      (widget-insert "\
-Peaches Baur, 1986-1999.
-Rest in peace")
+I'm a software developer working for the SuSE Labs of the Linux
+distributor SuSE.  My main task is to improve the GNU C library.")
      (widget-insert ".\n"))
-    (martin
+    (ajc
      (widget-insert "\
-Martin was the XEmacs guy at DevPro, a part of Sun Microsystems.
-Martin used to do XEmacs as a `hobby' while at IBM, and was crazy
-enough to try to make a living doing it at Sun.
-
-Martin starting using Emacs originally not to edit files, but to get
-the benefit of shell mode. He actually used to run nothing but a shell
-buffer, and use `xterm -e vi' to edit files.  But then he saw the
-light.  He dreams of rewriting shell mode from scratch.  Stderr should
-show up in red!!
-
-Martin is no longer doing XEmacs for a living, and is Just Another
-Volunteer.\n"))
-    (hniksic
+When not helping maintain the XEmacs website, Andrew is a Network
+Software Engineer(tm) for Monash University in Australia, maintaining
+webservers and doing random other things.  As well as spending spare
+time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus
+et. al., he spends his time pursuing, among other things, a Life.
+Some of this currently involves doing an A-Z (by country) of
+restaurants with friends, and has, in the past, involved dyeing his
+hair various colours (see ")
+     (about-url-link 'ajc "Visit Andrew's home page")
+     (widget-insert ".\n"))
+    (alastair
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (baw
      (widget-insert "\
-Hrvoje is a student at the Faculty of Electrical Engineering and
-Computing in Zagreb, Croatia, working part-time at system administration
-at SRCE.  His hobby is hacking free software, particularly XEmacs and
-GNU Wget, the latter being his very own creation.
+Daddy
+\(C) 1994 Warsaw
+===============
+Drive me Daddy, drive me quick
+Push my pedal, shift my stick
+Fill me up with golden gas
+My rubber squeals, I go real fast
 
-His contribution to XEmacs consists of a multitude of hours spent
-adding new features and bugs, and fixing old ones.  He dreams of
-writing a home page.\n"))
-    (wing
+Milk me Daddy, milk me now
+Milk me like a big ol' cow
+I've got milk inside my udder
+Churn it up and make some butter\n\nSee also:\n\n\t")
+     (about-url-link 'baw "Visit Barry's home page")
+     (widget-insert "\n"))
+    (ben
      (widget-insert
       "\
-I began my Emacs life in 1992 as the co-founder of the now defunct
-Pearl Software.  As part of this company, I became the principal
-architect of Win-Emacs, an early port of Lucid Emacs to Microsoft
-Windows and Windows NT.
-
-Since April 1993, I've worked on XEmacs as a contractor for various
-companies, changing hats faster than Ronald Reagan's hair color (oops,
-did I just show my age?).  My main contributions to XEmacs include
-rewriting large parts of the internals and the gory Xt/Xlib
-interfacing, adding the Mule support, implementing the external client
-widget, improving the documentation (especially the Emacs Lisp
-manual), and being a general nuisance ... er, brainstormer for many of
-the new features of XEmacs.
-
-Alas, life has not been good to me recently.  This former San Francisco
-\"Mission Critter\" was exiled to \"Stroller Valley\" and, after a brief
-stint developing a Java-based VRML toolkit for the now also defunct
-Dimension X, I developed insidious hand and neck problems, and I was
-forced to quit working.  Since then, I have been learning how to interact
-with the computer by using foot pedals and by dictating text to other
-people.  Recently I completed Architecting XEmacs, a web site about the
-future of XEmacs.\n\n")
+Since September 1992, I've worked on XEmacs as a contractor for
+various companies and more recently as an unpaid volunteer.
+
+Alas, life has not been good to me recently.  This former San
+Francisco \"Mission Critter\" developed insidious hand and neck
+problems after a brief stint working on a Java-based VRML toolkit for
+the now defunct Dimension X, and I was forced to quit working.  I was
+exiled first to \"Stroller Valley\" and later all the way to Tucson,
+Arizona, and for two years was almost completely disabled due to pain.
+More recently I have fought my way back with loads and loads of
+narcotic painkillers, and currently I'm an art student at the
+University of Arizona.\n\n")
      (widget-insert "Architecting XEmacs: ")
      (about-url-link 'ben-xemacs "Find the miracles in store for XEmacs")
      (widget-insert "\nBen's home page:     ")
      (about-url-link 'ben "Visit Ben's page")
      (widget-insert "\n"))
+    (bw
+     (widget-insert "\
+His interests include user interfaces, information management, CASE
+tools, communications and enterprise integration.\n"))
+    (cgw
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (chr
+     (widget-insert "\
+Christian is a student at the Norwegian School of Economics and
+Business Administration in Bergen, Norway.  He used to work for an
+internet startup called New Media Science, doing scripting and
+violation of HTML DTD's.  After graduation, spring 1999, he'll be
+looking for a job involving lisp programming, French and Russian.\n"))
+    (craig
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
     (cthomp
      (widget-insert "\
-Chuck, through being in the wrong place at the right time, has gotten
-stuck with being Jamie's replacement as the primary maintainer of
-XEmacs.  This has caused his hair to begin falling out and quadrupled
-his daily coffee dosage.  Though he works at and for the University of
-Illinois his funding for XEmacs work actually came from Sun
-Microsystems.
+Chuck, through being in the wrong place at the right time, got stuck
+with being Jamie's replacement as the primary maintainer of XEmacs.
+This caused his hair to begin falling out and quadrupled his daily
+coffee dosage.  Though he works at and for the University of Illinois
+his funding for XEmacs work actually came from Sun Microsystems.
 
 He has worked on XEmacs since November 1992, which fact occasionally
 gives him nightmares.  As of October 1995, he no longer works
@@ -642,159 +800,122 @@ numerous other features and fixes.
 
 Rumors that Chuck is aka Black Francis aka Frank Black are completely
 unfounded.\n"))
-    (jwz
+    (daiki
+     (about-url-link 'daiki "Visit Daiki's page"))
+    (dan
      (widget-insert
-      "\t"
-      (about-with-face "\"So much to do, so little time.\"" 'italic)
-      "\n
-Jamie Zawinski was primarily to blame for Lucid Emacs from its
-inception in 1991, to 1994 when Lucid Inc. finally died.  He is now to
-be found at Netscape Communications, hacking on Netscape Navigator (he
-did the first Unix version and the mail and news reader).  Thankfully
-his extensive sleep deprivation experiments conducted during 1994 and
-1995 are now a thing of the past, but his predilection for dark,
-Gothic music remains unabated.
-
-Come visit his glorified .plan file at\n\n")
-     (about-url-link 'jwz "Visit Jamie's home page")
-     (widget-insert "\n"))
-    (mly
-     (widget-insert "Cars are evil.  Ride a bike.\n"))
-    (vladimir
-     (widget-insert "\
-Former technical lead for XEmacs at Sun.  He is now with a startup
-marketing embedded Java databases.\n"))
-    (stig
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (darrylo
+     (widget-insert
+      "\
+Perennial Emacs hacker since 1986 or so, when he first started on GNU
+Emacs 17.something.  Over the years, he's developed \"OEmacs\", the first
+version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of
+Perl4 for MSDOS.  In recent years, reality has intruded and he no longer
+has much time for playing with cool programs.  What little time he has
+now goes to XEmacs hacking, where he's worked on speeding up dired under
+MS Windows, and to feeding his two cats.\n"))
+    (devin
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (dkindred
      (widget-insert "\
-Stig is sort of a tool fetishist.  He has a hate/love relationship
-with computers and he hacks on XEmacs because it's a good tool that
-makes computers somewhat less of a nuisance.  Besides XEmacs, Stig
-especially likes his Leatherman, his Makita, and his lockpicks.  Stig
-wants a MIG welder and air tools.
+Darrell is currently a doctoral student in computer science at
+Carnegie Mellon University, but he's trying hard to kick that
+habit.
 
-Stig likes to perch, hang from the ceiling, and climb on the walls.
-Stig has a cool van.  Stig would like to be able to telecommute from,
-say, the north rim of the Grand Canyon or the midst of Baja.\n"))
-    (stigb
+See ")
+     (about-url-link 'dkindred "Visit Darrell's WWW page")
+     (widget-insert ".\n"))
+    (dmoore
      (widget-insert "\
-Currently studying computer science in Trondheim, Norway.  Full time
-Linux user and proud of it.  XEmacs hacker light.  Maintainer of the
-RPM package.
-
-See:\t")
-     (about-url-link 'stigb "Visit Stig's home page"))
-    (baw
-     (widget-insert
-       "\
-Author of CC Mode, for C, C++, Objective-C and Java editing, and
-Supercite for mail and news citing.  Also various and sundry other
-Emacs utilities, fixes, enhancements and kludgery as whimsy, boredom,
-and ToT dictate (but not necessarily in that order).  See also:\n\n\t")
-     (about-url-link 'baw "Visit Barry's home page")
-     (widget-insert "\n\nand:\n\n\t")
-     (about-url-link 'cc-mode "Visit the CC Mode distribution")
-     (widget-insert "\n
-Daddy
-\(C) 1994 Warsaw
-===============
-Drive me Daddy, drive me quick
-Push my pedal, shift my stick
-Fill me up with golden gas
-My rubber squeals, I go real fast
+David is a student in the Computer Systems Laboratory at UCSD.  When
+he manages to have free time, he usually spends it on 200 mile bicycle
+rides, learning German or showing people the best mail & news
+environment he's found in 10 years.  (That'd be XEmacs, Gnus and bbdb,
+of course.)  He can be found at `druidmuck.egbt.org 4201' at various
+hours of the day.
 
-Milk me Daddy, milk me now
-Milk me like a big ol' cow
-I've got milk inside my udder
-Churn it up and make some butter\n"))
-    (piper
-     (widget-insert "\
-Author of the original \"fake\" XEmacs toolbar, outl-mouse for mouse
-gesture based outlining, the original CDE drag-n-drop support, the
-cygwin port of XEmacs including unexec, glyphs under MS-Windows,
-toolbars under MS-Windows. My home page is here:\n")
-     (about-url-link 'piper "Visit andy's home page")
-     (widget-insert "\n
-Andy has recently rejoined the XEmacs team to help port XEmacs to
-MS Windows operating systems.\n"))
-    (bw
+He has a page at ")
+     (about-url-link 'dmoore "Visit David's home page")
+     (widget-insert ".\n"))
+    (dv
      (widget-insert "\
-Author of the Hyperbole everyday information management hypertext
-system and the OO-Browser multi-language code browser.  He also
-designed the BeOpen InfoDock integrated development environment
-for software engineers.  It runs atop XEmacs and is available from
-his firm, BeOpen, which offers distributions, custom development,
-support, and training packages for corporate users of XEmacs, GNU
-Emacs and InfoDock.  See ")
-     (about-url-link 'beopen "Visit BeOpen WWW page")
-     (widget-insert ".
+I graduated at ENST (an engineering school in Paris) and have a Ph.D.
+in computer science. I'm currently a teacher at EPITA (another
+engineering school, still in Paris) and a researcher at LRDE (EPITA's
+research and development laboratory). Our research topics include
+generic programming and distributed virtual reality.
 
-His interests include user interfaces, information management,
-CASE tools, communications and enterprise integration.\n"))
-    (wmperry
-     (widget-insert "\
-Author of Emacs-w3, the builtin web browser that comes with XEmacs,
-and various additions to the C code (e.g. the database support, the
-PNG support, some of the GIF/JPEG support, the strikethru face
-attribute support).
+Apart from XEmacs, I'm also involved in other free software projects,
+including Gnus, BBDB, and the GNU \"autotools\". I also wrote some
+LaTeX packages (ugh :-).
 
-He is currently working at Aventail, Corp. on SOCKS v5 servers.\n"))
-    (kyle
-     (widget-insert "\
-Author of VM, a mail-reading package that is included in the standard
-XEmacs distribution, and contributor of many improvements and bug
-fixes.  Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox
-format for its folders; thus, you can use VM concurrently with other
-UNIX mail readers such as Berkeley Mail and ELM.  See\n")
-     (about-url-link 'kyle "Visit Kyle's Home page")
-     (widget-insert ".\n"))
-    (larsi
+All of this, actually, is only 60% true. Two days per week, I'm also a
+semi-professional Jazz guitar player (and singer), which means that it
+is not the way I earn my crust, but things may very well reverse in
+the future ...\n\n")
+     (widget-insert "Visit Didier's home page: ")
+     (about-url-link 'dv "Visit Didier's home page")
+     (widget-insert "\n"))
+    (eb
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (fabrice
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (golubev
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (gunnar
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (hbs
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (hisashi
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (hmuller
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (hniksic
      (widget-insert "\
-Author of Gnus the Usenet news and Mail reading package in the
-standard XEmacs distribution, and contributor of various enhancements
-and portability fixes.  Lars is a student at the Institute of
-Informatics at the University of Oslo.  He is currently plumbing away
-at his majors work at the Institute of Physics, working on an SCI
-project connected with CASCADE and CERN and stuff.
+Hrvoje is a student at the Faculty of Electrical Engineering and
+Computing in Zagreb, Croatia, working part-time at system administration
+at SRCE.  His hobby is hacking free software, particularly XEmacs and
+GNU Wget, the latter being his very own creation.
 
-See ")
-     (about-url-link 'larsi "Visit the Larsissistic pages")
+For info on Wget, see ")
+     (about-url-link 'wget "Visit the Wget web page")
+     (widget-insert " or\n")
+     (about-url-link 'wget-ftp "Visit the Wget ftp page")
      (widget-insert ".\n"))
-    (marcpa
-     (widget-insert "\
-I work for Positron Industries Inc., Public Safety Division.
-I'm part of the team producing POWER 911, a 911 emergency response
-system written in Modula3:\n")
-     (about-url-link 'marcpa "Visit POWER 911")
+    (hobley
      (widget-insert "\
-\n\nPreviously, I worked at Softimage Inc., now a Microsoft company
-\(eeekkk!), as a UNIX system administrator.  This is where I've been
-converted to NT.
-
-In a previous life, I was a programmer/sysadmin at CRIM (Centre de
-Recherche Informatique de Montreal) for the speech recognition group.\n"))
-    (jens
+I used to do real work, but now I am a Project Manager for one of the
+Telco's in Australia. In my spare time I like to get back to basics and
+muck around with things. As a result I started the NT port. Hopefully I
+will get to finish it sometime sooner rather than later. I do vaguely
+remember University where it seems like I had more spare time that I can
+believe now. Oh well, such is life.\n"))
+    (jan
      (widget-insert "\
-Jens did the artwork for graphics added to XEmacs 20.2 and 19.15.
-
-I'm currently working at the University of Karlsruhe, Germany on
-getting my diploma thesis on Supersymmetry (uuh, that's physics) done.
-After that (and all the remaining exams) I'm looking forward to make a
-living out of my hobbies -- computers (and graphics). But because I
-have no deadline for the exams and XEmacs betas are released at a high
-rate this may take some time...\n"))
-       (jan
-        (widget-insert "\
 Jan Vroonhof has been using XEmacs since he needed to write .tex files
 for his work as a physics and maths student at the Univerisity of Leiden.
 His XEmacs hacking started when XEmacs kept freezing up under a his
 window manager. He submitted a fix and has been hooked every since.
 
-Apart from hunting down more redisplay bugs he has worked on such
-things as improvements to the package system, implementing lazy-shot,
-a short stint at tracking patches and currently acts as a guardian
-of the XEmacs custom subsystem and gnuserv.
-
-XEmacs has followed him first to Switserland where he did a maths
+XEmacs has followed him first to Switzerland where he did a maths
 doctorate at the ETH in Zurich, working on a conjecture by Migdal on
 the behavior of vertex corrections in Electron-Phonon theory.  Finally
 sharing a house with his loved one, he now lives in Oxford (UK)
@@ -809,56 +930,282 @@ Jareth Hein is a mountain boy who abandoned his home state of Colorado
 for the perpetual state of chaos known as Tokyo in a failed attempt to
 become a cel-animator, and a more successful one to become a
 computer-game programmer. As he happens to be bilingual (guess which
-two?) he's been doing quite a bit of MULE hacking. He's also getting
+two?) he's been doing quite a bit of MULE hacking.  He's also getting
 his hands dirty in the graphics areas as well.\n"))
-    (morioka
+    (jason
      (widget-insert "\
-I am the author of tm-view (general MIME Viewer for GNU Emacs) and
-major author and maintainer of tm (Tools for MIME; general MIME
-package for GNU Emacs).  In addition, I am working to unify MULE API
-for Emacs and XEmacs.  In XEmacs, I have ported many mule features.
-
-I am a doctoral student at School of Information Science of JAIST
+Jason resides in Northern New Mexico where he works as a Systems
+Scientist(tm) in the Los Alamos National Laboratory's Advanced
+Computing Group.
+
+See: ")
+      (about-url-link 'jason "Visit Jason's homepage")
+      (widget-insert ".\n"))
+    (jens
+     (widget-insert "\
+I'm currently working at the University of Karlsruhe, Germany on
+getting my diploma thesis on Supersymmetry (uuh, that's physics) done.
+After that (and all the remaining exams) I'm looking forward to make a
+living out of my hobbies -- computers (and graphics). But because I
+have no deadline for the exams and XEmacs betas are released at a high
+rate this may take some time...\n"))
+    (jmiller
+     (widget-insert "\
+Jeff grew up in Indiana and is a country boy at heart.  He currently
+lives in, of all places, Millersville Maryland.  He spends a lot of
+his free time tinkering with Linux and hacking on XEmacs and loves it
+when he finds new cool features in either.  When he's not doing that,
+he enjoys downhill skiing, puzzles, and sci-fi.  Jeff is also really
+interested in classical Roman history and enjoys making trips to
+Italy, where he was born, and seeing the sights")
+     (widget-insert ".\n"))
+    (jonathan
+     (widget-insert "\
+I work for Symbian Ltd in London, England, looking after low-level
+kernel, peripheral and toolchain stuff for the EPOC OS.
+
+I've been using XEmacs since 1994, but didn't start hacking on it
+until late 1997 when I started working at Symbian, a Windows-only
+company, and felt lost without my favourite editing environment.\n"))
+    (juhp
+     (widget-insert "\
+I started using XEmacs-20 as my work-environment in June 1997.  I
+became a beta developer shortly after that (\"it seems like a good
+idea at the time...\" :-), so far contributing mainly bug fixes,
+\"find-func.el\" and improvements to \"help.el\".
+
+My current dreams for XEmacs: Move to using guile as the Lisp engine
+and gtk as the default X toolkit.
+
+I have been a postdoctoral researcher at the Research Institute for
+Mathematical Sciences, Kyoto University, since August 1994, doing
+research in mathematical physics (representation theory of quantum
+groups).  Though now I seem to be heading for other things.
+
+My homepage is ")
+     (about-url-link 'juhp "Visit Jens' homepage")
+     (widget-insert ".\n"))
+    (jwz
+     (widget-insert
+      "\t"
+      (about-with-face "\"So much to do, so little time.\"" 'italic)
+      "\n
+Jamie Zawinski was primarily to blame for Lucid Emacs from its
+inception in 1991, to 1994 when Lucid Inc. finally died.  He is now to
+be found at Netscape Communications, hacking on Netscape Navigator (he
+did the first Unix version and the mail and news reader).  Thankfully
+his extensive sleep deprivation experiments conducted during 1994 and
+1995 are now a thing of the past, but his predilection for dark,
+Gothic music remains unabated.
+
+Come visit his glorified .plan file at\n\n")
+     (about-url-link 'jwz "Visit Jamie's home page")
+     (widget-insert "\n"))
+    (kazz
+     (widget-insert "\
+Kazz is the XEmacs lead on BSD (especially FreeBSD).
+His main workspace is, probably, the latest stable version of
+FreeBSD and it makes him comfortable and not.
+His *mission* is to make XEmacs runs on FreeBSD without
+any problem.
+
+In real life, he is working on a PDM product based on CORBA,
+and doing consultation, design and implemention.
+He loves to play soccer, yes football!
+See also:")
+     (about-url-link 'kazz "Visit Kazz's home page")
+     (widget-insert ".\n"))
+    (kirill
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (kyle
+     (widget-insert "\
+See\n")
+     (about-url-link 'kyle "Visit Kyle's Home page")
+     (widget-insert ".\n"))
+    (larsi
+     (widget-insert "\
+Lars's day job is as the head of the IT department of a Norwegian
+Internet stock broker.  He claims no responsibility for the Dot
+Com Bomb, but he snickers a lot.
+
+See ")
+     (about-url-link 'larsi "Visit the Larsissistic pages")
+     (widget-insert ".\n"))
+    (marcpa
+     (widget-insert "\
+I work for Positron Industries Inc., Public Safety Division.
+I'm part of the team producing POWER 911, a 911 emergency response
+system written in Modula3:\n")
+     (about-url-link 'marcpa "Visit POWER 911")
+     (widget-insert "\
+\n\nPreviously, I worked at Softimage Inc., now a Microsoft company
+\(eeekkk!), as a UNIX system administrator.  This is where I've been
+converted to NT.
+
+In a previous life, I was a programmer/sysadmin at CRIM (Centre de
+Recherche Informatique de Montreal) for the speech recognition group.\n"))
+    (martin
+     (widget-insert "\
+Martin was the XEmacs guy at DevPro, a part of Sun Microsystems.
+Martin used to do XEmacs as a `hobby' while at IBM, and was crazy
+enough to try to make a living doing it at Sun.
+
+Martin starting using Emacs originally not to edit files, but to get
+the benefit of shell mode. He actually used to run nothing but a shell
+buffer, and use `xterm -e vi' to edit files.  But then he saw the
+light.  He dreams of rewriting shell mode from scratch.  Stderr should
+show up in red!!
+
+Martin is no longer doing XEmacs for a living, and is Just Another
+Volunteer.\n"))
+    (mcook
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (mly
+     (widget-insert "Cars are evil.  Ride a bike.\n"))
+    (morioka
+     (widget-insert "\
+I am a doctoral student at School of Information Science of JAIST
 \(Japan Advanced Institute of Science and Technology, Hokuriku).  I'm
 interested in Natural Language, Affordance and writing systems.\n"))
-    (dmoore
+    (mta
+     (widget-insert
+      "\
+I am a software developer who worked for the University of Michigan
+for many years where I was one of the principal architects of the
+Michigan Terminal System.  For the last several years I've been
+working for Arbortext, a publisher of XML publishing and content
+management software.\n"))
+    (ograf
      (widget-insert "\
-David has contributed greatly to the quest to speed up XEmacs.  He is
-a student in the Computer Systems Laboratory at UCSD.  When he manages
-to have free time, he usually spends it on 200 mile bicycle rides,
-learning german or showing people the best mail & news environment
-he's found in 10 years.  (That'd be XEmacs, Gnus and bbdb, of course.)
-He can be found at `druidmuck.egbt.org 4201' at various hours of the
-day.
+I'm a student of computer sciences at the University of Koblenz. My
+major is computational linguistics (human language generation and
+analysis).
 
-He has a page at ")
-     (about-url-link 'dmoore "Visit David's home page")
+I make my living as a managing director of a small but fine company
+which I started two years ago with one of my friends. We provide
+business network solutions based on linux servers and various other
+networking products.
+
+Most of my spare time I spent on the development of the XEmacs
+Drag'n'Drop API, a enhanced version of Tk called TkStep (better looks,
+also Drag'n'Drop, and more), and various other hacks: ISDN-tools,
+cd players, python, etc...
+
+To see some of these have a look at ")
+     (about-url-link 'ograf "one of my homepages")
      (widget-insert ".\n"))
+    (olivier
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (oscar
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (pelegri
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (pez
+     (widget-insert "\
+Peter currently serves as Senior Vice President, Product Development
+for CBS SportsLine.  See ")
+     (about-url-link 'pez "CBS SportsLine")
+     (widget-insert ".\n"))
+    (piper
+     (widget-insert "\
+My home page is here:\n")
+     (about-url-link 'piper "Visit andy's home page")
+     (widget-insert "\n
+Andy has recently rejoined the XEmacs team to help port XEmacs to
+MS Windows operating systems.\n"))
+    (pittman
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (rickc
+     (widget-insert "\
+The hacker formerly known as Rick Busdiecker develops and maintains
+libraries for financial applications at Lehman Brothers during
+daylight hours.  In the evenings he maintains three children, and
+when he ought to be sleeping he co-maintains ILISP, builds XEmacs
+betas, and tinkers with various personal hacking projects.\n"))
+    (rose
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (rossini
+     (widget-insert "\
+Author of the first XEmacs FAQ, as well as minor priest in the
+movement to get every statistician in the world to use XEmacs for
+statistical programming and data analysis.  Current development lead
+for ESS (Emacs Speaks Statistics), a mode and inferior mode for
+statistical programming and data analysis for SAS, S, S-PLUS, R,
+XLispStat; configurable for nearly any other statistical
+language/package one might want.  In spare time, acts as a
+Ph.D. (bio)statistician for money and amusement.  Current position:
+Assistant Professor of Statistics at the University of South Carolina.\n"))
+    (slb
+     (widget-insert "\
+Peaches Baur, 1986-1999.
+Rest in peace")
+     (widget-insert ".\n"))
+    (sperber
+     (widget-insert "\
+When Mike isn't busy putting together patches for free software he has
+just installed or changing his hairstyle, he does research in modern
+programming languages and their implementation, and hopes that one day
+XEmacs will speak Scheme.\n"))
+    (stig
+     (widget-insert "\
+Peripatetic uninominal Emacs hacker.  Stig sometimes operates out of a
+big white van set up for nomadic living and hacking.  Stig is sort of
+a tool fetishist.  He has a hate/love relationship with computers and
+he hacks on XEmacs because it's a good tool that makes computers
+somewhat less of a nuisance.  Besides XEmacs, Stig especially likes
+his Leatherman, his Makita, and his lockpicks.  Stig wants a MIG
+welder and air tools.
+
+Stig likes to perch, hang from the ceiling, and climb on the walls.
+Stig has a cool van.  Stig would like to be able to telecommute from,
+say, the north rim of the Grand Canyon or the midst of Baja.\n"))
+    (stigb
+     (widget-insert "\
+Currently studying computer science in Trondheim, Norway.  Full time
+Linux user and proud of it.  XEmacs hacker light.
+
+See:\t")
+     (about-url-link 'stigb "Visit Stig's home page"))
     (thiessel
      (widget-insert "\
+Worked at University of Kaiserslautern where he took part in the
+development and design of a CAD framework for analog integrated
+circuits with special emphasis on distributed software concepts. He
+has now joined HP as technical consultant.
+
                       All of the buildings,
                       all of the cars
                       were once just a dream
                       in somebody's head.\n
-                                     P. Gabriel\n\n
-")
-     (widget-insert "\n"))
-    (sperber
+                                     P. Gabriel\n"))
+    (tomonori
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (tuck
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (turnbull
      (widget-insert "\
-Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
-also responsible for the ports of facemenu.el and enriched.el.  When
-Mike isn't busy putting together patches for free software he has just
-installed or changing his hairstyle, he does research in modern
-programming languages and their implementation, and hopes that one day
-XEmacs will speak Scheme.\n"))
+Stephen lives with his Japanese wife and children in Tsukuba, Japan,
+where he is a professor of economics at the University of Tsukuba.\n"))
     (vin
      (widget-insert "\
-Vin maintains the XEmacs patch pages in order to bring a more
-stable XEmacs.  (Actually, he does it 'cause it's fun and he's been
-using emacs for a long, long time.)  Vin also contributed the detached
-minibuffer code as well as a few minor enhancements to the menubar
-options.
-
 I own and operate my own consulting firm, EtherSoft.  Shhh, don't
 tell anyone, but it's named after an Ultimate team I used to play
 with in Austin, Texas - the Ether Bunnies.  I'm getting too old
@@ -867,165 +1214,380 @@ into serving on the board of directors of the Ultimate Players
 Association.  See ")
      (about-url-link 'vin "Visit the UPA homepage")
      (widget-insert ".\n"))
+    (vladimir
+     (widget-insert "\
+Former technical lead for XEmacs at Sun.  He is now with a startup
+marketing embedded Java databases.  See ")
+     (about-url-link 'vladimir "Visit Vladimir's home page")
+     (widget-insert ".\n"))
+    (wmperry
+     (widget-insert "\
+Currently working at Aventail, Corp. on SOCKS v5 servers.\n"))
+    (yoshiki
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    (youngs
+     (widget-insert
+      "\
+Sorry, no personal information available about me yet.\n"))
+    ))
+
+;; Insert info about a maintainer's contribution to XEmacs.  See also
+;; `about-personal-info'.
+(defun about-hacker-contribution (entry)
+  (ecase (car entry)
+    ;; to sort the entries below, use M-x sort-regexp-fields RET
+    ;; then this regexp: ([^(]*([^"]*"[^"]*"[^)]*))
+    ;; then this regexp: (\([a-z]*\)
+    (adrian
+     (widget-insert
+      "\
+Adrian has done invaluable work rewriting and maintaining the XEmacs
+web pages at www.xemacs.org.  During his tenureship, he has
+established a consistent look and feel, placed the web pages under
+CVS, set up maintenance procedures, written scripts to handle
+automatic updating, validation and mirroring, and done innumerable
+other tasks.  He has also helped with many other administrative tasks,
+such as the thankless work of dealing with the providers of resources
+to XEmacs at SourceForge and tux.org.\n"))
+    (aj
+     (widget-insert "\
+Former `Package Patch Tender', beta tester and GNU libc developer.\n"))
     (ajc
      (widget-insert "\
-When not helping maintain the XEmacs website, Andrew is a Network
-Software Engineer(tm) for Monash University in Australia, maintaining
-webservers and doing random other things.  As well as spending spare
-time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus
-et. al., he spends his time pursuing, among other things, a Life.
-Some of this currently involves doing an A-Z (by country) of
-restaurants with friends, and has, in the past, involved dyeing his
-hair various colours (see ")
-     (about-url-link 'ajc "Visit Andrew's home page")
+Former XEmacs web site maintainer.\n"))
+    (alastair
+     (widget-insert
+      "\
+Rewrote the selection code, adding many new features such as better
+support for arbitrary selection types (especially under MS Windows,
+where the full power of the clipboard system is available under
+XEmacs).\n"))
+    (baw
+     (widget-insert "\
+Author of CC Mode for C, C++, Objective-C and Java editing, and
+Supercite for mail and news citing.  Also various and sundry other
+Emacs utilities, fixes, enhancements and kludgery as whimsy, boredom,
+and ToT dictate (but not necessarily in that order).  See also\n")
+     (about-url-link 'cc-mode "Visit the CC Mode distribution")
      (widget-insert ".\n"))
-    (rickc
+    (ben
+     (widget-insert
+      "\
+I am the largest code contributor to XEmacs, and the architect of many
+of the features that distinguish XEmacs from GNU Emacs and other Emacs
+versions.  My main contributions to XEmacs include rewriting large
+parts of the internals and the gory Xt/Xlib interfacing, adding the
+Mule \(international) support, improving the MS Windows support,
+adding many GUI features to XEmacs, architecting the
+device-abstraction and specifier code, writing most of the XEmacs
+Internals Manual and the XEmacs-specific parts of the XEmacs Lisp
+Reference Manual, synching a great deal of code with GNU Emacs, and
+being a general nuisance ... er, brainstormer for many of the new
+features of XEmacs.\n"))
+    (bw
      (widget-insert "\
-The hacker formerly known as Rick Busdiecker develops and maintains
-libraries for financial applications at Lehman Brothers during
-daylight hours.  In the evenings he maintains three children, and
-when he ought to be sleeping he co-maintains ILISP, builds XEmacs
-betas, and tinkers with various personal hacking projects..\n"))
+Author of the Hyperbole everyday information management hypertext
+system and the OO-Browser multi-language code browser.  He also
+designed the BeOpen InfoDock integrated development environment
+for software engineers.  It runs atop XEmacs and is available from
+his firm, BeOpen, which offers distributions, custom development,
+support, and training packages for corporate users of XEmacs, GNU
+Emacs and InfoDock.  See ")
+     (about-url-link 'beopen "Visit BeOpen WWW page")
+     (widget-insert ".\n"))
+    (cgw
+     (widget-insert
+      "\
+Author of an earlier version of the MS Windows setup program for XEmacs.\n"))
+    (chr
+     (widget-insert "\
+Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n"))
+    (craig
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (cthomp
+     (widget-insert
+      "\
+Maintainer of XEmacs from mid-1994 through 1996.  Author of the
+redisplay engine and some of the device-abstraction, TTY and glyph
+code.  Creator of the xemacs.org domain.\n"))
+    (daiki
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (dan
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (darrylo
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (devin
+     (widget-insert "\
+Part of the original (pre-19.0) Lucid Emacs development team.
+Matthieu wrote the initial Energize interface, designed the
+toolkit-independent Lucid Widget library, and fixed enough redisplay
+bugs to last a lifetime.  The features in Lucid Emacs were largely
+inspired by Matthieu's initial prototype of an Energize interface
+using Epoch.\n"))
+    (dkindred
+     (widget-insert "\
+Darrell tends to come out of the woodwork a couple of weeks
+before a new release with a flurry of fixes for bugs that 
+annoy him.  He hopes he's spared you from a core dump or two.\n"))
+    (dmoore
+     (widget-insert "\
+David has contributed greatly to the quest to speed up XEmacs.\n"))
+    (dv
+     (widget-insert "\
+I joined the development of XEmacs in 1996, and have been one of the
+core maintainers since 1998. Although I'm mostly interested in the
+GUI, ergonomics, redisplay and autoconf issues, it's probably simpler
+to describe what I'm *not* involved in: I've never touched the Lisp
+implementation, and I probably never will...
+
+I'm the author of the multicast support, I wrote and maintain some
+external Emacs Lisp packages (including mchat) and I'm also
+responsible for some of the core Lisp code (including the rectangle
+library which I rewrote for both XEmacs and GNU Emacs).\n"))
+    (eb
+     (widget-insert "\
+Also part of the original Lucid Emacs development team.  Eric played a
+big part in the design of many aspects of the system, including the
+new command loop and keymaps, fixed numerous bugs, and has been a
+reliable beta tester ever since.\n"))
+    (fabrice
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (golubev
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (gunnar
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))  
+    (hbs
+     (widget-insert "\
+Part of the original (pre-19.0) Lucid Emacs development team.  Harlan
+designed and implemented many of the low level data structures which
+are original to the Lucid version of Emacs, including extents and hash
+tables.\n"))
+    (hisashi
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (hmuller
+     (widget-insert "\
+Author of the code used to connect XEmacs with ToolTalk, and of an
+early client of the external Emacs widget.\n"))
+    (hniksic
+     (widget-insert
+      "\
+Hrvoje's contribution to XEmacs consists of a multitude of hours spent
+adding new features and bugs, and fixing old ones.  He dreams of
+writing a home page.\n"))
+    (hobley
+     (widget-insert
+      "\
+Creator of the earliest version of the MS Windows port of XEmacs.\n"))
+    (jan
+     (widget-insert "\
+Apart from hunting down redisplay bugs Jan has worked on such
+things as improvements to the package system, implementing lazy-shot,
+a short stint at tracking patches and currently acts as a guardian
+of the XEmacs custom subsystem and gnuserv.\n"))
+    (jareth
+     (widget-insert "\
+Owner of cvs.xemacs.org, the machine that holds the XEmacs CVS
+repository, and author of some of the graphics code in XEmacs.\n"))
+    (jason
+     (widget-insert "\
+Beta tester, manager of the various XEmacs mailing lists and binary
+kit manager.  Also, originator and maintainer of the gnus.org domain.\n"))
+    (jens
+     (widget-insert "\
+Jens did the artwork for graphics added to XEmacs 20.2 and 19.15.\n"))
+    (jmiller
+     (widget-insert "\
+Beta tester and last hacker of calendar.\n"))
+    (jonathan
+     (widget-insert "\
+I started the native port of XEmacs to MS Windows. Author of the
+Windows frame, redisplay, face and event loop support.\n"))
+    (juhp
+     (widget-insert "\
+Author of \"find-func.el\" and improvements to \"help.el\".\n"))
+    (jwz
+     (widget-insert
+      "\
+Creator and maintainer of Lucid Emacs (the predecessor of XEmacs),
+from 1991 through mid-1994.\n"))
     (kazz
      (widget-insert "\
-Kazz is the XEmacs lead on BSD (especially FreeBSD).
-His main workspace is, probably, the latest stable version of
-FreeBSD and it makes him comfortable and not.
-His *mission* is to make XEmacs runs on FreeBSD without
-any problem.
-
-In real life, he is working on a PDM product based on CORBA,
-and doing consultation, design and implemention.
-He loves to play soccer, yes football!
-See also:")
-     (about-url-link 'kazz "Visit Kazz's home page")
-     (widget-insert ".\n"))
-    (dkindred
+IENAGA Kazuyuki is the XEmacs technical lead on BSD, particularly
+FreeBSD.\n"))
+    (kirill
+     (widget-insert
+      "\
+Abstracted the subprocess code and wrote much of the MS Windows
+support in XEmacs, including the subprocess interface, dialog boxes,
+printing support, and much of the event loop.\n"))
+    (kyle
+     (widget-insert "\
+Author of VM, a mail-reading package that is included in the standard
+XEmacs distribution, and contributor of many improvements and bug
+fixes.  Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox
+format for its folders; thus, you can use VM concurrently with other
+UNIX mail readers such as Berkeley Mail and ELM.
+
+Also rewrote the object allocation system in XEmacs to support full
+32-bit pointers and 31-bit integers.\n"))
+    (larsi
+     (widget-insert "\
+Author of Gnus the Usenet news and Mail reading package in the
+standard XEmacs distribution, and contributor of various enhancements
+and portability fixes.\n"))
+    (marcpa
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (martin
+     (widget-insert
+      "\
+Beta release manager and author of many stability fixes and speed
+improvements in XEmacs.\n"))
+    (mcook
+     (widget-insert "\
+Author of the \"shy groups\" and minimal matching regular expression
+extensions.\n"))
+    (mly
+     (widget-insert "\
+Early code contributor to Lucid Emacs.  Synched up Lucid Emacs with
+the first actual release of GNU Emacs 19, and architected and wrote
+the first version of XEmacs's object allocation system.\n"))
+    (morioka
+     (widget-insert "\
+I am the author of tm-view (general MIME Viewer for GNU Emacs) and
+major author and maintainer of tm (Tools for MIME; general MIME
+package for GNU Emacs).  In addition, I am working to unify MULE API
+for Emacs and XEmacs.  In XEmacs, I have ported many mule features.\n"))
+    (mta
+     (widget-insert
+      "\
+Contributed minor improvements to the Windows support, especially
+related to subprocess communication and portable dumping as well as
+a bit of general bug fixing.\n"))
+    (ograf
+     (widget-insert "\
+Author of the XEmacs Drag'n'Drop API.\n"))
+    (olivier
+     (widget-insert
+      "\
+Author of the portable dumper.\n"))
+    (oscar
+     (widget-insert
+      "\
+Author of the LDAP support in XEmacs.\n"))
+    (pelegri
      (widget-insert "\
-Darrell tends to come out of the woodwork a couple of weeks
-before a new release with a flurry of fixes for bugs that
-annoy him.  He hopes he's spared you from a core dump or two.
-
-Darrell is currently a doctoral student in computer science at
-Carnegie Mellon University, but he's trying hard to kick that
-habit.
-
-See ")
-     (about-url-link 'dkindred "Visit Darrell's WWW page")
-     (widget-insert ".\n"))
+Author of EOS, a package included in the standard XEmacs distribution
+that integrates XEmacs with the SPARCworks development environment
+from Sun.  Past lead for XEmacs at Sun; advocated the validity of
+using Epoch, and later Lemacs, at Sun through several early
+prototypes.\n"))
     (pez
      (widget-insert "\
 Author of SQL Mode, edit-toolbar, mailtool-mode, and various other
-small packages with varying degrees of usefulness.  Peter has
-recently left Wall Street to start Daedalus World Wide Corporation,
-a software development firm.  See ")
-     (about-url-link 'pez "Daedalus on the web")
-     (widget-insert ".\n"))
-    (dv
+small packages with varying degrees of usefulness.\n"))
+    (piper
      (widget-insert "\
-I graduated at ENST (an engineering school in Paris) and have a Ph.D.
-in computer science. I'm currently a teacher at EPITA (another
-engineering school, still in Paris) and a researcher at LRDE (EPITA's
-research and development laboratory). Our research topics include
-generic programming and distributed virtual reality.
-
-Apart from XEmacs, I'm also involved in other free software projects,
-including Gnus, BBDB, and the GNU \"autotools\". I also wrote some
-LaTeX packages (ugh :-).
-
-All of this, actually, is only 60% true. Two days per week, I'm also a
-semi-professional Jazz guitar player (and singer), which means that it
-is not the way I earn my crust, but things may very well reverse in
-the future ...\n\n")
-     (widget-insert "Visit Didier's home page: ")
-     (about-url-link 'dv "Visit Didier's home page")
-     (widget-insert "\n"))
+Author of the Cygwin port of XEmacs including unexec, the widget,
+gutter and buffer-tab support, glyphs under MS-Windows, toolbars under
+MS-Windows, the original \"fake\" XEmacs toolbar, outl-mouse for mouse
+gesture based outlining, and the original CDE drag-n-drop
+support.\n"))
+    (pittman
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (rickc
+     (widget-insert "\
+Maintainer of ILISP.\n"))
+    (rose
+     (widget-insert "\
+Author of many extensions to the `extents' code, including the initial
+implementation of `duplicable' properties.\n"))
     (rossini
      (widget-insert "\
-Author of the first XEmacs FAQ, as well as minor priest in the
-movement to get every statistician in the world to use XEmacs for
-statistical programming and data analysis.  Current development lead
-for ESS (Emacs Speaks Statistics), a mode and inferior mode for
-statistical programming and data analysis for SAS, S, S-PLUS, R,
-XLispStat; configurable for nearly any other statistical
-language/package one might want.  In spare time, acts as a
-Ph.D. (bio)statistician for money and amusement.  Current position:
-Assistant Professor of Statistics at the University of South Carolina.\n"))
-    (ograf
+Author of the first XEmacs FAQ.\n"))
+    (slb
+     (widget-insert
+      "\
+Maintainer of XEmacs from 1996 through 1998.  Author of the package
+system.\n"))
+    (sperber
      (widget-insert "\
-I'm a student of computer sciences at the University of Koblenz. My
-major is computational linguistics (human language generation and
-analysis).
-
-I make my living as a managing director of a small but fine company
-which I started two years ago with one of my friends. We provide
-business network solutions based on linux servers and various other
-networking products.
-
-Most of my spare time I spent on the development of the XEmacs
-Drag'n'Drop API, a enhanced version of Tk called TkStep (better looks,
-also Drag'n'Drop, and more), and various other hacks: ISDN-tools,
-cd players, python, etc...
-
-To see some of these have a look at ")
-     (about-url-link 'ograf "one of my homepages")
-     (widget-insert ".\n"))
-    (juhp
+Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
+also responsible for the ports of facemenu.el and enriched.el, the
+code to handle path-frobbing at startup for the XEmacs core and the
+package system, the init file migration from .emacs to
+.xemacs/init.el, and the CVS Great Trunk Move.\n"))
+    (stig
      (widget-insert "\
-I started using XEmacs-20 as my work-environment in June 1997.  I
-became a beta developer shortly after that (\"it seems like a good
-idea at the time...\" :-), so far contributing mainly bug fixes,
-\"find-func.el\" and improvements to \"help.el\".
-
-My current dreams for XEmacs: move to using guile as the Lisp engine
-and gtk as the default X toolkit.
-
-I have been a postdoctoral researcher at the Research Institute for
-Mathematical Sciences, Kyoto University, since August 1994, doing
-research in mathematical physics (representation theory of quantum
-groups).  Though now I seem to be heading for other things.
-
-My homepage is ")
-     (about-url-link 'juhp "Visit Jens' homepage")
-     (widget-insert ".\n"))
-    (jason
+Implemented the faster stay-up Lucid menus and hyper-apropos.
+Contributor of many dispersed improvements in the core Lisp code, and
+back-seat contributor for several of its major packages.\n"))
+    (stigb
      (widget-insert "\
-Beta tester, manager of the various XEmacs mailing lists and binary
-kit manager.  Also, originator and maintainer of the gnus.org domain.
-
-Jason resides in Northern New Mexico where he works as a Systems
-Scientist(tm) in the Los Alamos National Laboratory's Advanced
-Computing Group.
-
-See: ")
-      (about-url-link 'jason "Visit Jason's homepage")
-      (widget-insert ".\n"))
-    (jmiller
+Maintainer of the RPM package.\n"))
+    (thiessel
      (widget-insert "\
-Jeff grew up in Indiana and is a country boy at heart.  He currently lives
-in, of all places, Millersville Maryland.  He spends a lot of his free
-time tinkering with Linux and hacking on XEmacs and loves it when he finds
-new cool features in either.  When he's not doing that, he enjoys downhill
-skiing, puzzles, and sci-fi.  Jeff is also really interested in classical
-Roman history and enjoys making trips to Italy, where he was born, and
-seeing the sights")
-     (widget-insert ".\n"))
-    (chr
+Does beta testing and helps take care of the XEmacs web site.\n"))
+    (tomonori
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (tuck
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (turnbull
+     (widget-insert
+      "\
+Responsible for getting the current release of XEmacs out the
+door.\n"))
+    (vin
      (widget-insert "\
-Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.
-
-Christian is a student at the Norwegian School of Economics and
-Business Administration in Bergen, Norway.  He used to work for an
-internet startup called New Media Science, doing scripting and
-violation of HTML DTD's.  After graduation, spring 1999, he'll be
-looking for a job involving lisp programming, French and Russian.")
-     (widget-insert ".\n"))
-    (aj
+Vin helps maintain the older, more mature (read: moldy) versions of
+XEmacs.  Vin maintains the XEmacs patch pages in order to bring a more
+stable XEmacs.  (Actually, he does it 'cause it's fun and he's been
+using emacs for a long, long time.)  Vin also contributed the detached
+minibuffer code as well as a few minor enhancements to the menubar
+options.\n"))
+    (vladimir
      (widget-insert "\
-I'm a software developer working for the SuSE Labs of the Linux
-distributor SuSE.  My main task is to improve the GNU C library.")
-     (widget-insert ".\n"))
-))
+Former technical lead for XEmacs at Sun.\n"))
+    (wmperry
+     (widget-insert "\
+Author of the GTK support in XEmacs, Emacs-w3 (the builtin web browser
+that comes with XEmacs), and various additions to the C code (e.g. the
+database support, the PNG support, some of the GIF/JPEG support, the
+strikethru face attribute support).\n"))
+    (yoshiki
+     (widget-insert
+      "\
+Sorry, no information about my XEmacs contributions yet.\n"))
+    (youngs
+     (widget-insert
+      "\
+Maintainer and release manager of the packages.\n"))
+    ))
 
 ;; Setup the buffer for a maintainer.
 (defun about-maintainer (widget &optional event)
@@ -1040,10 +1602,16 @@ distributor SuSE.  My main task is to improve the GNU C library.")
       (widget-create 'default :format "%t"
                     :tag-glyph (about-maintainer-glyph who))
       (widget-insert
-       "  " (about-with-face (format "%s" name) 'bold)
-       " <" address ">\n\n")
+       "\n\n" (about-with-face (format "%s" name) 'bold)
+       " <")
+      (about-mailto-link address)
+      (widget-insert ">\n\n")
       ;; Display the actual info
-      (about-maintainer-info entry)
+      (about-personal-info entry)
+      (widget-insert "\n")
+      (widget-insert
+       (about-with-face "Contributions to XEmacs:\n\n" 'about-headline-face))
+      (about-hacker-contribution entry)
       (widget-insert "\n")
       (about-finish-buffer 'kill)
       (forward-line 2))))
@@ -1055,7 +1623,7 @@ distributor SuSE.  My main task is to improve the GNU C library.")
          ((>= x 8) "\t\t")
          (t "\t\t\t"))))
 
-(defun about-show-linked-info (who shortinfo)
+(defun about-show-linked-info (who)
   (let* ((entry (assq who xemacs-hackers))
         (name (cadr entry))
         (address (caddr entry)))
@@ -1066,11 +1634,15 @@ distributor SuSE.  My main task is to improve the GNU C library.")
                   :tag name
                   :value who)
     (widget-insert (about-tabs name)
-                  (format "<%s>\n%s\n" address shortinfo))))
+                  "<")
+    (about-mailto-link address)
+    (widget-insert ">\n")
+    (about-hacker-contribution entry)
+    (widget-insert "\n")))
 
 (defun about-hackers (&rest ignore)
   (unless (about-get-buffer "*About Contributors*")
-    (let ((title "Other Contributors to XEmacs"))
+    (let ((title "A Legion of Contributors to XEmacs"))
       (widget-insert
        (about-center title)
        (about-with-face title 'bold)))
@@ -1078,484 +1650,275 @@ distributor SuSE.  My main task is to improve the GNU C library.")
      "\n
 Like most free software, XEmacs is a collaborative effort.  These are
 some of the contributors.  We have no doubt forgotten someone; we
-apologize!  You can see some of our faces under the links.\n\n")
-    (about-show-linked-info 'vladimir "\
-Former technical lead for XEmacs at Sun.  He is now with a startup
-marketing embedded Java databases.\n")
-    (about-show-linked-info 'stig "\
-Peripatetic uninominal Emacs hacker.  Stig sometimes operates out of a
-big white van set up for nomadic living and hacking.  Implemented the
-faster stay-up Lucid menus and hyper-apropos.  Contributor of many
-dispersed improvements in the core Lisp code, and back-seat
-contributor for several of its major packages.\n")
-    (about-show-linked-info 'baw "\
-Author of CC Mode for C, C++, Objective-C and Java editing, and
-Supercite for mail and news citing.  Also various and sundry other
-Emacs utilities, fixes, enhancements and kludgery as whimsy, boredom,
-and ToT dictate (but not necessarily in that order).\n")
-    (about-show-linked-info 'piper "\
-Created the prototype for the toolbars.  Has been the first to make
-use of many of the new XEmacs graphics features. Has implemented many
-of XEmacs' graphics features under MS-Windows and has ported XEmacs
-to cygwin under MS-Windows.\n")
-    (about-show-linked-info 'bw "\
-Author of the Hyperbole everyday information management hypertext
-system and the OO-Browser multi-language code browser.  He also
-designed the BeOpen InfoDock integrated development environment
-for software engineers.  It runs atop XEmacs and is available from
-his firm, BeOpen, which offers custom development and support packages
-for corporate users of XEmacs, GNU Emacs and InfoDock.  His interests
-include user interfaces, information management, CASE tools,
-communications and enterprise integration.\n")
-    (about-show-linked-info 'wmperry "\
-Author of Emacs-w3, the builtin web browser that comes with XEmacs,
-and various additions to the C code (e.g. the database support, the
-PNG support, some of the GIF/JPEG support, the strikethru face
-attribute support).\n")
-    (about-show-linked-info 'kyle "\
-Author of VM, a mail-reading package that is included in the standard
-XEmacs distribution, and contributor of many improvements and bug
-fixes.  Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox
-format for its folders; thus, you can use VM concurrently with other
-UNIX mail readers such as Berkeley Mail and ELM.\n")
-    (about-show-linked-info 'larsi "\
-Author of Gnus the Usenet news and Mail reading package in the
-standard XEmacs distribution, and contributor of various enhancements
-and portability fixes.  Lars is a student at the Institute of
-Informatics at the University of Oslo.  He is currently plumbing away
-at his majors work at the Institute of Physics, working on an SCI
-project connected with CASCADE and CERN and stuff.\n")
-       (about-show-linked-info 'jan "\
-Apart from hunting down redisplay bugs Jan has worked on such
-things as improvements to the package system, implementing lazy-shot,
-a short stint at tracking patches and currently acts as a guardian
-of the XEmacs custom subsystem and gnuserv. Having finished his PhD
-he is now working on Java virtual machines.\n")
-    (about-show-linked-info 'jens "\
-I'm currently working at the University of Karlsruhe, Germany on
-getting my diploma thesis on Supersymmetry (uuh, that's physics) done.
-After that (and all the remaining exams) I'm looking forward to make a
-living out of my hobbies -- computers (and graphics). But because I
-have no deadline for the exams and XEmacs betas are released at a high
-rate this may take some time...\n")    
-    (about-show-linked-info 'jareth "\
-Jareth Hein is a mountain boy who abandoned his home state of Colorado
-for the perpetual state of chaos known as Tokyo in a failed attempt to
-become a cel-animator, and a more successful one to become a
-computer-game programmer. As he happens to be bilingual (guess which
-two?) he's been doing quite a bit of MULE hacking. He's also getting
-his hands dirty in the graphics areas as well.\n")
-    (about-show-linked-info 'morioka "\
-I am the author of tm-view (general MIME Viewer for GNU Emacs) and
-major author and maintainer of tm (Tools for MIME; general MIME
-package for GNU Emacs).  In addition, I am working to unify MULE API
-for Emacs and XEmacs.  In XEmacs, I have ported many mule features.
-
-I am a doctoral student at School of Information Science of JAIST
-\(Japan Advanced Institute of Science and Technology, Hokuriku).  I'm
-interested in Natural Language, Affordance and writing systems.\n")
-    (about-show-linked-info 'dmoore "\
-David has contributed greatly to the quest to speed up XEmacs.  He is
-a student in the Computer Systems Laboratory at UCSD.  When he manages
-to have free time, he usually spends it on 200 mile bicycle rides,
-learning german or showing people the best mail & news environment
-he's found in 10 years.  (That'd be XEmacs, Gnus and bbdb, of course.)
-He can be found at `druidmuck.egbt.org 4201' at various hours of the
-day.\n")
-    (about-show-linked-info 'sperber "\
-Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
-also responsible for the ports of facemenu.el and enriched.el.  When
-Mike isn't busy putting together patches for free software he has just
-installed or changing his hairstyle, he does research in modern
-programming languages and their implementation, and hopes that one day
-XEmacs will speak Scheme.\n")
-    (about-show-linked-info 'vin "\
-Vin helps maintain the older, more mature (read: moldy) versions of
-XEmacs.  Vin has maintained the official XEmacs patch pages.\n")
-    (about-show-linked-info 'thiessel "\
-Worked at University of Kaiserslautern where he took part in the
-development and design of a CAD framework for analog integrated
-circuits with special emphasis on distributed software concepts. He
-has now joined HP as technical consultant.
-
-For XEmacs he does beta testing and tries to take care of XEmacs
-website at <http://www.xemacs.org>.\n")
-    (about-show-linked-info 'ajc "\
-When not helping maintain the XEmacs website, Andrew is a Network
-Software Engineer(tm) for Monash University in Australia, maintaining
-webservers and doing random other things.  As well as spending spare
-time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus
-et. al., he spends his time pursuing, among other things, a Life.
-Some of this currently involves doing an A-Z (by country) of
-restaurants with friends, and has, in the past, involved dyeing his
-hair various colours.\n")
-    (about-show-linked-info 'kazz "\
-IENAGA Kazuyuki is the XEmacs technical lead on BSD, particularly
-FreeBSD.\n")
-    (about-show-linked-info 'dkindred "\
-Darrell tends to come out of the woodwork a couple of weeks
-before a new release with a flurry of fixes for bugs that
-annoy him.  He hopes he's spared you from a core dump or two.
-
-Darrell is currently a doctoral student in computer science at
-Carnegie Mellon University, but he's trying hard to kick that
-habit.\n")
-    (about-show-linked-info 'dv "\
-I joined the development of XEmacs in 1996, and have been one of the
-core maintainers since 1998. Although I'm mostly interested in the
-GUI, ergonomics, redisplay and autoconf issues, it's probably simpler
-to describe what I'm *not* involved in: I've never touched the Lisp
-implementation, and I probably never will...
-
-I'm the author of the multicast support, I wrote and maintain some
-external Emacs Lisp packages (including mchat) and I'm also
-responsible for some of the core Lisp code (including the rectangle
-library which I rewrote for both XEmacs and GNU Emacs).\n")
-    (about-show-linked-info 'marcpa "\
-I work for Positron Industries Inc., Public Safety Division.\n")
-    (about-show-linked-info 'pez "\
-Author of SQL Mode, edit-toolbar, mailtool-mode, and various other
-small packages with varying degrees of usefulness.\n")
-    (about-show-linked-info 'rickc "\
-The hacker formerly known as Rick Busdiecker, maintainer of ILISP.\n")
-    (about-show-linked-info 'rossini "\
-Author of the first XEmacs FAQ, as well as minor priest in the
-movement to get every statistician in the world to use XEmacs for
-statistical programming and data analysis.  Current development lead
-for ESS (Emacs Speaks Statistics), a mode and inferior mode for
-statistical programming and data analysis for SAS, S, S-PLUS, R,
-XLispStat; configurable for nearly any other statistical
-language/package one might want.  In spare time, acts as a
-Ph.D. (bio)statistician for money and amusement.  Current position:
-Assistant Professor of Statistics at the University of South Carolina.\n")
-    (about-show-linked-info 'stigb "\
-Currently studying computer science in Trondheim, Norway.  Full time
-Linux user and proud of it.  XEmacs hacker light.  Maintainer of the
-RPM package.\n")
-    (about-show-linked-info 'ograf "\
-Author of the XEmacs Drag'n'Drop API.\n")
-    (about-show-linked-info 'juhp "\
-Author of \"find-func.el\".\n")
-    (about-show-linked-info 'jason "\
-Beta tester, manager of the various XEmacs mailing lists and binary
-kit manager.  Also, originator and maintainer of the gnus.org domain.\n")
-    (about-show-linked-info 'jmiller "\
-Beta tester and last hacker of calendar.\n")
-    (about-show-linked-info 'chr "\
-Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n")
-    (about-show-linked-info 'aj "\
-Former `Package Patch Tender', beta tester and GNU libc developer.\n")
-
+apologize!  You can see some of our faces under the links.\n\n"
+     (about-with-face "Primary maintainers for this release:"
+                     'about-headline-face)
+     "\n\n")
+    (mapc 'about-show-linked-info about-current-release-maintainers)
+    (widget-insert
+     "\n"
+     (about-with-face "Other notable current hackers:"
+                     'about-headline-face)
+     "\n\n")
+    (mapc 'about-show-linked-info about-other-current-hackers)
+    (widget-insert
+     "\n"
+     (about-with-face "Other notable once and future hackers:"
+                     'about-headline-face)
+     "\n\n")
+    (mapc 'about-show-linked-info about-once-and-future-hackers)
     (flet ((print-short (name addr &optional shortinfo)
-            (concat (about-with-face name 'italic)
-                    (about-tabs name)
-                    "<" addr ">\n"
-                    (if shortinfo (concat shortinfo "\n") ""))))
+            (widget-insert (concat (about-with-face name 'italic)
+                                   (about-tabs name)
+                                   "<"))
+            (about-mailto-link addr)
+            (widget-insert
+             (concat ">\n"
+                     (if shortinfo (concat shortinfo "\n") "")))))
       (widget-insert
-       (print-short "Eduardo Pelegri-Llopart" "pelegri@eng.sun.com" "\
-Author of EOS, a package included in the standard XEmacs distribution
-that integrates XEmacs with the SPARCworks development environment
-from Sun.  Past lead for XEmacs at Sun; advocated the validity of
-using Epoch, and later Lemacs, at Sun through several early
-prototypes.\n")
-       (print-short "Matthieu Devin" "devin@rs.com" "\
-Part of the original (pre-19.0) Lucid Emacs development team.
-Matthieu wrote the initial Energize interface, designed the
-toolkit-independent Lucid Widget library, and fixed enough redisplay
-bugs to last a lifetime.  The features in Lucid Emacs were largely
-inspired by Matthieu's initial prototype of an Energize interface
-using Epoch.\n")
-       (print-short "Harlan Sexton" "hbs@odi.com" "\
-Part of the original (pre-19.0) Lucid Emacs development team.  Harlan
-designed and implemented many of the low level data structures which
-are original to the Lucid version of Emacs, including extents and hash
-tables.\n")
-       (print-short "Eric Benson" "eb@kaleida.com" "\
-Also part of the original Lucid Emacs development team.  Eric played a
-big part in the design of many aspects of the system, including the
-new command loop and keymaps, fixed numerous bugs, and has been a
-reliable beta tester ever since.\n")
-       (print-short "John Rose" "john.rose@sun.com" "\
-Author of many extensions to the `extents' code, including the initial
-implementation of `duplicable' properties.\n")
-       (print-short "Hans Muller" "hmuller@eng.sun.com" "\
-Author of the code used to connect XEmacs with ToolTalk, and of an
-early client of the external Emacs widget.\n")
-       (print-short "David hobley" "david.hobley@usa.net" "\
-I used to do real work, but now I am a Project Manager for one of the
-Telco's in Australia. In my spare time I like to get back to basics and
-muck around with things. As a result I started the NT port. Hopefully I
-will get to finish it sometime sooner rather than later. I do vaguely
-remember University where it seems like I had more spare time that I can
-believe now. Oh well, such is life.\n")
-       (print-short "Jonathan Harris" "jhar@tardis.ed.ac.uk" "\
-Manages the team responsible for the EPOC kernel at Symbian Ltd. Started
-the mswindows native-GUI port of XEmacs because he felt lost using
-Microsoft Windows without a real editor.\n")
-       (print-short "Michael R. Cook" "mcook@cognex.com" "\
-Author of the \"shy groups\" and minimal matching regular expression
-extensions.\n")
-       (print-short "Darryl Okahata" "darrylo@sr.hp.com" "\
-Perennial Emacs hacker since 1986 or so, when he first started on GNU
-Emacs 17.something.  Over the years, he's developed \"OEmacs\", the first
-version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of
-Perl4 for MSDOS.  In recent years, reality has intruded and he no longer
-has much time for playing with cool programs.  What little time he has
-now goes to XEmacs hacking, where he's worked on speeding up dired under
-MS Windows, and to feeding his two cats.\n")
        "\n\
 In addition to those just mentioned, the following people have spent a
 great deal of effort providing feedback, testing beta versions of
 XEmacs, providing patches to the source code, or doing all of the
-above.  We couldn't have done it without them.\n\n"
-       (print-short "Nagi M. Aboulenein" "aboulene@ponder.csci.unt.edu")
-       (print-short "Per Abrahamsen" "abraham@dina.kvl.dk")
-       (print-short "Gary Adams" "gra@zeppo.East.Sun.COM")
-       (print-short "Gennady Agranov" "agranov@csa.CS.Technion.Ac.IL")
-       (print-short "Adrian Aichner" "adrian@xemacs.org")
-       (print-short "Mark Allender" "allender@vnet.IBM.COM")
-       (print-short "Stephen R. Anderson" "sra@bloch.ling.yale.edu")
-       (print-short "Butch Anton" "butch@zaphod.uchicago.edu")
-       (print-short "Fred Appelman" "Fred.Appelman@cv.ruu.nl")
-       (print-short "Erik \"The Pope\" Arneson" "lazarus@mind.net")
-       (print-short "Tor Arntsen" "tor@spacetec.no")
-       (print-short "Marc Aurel" "4-tea-2@bong.saar.de")
-       (print-short "Larry Auton" "lda@control.att.com")
-       (print-short "Larry Ayers" "layers@marktwain.net")
-       (print-short "Oswald P. Backus IV" "backus@altagroup.com")
-       (print-short "Mike Battaglia" "mbattagl@dsccc.com")
-       (print-short "Neal Becker" "neal@ctd.comsat.com")
-       (print-short "Paul Bibilo" "peb@delcam.com")
-       (print-short "Leonard Blanks" "ltb@haruspex.demon.co.uk")
-       (print-short "Jan Borchers" "job@tk.uni-linz.ac.at")
-       (print-short "Mark Borges" "mdb@cdc.noaa.gov")
-       (print-short "David P. Boswell" "daveb@tau.space.thiokol.com")
-       (print-short "Tim Bradshaw" "tfb@edinburgh.ac.uk")
-       (print-short "Rick Braumoeller" "rickb@mti.sgi.com")
-       (print-short "Matthew J. Brown" "mjb@doc.ic.ac.uk")
-       (print-short "Alastair Burt" "burt@dfki.uni-kl.de")
-       (print-short "David Bush" "david.bush@adn.alcatel.com")
-       (print-short "Richard Caley" "rjc@cstr.edinburgh.ac.uk")
-       (print-short "Stephen Carney" "carney@gvc.dec.com")
-       (print-short "Lorenzo M. Catucci" "lorenzo@argon.roma2.infn.it")
-       (print-short "Philippe Charton" "charton@lmd.ens.fr")
-       (print-short "Peter Cheng" "peter.cheng@sun.com")
-       (print-short "Jin S. Choi" "jin@atype.com")
-       (print-short "Tomasz J. Cholewo" "tjchol01@mecca.spd.louisville.edu")
-       (print-short "Serenella Ciongoli" "czs00@ladybug.oes.amdahl.com")
-       (print-short "Glynn Clements" "glynn@sensei.co.uk")
-       (print-short "Richard Cognot" "cognot@ensg.u-nancy.fr")
-       (print-short "Andy Cohen" "cohen@andy.bu.edu")
-       (print-short "Richard Coleman" "coleman@math.gatech.edu")
-       (print-short "Mauro Condarelli" "MC5686@mclink.it")
-       (print-short "Andrew J Cosgriff" "ajc@bing.wattle.id.au")
-       (print-short "Nick J. Crabtree" "nickc@scopic.com")
-       (print-short "Christopher Davis" "ckd@kei.com")
-       (print-short "Soren Dayton" "csdayton@cs.uchicago.edu")
-       (print-short "Chris Dean" "ctdean@cogit.com")
-       (print-short "Michael Diers" "mdiers@logware.de")
-       (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu")
-       (print-short "Steve Dunham" "dunham@dunham.tcimet.net")
-       (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk")
-       (print-short "Carl Edman" "cedman@Princeton.EDU")
-       (print-short "Dave Edmondson" "davided@sco.com")
-       (print-short "Jonathan Edwards" "edwards@intranet.com")
-       (print-short "Eric Eide" "eeide@asylum.cs.utah.edu")
-       (print-short "EKR" "ekr@terisa.com")
-       (print-short "Gunnar Evermann" "ge204@eng.cam.ac.uk")
-       (print-short "Oscar Figueiredo" "Oscar.Figueiredo@di.epfl.ch")
-       (print-short "David Fletcher" "frodo@tsunami.com")
-       (print-short "Paul Flinders" "ptf@delcam.co.uk")
-       (print-short "Jered J Floyd" "jered@mit.edu")
-       (print-short "Gary D. Foster" "Gary.Foster@Corp.Sun.COM")
-       (print-short "Jerry Frain" "jerry@sneffels.tivoli.com")
-       (print-short "Holger Franz" "hfranz@physik.rwth-aachen.de")
-       (print-short "Benjamin Fried" "bf@morgan.com")
-       (print-short "Barry Friedman" "friedman@nortel.ca")
-       (print-short "Noah Friedman" "friedman@splode.com")
-       (print-short "Kazuyoshi Furutaka" "furutaka@Flux.tokai.jaeri.go.jp")
-       (print-short "Lew Gaiter III" "lew@StarFire.com")
-       (print-short "Olivier Galibert" "Olivier.Galibert@mines.u-nancy.fr")
-       (print-short "Itay Gat" "itay@cs.huji.ac.il")
-       (print-short "Tim Geisler" "Tim.Geisler@informatik.uni-muenchen.de")
-       (print-short "Dave Gillespie" "daveg@synaptics.com")
-       (print-short "Christian F. Goetze" "cg@bigbook.com")
-       (print-short "Yusuf Goolamabbas" "yusufg@iss.nus.sg")
-       (print-short "Wolfgang Grieskamp" "wg@cs.tu-berlin.de")
-       (print-short "John Griffith" "griffith@sfs.nphil.uni-tuebingen.de")
-       (print-short "James Grinter" "jrg@demon.net")
-       (print-short "Ben Gross" "bgross@uiuc.edu")
-       (print-short "Dirk Grunwald" "grunwald@foobar.cs.Colorado.EDU")
-       (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de")
-       (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com")
-       (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE")
-       (print-short "Kai Haberzettl" "khaberz@synnet.de")
-       (print-short "Adam Hammer" "hammer@cs.purdue.edu")
-       (print-short "Magnus Hammerin" "magnush@epact.se")
-       (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr")
-       (print-short "Derek Harding" "dharding@lssec.bt.co.uk")
-       (print-short "Michael Harnois" "mharnois@sbt.net")
-       (print-short "Yoshiki Hayashi" "yoshiki@xemacs.org")
-       (print-short "John Haxby" "J.Haxby@isode.com")
-       (print-short "Karl M. Hegbloom" "karlheg@inetarena.com")
-       (print-short "Benedikt Heinen" "beh@icemark.thenet.ch")
-       (print-short "Stephan Herrmann" "sh@first.gmd.de")
-       (print-short "August Hill" "awhill@inlink.com")
-       (print-short "Mike Hill" "mikehill@hgeng.com")
-       (print-short "Charles Hines" "chuck_hines@VNET.IBM.COM")
-       (print-short "Shane Holder" "holder@rsn.hp.com")
-       (print-short "Chris Holt" "xris@migraine.stanford.edu")
-       (print-short "Tetsuya HOYANO" "hoyano@ari.bekkoame.or.jp")
-       (print-short "David Hughes" "djh@harston.cv.com")
-       (print-short "Tudor Hulubei" "tudor@cs.unh.edu")
-       (print-short "Tatsuya Ichikawa" "ichikawa@hv.epson.co.jp")
-       (print-short "Andrew Innes" "andrewi@harlequin.co.uk")
-       (print-short "Markku Jarvinen" "Markku.Jarvinen@simpukka.funet.fi")
-       (print-short "Robin Jeffries" "robin.jeffries@sun.com")
-       (print-short "Philip Johnson" "johnson@uhics.ics.Hawaii.Edu")
-       (print-short "J. Kean Johnston" "jkj@paradigm-sa.com")
-       (print-short "John W. Jones" "jj@asu.edu")
-       (print-short "Andreas Kaempf" "andreas@sccon.com")
-       (print-short "Yoshiaki Kasahara" "kasahara@nc.kyushu-u.ac.jp")
-       (print-short "Kirill M. Katsnelson" "kkm@kis.ru")
-       (print-short "Amir Katz" "amir@ndsoft.com")
-       (print-short "Doug Keller" "dkeller@vnet.ibm.com")
-       (print-short "Hunter Kelly" "retnuh@corona")
-       (print-short "Gregor Kennedy" "gregork@dadd.ti.com")
-       (print-short "Michael Kifer" "kifer@cs.sunysb.edu")
-       (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp")
-       (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu")
-       (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu")
-       (print-short "Norbert Koch" "n.koch@delta-ii.de")
-       (print-short "Rob Kooper" "kooper@cc.gatech.edu")
-       (print-short "Peter Skov Knudsen" "knu@dde.dk")
-       (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de")
-       (print-short "Maximilien Lincourt" "max@toonboom.com")
-       (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se")
-       (print-short "Simon Leinen" "simon@instrumatic.ch")
-       (print-short "Carsten Leonhardt" "leo@arioch.oche.de")
-       (print-short "James LewisMoss" "moss@cs.sc.edu")
-       (print-short "Mats Lidell" "mats.lidell@contactor.se")
-       (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu")
-       (print-short "Christian Limpach" "Christian.Limpach@nice.ch")
-       (print-short "Maximilien Lincourt" "max@toonboom.com")
-       (print-short "Markus Linnala" "maage@b14b.tupsu.ton.tut.fi")
-       (print-short "Robert Lipe" "robertl@arnet.com")
-       (print-short "Derrell Lipman" "derrell@vis-av.com")
-       (print-short "Damon Lipparelli" "lipp@aa.net")
-       (print-short "Hamish Macdonald" "hamish@bnr.ca")
-       (print-short "Ian MacKinnon" "imackinnon@telia.co.uk")
-       (print-short "Patrick MacRoberts" "macro@hpcobr30.cup.hp.com")
-       (print-short "Tonny Madsen" "Tonny.Madsen@netman.dk")
-       (print-short "Ketil Z Malde" "ketil@ii.uib.no")
-       (print-short "Steve March" "smarch@quaver.urbana.mcd.mot.com")
-       (print-short "Ricardo Marek" "ricky@ornet.co.il")
-       (print-short "Pekka Marjola" "pema@iki.fi")
-       (print-short "Simon Marshall" "simon@gnu.ai.mit.edu")
-       (print-short "Dave Mason" "dmason@plg.uwaterloo.ca")
-       (print-short "Jaye Mathisen" "mrcpu@cdsnet.net")
-       (print-short "Jason McLaren" "mclaren@math.mcgill.ca")
-       (print-short "Michael McNamara" "mac@silicon-sorcery.com")
-       (print-short "Michael Meissner" "meissner@osf.org")
-       (print-short "David M. Meyer" "meyer@ns.uoregon.edu")
-       (print-short "John Mignault" "jbm@panix.com")
-       (print-short "Brad Miller" "bmiller@cs.umn.edu")
-       (print-short "John Morey" "jmorey@crl.com")
-       (print-short "Rob Mori" "rob.mori@sun.com")
-       (print-short "Heiko Muenkel" "muenkel@tnt.uni-hannover.de")
-       (print-short "Arup Mukherjee" "arup+@cs.cmu.edu")
-       (print-short "Colas Nahaboo" "Colas.Nahaboo@sophia.inria.fr")
-       (print-short "Lynn D. Newton" "lynn@ives.phx.mcd.mot.com")
-       (print-short "Casey Nielson" "knielson@joule.elee.calpoly.edu")
-       (print-short "Georg Nikodym" "Georg.Nikodym@canada.sun.com")
-       (print-short "Andy Norman" "ange@hplb.hpl.hp.com")
-       (print-short "Joe Nuspl" "nuspl@sequent.com")
-       (print-short "Kim Nyberg" "kny@tekla.fi")
-       (print-short "Kevin Oberman" "oberman@es.net")
-       (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU")
-       (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br")
-       (print-short "Tore Olsen" "toreo@colargol.idb.hist.no")
-       (print-short "Greg Onufer" "Greg.Onufer@eng.sun.com")
-       (print-short "Achim Oppelt" "aoppelt@theorie3.physik.uni-erlangen.de")
-       (print-short "Rebecca Ore" "rebecca.ore@op.net")
-       (print-short "Sudeep Kumar Palat" "palat@idt.unit.no")
-       (print-short "Joel Peterson" "tarzan@aosi.com")
-       (print-short "Thomas A. Peterson" "tap@src.honeywell.com")
-       (print-short "Tibor Polgar" "tibor@alteon.com")
-       (print-short "Fabrice POPINEAU" "popineau@esemetz.ese-metz.fr")
-       (print-short "Frederic Poncin" "fp@info.ucl.ac.be")
-       (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us")
-       (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at")
-       (print-short "Colin Rafferty" "colin@xemacs.org")
-       (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com")
-       (print-short "Paul M Reilly" "pmr@pajato.com")
-       (print-short "Jack Repenning" "jackr@sgi.com")
-       (print-short "Daniel Rich" "drich@cisco.com")
-       (print-short "Roland Rieke" "rol@darmstadt.gmd.de")
-       (print-short "Art Rijos" "art.rijos@SNET.com")
-       (print-short "Russell Ritchie" "ritchier@britannia-life.co.uk")
-       (print-short "Roland" "rol@darmstadt.gmd.de")
-       (print-short "Mike Russell" "mjruss@rchland.vnet.ibm.com")
-       (print-short "Hajime Saitou" "hajime@jsk.t.u-tokyo.ac.jp")
-       (print-short "Jan Sandquist" "etxquist@iqa.ericsson.se")
-       (print-short "Marty Sasaki" "sasaki@spdcc.com")
-       (print-short "SATO Daisuke" "densuke@ga2.so-net.or.jp")
-       (print-short "Kenji Sato" "ken@ny.kdd.com")
-       (print-short "Mike Scheidler" "c23mts@eng.delcoelect.com")
-       (print-short "Daniel Schepler" "daniel@shep13.wustl.edu")
-       (print-short "Holger Schauer" "schauer@coling.uni-freiburg.de")
-       (print-short "Darrel Schneider" "darrel@slc.com")
-       (print-short "Hayden Schultz" "haydens@ll.mit.edu")
-       (print-short "Cotton Seed" "cottons@cybercom.net")
-       (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de")
-       (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no")
-       (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org")
-       (print-short "Justin Sheehy" "justin@linus.mitre.org")
-       (print-short "John Shen" "zfs60@cas.org")
-       (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp")
-       (print-short "Matt Simmons" "simmonmt@acm.org")
-       (print-short "Dinesh Somasekhar" "somasekh@ecn.purdue.edu")
-       (print-short "Jeffrey Sparkes" "jsparkes@bnr.ca")
-       (print-short "Manoj Srivastava" "srivasta@pilgrim.umass.edu")
-       (print-short "Francois Staes" "frans@kiwi.uia.ac.be")
-       (print-short "Anders Stenman" "stenman@isy.liu.se")
-       (print-short "Jason Stewart" "jasons@cs.unm.edu")
-       (print-short "Rick Tait" "rickt@gnu.ai.mit.edu")
-       (print-short "TANAKA Hayashi" "tanakah@mxa.mesh.ne.jp")
-       (print-short "Samuel Tardieu" "sam@inf.enst.fr")
-       (print-short "James Thompson" "thompson@wg2.waii.com")
-       (print-short "Nobu Toge" "toge@accad1.kek.jp")
-       (print-short "Raymond L. Toy" "toy@rtp.ericsson.se")
-       (print-short "Remek Trzaska" "remek@npac.syr.edu")
-       (print-short "TSUTOMU Nakamura" "tsutomu@rs.kyoto.omronsoft.co.jp")
-       (print-short "Stefanie Teufel" "s.teufel@ndh.net")
-       (print-short "Gary Thomas" "g.thomas@opengroup.org")
-       (print-short "Stephen Turnbull" "turnbull@sk.tsukuba.ac.jp")
-       (print-short "John Turner" "turner@xdiv.lanl.gov")
-       (print-short "UENO Fumihiro" "7m2vej@ritp.ye.IHI.CO.JP")
-       (print-short "Aki Vehtari" "Aki.Vehtari@hut.fi")
-       (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu")
-       (print-short "Vladimir Vukicevic" "vladimir@intrepid.com")
-       (print-short "Charles G. Waldman" "cgw@fnal.gov")
-       (print-short "David Walte" "djw18@cornell.edu")
-       (print-short "Peter Ware" "ware@cis.ohio-state.edu")
-       (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de")
-       (print-short "Yoav Weiss" "yoav@zeus.datasrv.co.il")
-       (print-short "Peter B. West" "p.west@uq.net.au")
-       (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com")
-       (print-short "Rich Williams" "rdw@hplb.hpl.hp.com")
-       (print-short "Raymond Wiker" "raymond@orion.no")
-       (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM")
-       (print-short "David C Worenklein" "dcw@gcm.com")
-       (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp")
-       (print-short "Katsumi Yamaoka" "yamaoka@ga.sony.co.jp")
-       (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu")
-       (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au")
-       (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu")
-       (print-short "Volker Zell" "vzell@de.oracle.com")
-       (print-short "Daniel Zivkovic" "daniel@canada.sun.com")
-       (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl")
-       "\n"))
+above.  We couldn't have done it without them.\n\n")
+      (print-short "Nagi M. Aboulenein" "aboulene@ponder.csci.unt.edu")
+      (print-short "Per Abrahamsen" "abraham@dina.kvl.dk")
+      (print-short "Gary Adams" "gra@zeppo.East.Sun.COM")
+      (print-short "Gennady Agranov" "agranov@csa.CS.Technion.Ac.IL")
+      (print-short "Mark Allender" "allender@vnet.IBM.COM")
+      (print-short "Stephen R. Anderson" "sra@bloch.ling.yale.edu")
+      (print-short "Butch Anton" "butch@zaphod.uchicago.edu")
+      (print-short "Fred Appelman" "Fred.Appelman@cv.ruu.nl")
+      (print-short "Erik \"The Pope\" Arneson" "lazarus@mind.net")
+      (print-short "Tor Arntsen" "tor@spacetec.no")
+      (print-short "Marc Aurel" "4-tea-2@bong.saar.de")
+      (print-short "Larry Auton" "lda@control.att.com")
+      (print-short "Larry Ayers" "layers@marktwain.net")
+      (print-short "Oswald P. Backus IV" "backus@altagroup.com")
+      (print-short "Mike Battaglia" "mbattagl@dsccc.com")
+      (print-short "Neal Becker" "neal@ctd.comsat.com")
+      (print-short "Paul Bibilo" "peb@delcam.com")
+      (print-short "Leonard Blanks" "ltb@haruspex.demon.co.uk")
+      (print-short "Jan Borchers" "job@tk.uni-linz.ac.at")
+      (print-short "Mark Borges" "mdb@cdc.noaa.gov")
+      (print-short "David P. Boswell" "daveb@tau.space.thiokol.com")
+      (print-short "Tim Bradshaw" "tfb@edinburgh.ac.uk")
+      (print-short "Rick Braumoeller" "rickb@mti.sgi.com")
+      (print-short "Matthew J. Brown" "mjb@doc.ic.ac.uk")
+      (print-short "Alastair Burt" "burt@dfki.uni-kl.de")
+      (print-short "David Bush" "david.bush@adn.alcatel.com")
+      (print-short "Richard Caley" "rjc@cstr.edinburgh.ac.uk")
+      (print-short "Stephen Carney" "carney@gvc.dec.com")
+      (print-short "Lorenzo M. Catucci" "lorenzo@argon.roma2.infn.it")
+      (print-short "Philippe Charton" "charton@lmd.ens.fr")
+      (print-short "Peter Cheng" "peter.cheng@sun.com")
+      (print-short "Jin S. Choi" "jin@atype.com")
+      (print-short "Tomasz J. Cholewo" "tjchol01@mecca.spd.louisville.edu")
+      (print-short "Serenella Ciongoli" "czs00@ladybug.oes.amdahl.com")
+      (print-short "Glynn Clements" "glynn@sensei.co.uk")
+      (print-short "Richard Cognot" "cognot@ensg.u-nancy.fr")
+      (print-short "Andy Cohen" "cohen@andy.bu.edu")
+      (print-short "Richard Coleman" "coleman@math.gatech.edu")
+      (print-short "Mauro Condarelli" "MC5686@mclink.it")
+      (print-short "Nick J. Crabtree" "nickc@scopic.com")
+      (print-short "Christopher Davis" "ckd@kei.com")
+      (print-short "Soren Dayton" "csdayton@cs.uchicago.edu")
+      (print-short "Chris Dean" "ctdean@cogit.com")
+      (print-short "Michael Diers" "mdiers@logware.de")
+      (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu")
+      (print-short "Steve Dunham" "dunham@dunham.tcimet.net")
+      (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk")
+      (print-short "Carl Edman" "cedman@Princeton.EDU")
+      (print-short "Dave Edmondson" "davided@sco.com")
+      (print-short "Jonathan Edwards" "edwards@intranet.com")
+      (print-short "Eric Eide" "eeide@asylum.cs.utah.edu")
+      (print-short "EKR" "ekr@terisa.com")
+      (print-short "David Fletcher" "frodo@tsunami.com")
+      (print-short "Paul Flinders" "ptf@delcam.co.uk")
+      (print-short "Jered J Floyd" "jered@mit.edu")
+      (print-short "Gary D. Foster" "Gary.Foster@Corp.Sun.COM")
+      (print-short "Jerry Frain" "jerry@sneffels.tivoli.com")
+      (print-short "Holger Franz" "hfranz@physik.rwth-aachen.de")
+      (print-short "Benjamin Fried" "bf@morgan.com")
+      (print-short "Barry Friedman" "friedman@nortel.ca")
+      (print-short "Noah Friedman" "friedman@splode.com")
+      (print-short "Kazuyoshi Furutaka" "furutaka@Flux.tokai.jaeri.go.jp")
+      (print-short "Lew Gaiter III" "lew@StarFire.com")
+      (print-short "Itay Gat" "itay@cs.huji.ac.il")
+      (print-short "Tim Geisler" "Tim.Geisler@informatik.uni-muenchen.de")
+      (print-short "Dave Gillespie" "daveg@synaptics.com")
+      (print-short "Christian F. Goetze" "cg@bigbook.com")
+      (print-short "Yusuf Goolamabbas" "yusufg@iss.nus.sg")
+      (print-short "Wolfgang Grieskamp" "wg@cs.tu-berlin.de")
+      (print-short "John Griffith" "griffith@sfs.nphil.uni-tuebingen.de")
+      (print-short "James Grinter" "jrg@demon.net")
+      (print-short "Ben Gross" "bgross@uiuc.edu")
+      (print-short "Dirk Grunwald" "grunwald@foobar.cs.Colorado.EDU")
+      (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de")
+      (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com")
+      (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE")
+      (print-short "Kai Haberzettl" "khaberz@synnet.de")
+      (print-short "Adam Hammer" "hammer@cs.purdue.edu")
+      (print-short "Magnus Hammerin" "magnush@epact.se")
+      (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr")
+      (print-short "Derek Harding" "dharding@lssec.bt.co.uk")
+      (print-short "Michael Harnois" "mharnois@sbt.net")
+      (print-short "John Haxby" "J.Haxby@isode.com")
+      (print-short "Karl M. Hegbloom" "karlheg@inetarena.com")
+      (print-short "Benedikt Heinen" "beh@icemark.thenet.ch")
+      (print-short "Stephan Herrmann" "sh@first.gmd.de")
+      (print-short "August Hill" "awhill@inlink.com")
+      (print-short "Mike Hill" "mikehill@hgeng.com")
+      (print-short "Charles Hines" "chuck_hines@VNET.IBM.COM")
+      (print-short "Shane Holder" "holder@rsn.hp.com")
+      (print-short "Chris Holt" "xris@migraine.stanford.edu")
+      (print-short "Tetsuya HOYANO" "hoyano@ari.bekkoame.or.jp")
+      (print-short "David Hughes" "djh@harston.cv.com")
+      (print-short "Tudor Hulubei" "tudor@cs.unh.edu")
+      (print-short "Tatsuya Ichikawa" "ichikawa@hv.epson.co.jp")
+      (print-short "Andrew Innes" "andrewi@harlequin.co.uk")
+      (print-short "Markku Jarvinen" "Markku.Jarvinen@simpukka.funet.fi")
+      (print-short "Robin Jeffries" "robin.jeffries@sun.com")
+      (print-short "Philip Johnson" "johnson@uhics.ics.Hawaii.Edu")
+      (print-short "J. Kean Johnston" "jkj@paradigm-sa.com")
+      (print-short "John W. Jones" "jj@asu.edu")
+      (print-short "Andreas Kaempf" "andreas@sccon.com")
+      (print-short "Yoshiaki Kasahara" "kasahara@nc.kyushu-u.ac.jp")
+      (print-short "Amir Katz" "amir@ndsoft.com")
+      (print-short "Doug Keller" "dkeller@vnet.ibm.com")
+      (print-short "Hunter Kelly" "retnuh@corona")
+      (print-short "Gregor Kennedy" "gregork@dadd.ti.com")
+      (print-short "Michael Kifer" "kifer@cs.sunysb.edu")
+      (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp")
+      (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu")
+      (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu")
+      (print-short "Norbert Koch" "n.koch@delta-ii.de")
+      (print-short "Rob Kooper" "kooper@cc.gatech.edu")
+      (print-short "Peter Skov Knudsen" "knu@dde.dk")
+      (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de")
+      (print-short "Maximilien Lincourt" "max@toonboom.com")
+      (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se")
+      (print-short "Simon Leinen" "simon@instrumatic.ch")
+      (print-short "Carsten Leonhardt" "leo@arioch.oche.de")
+      (print-short "James LewisMoss" "moss@cs.sc.edu")
+      (print-short "Mats Lidell" "mats.lidell@contactor.se")
+      (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu")
+      (print-short "Christian Limpach" "Christian.Limpach@nice.ch")
+      (print-short "Maximilien Lincourt" "max@toonboom.com")
+      (print-short "Markus Linnala" "maage@b14b.tupsu.ton.tut.fi")
+      (print-short "Robert Lipe" "robertl@arnet.com")
+      (print-short "Derrell Lipman" "derrell@vis-av.com")
+      (print-short "Damon Lipparelli" "lipp@aa.net")
+      (print-short "Hamish Macdonald" "hamish@bnr.ca")
+      (print-short "Ian MacKinnon" "imackinnon@telia.co.uk")
+      (print-short "Patrick MacRoberts" "macro@hpcobr30.cup.hp.com")
+      (print-short "Tonny Madsen" "Tonny.Madsen@netman.dk")
+      (print-short "Ketil Z Malde" "ketil@ii.uib.no")
+      (print-short "Steve March" "smarch@quaver.urbana.mcd.mot.com")
+      (print-short "Ricardo Marek" "ricky@ornet.co.il")
+      (print-short "Pekka Marjola" "pema@iki.fi")
+      (print-short "Simon Marshall" "simon@gnu.ai.mit.edu")
+      (print-short "Dave Mason" "dmason@plg.uwaterloo.ca")
+      (print-short "Jaye Mathisen" "mrcpu@cdsnet.net")
+      (print-short "Jason McLaren" "mclaren@math.mcgill.ca")
+      (print-short "Michael McNamara" "mac@silicon-sorcery.com")
+      (print-short "Michael Meissner" "meissner@osf.org")
+      (print-short "David M. Meyer" "meyer@ns.uoregon.edu")
+      (print-short "John Mignault" "jbm@panix.com")
+      (print-short "Brad Miller" "bmiller@cs.umn.edu")
+      (print-short "John Morey" "jmorey@crl.com")
+      (print-short "Rob Mori" "rob.mori@sun.com")
+      (print-short "Heiko Muenkel" "muenkel@tnt.uni-hannover.de")
+      (print-short "Arup Mukherjee" "arup+@cs.cmu.edu")
+      (print-short "Colas Nahaboo" "Colas.Nahaboo@sophia.inria.fr")
+      (print-short "Lynn D. Newton" "lynn@ives.phx.mcd.mot.com")
+      (print-short "Casey Nielson" "knielson@joule.elee.calpoly.edu")
+      (print-short "Georg Nikodym" "Georg.Nikodym@canada.sun.com")
+      (print-short "Andy Norman" "ange@hplb.hpl.hp.com")
+      (print-short "Joe Nuspl" "nuspl@sequent.com")
+      (print-short "Kim Nyberg" "kny@tekla.fi")
+      (print-short "Kevin Oberman" "oberman@es.net")
+      (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU")
+      (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br")
+      (print-short "Tore Olsen" "toreo@colargol.idb.hist.no")
+      (print-short "Greg Onufer" "Greg.Onufer@eng.sun.com")
+      (print-short "Achim Oppelt" "aoppelt@theorie3.physik.uni-erlangen.de")
+      (print-short "Rebecca Ore" "rebecca.ore@op.net")
+      (print-short "Sudeep Kumar Palat" "palat@idt.unit.no")
+      (print-short "Joel Peterson" "tarzan@aosi.com")
+      (print-short "Thomas A. Peterson" "tap@src.honeywell.com")
+      (print-short "Tibor Polgar" "tibor@alteon.com")
+      (print-short "Frederic Poncin" "fp@info.ucl.ac.be")
+      (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us")
+      (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at")
+      (print-short "Colin Rafferty" "colin@xemacs.org")
+      (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com")
+      (print-short "Paul M Reilly" "pmr@pajato.com")
+      (print-short "Jack Repenning" "jackr@sgi.com")
+      (print-short "Daniel Rich" "drich@cisco.com")
+      (print-short "Roland Rieke" "rol@darmstadt.gmd.de")
+      (print-short "Art Rijos" "art.rijos@SNET.com")
+      (print-short "Russell Ritchie" "ritchier@britannia-life.co.uk")
+      (print-short "Roland" "rol@darmstadt.gmd.de")
+      (print-short "Mike Russell" "mjruss@rchland.vnet.ibm.com")
+      (print-short "Hajime Saitou" "hajime@jsk.t.u-tokyo.ac.jp")
+      (print-short "Jan Sandquist" "etxquist@iqa.ericsson.se")
+      (print-short "Marty Sasaki" "sasaki@spdcc.com")
+      (print-short "SATO Daisuke" "densuke@ga2.so-net.or.jp")
+      (print-short "Kenji Sato" "ken@ny.kdd.com")
+      (print-short "Mike Scheidler" "c23mts@eng.delcoelect.com")
+      (print-short "Daniel Schepler" "daniel@shep13.wustl.edu")
+      (print-short "Holger Schauer" "schauer@coling.uni-freiburg.de")
+      (print-short "Darrel Schneider" "darrel@slc.com")
+      (print-short "Hayden Schultz" "haydens@ll.mit.edu")
+      (print-short "Cotton Seed" "cottons@cybercom.net")
+      (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de")
+      (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no")
+      (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org")
+      (print-short "Justin Sheehy" "justin@linus.mitre.org")
+      (print-short "John Shen" "zfs60@cas.org")
+      (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp")
+      (print-short "Matt Simmons" "simmonmt@acm.org")
+      (print-short "Dinesh Somasekhar" "somasekh@ecn.purdue.edu")
+      (print-short "Jeffrey Sparkes" "jsparkes@bnr.ca")
+      (print-short "Manoj Srivastava" "srivasta@pilgrim.umass.edu")
+      (print-short "Francois Staes" "frans@kiwi.uia.ac.be")
+      (print-short "Anders Stenman" "stenman@isy.liu.se")
+      (print-short "Jason Stewart" "jasons@cs.unm.edu")
+      (print-short "Rick Tait" "rickt@gnu.ai.mit.edu")
+      (print-short "TANAKA Hayashi" "tanakah@mxa.mesh.ne.jp")
+      (print-short "Samuel Tardieu" "sam@inf.enst.fr")
+      (print-short "James Thompson" "thompson@wg2.waii.com")
+      (print-short "Nobu Toge" "toge@accad1.kek.jp")
+      (print-short "Raymond L. Toy" "toy@rtp.ericsson.se")
+      (print-short "Remek Trzaska" "remek@npac.syr.edu")
+      (print-short "TSUTOMU Nakamura" "tsutomu@rs.kyoto.omronsoft.co.jp")
+      (print-short "Stefanie Teufel" "s.teufel@ndh.net")
+      (print-short "Gary Thomas" "g.thomas@opengroup.org")
+      (print-short "John Turner" "turner@xdiv.lanl.gov")
+      (print-short "UENO Fumihiro" "7m2vej@ritp.ye.IHI.CO.JP")
+      (print-short "Aki Vehtari" "Aki.Vehtari@hut.fi")
+      (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu")
+      (print-short "Vladimir Vukicevic" "vladimir@intrepid.com")
+      (print-short "David Walte" "djw18@cornell.edu")
+      (print-short "Peter Ware" "ware@cis.ohio-state.edu")
+      (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de")
+      (print-short "Yoav Weiss" "yoav@zeus.datasrv.co.il")
+      (print-short "Peter B. West" "p.west@uq.net.au")
+      (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com")
+      (print-short "Rich Williams" "rdw@hplb.hpl.hp.com")
+      (print-short "Raymond Wiker" "raymond@orion.no")
+      (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM")
+      (print-short "David C Worenklein" "dcw@gcm.com")
+      (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp")
+      (print-short "Katsumi Yamaoka" "yamaoka@ga.sony.co.jp")
+      (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu")
+      (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au")
+      (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu")
+      (print-short "Volker Zell" "vzell@de.oracle.com")
+      (print-short "Daniel Zivkovic" "daniel@canada.sun.com")
+      (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl")
+      (widget-insert "\n"))
     (about-finish-buffer)))
 
 ;;; about.el ends here
index 7dab08c..9749326 100644 (file)
@@ -1425,7 +1425,7 @@ which will not be used as accelerators."
      ("%_Help"
       ["%_About XEmacs..." about-xemacs]
       "-----"
-      ["XEmacs %_News" view-emacs-news]
+      ["What's %_New in XEmacs" view-emacs-news]
       ["%_Obtaining XEmacs" describe-distribution]
       "-----"
       ("%_Info (Online Docs)"
index 0c76138..9eaa504 100644 (file)
@@ -471,7 +471,10 @@ been created during the operation of `mouse-track'.
 Unlike all of the other mouse-track hooks, this is a \"normal\"
 hook: the hook functions are called with no arguments, and
 all hook functions are called regardless of their return
-values.")
+values.
+
+This function is called with the buffer where the mouse was clicked
+set to the current buffer, unless that buffer was killed.")
 
 (defcustom mouse-track-multi-click-time 400
   "*Maximum number of milliseconds allowed between clicks for a multi-click.
@@ -711,7 +714,7 @@ at the initial click position."
       (if mouse-track-timeout-id
          (disable-timeout mouse-track-timeout-id))
       (setq mouse-track-timeout-id nil)
-      (and buffer
+      (and (buffer-live-p buffer)
           (save-excursion
             (set-buffer buffer)
             (run-hooks 'mouse-track-cleanup-hook))))))
index 6082627..cca817c 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index fc2f422..333343b 100644 (file)
@@ -1,3 +1,25 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
+2001-04-14  Gunnar Evermann  <ge204@eng.cam.ac.uk>
+
+        * xemacs/building.texi : Correct documentation of eval-expression.
+        By default it is bound to M-: and not M-ESC.
+
+        * xemacs/custom.texi (Init Examples):
+        * xemacs/search.texi (Query Replace): C-x ESC -> C-x ESC ESC
+
+        * xemacs/text.texi (Paragraphs): M-[ -> M-{  and M-] -> M-}
+        From Klaus Frank <klausf@i3.informatik.rwth-aachen.de>
+
+2001-04-15  Ben Wing  <ben@xemacs.org>
+
+       * xemacs-faq.texi (Q1.0.1):
+       * xemacs-faq.texi (Q1.0.2):
+       Rewrite description of XEmacs to match what's on web page,
+       in about.el.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index 6e4d628..09db48d 100644 (file)
@@ -7,7 +7,7 @@
 @finalout
 @titlepage
 @title XEmacs FAQ
-@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/04/12 18:22:04 $
+@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/04/16 09:24:44 $
 @sp 1
 @author Tony Rossini <rossini@@biostat.washington.edu>
 @author Ben Wing <ben@@xemacs.org>
@@ -491,17 +491,18 @@ Getting Started:
 @unnumberedsubsec Q1.0.1: What is XEmacs?
 
 
-XEmacs is a highly customizable open source text editor and application
-development system.  It is protected under the GNU Public License and
-related to other versions of Emacs, in particular GNU Emacs.  Its
-emphasis is on modern graphical user interface support and an open
-software development model, similar to Linux.  XEmacs has an active
-development community numbering in the hundreds, and runs on Windows 95
-and NT, Linux and nearly every other version of Unix in
-existence.  Support for XEmacs has been supplied by Sun Microsystems,
-University of Illinois, Lucid, ETL/Electrotechnical Laboratory, Amdahl
-Corporation, BeOpen, and others, as well as the unpaid time of a great
-number of individual developers.
+XEmacs is a powerful, highly customizable open source text editor and
+application development system, with full GUI support.  It is protected
+under the GNU Public License and related to other versions of Emacs, in
+particular GNU Emacs.  Its emphasis is on modern graphical user
+interface support and an open software development model, similar to
+Linux.  XEmacs has an active development community numbering in the
+hundreds (and thousands of active beta testers on top of this), and runs
+on all versions of MS Windows, on Linux, and on nearly every other
+version of Unix in existence.  Support for XEmacs has been supplied by
+Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical
+Laboratory, Amdahl Corporation, BeOpen, and others, as well as the
+unpaid time of a great number of individual developers.
 
 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction
 @unnumberedsubsec Q1.0.2: What is the current version of XEmacs?
index 479a53d..df79630 100644 (file)
@@ -372,7 +372,7 @@ editing task for invoking non-interactive functions (functions that are
 not commands).
 
 @table @kbd
-@item M-@key{ESC}
+@item M-:
 Read a Lisp expression in the minibuffer, evaluate it, and print the
 value in the minibuffer (@code{eval-expression}).
 @item C-x C-e
@@ -387,21 +387,14 @@ Evaluate all the Lisp expressions in the region.
 Evaluate all the Lisp expressions in the buffer.
 @end table
 
-@kindex M-ESC
+@kindex M-:
 @findex eval-expression
-  @kbd{M-@key{ESC}} (@code{eval-expression}) is the most basic command
+  @kbd{M-:} (@code{eval-expression}) is the most basic command
 for evaluating a Lisp expression interactively.  It reads the expression
 using the minibuffer, so you can execute any expression on a buffer
 regardless of what the buffer contains.  When evaluation is complete,
 the current buffer is once again the buffer that was current when
-@kbd{M-@key{ESC}} was typed.
-
-  @kbd{M-@key{ESC}} can easily confuse users, especially on keyboards
-with autorepeat, where it can result from holding down the @key{ESC} key
-for too long.  Therefore, @code{eval-expression} is normally a disabled
-command.  Attempting to use this command asks for confirmation and gives
-you the option of enabling it; once you enable the command, you are no
-longer required to confirm.  @xref{Disabling}.@refill
+@kbd{M-:} was typed.
 
 @kindex C-M-x
 @findex eval-defun
@@ -518,8 +511,7 @@ Don't enter the debugger when the current frame is exited.  This
 cancels a @kbd{b} command on a frame.
 @item e
 Read a Lisp expression in the minibuffer, evaluate it, and print the
-value in the echo area.  This is equivalent to the command @kbd{M-@key{ESC}},
-except that @kbd{e} is not normally disabled like @kbd{M-@key{ESC}}.
+value in the echo area.  This is equivalent to the command @kbd{M-:}.
 @item q
 Terminate the program being debugged; return to top-level Emacs
 command execution.
index 5be3610..543f93c 100644 (file)
@@ -1026,7 +1026,7 @@ just like @key{RET}.  This is used mainly for Mocklisp compatibility.
 @code{minibuffer-local-must-match-map} is for strict completion and
 for cautious completion.
 @item
-@code{repeat-complex-command-map} is for use in @kbd{C-x @key{ESC}}.
+@code{repeat-complex-command-map} is for use in @kbd{C-x @key{ESC} @key{ESC}}.
 @item
 @code{isearch-mode-map} contains the bindings of the special keys which
 are bound in the pseudo-mode entered with @kbd{C-s} and @kbd{C-r}.
index ea892d0..05b5acd 100644 (file)
@@ -943,7 +943,7 @@ already been made, @key{DEL} and @key{SPC} are equivalent.  At this
 point, you can type @kbd{C-r} (see below) to alter the replaced text.  To
 undo the replacement, you can type @kbd{C-x u}. 
 This exits the @code{query-replace}.  If you want to do further
-replacement you must use @kbd{C-x ESC} to restart (@pxref{Repetition}).
+replacement you must use @kbd{C-x @key{ESC} @key{ESC}} to restart (@pxref{Repetition}).
 
 @item @key{ESC}
 to exit without doing any more replacements.
@@ -983,8 +983,8 @@ answer.
 
   If you type any other character, Emacs exits the @code{query-replace}, and
 executes the character as a command.  To restart the @code{query-replace},
-use @kbd{C-x @key{ESC}}, which repeats the @code{query-replace} because it
-used the minibuffer to read its arguments.  @xref{Repetition, C-x ESC}.
+use @kbd{C-x @key{ESC} @key{ESC}}, which repeats the @code{query-replace} because it
+used the minibuffer to read its arguments.  @xref{Repetition, C-x ESC ESC}.
 
 @node Other Repeating Search,, Replace, Search
 @section Other Search-and-Loop Commands
index 5154fdb..cebcb29 100644 (file)
@@ -754,8 +754,8 @@ This example is explained in the section on regexps.  @xref{Regexps}.
 @node Paragraphs, Pages, Sentences, Text
 @section Paragraphs
 @cindex paragraphs
-@kindex M-[
-@kindex M-]
+@kindex M-@{
+@kindex M-@}
 @findex backward-paragraph
 @findex forward-paragraph
 
@@ -763,16 +763,16 @@ This example is explained in the section on regexps.  @xref{Regexps}.
 keys.
 
 @table @kbd
-@item M-[
+@item M-@{
 Move back to previous paragraph beginning @*(@code{backward-paragraph}).
-@item M-]
+@item M-@}
 Move forward to next paragraph end (@code{forward-paragraph}).
 @item M-h
 Put point and mark around this or next paragraph (@code{mark-paragraph}).
 @end table
 
-  @kbd{Meta-[} moves to the beginning of the current or previous paragraph,
-while @kbd{Meta-]} moves to the end of the current or next paragraph.
+  @kbd{Meta-@{} moves to the beginning of the current or previous paragraph,
+while @kbd{Meta-@}} moves to the end of the current or next paragraph.
 Blank lines and text formatter command lines separate paragraphs and are
 not part of any paragraph.  An indented line starts a new paragraph.
 
index 6eab735..4a3eefe 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index d15f32b..85f1fa5 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index 7c54e9b..3156b51 100644 (file)
@@ -1,3 +1,28 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
+2001-04-15  Ben Wing  <ben@xemacs.org>
+
+       * cmdloop.c (call_command_loop):
+       Fix braino in bit-rotting code.
+       
+2001-04-07  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+       * extents.c (Fset_extent_endpoints): Force creation of extent info
+       in buffer_or_string.
+
+       * extents.c (process_extents_for_insertion_mapper): Correctly
+       check for open-open zero-length extents.
+
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * lisp.h: New typedefs Memory_count, Element_count.
+       * regex.c:
+       * regex.h:
+       Sign-compare warning elimination: several unsigned -> signed.
+       Based on work by Ben Wing <ben@xemacs.org>.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index 024ed8a..b54b23c 100644 (file)
@@ -415,7 +415,7 @@ Lisp_Object
 call_command_loop (Lisp_Object catch_errors)
 {
   /* This function can GC */
-  reset_this_command_keys (Vselected_console, Qnil); /* #### bleagh */
+  reset_this_command_keys (Vselected_console, 0); /* #### bleagh */
 
  loop:
   for (;;)
index 95a059b..6791f85 100644 (file)
@@ -3843,6 +3843,7 @@ See documentation on `detach-extent' for a discussion of undo recording.
   get_buffer_or_string_range_byte (buffer_or_string, start, end, &s, &e,
                                   GB_ALLOW_PAST_ACCESSIBLE);
 
+  buffer_or_string_extent_info_force (buffer_or_string);
   set_extent_endpoints (ext, s, e, buffer_or_string);
   return extent;
 }
@@ -4574,27 +4575,36 @@ process_extents_for_insertion_mapper (EXTENT extent, void *arg)
 #endif
 
   /* The extent-adjustment code adjusted the extent's endpoints as if
-     they were markers -- endpoints at the gap (i.e. the insertion
-     point) go to the left of the insertion point, which is correct
-     for [) extents.  We need to fix the other kinds of extents.
+     all extents were closed-open -- endpoints at the insertion point
+     remain unchanged.  We need to fix the other kinds of extents:
 
-     Note that both conditions below will hold for zero-length (]
-     extents at the gap.  Zero-length () extents would get adjusted
-     such that their start is greater than their end; we treat them
-     as [) extents.  This is unfortunately an inelegant part of the
-     extent model, but there is no way around it. */
+     1. Start position of start-open extents needs to be moved.
+
+     2. End position of end-closed extents needs to be moved.
+
+     Note that both conditions hold for zero-length (] extents at the
+     insertion point.  But under these rules, zero-length () extents
+     would get adjusted such that their start is greater than their
+     end; instead of allowing that, we treat them as [) extents by
+     modifying condition #1 to not fire nothing when dealing with a
+     zero-length open-open extent.
+
+     Existence of zero-length open-open extents is unfortunately an
+     inelegant part of the extent model, but there is no way around
+     it. */
 
   {
-    Memind new_start, new_end;
+    Memind new_start = extent_start (extent);
+    Memind new_end   = extent_end (extent);
 
-    new_start = extent_start (extent);
-    new_end = extent_end (extent);
-    if (indice == extent_start (extent) && extent_start_open_p (extent) &&
-       /* coerce zero-length () extents to [) */
-       new_start != new_end)
+    if (indice == extent_start (extent) && extent_start_open_p (extent)
+       /* zero-length () extents are exempt; see comment above. */
+       && !(new_start == new_end && extent_end_open_p (extent))
+       )
       new_start += closure->length;
     if (indice == extent_end (extent) && !extent_end_open_p (extent))
       new_end += closure->length;
+
     set_extent_endpoints_1 (extent, new_start, new_end);
   }
 
index 98e82d9..8b2b8cc 100644 (file)
@@ -380,6 +380,10 @@ typedef EMACS_INT Extcount;
 /*     structure/other typedefs    */
 /* ------------------------------- */
 
+/* Counts of bytes or array elements */
+typedef EMACS_INT Memory_count;
+typedef EMACS_INT Element_count;
+
 typedef struct lstream Lstream;
 
 typedef unsigned int face_index;
index b3725da..b2a7a64 100644 (file)
@@ -131,13 +131,10 @@ char *malloc ();
 char *realloc ();
 #endif
 
-#define charptr_emchar(str)            ((Emchar) (str)[0])
+/* Other types */
+#include <stddef.h> /* for ptrdiff_t */
 
-#if (LONGBITS > INTBITS)
-# define EMACS_INT long
-#else
-# define EMACS_INT int
-#endif
+#define charptr_emchar(str)            ((Emchar) (str)[0])
 
 typedef int Emchar;
 
@@ -991,7 +988,7 @@ print_double_string (re_char *where, re_char *string1, int size1,
     printf ("(null)");
   else
     {
-      unsigned int this_char;
+      Element_count this_char;
 
       if (FIRST_STRING_P (where))
         {
@@ -1151,8 +1148,8 @@ typedef union fail_stack_elt fail_stack_elt_t;
 typedef struct
 {
   fail_stack_elt_t *stack;
-  size_t size;
-  size_t avail;                        /* Offset of next open position.  */
+  Element_count size;
+  Element_count avail;                 /* Offset of next open position.  */
 } fail_stack_type;
 
 #define FAIL_STACK_EMPTY()     (fail_stack.avail == 0)
@@ -1195,7 +1192,7 @@ typedef struct
    REGEX_REALLOCATE_STACK requires `destination' be declared.   */
 
 #define DOUBLE_FAIL_STACK(fail_stack)                                  \
-  ((fail_stack).size > re_max_failures * MAX_FAILURE_ITEMS             \
+  ((int) (fail_stack).size > re_max_failures * MAX_FAILURE_ITEMS       \
    ? 0                                                                 \
    : ((fail_stack).stack = (fail_stack_elt_t *)                                \
         REGEX_REALLOCATE_STACK ((fail_stack).stack,                    \
@@ -1369,7 +1366,7 @@ do {                                                                      \
     + NUM_NONREG_ITEMS)
 
 /* How many items can still be added to the stack without overflowing it.  */
-#define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail)
+#define REMAINING_AVAIL_SLOTS ((int) ((fail_stack).size - (fail_stack).avail))
 
 
 /* Pops what PUSH_FAIL_STACK pushes.
@@ -1489,7 +1486,7 @@ typedef union
     {                                                                  \
       if (!set_regs_matched_done)                                      \
        {                                                               \
-         unsigned r;                                                   \
+         Element_count r;                                              \
          set_regs_matched_done = 1;                                    \
          for (r = lowest_active_reg; r <= highest_active_reg; r++)     \
            {                                                           \
@@ -1602,7 +1599,7 @@ static unsigned char reg_unset_dummy;
 
 /* Make sure we have at least N more bytes of space in buffer.  */
 #define GET_BUFFER_SPACE(n)                                            \
-    while (buf_end - bufp->buffer + (n) > bufp->allocated)             \
+    while (buf_end - bufp->buffer + (n) > (ptrdiff_t) bufp->allocated) \
       EXTEND_BUFFER ()
 
 /* Make sure we have one more byte of buffer space and then add C to it.  */
@@ -1950,7 +1947,7 @@ regex_compile (re_char *pattern, int size, reg_syntax_t syntax,
   DEBUG_PRINT1 ("\nCompiling pattern: ");
   if (debug)
     {
-      unsigned debug_count;
+      int debug_count;
 
       for (debug_count = 0; debug_count < size; debug_count++)
         putchar (pattern[debug_count]);
@@ -2836,7 +2833,7 @@ regex_compile (re_char *pattern, int size, reg_syntax_t syntax,
                  else
                    { /* If the upper bound is > 1, we need to insert
                         more at the end of the loop.  */
-                     unsigned nbytes = 10 + (upper_bound > 1) * 10;
+                     Memory_count nbytes = 10 + (upper_bound > 1) * 10;
 
                      GET_BUFFER_SPACE (nbytes);
 
@@ -3290,7 +3287,7 @@ static reg_errcode_t
 compile_range (re_char **p_ptr, re_char *pend, RE_TRANSLATE_TYPE translate,
               reg_syntax_t syntax, unsigned char *buf_end)
 {
-  unsigned this_char;
+  Element_count this_char;
 
   re_char *p = *p_ptr;
   int range_start, range_end;
@@ -4022,7 +4019,7 @@ re_search_2 (struct re_pattern_buffer *bufp, const char *str1,
 
 #ifdef REGEX_BEGLINE_CHECK
   {
-    int i = 0;
+    unsigned long i = 0;
 
     while (i < bufp->used)
       {
@@ -4374,7 +4371,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
 #endif
 #ifdef DEBUG
   static unsigned failure_id;
-  unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0;
+  int nfailure_points_pushed = 0, nfailure_points_popped = 0;
 #endif
 
 #ifdef REL_ALLOC
@@ -4386,11 +4383,11 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
   /* We fill all the registers internally, independent of what we
      return, for use in backreferences.  The number here includes
      an element for register zero.  */
-  unsigned num_regs = bufp->re_nsub + 1;
+  int num_regs = bufp->re_nsub + 1;
 
   /* The currently active registers.  */
-  unsigned lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-  unsigned highest_active_reg = NO_HIGHEST_ACTIVE_REG;
+  int lowest_active_reg = NO_LOWEST_ACTIVE_REG;
+  int highest_active_reg = NO_HIGHEST_ACTIVE_REG;
 
   /* Information on the contents of registers. These are pointers into
      the input strings; they record just what was matched (on this
@@ -5037,7 +5034,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
 
                   if (EVER_MATCHED_SOMETHING (reg_info[*p]))
                    {
-                     unsigned r;
+                     int r;
 
                       EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
 
@@ -5422,7 +5419,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
                actual values.  Otherwise, we will restore only one
                register from the stack, since lowest will == highest in
                `pop_failure_point'.  */
-            unsigned dummy_low_reg, dummy_high_reg;
+            int dummy_low_reg, dummy_high_reg;
             unsigned char *pdummy;
             re_char *sdummy = NULL;
 
@@ -6317,7 +6314,7 @@ regcomp (regex_t *preg, const char *pattern, int cflags)
    We return 0 if we find a match and REG_NOMATCH if not.  */
 
 int
-regexec (const regex_t *preg, const char *string, size_t nmatch,
+regexec (const regex_t *preg, const char *string, Element_count nmatch,
         regmatch_t pmatch[], int eflags)
 {
   int ret;
@@ -6355,7 +6352,7 @@ regexec (const regex_t *preg, const char *string, size_t nmatch,
     {
       if (ret >= 0)
         {
-          unsigned r;
+          Element_count r;
 
           for (r = 0; r < nmatch; r++)
             {
@@ -6377,14 +6374,16 @@ regexec (const regex_t *preg, const char *string, size_t nmatch,
 /* Returns a message corresponding to an error code, ERRCODE, returned
    from either regcomp or regexec.   We don't use PREG here.  */
 
-size_t
-regerror (int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
+Memory_count
+regerror (int errcode, const regex_t *preg, char *errbuf,
+         Memory_count errbuf_size)
 {
   const char *msg;
-  size_t msg_size;
+  Memory_count msg_size;
 
   if (errcode < 0
-      || errcode >= (sizeof (re_error_msgid) / sizeof (re_error_msgid[0])))
+      || (size_t) errcode >= (sizeof (re_error_msgid)
+                             / sizeof (re_error_msgid[0])))
     /* Only error codes returned by the rest of the code should be passed
        to this routine.  If we are given anything else, or if other regex
        code generates an invalid error code, then the program has a bug.
index 5fce8b3..d4c2e5a 100644 (file)
 #define RE_TRANSLATE_TYPE Lisp_Object
 #else
 #define RE_TRANSLATE_TYPE char *
+
+/* type definitions copied from lisp.h */
+#ifndef SIZEOF_EMACS_INT
+# define SIZEOF_EMACS_INT SIZEOF_VOID_P
+#endif
+
+#ifndef EMACS_INT
+# if   SIZEOF_EMACS_INT == SIZEOF_LONG
+#  define EMACS_INT long
+# elif SIZEOF_EMACS_INT == SIZEOF_INT
+#  define EMACS_INT int
+# elif SIZEOF_EMACS_INT == SIZEOF_LONG_LONG
+#  define EMACS_INT long long
+# else
+#  error Unable to determine suitable type for EMACS_INT
+# endif
+#endif
+
+/* Counts of bytes or array elements */
+typedef EMACS_INT Memory_count;
+typedef EMACS_INT Element_count;
+
 #endif /* emacs */
 
 /* POSIX says that <sys/types.h> must be included (by the caller) before
    <regex.h>.  */
 
-
 /* The following bits are used to determine the regexp syntax we
    recognize.  The not-set meaning typically corresponds to the syntax
    used by Emacs (the exception is RE_INTERVAL, made for historical
@@ -338,7 +359,7 @@ struct re_pattern_buffer
   RE_TRANSLATE_TYPE translate;
 
        /* Number of subexpressions found by the compiler.  */
-  size_t re_nsub;
+  Element_count re_nsub;
 
         /* Zero if this pattern cannot match the empty string, one else.
            Well, in truth it's used only in `re_search_2', to see
@@ -387,7 +408,7 @@ typedef int regoff_t;
    regex.texinfo for a full description of what registers match.  */
 struct re_registers
 {
-  unsigned num_regs;
+  int num_regs;
   regoff_t *start;
   regoff_t *end;
 };
@@ -481,11 +502,13 @@ int re_exec (const char *);
 #endif
 
 /* POSIX compatibility.  */
+/* #### Arrgh, not any more.  But I don't have time to deal with this
+   properly, and I don't know if we should care. - sjt */
 int regcomp (regex_t *preg, const char *pattern, int cflags);
-int regexec (const regex_t *preg, const char *string, size_t nmatch,
+int regexec (const regex_t *preg, const char *string, Element_count nmatch,
             regmatch_t pmatch[], int eflags);
-size_t regerror (int errcode, const regex_t *preg, char *errbuf,
-                size_t errbuf_size);
+Memory_count regerror (int errcode, const regex_t *preg, char *errbuf,
+                      Memory_count errbuf_size);
 void regfree (regex_t *preg);
 
 #endif /* INCLUDED_regex_h_ */
index f1ead77..cf1f8f6 100644 (file)
@@ -1,3 +1,11 @@
+2001-04-16  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.0 "Solid Vapor" is released.
+
+2001-04-07  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+       * automated/extent-tests.el: New file.
+
 2001-04-14  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.2.47 "Zephir" is released.
index 282b647..8dc598a 100644 (file)
@@ -1,9 +1,9 @@
 #!/bin/sh
 emacs_is_beta=
 emacs_major_version=21
-emacs_minor_version=2
-emacs_beta_version=47
-xemacs_codename="Zephir"
+emacs_minor_version=4
+emacs_beta_version=0
+xemacs_codename="Solid Vapor"
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=8