
/*  $Header: /cvs/faces/faces/ChangeLog,v 1.29 2002/04/08 15:14:18 devface Exp $
 *
 *  Copyright (C) 1990-2002  Rich Burridge, Sun Microsystems Inc.
 *  All rights reserved.
 *
 *  Permission is given to distribute these sources, as long as the
 *  copyright messages are not removed, and no monies are exchanged.
 *
 *  No responsibility is taken for any errors on inaccuracies inherent
 *  either to the comments or the code of this program, but if reported
 *  to me, then an attempt will be made to fix them.
 */

Faces change history.
=====================

v1.7.7 - 6th March 2002.

  8th April 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Changes to the way that popup dialogs are handled:
      - An error and a warning dialog are now created at startup time.
      - Displaying an error or warning now simply means resetting the
        dialogs label to the new message and showing the dialog.
      - Only allow one error dialog popup and/or one warning dialog is
        displayed at any one time. If there is already one displayed, 
        then the error/warning message goes to stderr.
      - Clicking on the dialog's Ok button now just hides that dialog. 
 
  8th April 2002 - Robert Adams <misterblue@misterblue.com>

    * Removed unneeded files ftom CVS repository. Only the "initial"
      files are now stored there. If you checkout the faces sources
      from CVS, you now always have to do:

      % cd .../faces
      % ./autogen.sh ...
      % gmake

  6th March 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Rest of the fix for redisplaying the login dialog if there was an
      error logging in. Needed to add in checks for login_timerid == 0
      when attempting to display the dialog and the setting of that 
      variable to zero when the timer was removed.

  6th March 2002 - Robert Adams <misterblue@misterblue.com>

    * Removed IMAP and POP error dialog when failed to connect to mail
	  server.  Error display left to calling routine.  This fixed problem
	  of two error dialogs popping up.

	* Changed global variable 'logged_in' to 'have_login_info' and updated
	  the IMAP and POP routines in mon.c to set it to TRUE if there was
	  a successful login.

  5th March 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Partial fix for the need to redisplay the login popup if the remote
      login attempt was a failure. Needs the "logged_in" variable to be
      reset to FALSE if the login was unsuccesful for this to work.

  4th March 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * From: Philippe Dax <dax@inf.enst.fr>
      In init_ws_type() in gtk.c, getting the depth is now done from 
      GDK_ROOT_PARENT() rather than gdk_visual_get_best_depth()

  3rd March 2002 - Robert Adams <Misterblue@misterblue.com>
    * Memory allocation problems with both IMAP and POP fixed (fixes
	  problem with memory faults by POP and errors you never saw
	  in IMAP).

	* Added ID storage for messages.  The IMAP and POP routines now
	  remember an ID for each mail displayed so it will only display
	  faces if not seen before.

  25th February 2002 - Robert Adams <Misterblue@misterblue.com>
    * Would always add faces in IMAP even if MONNEW mode.  Fixed.

	* Repaired problem with new incoming IMAP mail that would cause it to
	  display the wrong face.

  24th February 2002 - Robert Adams <Misterblue@misterblue.com>
    * Fixed problem with date parser to return proper date.

	* Modified IMAP code to properly unfold multiline RFC822 headers.
	  Should make X-Face: header lines work.

  21st February 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * From: Chris Lightfoot <chris@ex-parrot.com>
      Libcompface didn't include the compface function. Have moved the
      variable definitions out into a separate "vars.h" with extern
      definitions for thos variables in compface.h. Also removed definitions 
      for MAIN and INIT.

    * Fixed up Gnu compiler warning in parsedate.c and adjusted code to the
      "one true K&R style".

    * Faces now correctly handles the dismissal (ie. clicking the Ok button)
      of multiple warning and error dialog popups displayed at the same time.
      The GtkWidget * for the dialog is passed into the Ok button signal
      routine as user data.

  17th February 2002 - Robert Adams <Misterblue@misterblue.com>

    * Added date line parsing to POP and IMAP processing so it better
      senses new mail.

v1.7.6 - 11th February 2002.

  11th February 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Changed the gtk_set_window_policy() for the main faces window to
      better handle resizing.

  11th February 2002 - Robert Adams <Misterblue@misterblue.com>

    * The MONNEW for the spool file mode wasn't setting a timer to recheck 
      the mail.

  10th February 2002 - Robert Adams <Misterblue@misterblue.com>

    * Modified IMAP and POP code to only add new faces to the display
	  when in MONNEW mode.

  7th February 2002 - Robert Adams <Misterblue@misterblue.com>

    * Changed the IMAP header fetching to do a single server query
	  to get all of the headers.  Faster and more reliable.

  5th February 2002 - Robert Adams <Misterblue@misterblue.com>

    * Modified IMAP "FETCH" command from using the "BODY.PEEK[HEADER]"
	  to use the "RFC822.HEADER" parameter.  The latter seems to work
	  more reliably with some IMAP servers (the old Sun one, in particular).
	  
  29th January 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Added a ";" to the "crambail:" label in imap.c so that the code would
      compile with the Sun compilers.

  28th January 2002 - Robert Adams <Misterblue@misterblue.com>

    * Added config.sub and config.guess to the faces distribution.

v1.7.5 - 18th January 2002.

  18th January 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Fixed up the Gnu compiler warnings for .../faces/faces/address.y

  15th January 2002 - Rich Burridge <rich.burridge@Sun.COM>

    * Adjusted the timeout for the IMAP/POP from 1 second to 1/2 second.
    * Added copyright messages where needed, and added 2002 to various
      existing copyright messages.
    * Updated the top-level FILES file to describe some of the new files 
      included with this distribution.
    * Added $Header: /cvs/faces/faces/ChangeLog,v 1.29 2002/04/08 15:14:18 devface Exp $ CVS keywords to most faces files.
    * Reformated the POP and IMAP code to be a consistent style with the
      rest of the faces code.

  8th January 2002 - Robert Adams <Misterblue@misterblue.com>

    * Added in IMAP support.

  24th December 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Added FILES, people.tab and machine.tab to the distribution.

    * Adjusted the FILES file to include the POP files.

  24th December 2001 - Hans de Graaff <hans@degraaff.org>

    * When the faces properties sheet is displayed, the various widgets
      reflect the current state.

  22nd December 2001 - Robert Adams <Misterblue@misterblue.com>

    * Various fixups for the POP mail support.

----

v1.7.4 - 10th December 2001.

  10th December 2001 - Robert Adams <Misterblue@misterblue.com>

    * Integration of POP support. Changes to mon.c and various new files:
      face_support.c 
      face_support.h - socket open, close, read, write.
      pop.c
      pop.h          - pop open, close, read, and scan.
      md5c.c
      md5.h          - MD5 calculation routines for pop APOP authorization
                       calculation.

  10th December 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Added faces.sendmail into .../faces/Makefile.am so that it is included
      with the distribution.

  7th December 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Adjusted X resources handling. Faces will now initially try to read 
      resources from whatever the environment variable FACESDEFAULTS
      points to. If that's not set, it will try to read resources from 
      $HOME/.facesdefaults. Adjusted the faces manual pages to reflect this.

    * Clicking on the OK and/or Apply buttons on the properties sheet will
      now write out the current state of faces as a set of resources.

    * It will write resources in a similar way; first trying to write to
      FACESDEFAULTS (if that environment variable is set), otherwise
      to $HOME/.facesdefaults

    * Fixed up the way that "progname" is read in main() in main.c, so that
      we have the correct application name to store in the resources file.

----

v1.7.3 - 7th December 2001.

  7th December 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Added in a create_pop_popup() routine to gtk.c to create the popup
      that will be initially displayed when connecting to a POP mail server.

    * Added in the reading of a "pop" X-type resource that can be used to
      indicate that you wish to connect to a POP server.

  5th December 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Added in an initial version of a properties sheet for faces that will 
      be displayed when the user clicks with the right mouse button in the 
      faces window.

----

v1.7.2 - 3rd December 2001.

  3rd December 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Removed the check for xpm.h from configure.in. The Gtk/Gdk version of
      faces does not use that header file.

    * Fixed up the problem where there was spurious black background in the
      faces image areas. This was not an XPM transparency problem; needed to 
      use GDK_SET instead of GDK_CLEAR in adjust_image() to set the initial 
      color of the image to white.

    * Added two new functions:

      void display_error(char *message);
      void display_warning(char *message);

      to gtk.c to allow popup error and warning messages to be displayed.

    * Faces now correctly raises and/or lowers the faces main window correctly.

  26th November 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Faces now beeps and flashes the open window and the icon for new mail.

    * Removed all references to F_ICON. Removed all code that was #ifdef FIXUP
      where there didn't seem to be an equivalent way to do it in Gtk/Gdk.

    * Removed attempts to try to raise and lower the icon associated with
      the faces window. After talking with Owen Taylor, it seems that most
      modern Unix window managers don't respect the classic icon behaviour 
      anyhow.

----

v1.7.1 - 26th November 2001.

  26th November 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Reinstated the NOPAPER, NOPRINT and NOUSERS XBM files. These are
      special keywords that can be used by the "faces -e" custom scripts.

    * Updated the faces manual pages to reflect the current state of play.

  23rd November 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * The default for the mail spool directory is now /var/spool/mail (the
      RedHat Linux default).

  22nd November 2001 - John Kodis  <kodis@jagunet.com>

    * Autoconf/automake support for the various --enable..., --disable...
      and --with... options to configure for faces.

    * Added a small section to the end of the INSTALL file to list these
      options.

  21st November 2001 - Hans de Graaff <hans@degraaff.org>

    * Fix to the text() routine in gtk.c to get the labels for the icons 
      to display correctly.

----

v1.7.0 - 20th November 2001.

  20th November 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Started to add in support for a Gtk/Gdk version. This is going to 
      be needed in order to provide a popup to get the users IMAP/POP 
      server, username and password preferences. Gtk/Gdk graphics in a
      new .../faces/gtk.c file.

  19th November 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Adjusted the sources to use the autoconf/automake files generated
      by Glade. Merged in configure.in and Makefile.am work from John Kodis.

    * Adjusted the distribution to use a GNU LIBRARY GENERAL PUBLIC LICENSE
      (LGPL) license.

    * Updated the README file to be appropriate for this distribution.


  14th November 2001 - John Kodis  <kodis@jagunet.com>

    * faces/get.c (usage): Eliminate patchlevel.h in favor of the
    VERSION string from config.h; adjust the #include directive
    accordingly.

    * faces/x11.c: Change #include "xpm.h" to #include <X11/xpm.h>,
    for consistency with the other X11 include directives.

    * faces/main.c: move noface.xbm, nomail.xbm, and nothing.xbm from
    the images directory to the faces directory; adjust the #include
    directives accordingly.


  14th November 2001 - Rich Burridge <rich.burridge@Sun.COM>

    * Various changes to the code:
      - Adjusted to a consistent style (K&R). 
      - Removed all tabs.
      - Removed support for X11R3, SunView 3.x, XView and NeWS.
      - Fixed up gcc warning and error messages.
      - Removed all unwanted files from the distribution (especially if there
        are files with similar functionality in the main faces/picons archives:
        http://www.cs.indiana.edu/ftp/faces/
      - Adjusted references to the version number.
      - Adjusted to use ANSI function prototypes. 
      - Ran the code through lint and fixed up most of the problems reported.
      - Removed the (null) save_cmdline() routine from x11.c and where it was
        called from (write_cmdline() in get.c).
      - Removed all P(...) references as we are only using ANSI function 
        prototyping now.
      - Removed externs for standard library functions from the .h and .c files
        and replaced them with the correct #include files.
      - Removed the (null) make_icon() routine in x11.c, and where it was 
        called from.
      - Removed references to the INLINE #ifdef.
      - Removed references to the TOPIX #ifdef.
      - Removed references to the RAND #ifdef.
      - Removed references to the SYSV #ifdef.
      - Removed references to the SYSTYPE_BSD43 #ifdef.
      - Removed references to the USE_BZERO #ifdef.
      - Removed references to the NOUTIME #ifdef.
      - Removed references to the NOMAXPATHLEN #ifdef.
      - Removed references to the NOGETHOSTNAME #ifdef.
      - Removed references to the SGIDEF and SGILIBS #ifdef's.
      - Removed references to the USE_GETWD #ifdef.
      - Removed references to the HASPOLL, NOSELECT and SELTYPE #ifdef's.
      - Removed all machine specific #ifdef's (hpux, ultrix, mips ...).
      - Removed the gr_type enum and all references to it.
      - Removed the not_flipped argument to the load_icon() routine in x11.c
      - Removed SunView, XView and NeWS specific todo entries from the TODO 
        file. Same thing for entries refering to Blit ikon or Sun icon 
        formatted files.
      - Removed all references to SUNTYPE and BLITTYPE. X11TYPE becomes XBMTYPE.
        Also fixed up the comment for the make_iconame() function in main.c
      - Removed references to NEWSTYPE, get_news_icon(), add_ps_rec(), psinfo 
        and psrecs (NeWS icons are no longer supported).
      - Adjusted all index and rindex references to use strchr and strrchr and
        removed all references to the NOINDEX #ifdef.
      - Removed the get_display() function in main.c and merged the -d command
        line option extraction back into the get_options() function in get.c
        (as there are no longer SunView and XView version of faces with complex
        command line arguments).
      - Surronded all the .h files with #ifdef's to prevent definitions being 
        reclared twice. Added 'extern "C" { }' for .h files that defined 
        function prototypes.
      - Fixed up all the copyright messages.
      - Removed the -Wp, -WP and -Wi command line options from get_options() in
        get.c (which were used by the SunView and NeWS versions). Removed these
        entries from the manual pages.
      - Tidied up the machine.tab and people.tab files to just include examples
        of aliasing my machines/names.
      - Removed the filters directory from the distribution. Only XPM and XBM 
        file formats are supported now, and Steve Kinzler provides a set of 
        scripts for conversion to/from these formats at:
        ftp://ftp.cs.indiana.edu/pub/faces/picons/src/
      - Removed the scripts directory from the distribution. There is an archive
        of scripts for faces at:
        ftp://ftp.cs.indiana.edu/pub/faces/picons/src/
        The latest versions can always be found there.
      - Removed the facedir directory from the distribution. There are extensive
        archives of faces/picons at:
        ftp://ftp.cs.indiana.edu/pub/faces/picons/db/
      - Removed the xface directory from the distribution. This directory
        contained sample XView code for integrating X-Face: support into a
        mailtool. Interested parties can look at the faces code should they
        need to do something similar.
      - Removed the "make tables" entry from Makefile.dist. The people.tab and
        machine.tab files are now just examples of the way that these alias 
        files look.
      - Moved all the .xbm files into an "images" directory.
      - Removed the hard-wired "monitor the printer" and "monitor users" code
        from faces (including the -H and -P command line options). This kind
        of monitoring can be done with the generic "faces -e <command>"
        functionality. This also removes the PLP #ifdef, images/nopaper.xbm
        images/noprint.xbm and images/nousers.xbm.
      - Removed automatic face update support. This includes the face_update
        script, the face_update.1 man pages and the code in faces that dealt
        with the -U option.

    * Got the X11 version working under Solaris 2.x.

    * Added in support for XPM files (a standard format of the picons database).

    * From Craig Kapfer <ckapfer@pacbell.net>
      Changed the default MANSECT from "l" to "1".

    * Fixed a SIGSEGV crasher in:
      0x17dec in searchfacedb (b=0xffbeef18 "", facepath=0x363f4, 
        community=0x212f0 "", user=0x36ba8 "postmaster") at main.c:784
        784	          *s = '.';
      when faces was compiled with gcc. Looks like code such as:
                s = ".";
      allocates a read-only string. Changed this to:
                s = strdup(".");

----

[All previous changes were by Rich Burridge <rich.burridge@Sun.COM>]

v1.6 - patchlevel 1 - 25th November 1991.

- Various minor fixups because of the rehash of the face icon lookup
  scheme introduced in v1.6.0:

  * The misc. directory under facedir (in the source distribution)
    needs to be renamed to MISC. Fixups in MANIFEST and FILES.

  * Adjust the manual pages to use MISC instead of misc. in the FACE
    FORMATS section.

  * Small tweaks to deepen, faces, facesall and mailqto.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  The nothing.xbm file has some bits set.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  The news faces database has "MISC/unknown/face.xbm", a default blank
  icon for newsgroups without icons.  It also has,
  "misc/unknown/face.xbm", a special default icon for newsgroups in the
  misc.* heirarchy.  But MISC/unknown showed up with the misc/unknown
  icon when viewed with facesall, ie via a faces -e script with output
  containing a line with domain = MISC and user = unknown.

----

v1.6 - patchlevel 0 - 19th November 1991.

- From Rex Monty Di Bona <rex@cs.su.oz.au>
  When we looked at the faces program, we decided that the directory
  searching was bogus. We already had a complete hierarchy from those
  good old V8 days that was addressed as
  domain/domain/domain/domain/user/48x48x1. We also changed the lookup
  search to be user then community then facepath,
  ie...
 
  for (iu = 0; iuser[iu] != NULL; iu++)
      for (ic = 0; icomm[ic] != NULL; ic++)
        for (id = 0; facepath[id] != NULL; id++)
        {
 
  which is what we believe is a closer reflection of how a 'normal
  person' would look things up. This reduces the directory search at
  each level, as we now have smaller directories.

  It also, we believe, makes it easier to add new users/domains, and
  to have links (oz is a link to au/oz for historical reasons :-)

  We also search 'backwards' in the hierarchy, so the more exact match
  is found first.

  For those concerned with efficiency, the directories that are used
  most often, ie, the local machine, would be kept in 'cache' by the
  machine.  Since the directories are now smaller, the directory search
  should be performed faster too.

  [Beware!! Rex has changed the "misc." directory to "MISC" - Rich.]

  Note that faces no longer chdir's to the top of each facepath element
  before it does it's searching. Note also that the face image (because
  of the indetermanent number of directories making up the machine name)
  can no longer be in an ordinary file. It's now always one of the four
  formats in the user name directory.

  Manual pages have been updated to reflect these changes.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  The face_update script and various scripts in the scripts directory
  has been adjusted for this new format. The various faces databases
  have been adjusted to.

- From Rex Monty Di Bona <rex@cs.su.oz.au>
  Changes to get the X11 version of faces running on a MIPS machine.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Various small changes to the files in the filters and scripts
  directories.

  Four new files:

  nothing.xbm           - a 64x64 XBM file with nothing in it.
  scripts/deepen        - convert faces database from old to new format.
  scripts/mailqto       - summarize hosts for which there is
                          deferred mail.
  scripts/mailqto.faces - faces script to monitor the hosts for
                          which there is deferred mail.

- From Harald Vogt <harald@cs.ruu.nl>
  Changes in do_key() to get buttonclear1 to work properly with 
  faces -a mode on our m68 SYSV based HP9000/{34}00 workstations.

----

v1.5 - patchlevel 7 - 24th October 1991.

- Adjustments needed to get the X11 and XView versions working under
  Suns' SVR4 O/S. For future reference, the following definitions
  had to be uncommented (and set appropriately) in the Makefile, to
  get the X11 version of faces working:

  HASPOLL, NOGETHOSTNAME, NOINDEX, NOSELECT, SVR4LIBS, SYSV,
  X11INCDIR and X11LIBDIR.

- From Jim R. Oldroyd <jr@sequoia.com>
  Various changes to get faces working on two SysV machines:

  * Added in a new Makefile definition TOPIX, which should be
    uncommented if compiling faces on Sequoia's fault-tolerant,
    multi-processor operating system.

  * Definition of which compiler and compiler flags not being
    passed to makes in subdirectories.

  * MAXPATHLEN used, but not defined.  (This is in none of the headers
    in our /usr/include/*.h /usr/include/sys/*.h

- From Jim R. Oldroyd <jr@sequoia.com>
  From Stephen Martin <mauxci!lsican!smartin@apple.com>
  We noticed that if you had mail, and read it and deleted it
  all with ELM, the faces would not revert to "No mail".

  It turns out that this is due to the fact that ELM doesn't
  delete the spool file - it leaves it empty.  But, ELM also
  resets the mail spool file's utime when it exits.  You were
  testing the st_mtime and doing nothing if there was no change.

  Our quick fix was to change the test to whether or not the
  size has changed.  (I know, you could delete mail, and get new,
  and the size doesn't change, but this is unlikely). A better fix
  would be neater...

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Patch for faces/filters/fs2ikon.  "pbmpaste" was eliminated in the
  latest release of the pbmplus filters.  This new version should be
  backwards compatible.

----

v1.5 - patchlevel 6 - 11th September 1991.

- Added a new subdirectory to the faces distribution called xface.
  There are three files in this directory (xface.c, xface.h and
  xface_data.h). These files should be all you need to get X-Face:
  support added to a graphical mailtool. There are two hooks into
  the mailtool; one to create the glyph for the X-Face: the other to
  check the current mail message an either uncompress the X-Face: and
  display the image, or clear the glyph area. The hooks are for one
  specific case of mailtool integration; from the comments it should
  be possible to determine what is needed in each individual case.

  Note that the copyright message for these three files is different
  to the copyright message for the rest of the faces distribution. It
  should allow easy inclusion into commercial packages.

  The MANIFEST, FILES, TODO and Makefile.dist files have been updated.

----

v1.5 - patchlevel 5 - 5th September 1991.

- Performance improvement. If the host/user file found, is a regular
  file, then a check is made on that file for all valid supported
  formats (not just the old Blit ikon format). If the whole faces
  database[s] are arranged in this format, then there is a small
  increase in performance.

- From Dan Nydick <nydick@pookie.psc.edu>
  When you've configured faces to pop its window to the top of
  the stack when mail arrives, I'd like it to pop itself to the
  bottom when all the mail is gone (ie: when the "no mail" icon
  is displayed).

  [Added in via another X resource: "faces.lower", which if set to
   true will do the requested lowering of the faces window. Also
   check for "set lower" in the users' ~/.facerc file. Updated the
   manual pages to reflect these changes.]

- From Kate Morris <morris@carcoar.Stanford.EDU>
  Included a set of diffs to get faces running on an IBM RT PC
  running AOS4.3 (yet another 4.3 clone).

----

v1.5 - patchlevel 4 - 11th July 1991.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Removed the "ftp" clause from faces/filters/Makefile

- From Michael Urban <urban%hercules@rand.org>
  The call to h_to_c() in do_users() in mon.c, should have a first
  argument of rhostname rather than "" (the local host).

- From Michael Urban <urban%hercules@rand.org>
  In xview.c, changed hostname to rhostname, for selecting the host
  to monitor.

- From Mike Khaw <khaw@parcplace.com>
  From Ken Wood <kwood@adl.austek.oz.au>
  Both the man page and the usage message say "-M", but the code 
  actually still wants "-MH".

- From Ken Wood <kwood@adl.austek.oz.au>
  The face directory option parsing can't cope with a trailing null
  directory. i.e. when faces is run as follows, it correctly
  substitutes the compiled-in directory for the null directory

    xfaces -f :
    xfaces -f :$HOME/lib/faces
 
  but this doesn't work
 
    xfaces -f $HOME/lib/faces:

- Added in another definition to the Makefile.dist file:

  HASPOLL       = -DHASPOLL

  which should be uncommented if you have the poll(2) system call
  (rather than select(2)). You will also need to uncomment the
  NOSELECT definition.

  This definition is needed for SVR4, and some variations of
  System V Release 3, which don't have TCP/IP support.

- From Mark Shand <shand@prl.dec.com>
  Faces is ignoring the -d argument completely--a bug.
  In fact, looking at the source (x11.c:init_graphics), faces opens
  the display _BEFORE_ it processes its command line arguments (which
  happens in x11.c:make_frame).

- From Brent Browning <Brent.Browning@Eng.Sun.COM>
  With the XView version of faces, if the icon is covered, thereby
  damaging it, the icons is never repainted.

- The following TODO item has been removed, because this has been
  working in faces, since the inclusion of is822header() and
  associated routines in v1.4.13 by Mark Shand.

    *   From John Mackin <john@syd.dit.csiro.au>
        You test if the beginning of the line is identically equal to
        "X-Face:" or "From:". This is contrary to RFC822, which
        specifies

        (1) that headers should be recognised in either case (so
            "X-Face:" and "X-FACE:" and "x-FaCe:" are all equivalent).
        (2) that there may be linear white space (spaces or tabs)
            between the field-name and the colon (so "FRoM  : Foo Bar
            <foo@bar>" should work).

- From Amir J. Katz <uunet!sn4idc8!amirk@munnari.oz.au>
  I think that it should be mentioned in the faces man page that every
  xterm started under X will show on 'xfaces -h localhost' as a new
  user, unless you start xterm with the '-ut' option. I know it's an
  RTFM issue but xterm man page is so looooong, so I am sure most
  people fall asleep long before they reach the '-ut' option...

- The width and height of the SunView faces frame were incorrect.

- The five "standard" icons used with faces (NOFACE, NOMAIL, NOPAPER,
  NOPRINT, NOUSERS) were not being correctly displayed with the
  SunView version.

- When the -w and/or -h options were used with the SunView version,
  the size of the icon created is incorrect.

- If faces if monitoring a printer (using lpq), and the printer is
  unknown, faces will now exit with an error message, rather than
  just display the "no jobs" icon.

- The XView version of faces now correctly saves the user supplied
  command line options, when the user does a "Save workspace".

- The following entry has been removed from the TODO file because
  this is already implemented, albeit, the multiple faces
  hierarchies are specified by a colon separated list with the -f
  option.

    *   From Pat Lashley <patl@Sun.COM>
        From Lindsay F. Marshall <Lindsay.Marshall@newcastle.ac.uk>
    Multiple face directory hierarchies. I.e:
  `-f $HOME/facedir -f /import/group/facedir -f /import/global/facedir'
    The order of specification would indicate the search order.

- From John Mackin <john@syd.dit.csiro.au>
  It should be made more explicit in the manual page that in the
  previous version of faces, a -f option _added_ the directory to
  the face search path, so that if you did -f you got those faces
  in addition to the system default faces, whereas now -f
  _supersedes_ the system faces and you must include a trailing
  colon to have them searched.

- The following entry has been removed from the TODO file. This
  functionality was included in with the previous patch:

  *   From Lindsay F. Marshall <Lindsay.Marshall@newcastle.ac.uk>
  Would it be possible to have a define (or option) that allowed us to
  set the X title/name attributes. I want the program to be called
  "Faces" in my twm iconManager and it is currently called "faces".
  I haven't found any way of changing it other than by hacking the code.

- From Ken Wood <kwood@adl.austek.oz.au>
  Various small changes to get faces working on an Encore Multimax;
  includes a new definition to the Makefile.dist file:

  USE_GETWD      = -DUSE_GETWD

  which should be uncommented if your system doesn't have the
  getcwd() library call.

----

v1.5 - patchlevel 3 - 19th June 1991.

- Added in ANSI C function prototypes for each faces routine, and
  compiled with Sun's ANSI C compiler, fixing up inconsistencies.

- From Alan Skea <skea@vast.eecs.unsw.oz.au>
  We are running SunOS 4.0.3c on most of our machines and while we
  have the utime() library call, we do not have a <utime.h>.  If I
  compile with NOUTIME defined then the utime structure that is
  declared in faces.h fails because type time_t is not declared.
  Needs an inclusion of <sys/types.h> in faces.h

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Had to comment out the external declaration for memset() in faces.h,
  to get it to compile on Ultrix 4.1.

- From Tim Chown <T.J.Chown@ecs.southampton.ac.uk>
  If the mail spool shrinks (ie. the user deletes mail) then the
  window should adjust;  the -MH option doesn't seem to work for
  me in this respect.  Using -MH is a little misleading as I use
  Elm and that can shrink the mail spool file too, so perhaps
  the man page (and option name) should reflect this.

  [Command line option has been changed from -MH to -M, and the
   manual pages adjusted to reflect this - Rich.]

- From Paolo Petta <ai-vie!oefai!paolo@relay.EU.net>
  Elm is our mailer of choice: At least on our system it has the
  peculiarity of not erasing the system mailbox file
  (/usr/spool/mail/...) but simply truncating the file to zero length.
  Faces is not correctly recognising this.

- From Tim Chown <T.J.Chown@ecs.southampton.ac.uk>
  The remote host monitoring wouldn't work either.   This needed a
  different variable rhostname to be used with -H rather than hostname
  which was getting overwritten (so that localhost was always seen!).

  From Dirk Craeynest <dirk@cs.kuleuven.ac.be>
  `faces -H hostname' always gives information about users on the
  local host.

- From Tim Chown <T.J.Chown@ecs.southampton.ac.uk>
  The addition of the option -l window_label is desirable;  the default
  label is "faces" which is a bit nondescript.

- From Tim Chown <T.J.Chown@ecs.southampton.ac.uk>
  Don't take sounds for mail when first reading in the mail spool
  file. Just play them for new mail.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  The following TODO entry (#1) is already implemented. I've adjusted
  my faces front-end script to correctly handle arguments with white
  space.

      As it is now, there's no way to specify arguments for "-e"
      application scripts. If we ever want to abstract things like
      the -H function out of faces itself and into a script, we'll
      want something like this. I can think of two possible solutions
      to the problem, both extending the faces command line syntax:

      1) % faces -e "who.faces iuvax"

      2) % faces -e who.faces iuvax \;              ala find -exec

  [scripts/README.kinzler, and scripts/newscheck.faces also updated.]

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Hostnames that begin with "misc." (eg, "misc.religion.talk"
  in the news faces database) will end up with the misc./unknown icon
  instead of the proper icon.

  There may be other instances in the code of a similar bug (ie, where
  strcmp should be used instead of strncmp/EQUAL).

- From Dave Cohrs <dave@cs.wisc.edu>
  If you specify your beeps and flashes in a resource database, the
  .mailrc reader shouldn't zero them out.

----

v1.5 - patchlevel 2 - 6th May 1991.

- From Dick Keene <rkeene@sunrock.East.Sun.COM>

  * I had to comment out line 170 in faces.h to compile for xview.
    It complained of a re-declaration of endpwent().

  * New filter program called filters/vpxtoicon.c. It converts 8 bit
    snapshots from the Sun video pix board to Sun icons. It does a
    scale, and a histogram equalization.  Then you can convert the
    icon to face format with icon2ikon and compface.

    [I've added this to the filters directory, but have not added it
     to the "all" definition in the Makefile as it requires Sun specific
     include files and libraries to compile. If you are on a Sun, and
     you want to build it, then you should do a "make vpxtoicon"].

- From John Mackin <john@syd.dit.csiro.au>
  New portable and correct version of the faces.sendmail script, which
  only uses one invocation of sed.

- From Sjoerd Mullender <sjoerd@cwi.nl>
  I have compiled faces 1.5.1 on some of our systems and I came across
  a few problems.

  * Added #include "faces.h" to address.y so that realloc() would be
    declared.

  * Removed the declaration of sprintf() from faces.h, because that
    is alreade done in stdio.h, and because the definitions clashed on
    one of our systems.

  * In mon.c, changed the declarations of two chars to ints.  One of
    them is essential, because it is compared to EOF.

  * I changed the declaration of reply in do_prog() in mon.c to char *,
    because it is assigned the result of fgets.

  * Apart from this, I also had to add -Umips and -lsun -lc_s in order
    to compile faces successfully on a Silicon Graphics system.  These
    extra cpp flags and libraries could be put in extra variables in
    the Makefile.dist.

- From Mark Shand <shand@prl.dec.com>
  Adjustments to the TODO file.

  * add bullet-proofing of uncompface().

  * remove TODO for RFC822 parsing (included recently by John Mackin).

- From Ignatios Souvatzis <u502sou@mpirbn.mpifr-bonn.mpg.de>
  Various small changes needed for Convex 8.1.

  * Added a BZERO definition to the Makefile.dist file, for people
    without memset().

  * Changed strchr in main.c and rec.c to index (this should be handled
    by the NOINDEX definition in Makefile.dist)

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>

  * When compiling on a DECStation under Ultrix 4.0, I needed to add an
    "#include <ctype.h>" line to mon.c and x11.c (and xview.c probably,
    if I'd used it).

  * A small bug in compface/Makefile.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>

  * I found a couple of bugs in faces v1.5.1's display when it's
    running a -e script and the window is iconified.

  * I've revised faces/scripts to make use of the new ability to
    specify iconified window displays for -e scripts. There are two
    new faces scripts:

    - newscheck.faces
    - newsfrom.faces

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Implemented John's suggestion:

  > From John Mackin <john@syd.dit.csiro.au>
  > Another performance improvement:
  > Another kludge which could cut down the namei overhead substantially
  > is to chdir() to the top of each facepath element and do the
  > searching of that part of the tree with relative pathnames from
  > there, rather than using absolute pathnames all the way from the
  > root each time.  chdir()'ing is often very bad practice, but in an
  > application that can't possibly become interactive we don't have to
  > be concerned.

  The chdir() is only temporary -- in effect during the search
  subroutine, so relative pathnames for -e script locations and
  facepath elements and such still work as before.  I noted a 25%
  performance increase on a test here.  Your mileage may vary --
  we've got a convoluted path of symlinks to get to /usr/local/faces
  on our system.

- From Victor A. Riley <var@iris.brown.edu>
  Saves the first encounter of a misc./unknown face, then continues
  looking for another face match.  This is useful when you have
  several face databases.  For this to work properly, you should have
  the misc. faces in the sample facedir installed in the same location
  as your local face database, for instance in /usr/local/faces.  If
  you have the logos face database, just move the logos/misc. directory
  up one level in the hierarchy.

  As a future bug fix we can modify the Makefile.dist file so that it
  does this when you do a 'make tables'.

----

v1.5 - patchlevel 1 - 18th April 1991.

- From Cameron Simpson <cameron@spectrum.cs.unsw.oz.au>
  Part15 contains a duplicate of addr.h. It's identical to the
  addr.h extracted by part4.

- From Cameron Simpson <cameron@spectrum.cs.unsw.oz.au>
  Added a NOUTIME definition to the Makefile.dist, for those systems
  that don't have a utime() call. Adjusted mon.c and faces.h
  accordingly.

- From Mike Khaw <khaw@parcplace.com>
  There were 2 uses of do_audio in xview.c that weren't wrapped in
  #ifdef AUDIO_SUPPORT which caused 'make xview' to abort on my Sun3.

- From Glenn Satchell <glenn@sybil.Aus.Sun.COM>
  Modified the faces.sendmail script to use two invocations of sed,
  which is much more portable than the echo -n version.

- Between v1.4.14 and v1.5.0, certain character declarations that were
  previously defined as:

  char variable[MAXLINE] ;

  were changed to

  char *variable ;

  Fixed up two occurances where the declaraction and an extern for the
  declaration didn't match.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  From Mark Shand <shand@prl.dec.com>
  In get_options, char *next is not initialized prior to calling
    read_str(&next, ...

- From Victor A. Riley <var@iris.brown.edu>
  From Michael Urban <urban%hercules@rand.org>
  From John Mackin <john@syd.dit.csiro.au>
  The uncompface() routine can scribble all over RAM in certain
  circumstances(). This is at about line 72 in compface/gen.c:
  Illegal array index 2304 into variable F. Maximum array index is 2303.

  [Problem fixed by James Ashton:
   The array indices incorrectly range from 1 to WIDTH instead of
   from 0 to WIDTH-1 and the same for HEIGHT].

- From Ignatios Souvatzis <u502sou@mpirbn.mpifr-bonn.mpg.de>
  Faces crashes when using the -e option with a wrong parameter
  (nonexistent script etc.)

  [I've put a bandaid on this for now, checking for EOF and a reply of
   zero, on the first record returned from the popen() pipe. This needs
   to be improved when I have more time - Rich].

----

v1.5 - patchlevel 0 - 15th April 1991.

- From David Purdue <davidp@kau1.kodak.com>
  From Mike Khaw <khaw@parcplace.com>
  The window and icon positioning broke with patch #14 for the
  XView version.

- From Ignatios Souvatzis <u502sou@mpirbn.mpifr-bonn.mpg.de>
  From Mark Shand <shand@prl.dec.com>
  raise() is already declared on some systems. All occurances of
  raise() in faces have been replaced with raisewindow().

- From Lindsay F. Marshall <Lindsay.Marshall%newcastle.ac.uk@munnari.oz>
  My faces window beeps and raises itself for no apparent reason.

  show_display() was being called in one place in do_mail() even though
  there wasn't any new mail. This was causing the window to be raised
  and the bell sounded. show_display() now takes a parameter which
  indicates whether the display should just be drawn, or whether the
  window should raise and beep.

- Added in audio capabilities see the README and manual pages for more
  details.

- Added Saber entry to Makefile.dist and ran the X11 (Xlib) version of
  faces through Saber.

- From John Mackin <john@syd.dit.csiro.au>
  The "-b icon_file" option doesn't work. It still comes up with the
  default background.

- From Philip Gladstone <philip@bigben.dle.dg.com>
  In the top level Makefile, you allow specification of FMONTYPE.
  The code in main.c checks for FBMONTYPE. Also the definition of
  FMONTYPE=0 and =1 are reversed.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Added all the new filters and scripts from Steve to the faces
  distribution. Created a new scripts directory, and moved mailq,
  lpqall and lpqall.sh across to it. See the README.kinzler files
  in the scripts and filters sub-directories for more details.

- From John Mackin <john@syd.dit.csiro.au>
  If the X11R3 definition is uncommented in the Makefile, then there
  would be a syntax error for the font definition in x11.c.

- Added Xlib and XView error handlers to the XView version, to try
  to track down random cases of:

  X Error of failed request:
  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  53 (X_CreatePixmap)
  Serial number of failed request:  4518
  Current serial number in output stream:  4530

- From Alan Skea <skea@prl.dec.com>
  From Mark Shand <shand@prl.dec.com>
  If you are running faces with the -a option, and mail arrived from
  x@y with an X-Face: line then another article arrives from x@y with
  a different X-Face: line, then the second face is not shown; just
  the count of the first face get's incremented.

- Adjust MANIFEST, FILES and Makefile.dist for new v1.5 distribution.
  Adjusted shar file distribution into fifteen parts, each less than
  55Kbytes.

- Started to remove all reference to REVORDER, and replace routines
  that depend upon byte order with byte independent code. Changed the
  five no*.icon files to XBM format. These now use a routine called
  load_data() to run them into the correct image format (depending upon
  graphics version. Updated MANIFEST, FILES and Makefile.dist

- Included mention of Steve Kinzlers' anon ftp service for faces,
  available on iuvax.cs.indiana.edu, in the README file.

- Created a new file called Faces.ad which gives all the X resource
  application defaults for faces.

- From Jim Rees <rees@citi.umich.edu>
  It would be nice if the compression and uncompression routines were
  separated into different source files, so that if I want to include
  just the uncompression in my mailer, I don't have to include the
  compression stuff too.

  I took the easy way out here; cmain.c and uncmain.c can mostly be
  combined. Perhaps at a later date.

- From Eric Negaard <negaard@aerospace.aero.org>
  I have been working on a user program for use with faces (to display
  mail in a POP mailbox) and I noticed what I think is a bug.  The code
  in do_prog does not update the icon image, so the faces icon always
  displays the NOMAIL icon.

  My fix was to change the

    add_face(DISP_BOTH, ...)

  to

    add_face(DISP_ALL, ...).

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  It'd be nice if there were a way to specify the icon and information
  displayed when a "faces -e" window is in icon form. As it is now, it
  always gives the NOMAIL icon.

  A simple extension to the format would allow an optional
  specification line before the "Cols=X Rows=X" line that would be for
  the icon window.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Allow variable width columns instead of fixed width columns in the
  faces -e format, using a separator character such as ascii 036
  (record separator), or perhaps something more readable like TAB
  (preferred). Domain names can easily get over 20 characters -- user
  names sometimes too.

- From John Mackin <john@syd.dit.csiro.au>
  Fixed up init_font() in x11.c and xview.c to correctly work with the
  -fn command line option.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  From John Mackin <john@syd.dit.csiro.au>
  The IconPositionHint in make_frame() in x11.c should only be set if
  an icon geometry or -WP command line option has been given.

- From Philippe-Andre Prindeville <philipp@inf.enst.fr>
  Adjusted faces.sendmail so that it will add in the X-Face: rather
  than have it in the user's ~/.face file. This means the same ~/.face
  can be correctly used by the Elm mailer without any changes.

- From John Mackin <john@syd.dit.csiro.au>
  Added in routines to correctly parse RFC822 mail headers. There are
  two new files (addr.h and address.y). Makefile.dist, MANIFEST, FILES
  and README have been updated.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  New versions of some of the faces-e scripts in the scripts
  sub-directory, to work with the new TAB field separator. New script
  called addxface. Various script name changes to avoid confusion.
  MANIFEST, FILES and Makefile.dist updated.

- From John Mackin <john@syd.dit.csiro.au>
  Compface and uncompface did not correctly handle input from standard
  input and output to standard output.

----

v1.4 - patchlevel 14 - 2nd April 1991.

- From Philip Gladstone <philip@bigben.dle.dg.com>
  Better handling of X11 events -- fixes a number of bugs whereby
  things didn't get drawn.

- From Philip Gladstone <philip@bigben.dle.dg.com>
  Fits text better into the icon even if proportional spaced font.

- From Philip Gladstone <philip@bigben.dle.dg.com>
  The option of displaying the hostname rather than the username if
  the icon represents the username rather than the hostname. This is
  controled by the X resource "faces.displayHostname", and defaults
  to false.

- From Philip Gladstone <philip@bigben.dle.dg.com>
  Fixes some bug (I can't recall what) attached to doing NIS lookups
  when a failing NIS lookup turns into a domain name lookup.

- From Philip Gladstone <philip@bigben.dle.dg.com>
  Fixes a problem with utime system call not taking two longs!

- From Philip Gladstone <philip@bigben.dle.dg.com>
  Fixes a problem if you change the width across to be not 10.

- Added a Makefile.dist file to the faces distribution. This will
  replace the Makefile, and allows further changes to this file,
  without blowing the users changes out of the water. Patching the
  Makefile should be simpler now. The MANIFEST and FILES files have
  been updated.

- From Chris Steinbroner <hesh@lll-crg.llnl.gov>
  From Philip Colmer <pcolmer@acorn.co.uk>
  Loading xfaces fails because XSetWMProtocols() does not exist on my
  system. It's an X11R4 routine. A new definition (X11R3) has been
  added to the Makefile.dist file. This needs to be uncommented if
  you are running the X11 (Xlib) version under MIT X11R3.

- From John B. Melby <melby@daffy.yk.fujitsu.co.jp>
  If one creates a directory "edu" in the faces directory, it does
  not have any effect on a domain address in which EDU is capitalized.
  It seems to me that "faces" should not pay any attention to the
  case of a domain name (since case is only supposed to be significant
  in the user name).

  From John Mackin <john@syd.dit.csiro.au>
  The comparison when looking up the domain in the faces
  directory appears to be case-sensitive.  This is wrong per
  RFC822, domain-parts are case-insensitive.  Both the directory
  name and the host name from the mail item should be downcased
  before comparison.

  From Peter Gray <pdg@draci.cs.uow.oz.au>
  When comparing the domain of the mail with the machine.tab entries
  strcasecmp should be used since mail addresses are case invarient.

  From u502sou@mpirbn.mpifr-bonn.mpg.de (Ignatios Souvatzis)
  As far as I remember, RFC822 states that 'domains' and 'mailboxes'
  ignore case. I frequently get mail with domain or subdomain names
  uppercase or capitalized. 'gethostname' on the DECstations of the
  university's radio astronomy institute returns upper case names
  (probably set up this way to get it compatible to DECnet
  conventions, they talk DECnet to the VAXes...). [Patch included].

- From Ken Wood <kwood@adl.austek.oz.au>
  Details of how to generate X-Face: headers from within GNU Emacs.
  Added to the README file.

- Converted the mini faces database supplied with the faces
  distribution to face.xbm format. MANIFEST and FILES files updated.

- Reversed the order of the patch entry descriptions in the CHANGES
  file, so the latest entry is at the top.

- From Steve Kinzler <kinzler@iuvax.cs.indiana.edu>
  Added a variety of scripts and filters to the faces distribution.
  These are:

  ikon2xbm, xbm2ikon  bitmaps filters for Blit ikon and X11 bitmaps

  lpqall.sh, lpqall   customized "faces -e" script for monitoring all
                      printers

  mailq               customized "faces -e" script for monitoring the
                      system sendmail queue

- The faces mailing list is now mentioned in the README file.

- The resource handling that was in x11.c, has been abstracted out
  into main.c. The XView version now also reads the X resources.

- From Michael Urban <urban%hercules@rand.org>
  Inclusion of support for the RAND mailer in mon.c, which insists on
  four ^A characters to mark the beginning and end of messages. These
  mods are included via an #ifdef RAND, with a new entry in the
  Makefile.dist file.

- From Robert Adams <adams@littlei.intel.com>
  Details of how to use the X-Face: lines with SVR4 have been added
  to the README file.

----

v1.4 - patchlevel 13 - 13th March 1991.

- From James Ashton <jaa@cs.su.oz.au>
  From Mark Shand <shand@prl.dec.com>
  Fixed a corruption problem with the [un]compface routines.

- From Dave Cohrs <dave@cs.wisc.edu>
  Changed some #ifndef mips to #if !defined(mips) || defined(ultrix)
  because a DECstation defines mips as its processor type.

- From Dave Cohrs <dave@cs.wisc.edu>
  Added a new option to set the X11 font name, -fn.  Also, added
  support internally to handle fonts other than the standard 6x12
  font by removing inline constants and using font parameters instead.

- From Dave Cohrs <dave@cs.wisc.edu>
  Added support for the standard X11 resources that correspond to the
  command line options. I could have gone further with this, but it
  gets tiring after a while. I wouldn't want to do much more without
  changing it into a toolkit program, but that's just too much work!
 
- From Dave Cohrs <dave@cs.wisc.edu>
  Added the ability to specify the 4 .facesrc parameters via the X11
  resource file -- X11 users are used to everything being in the X11
  resources, so this gives them what they expect.
            
- From Dave Cohrs <dave@cs.wisc.edu>
  Allow X11 users to make an X11 bitmap rather than a Sun icon for
  the background pixmap.
            
- From Dave Cohrs <dave@cs.wisc.edu>
  Added an XFlush() to the bell code, to make the beeps intelligible,
  and changed an XSync() to an XFlush() -- the former caused the
  window to hang until an event occured -- probably a buffering
  problem.

- From Dave Cohrs <dave@cs.wisc.edu>
  Removed some stuff for displaying the username/timestamp text for
  X11. It made the display look really bad for a color monitor.

- From Dave Cohrs <dave@cs.wisc.edu>
  Updated the man page to mention all of the X options and resources.

- From Dave Cohrs <dave@cs.wisc.edu>
  If the "X-Face: " is the last header line, it doesn't get displayed,
  because the final processing never gets done to set "x_face".

- From Dave Cohrs <dave@cs.wisc.edu>
  In the X11 event processing, KeyPress gets sent for real key presses
  (e.g 'q') and for other presses, like <Shift>.  The latter doesn't
  clear out the lookup string, so you need to do so manually.
  Otherwise, if you type <DEL> to clear the window, you can press
  <Shift> or <Control> or any such key accidentally later on, and it
  clears the window.

- From Mark Shand <shand@prl.dec.com>
  Changes to fgetheader function which returns a folded header line
  (in the RFC822 sense), and associated to the "line" variable which
  must now accomodate arbitrarily long input lines. Also deal with
  space between the header-field and the :

----

v1.4 - patchlevel 12 - 17th January 1991.

- The Del key was being incorrectly recognised in the XView version.

- From Craig Bishop <csb@gdwb.oz.au>
  If you are monitoring "New" mail after clicking on the Apply
  button from the property sheet, with the XView version, then the
  faces window should be cleared first.

- From Craig Bishop <csb@gdwb.oz.au>
  If you were monitoring new mail, mail messages with X-Face: lines
  were being incorrectly extracted if the X-Face: line(s) were the
  last header field, now that faces only looks for X-Face: lines in
  the mail header.

- Fixed up the X11 and XView drivers so there is a definite pause
  between each beep and flash when new mail arrives.

- If the hostname to be monitored is an empty string, do_users()
  defaults to "localhost". If the printer name to be monitored is
  an empty string, do_printer() defaults to "lp".

----

v1.4 - patchlevel 11 - 14th January 1991.

- Removed the mailing list hack from Gregory Dudek. It doesn't seem
  to work quite right, and it cause the incorrect handling of From:
  lines on other mail items.

- The check to see if the spool file has changed, needed to call
  show_display() if there was no change, otherwise the old offscreen
  memory pixrects, would not be freed.

- Added a property sheet to the XView version. This allows you to
  toggle the monitoring option (mail/users/printer/custom) on the fly.
 
- Ran faces through Saber-C, and fixed up inconsistencies.

----

v1.4 - patchlevel 10 - 7th January 1991.

- Faces now only looks for X-Face: lines in the mail header, now
  that there is a simple method for everybody to get their X-Face:
  lines into the mail header (see below). This fixes up the following
  problems (which have been removed from the TODO file):

  If an X-Face is found inside a piece of mail that has been
  forwarded inside another mail item, and the -U option is set, then
  it is possible to update the wrong face in the faces database. The
  only clean solution to this, is if faces only recognises X-Face
  lines in the mail header.

  From Pat Lashley <patl@Sun.COM>
  The problem with finding an X-Face: entry in an included message
  can be resolved by a flag which would restrict X-Face: recognition
  to the header or the first non-blank line of the body.
 
- From John Mackin <john@cs.su.oz.au>
  The code in mon.c recognises From: lines in the body of the mail.
  This is an error. From: lines should only be recognised before
  the first blank line.
            
- From John Mackin <john@cs.su.oz.au>
  A small shell script called faces.sendmail has been written, which
  will automatically add X-Face: compressed image lines to a mail
  header. This is used in conjunction with the set sendmail entry in
  a user's ~/.mailrc file. See the README file and the faces manual
  pages for more details. This method is known to work with Berkeley
  Mail, Open Windows mailtool and mush. It should work with other
  mailers too. The special patch to mush is no longer needed; in
  fact if it has been applied, it should be un-applyed otherwise you
  will get two sets of X-Face: lines in your mail headers. The
  mush.xface.patch file can be removed from the faces distribution.
  FILES, MANIFEST, Makefile, README and faces.1 have been updated.

- From John Mackin <john@cs.su.oz.au>
  The manual entry makes no mention of X-Face: lines.

- From Mike Khaw <khaw@parcplace.com>
  The "install" target for the Makefile is missing a "/" between
  $(MANSECT) and face_update; i.e., the last line should be

       $(MANDIR)/man$(MANSECT)/face_update.$(MANSECT)

- From Chris Mackerell <chris@bcl.co.nz>
  Changes to faces to get it compile in the BSD4.3 environment of
  Mips RISCos 4.5 (beta).

- From brew%qa@tplrd.tpl.oz.au
  There is a problem parsing the address from which mail comes
  if the address looks like

  From: person@machine

  ie: no "(comment)" after it.  You parse this so that the machine
  name has a trailing '\n'.

  Although I sometimes get mail like this, perhaps this is not correct
  RFC822 syntax.

- From Chris Maltby <chris@softway.sw.oz.au>
  It the user had cleared the faces window by hitting the Del key,
  the icon wasn't being reset to the "no mail" icon.

- From Howard Pelling <Howard.Pelling@UK.Sun.COM>
  Modifications to allow faces to recognise partial domains in the
  machine.tab file. Eg. mail from bristol.ac.uk and edinburgh.ac.uk
  will come from the same community.

- From Graham Dumpleton <grahamd@otc.otca.oz>
  From Alan Skea <skea@vast.eecs.unsw.oz>
  If the From: line just had a username (no hostname), then the
  trailing newline was not being removed (in parsefrom.c).

- A plain text version of the faces manual pages is now included with
  the faces distribution. It's called faces.man.text.

- From Gregory Dudek  <dudek@daeron.McRCIM.McGill.EDU>
  In process_info() in mon.c, don't do anything if the mailbox hasn't
  changed since the last look.

- From Gregory Dudek  <dudek@daeron.McRCIM.McGill.EDU>
  In process_from() in mon.c, I've added an UGLY hack so that mailing
  lists could be recognized as such, rather than causing zillions of
  different unknown's to appear. It expects an ugly ugly magic trick
  in people.tab. The mailing list must appear as
  listplace/list@listplace  eg.

  ics.UCI.EDU/fa.think-c-outbound-request@ics.UCI.EDU

----

v1.4 - patchlevel 9 - 11th October 1990.

* From Robert Adams <adams@littlei.intel.com>
  Speedups in directory searching in main.c:
         1) all of the lists are now terminated by a NULL (saves
                 a 'strlen' call);
         2) the removal of the leading "." is done earlier and a
                 check is made for removing a last trailing dot (this
                 saves an extra bunch of stat's for the dir "misc.");
         3) if the 'stat' for the old style file name fails, that
                 means that the directory containing the files also
                 can't be there.  The loop is terminated if the 'stat'
                 fails.  This reduces the number of 'stat's done
                 when searching for a face by an order of magnitude.

* From Robert Adams <adams@littlei.intel.com>
  The time delay for the SysV kludge 'select' replacement was reduced
  from 5 to 3.

* From Johan Vromans <jv@mh.nl>
  With GNU gcc, you cannot say "#ifdef XXX || YYY". It must be either
  "#if XXX || YYY" or "#if defined(XXX) || defined(YYY)".

* From Johan Vromans <jv@mh.nl>
  Defined CC and $(CC) in the compface/Makefile, which can easily be
  altered for other C compilers.
 
* From Bruno Pillard <bp@chorus.fr>
  The installation of the machine.tab and the people.tab has been
  removed from the standard "make install" rules in the Makefile.
  Typically sites will have customised these files in their faces
  directory, and do want them overwritten when you do a new
  installation of the faces program.

  Instead, an extra definition has been added to the Makefile. If you
  now do a "make tables", then the default machine and people tables
  will be installed. The README has been updated to reflect this
  change.

* From John Mackin <john@cs.su.oz.au>
  Some systems (that don't use Berkeley Mail) have a ~/.mailrc format
  that is not compatible with the format of the commands that faces
  wants to find there. So, look for .facesrc first, and if that is
  found use it; otherwise examine .mailrc. This has been implemented,
  and the manual pages have been updated to reflect these changes.

* From John Mackin <john@cs.su.oz.au>
  The manual page did not actually document the format of the commands
  faces looks for in .mailrc/.facesrc (that is, "set bell = <number>"
  and "set flash = <number>"). These have been documented, and two
  new options have also been added: "set raise" causes the window to
  be raised when new mail arrives, and "set button1clear" causes
  button 1 to clear the window, like it did in the previous version
  of faces, and like hitting Delete does now, and moves button 1's
  "toggling" function to button 2. This functionality is present in
  the X11, XView and SunView drivers. The TODO file has been updated
  to show that the NeWS driver still needs to be modified.

* From John Mackin <john@cs.su.oz.au>
  Several functions (getenv, malloc, index and rindex) are all
  standard V7 and are all always char *. There is no reason they
  should be declared inside the SYSV32 conditional.

* From John Mackin <john@cs.su.oz.au>
  The code has been made more robust for the case where uncompface
  never gets called. It will core-dump otherwise if an X-Face: line
  is the last thing in the mail file. In any case, the return value
  of index should always be checked.

* From John Mackin <john@cs.su.oz.au>
  Various #include file adjustments for a MIPS machine:

  netdb.h      ==>  bsd/netdb.h
  sys/types.h  ==>  bsd/sys/types.h
  sys/time.h   ==>  bsd/sys/time.h

  In general, you should not assume that sys/time.h will automatically
  include sys/types.h for you.

* From John Mackin <john@cs.su.oz.au>
  X-Face: lines are ignored if we've already seen one in this mail
  item. (This is similar to the way From: lines are already treated.)
  This will work correctly in all cases except when someone who puts
  their X-Face: in their signature includes (and doesn't indent) mail
  with an X-Face: in it. The TODO file entry has been modified to
  reflect this change.

* From John Mackin <john@cs.su.oz.au>
  An extra definition has been added to the Makefile. This is
  NO_SELECT, and should be uncommented if your machine doesn't have
  the select() system call. Before this patch, this option was
  determined by the SYSV32 #ifdef. In these days of hybrid Unix
  systems this is no longer appropriate.

* From John Mackin <john@cs.su.oz.au>
  The X11 driver now sets the WM_CLIENT_MACHINE property.

* From John Mackin <john@cs.su.oz.au>
  Fixed a bad, core-dump-causing bug in the compface/compress routine.
  BigRead calls BigMul which assumes B is initialised. That's fine for
  the compface and uncompface _programs_ -- in that case it is
  initialised to zero, being statically allocated -- but a disaster
  for programs that call the library routines repeatedly, as faces does.

* From John Mackin <john@cs.su.oz.au>
  Fixed a naming conflict between BACKGROUND in faces.h, and the
  Makefile definition BACKGROUND (if uncommented).

* From John Mackin <john@cs.su.oz.au>
  The following points have been added to the TODO file:

  - If the mailbox is empty, or contains just one mail item, faces -a
    starts out 10 icon-widths long (with the right-hand part being
    white instead of background grey), then shrinks to one icon-width
    as soon as a mail item arrives or you delete the mail.
    I don't care about this since I don't use -a, but what I _would_
    like to see (here comes the wishlist item) is an option that you
    can use with monitor-new that keeps the window always 10 (or -c
    if specified) icon-widths wide, but adds extra rows of icons as
    needed if more than 10/-c new mail items arrive between clearings
    of the window, and shrinks the window back to one row/-c widths
    when it is cleared.

  - The usage message claims you can use "-bg background_color".
    This isn't in the manual page, and it also doesn't work at all
    (under X11). The argument appears to be completely ignored

  - The "-b icon_file" option doesn't work. It still comes up with
    the default background.

  - The manual entry makes no mention of X-Face: lines.

  - It should be made more explicit in the manual page that in the
    previous version of faces, a -f option _added_ the directory to
    the face search path, so that if you did -f you got those faces
    in addition to the system default faces, whereas now -f
    _supersedes_ the system faces and you must include a trailing
    colon to have them searched.

  - A comment on the domain lookup algorithm. According to the manual
    page:

    $DIR/machine.dom.ain/uid/iconname
    $DIR/dom.ain/uid/iconname
    $DIR/ain/uid/iconname
    $DIR/misc./uid/iconname
    $DIR/machine.dom.ain/unknown/iconname
    $DIR/dom.ain/unknown/iconname
    $DIR/ain/unknown/iconname
    $DIR/misc./unknown/iconname

    This leads to a top-level directory with a _lot_ of subdirectories.
    I think this is responsible for much of faces' CPU time; it's well
    known that large directories are a UNIX performance no-no. What I
    would like to see instead (or in addition, or as an option, perhaps
    compile-time) is the following.

    $DIR/ain/dom/uid/iconname
    $DIR/ain/uid/iconname
    $DIR/misc./uid/iconname
    $DIR/ain/dom/machine/unknown/iconname
    $DIR/ain/dom/unknown/iconname
    $DIR/ain/unknown/iconname
    $DIR/misc./unknown/iconname

    The idea is that at each level, if the next component exists and is
    a directory, you descend into it and look there.

  - The code in mon.c recognises From: lines in the body of the mail.
    This is an error. From: lines should only be recognised before
    the first blank line.

  - You test if the beginning of the line is identically equal to
    "X-Face:" or "From:". This is contrary to RFC822, which specifies

     (1) that headers should be recognised in either case (so "X-Face:"
         and "X-FACE:" and "x-FaCe:" are all equivalent).
     (2) that there may be linear white space (spaces or tabs) between
         the field-name and the colon (so "FRoM  : Foo Bar <foo@bar>"
         should work).

  - The RFC822 address parsing in parsefrom.c appears, on quick
    inspection, to be grossly inadequate.  (It certainly doesn't
    handle comments in addresses, for one thing.)

----

v1.4 - patchlevel 8 - 13th September 1990.

* From Mike Khaw <khaw@parcplace.com>
  From Rod Whitby <rwhitby@austek.oz.au>
  From John Pritchard <john@latcs1.lat.oz.au>
  faces v1.4.7 dumps core in make_iconname(). It's doing an strlen
  on facepath[i] when it could be NULL. This is probably caused
  when your FACEDIR directory doesn't have a misc./unknown subtree.

* From Ian Darwin <ian@sq.com>
  The x11 driver does not set XA_WM_CLASS, so things that depend
  on CLASS to operate won't operate properly.

* From Greg Rose <greg@softway.sw.oz.au>
  From Ken Wood <adl.austek.oz.au>
  faces with both the -MH and -a options together didn't work
  correctly.

* The -v command line option now displays the usage message and exit.
  The new -? command line option is similar. The usage message is now
  upto date and also lists the keyboard accelerators.

* From John Pritchard <john@latcs1.lat.oz.au>
  The file netdb.h was included twice if DNSLOOKUP is defined.

* From Chris Maltby <chris@softway.sw.oz.au>
  The window attributes structure with the X11 driver is now zeroised
  before being used.

* From Chris Maltby <chris@softway.sw.oz.au>
  With the X11 driver, if the icon position hasn't been specified
  with the -WP option, then the position defaults to the where the
  right end of the open window would appear.

* From Steven M. Miller <miller@SCTC.COM>
  Under X, when faces is started up in iconic mode nothing is displayed
  in the icon until the icon is clicked on and opened and then closed
  again.

* From Michael Schmidt <michael@uni-paderborn.de>
  Perhaps my configuration (SparcStation, SunOS4.0.3, X11R4, twm with
  ForceIcons, IconManager and IconRegion) is wierd, but... The icon is
  not placed in the IconRegion, but just at 0x0 (or 1x1, or so). Then I
  cannot deiconify the icon by a mouse click (all other icons deiconify
  on a left button click).

* From Steven M. Miller <miller@SCTC.COM>
  faces now recognises -iconic (as well as -Wi) to specify iconic mode.
  Inverse mode is still -i. The manual page has been updated.

* From Ian Darwin <ian@sq.com>
  faces uses -s <spoolfile> to indicate a different spool file to
  monitor. How about a -S <spooldir> to indicate a different spool
  directory? The manual page has been updated.

* From Lindsay F. Marshall <Lindsay.Marshall%newcastle.ac.uk@munnari.oz>
  faces works incorrectly when either the -h <height> or the -w <width>
  options are given. The image area is not being cleared first.

----

v1.4 - patchlevel 7 - 6th August 1990.

* From Chris Steinbroner <hesh@lll-crg.llnl.gov>
  From Bob Posert <psitech.psitech!bob@uunet.UU.NET>
  Incoming mail is not always stored in /usr/spool/mail/username.
  HP-UX and Dell Unix (Interactive 386/ix) store it in
  /usr/mail/username. Another definition (SPOOLDIR), has been added
  to the Makefile. The README file has also been updated.
 
* From Hugues Leroy <Hugues.Leroy@irisa.fr>
  From Graham Dumpleton <grahamd@otc.otca.oz.au>
  From Peter Chubb <peterc@softway.oz.au>
  From Robert Adams <adams@trim.intel.com>
  The parsefrom() function was not replacing a '\n' at the end of
  a line with '\0' before preceding.
          
* From Michael Schmidt <michael@uni-paderborn.de>
  The faces window now accepts two more keyboard characters:
     q - to terminate the faces program.
    ^L - to refresh the faces window.
          
* From Michael Schmidt <michael@uni-paderborn.de>
  Added support for printer monitoring with the PLP printer
  spooling system. Another definition (PLP) has been added to
  the Makefile. The README file has been updated.
          
* From Chris Steinbroner <hesh@lll-crg.llnl.gov>
  Diffs included to allow faces to run under HP-UX.
          
* From Robert Adams <adams@trim.intel.com>
  Changed the SYSV definition to SYSV32 because I work with both
  System V.3.2.2 and System V.4.0 from AT&T and they need different
  defines.

* From Robert Adams <adams@trim.intel.com>
  Added -bg and -fg to the parameter string and modified x11.c
  to set the background and foreground colors. Currently this is
  only available with the X11 graphics driver.

* From Robert Adams <adams@trim.intel.com>
  people.tab now accepts the syntax "aliascomm/alias=comm/name"
  to map a whole name (this is one of the TODO points).
  It still accepts the old syntax. As a side effect, the
  people.tab and machine.tab routines were re-written to be
  better parsers and are now forgiving of white space.

* From Robert Adams <adams@trim.intel.com>
  make_iconname was rewritten to get rid of the cut and paste
  code and now is a gaggle of 'for' loops.

* From Robert Adams <adams@trim.intel.com>
  From Michael Schmidt <michael@uni-paderborn.de>
  The domain name parsing code in make_iconname was not working.
  The problem was that the 'old_style' code 'goto'ed out of the
  middle of the domain breakdown loop thus defeating same.

* From Robert Adams <adams@trim.intel.com>
  The code for building the name for people.tab and machine.tab was
  broken if an alternate directory ("-f") was specified (changes
  in rec.c in read_alias and read_machines).

* From Robert Adams <adams@trim.intel.com>
  If 'host' does not appear in an RFC822 address, the code would
  assume "LOCAL".  The code has been fixed to assume 'hostname'
  instead (fix to parsefrom.c).

* From Robert Adams <adams@trim.intel.com>
  There was a strange bug that would cause icons on the end of the
  list (after entries were deleted) to get mangled.  This usually
  showed up as the NOMAIL icon not being shown but garbage being
  shown instead.  The problem was that in 'garbage_collect', there
  was a local variable 'last' that was hidding the global variable
  of the same name and thus the global was not getting updated

* From Pat Lashley <patl@Sun.COM>
  Added code to use the Domain Name Service to attempt to convert
  unqualified hostnames, or hostnames with partial domains to fully
  qualified domain names. Another definition (DNSLOOKUP) has been
  added to the Makefile. The README file has been updated.

* From Pat Lashley <patl@Sun.COM>
  When no icon is found for a given user, the unknown icon may be
  displayed either with the user name, or labeled as `unknown'.
  The former case provides the most information, the latter allows
  all unknown users within a given community to be lumped into a
  single image. Another definition (NAMEUNKNOWN) has been added to
  the Makefile. The README file has been updated.

* From Pat Lashley <patl@Sun.COM>
  Support is now included for multiple face directories. Faces
  will search for the environment variable FACEPATH, and use this
  as a list of colon separated face directories. See the manual
  page for more details.

* Official support for X-Face lines was not included with patch #2
  to mush v7.1. Dan and Bart suggested that instead, a new file
  (mush.xface.patch) should be included with the faces distribution
  which in an unofficial patch to mush v7.1.2, to allow that X-Face
  support. The README, MANIFEST and FILES files have been updated.

* From Rod Whitby <rwhitby@austek.oz.au>
  faces v.1.4.6 dumps core when the following message (cut down to the
  smallest case) is in my mail box. This was a case of a valid X-Face:
  being followed by a line starting with the word "X-Face ". Faces now
  searches for "X-Face:" rather than "X-Face". This really needs to be
  tightened up some more.

----

v1.4 - patchlevel 6 - 5th July 1990.

* From Tony Landells <ahl@technix.oz.au>
  Change all the .LP macros in the manual pages to .PP, since .PP is
  an alternative to .LP is newer versions of the manual pages, while
  it is the alternative to .P in older versions; but older versions
  don't have .LP and newer ones don't have .P.  Thus .PP seems to be
  the only universally accepted one.

* From Pat Lashley <patl@Sun.COM>
  make_iconname() is broken with respect to multi-level domains. One
  symptom is that `unknown' will always come from misc.. The problem
  is that the for loops are nested backwards.
 
* From Pat Lashley <patl@Sun.COM>
  Code to impliment simple NIS lookup for hosts not explicitly
  mentioned in the machines table. Note there is another definition
  at the front of the Makefile (NISLOOKUP), then should be uncommented
  to use this feature. The README file has been updated.
        
* From Dave Glowacki <dglo@ads.com>
  From Steven M. Miller <miller@SCTC.COM>
  If the geometry has been set with -geometry you don't want to try
  and get the default. Additionally if no default is set XGetDefault
  returns NULL which crashes the faces program.
        
* From Chris Steinbroner <hesh@lll-crg.llnl.gov>
  For system V and varients, there is no <strings.h>; it is <string.h>.
  I've added yet another definition (SYSV) to the Makefile, that
  should be uncommented, if this is the case for your machine. The
  README file has been updated.
        
* From Chris Steinbroner <hesh@lll-crg.llnl.gov>
  Making rs2icon fails because my machine has no rasterfile.h
  include file. The #include <rasterfile.h> has been removed from
  this file, and the structure definition added to the source file.

* From Chris Steinbroner <hesh@lll-crg.llnl.gov>
  ikon2icon in the filters directory uses index(), so you have to do
  the NOINDEX define stuff there too.

----

v1.4 - patchlevel 5 - 29th June 1990.

* From John Togasaki <toga@Eng.Sun.COM>
  From John Fong <johnfong@Ebay.Sun.COM>
  The definition in the Makefile for CFACEDIR was incorrect.
  The use of CFACEDIR in main.c should be FACEDIR instead.

* From John Togasaki <toga@Eng.Sun.COM>
  The definition for MANDIR in the main Makefile is incorrect.

[Posted to comp.sources.misc]

----

v1.4 - patchlevel 4 - 26th June 1990.

* From Pat Lashley <patl@Sun.COM>
  made several adjustments to the Makefile to get "make install" to
  work properly.

* From Steve Piette <Steve.Piette@Central.Sun.COM>
  added a missing i from an int (nt) declaration in xview.c.

* included a new version of the face_update script. This version
  logs an entry for each update in a logfile (var/log/facelog by
  default. The script also has support for the "old" style of the
  faces database, where the username was the ikon.

* created a manual page for face_update (face_update.1). Updated
  MANIFEST, FILES and Makefile to reflect this change.

* From Pat Lashley <patl@Sun.COM>
  the NeWS version has been fixed. The NeWS PostScript code has
  been converted to use cps, and a faces_cps.cps file has been generated.
  The news.c C frontend, has been rewritten to use the new cps
  routines. The NeWS code has been changed to be more object oriented.

* From Cameron Humphries <cameron@cs.flinders.oz.au>
  From Chris Maltby <chris@softway.sw.oz.au>
  From Rich McAllister <rfm@Eng>
  From Hakon Lie <howcome@Eng>
  From Darryl K. Ramm <darryl@pyrmania.oz.au>
  From Tony Landells <ahl@technix.oz.au>
  Need to include <ctype.h> in get.c

* From Rick Gunderson <rickg@toshiba.tic.oz.au>
  On the Sun386i version under SunView, the default icons were
  scrambled because of byte ordering problems in the load_icon routine.
  The icons loaded with get_blit_ikon were okay because I defined the
  REVORDER flag in the Makefile so the image gets massaged when it is
  loaded. I fixed this by redefining the interface to load_icon (but
  only when REVORDER is defined) by adding a flag to tell load_icon if
  the image had not already been ``massaged''.

* From Rick Gunderson <rickg@toshiba.tic.oz.au>
  From Tony Landells <ahl@technix.oz.au>
  The FACEDIR make variable is undefined for make install
  FACEDIR (for make install) clashes with FACEDIR (-D option).

* From John Fong <johnfong@Ebay.Sun.COM>
  With each mail message, stop looking for From: lines once you've
  found one.

* From Chris Maltby <chris@softway.sw.oz.au>
  With the default mail option, the spy (unknown) ikon should
  display the correct username.

* When no faces database is found, the noface ikon should display
  the correct username.

* Added support for the "old" style of face database. This is where
  the username is not a directory, but the ikon in 48x48x1 format.

* If the spool file was non existent then the icon was blank instead
  of NOMAIL.

* The -a option used with the -U option was supplying the facemaker
  alias with the wrong filename to update.

* From Darryl K. Ramm <darryl@pyrmania.oz.au>
  Make install, clean etc did not work because Pyramid make does not
  predifine $(MAKE).  The declaration 'MAKE=make' fixes this.

* From Darryl K. Ramm <darryl@pyrmania.oz.au>
  The mv commands in install should be a cp because it makes
  restarting install easier should it fall over half way through.

* From Darryl K. Ramm <darryl@pyrmania.oz.au>
  faces/compface/compface.h: Needs #include <strings.h> on Pyramid
  not <string.h>.

* From Darryl K. Ramm <darryl@pyrmania.oz.au>
  x11.c: Pyramid's cc warns about illegal operation on geometry.
  if (!geometry)   should be   if (geometry[0] != '\0')

* The icon dimensions should be imagewidth and imageheight in case
  the user has given the -w and -h command line options.

* From Chris Maltby <chris@softway.sw.oz.au>
  There is no mention in the manual about having to press DEL to
  clear the open window display with the default mail option.

* From Tony Landells <ahl@technix.oz.au>
  The programs in the filters directory never get built. Make
  install correctly does this now.

* In the -a -U mode, when an "on-the-fly" face was found, faces
  would attempt to send mail to update the database each time the
  spoolfile was checked. The internal record chaining was incorrect,
  and a new garbage collection routine has been written.

* From Chris Maltby <chris@softway.sw.oz.au>
  A rewrite of the faces manual page to provide the most important
  information on the first page.

* the X11 version now correctly displays on the icon.

* From Chris Maltby <chris@softway.sw.oz.au>
  Some machines don't automatically define popen() to return a
  FILE *.

* the X11 version no longer puts out the ICCCM protocol error message
  when it's deleted.

----

v1.4 - patchlevel 3 - 21st June 1990.

* version made available internally via anon ftp and the mail server.
  also made available via fetchfile in Australia for beta testing.

----

v1.4 - patchlevel 2 - 20th June 1990.

* copy sent to various people for internal testing.

----

v1.4 - patchlevel 1 - 19th June 1990.

* copy sent to James Ashton for uncompression enhancements.

----

v1.4 - patchlevel 0. - started 7th June 1990.

* released to volunteers for various enhancements.

====
