/* $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 * 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 * 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 * 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 * 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 * 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 * From: Philippe Dax 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 * 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 * 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 * 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 * From: Chris Lightfoot 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 * 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 * Changed the gtk_set_window_policy() for the main faces window to better handle resizing. 11th February 2002 - Robert Adams * The MONNEW for the spool file mode wasn't setting a timer to recheck the mail. 10th February 2002 - Robert Adams * Modified IMAP and POP code to only add new faces to the display when in MONNEW mode. 7th February 2002 - Robert Adams * 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 * 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 * Added a ";" to the "crambail:" label in imap.c so that the code would compile with the Sun compilers. 28th January 2002 - Robert Adams * Added config.sub and config.guess to the faces distribution. v1.7.5 - 18th January 2002. 18th January 2002 - Rich Burridge * Fixed up the Gnu compiler warnings for .../faces/faces/address.y 15th January 2002 - Rich Burridge * 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 * Added in IMAP support. 24th December 2001 - Rich Burridge * 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 * When the faces properties sheet is displayed, the various widgets reflect the current state. 22nd December 2001 - Robert Adams * Various fixups for the POP mail support. ---- v1.7.4 - 10th December 2001. 10th December 2001 - Robert Adams * 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 * Added faces.sendmail into .../faces/Makefile.am so that it is included with the distribution. 7th December 2001 - Rich Burridge * 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 * 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 * 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 * 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 * 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 * 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 * The default for the mail spool directory is now /var/spool/mail (the RedHat Linux default). 22nd November 2001 - John Kodis * 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 * 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 * 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 * 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 * 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 , 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 * 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 " 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 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 ] 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 The nothing.xbm file has some bits set. - From Steve Kinzler 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 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 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 Changes to get the X11 version of faces running on a MIPS machine. - From Steve Kinzler 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 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 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 From Stephen Martin 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 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 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 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 Removed the "ftp" clause from faces/filters/Makefile - From Michael Urban 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 In xview.c, changed hostname to rhostname, for selecting the host to monitor. - From Mike Khaw From Ken Wood Both the man page and the usage message say "-M", but the code actually still wants "-MH". - From Ken Wood 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 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 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 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 " should work). - From Amir J. Katz 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 From Lindsay F. Marshall 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 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 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 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 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 . 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 in faces.h - From Steve Kinzler Had to comment out the external declaration for memset() in faces.h, to get it to compile on Ultrix 4.1. - From Tim Chown 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 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 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 `faces -H hostname' always gives information about users on the local host. - From Tim Chown The addition of the option -l window_label is desirable; the default label is "faces" which is a bit nondescript. - From Tim Chown Don't take sounds for mail when first reading in the mail spool file. Just play them for new mail. - From Steve Kinzler 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 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 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 * 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 New portable and correct version of the faces.sendmail script, which only uses one invocation of sed. - From Sjoerd Mullender 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 Adjustments to the TODO file. * add bullet-proofing of uncompface(). * remove TODO for RFC822 parsing (included recently by John Mackin). - From Ignatios Souvatzis 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 * When compiling on a DECStation under Ultrix 4.0, I needed to add an "#include " 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 * 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 Implemented John's suggestion: > From John Mackin > 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 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 Part15 contains a duplicate of addr.h. It's identical to the addr.h extracted by part4. - From Cameron Simpson 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 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 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 From Mark Shand In get_options, char *next is not initialized prior to calling read_str(&next, ... - From Victor A. Riley From Michael Urban From John Mackin 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 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 From Mike Khaw The window and icon positioning broke with patch #14 for the XView version. - From Ignatios Souvatzis From Mark Shand raise() is already declared on some systems. All occurances of raise() in faces have been replaced with raisewindow(). - From Lindsay F. Marshall 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 The "-b icon_file" option doesn't work. It still comes up with the default background. - From Philip Gladstone 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 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 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 From Mark Shand 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 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 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 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 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 Fixed up init_font() in x11.c and xview.c to correctly work with the -fn command line option. - From Steve Kinzler From John Mackin 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 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 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 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 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 Better handling of X11 events -- fixes a number of bugs whereby things didn't get drawn. - From Philip Gladstone Fits text better into the icon even if proportional spaced font. - From Philip Gladstone 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 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 Fixes a problem with utime system call not taking two longs! - From Philip Gladstone 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 From Philip Colmer 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 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 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 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 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 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 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 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 From Mark Shand Fixed a corruption problem with the [un]compface routines. - From Dave Cohrs Changed some #ifndef mips to #if !defined(mips) || defined(ultrix) because a DECstation defines mips as its processor type. - From Dave Cohrs 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 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 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 Allow X11 users to make an X11 bitmap rather than a Sun icon for the background pixmap. - From Dave Cohrs 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 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 Updated the man page to mention all of the X options and resources. - From Dave Cohrs 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 In the X11 event processing, KeyPress gets sent for real key presses (e.g 'q') and for other presses, like . The latter doesn't clear out the lookup string, so you need to do so manually. Otherwise, if you type to clear the window, you can press or or any such key accidentally later on, and it clears the window. - From Mark Shand 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 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 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 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 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 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 The manual entry makes no mention of X-Face: lines. - From Mike Khaw 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 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 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 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 From Alan Skea 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 In process_info() in mon.c, don't do anything if the mailbox hasn't changed since the last look. - From Gregory Dudek 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 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 The time delay for the SysV kludge 'select' replacement was reduced from 5 to 3. * From Johan Vromans 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 Defined CC and $(CC) in the compface/Makefile, which can easily be altered for other C compilers. * From Bruno Pillard 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 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 The manual page did not actually document the format of the commands faces looks for in .mailrc/.facesrc (that is, "set bell = " and "set flash = "). 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 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 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 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 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 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 The X11 driver now sets the WM_CLIENT_MACHINE property. * From John Mackin 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 Fixed a naming conflict between BACKGROUND in faces.h, and the Makefile definition BACKGROUND (if uncommented). * From John Mackin 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 " 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 From Rod Whitby From John Pritchard 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 The x11 driver does not set XA_WM_CLASS, so things that depend on CLASS to operate won't operate properly. * From Greg Rose From Ken Wood 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 The file netdb.h was included twice if DNSLOOKUP is defined. * From Chris Maltby The window attributes structure with the X11 driver is now zeroised before being used. * From Chris Maltby 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 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 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 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 faces uses -s to indicate a different spool file to monitor. How about a -S to indicate a different spool directory? The manual page has been updated. * From Lindsay F. Marshall faces works incorrectly when either the -h or the -w options are given. The image area is not being cleared first. ---- v1.4 - patchlevel 7 - 6th August 1990. * From Chris Steinbroner From Bob Posert 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 From Graham Dumpleton From Peter Chubb From Robert Adams The parsefrom() function was not replacing a '\n' at the end of a line with '\0' before preceding. * From Michael Schmidt The faces window now accepts two more keyboard characters: q - to terminate the faces program. ^L - to refresh the faces window. * From Michael Schmidt 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 Diffs included to allow faces to run under HP-UX. * From Robert Adams 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 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 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 make_iconname was rewritten to get rid of the cut and paste code and now is a gaggle of 'for' loops. * From Robert Adams From Michael Schmidt 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 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 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 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 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 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 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 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 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 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 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 From Steven M. Miller 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 For system V and varients, there is no ; it is . 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 Making rs2icon fails because my machine has no rasterfile.h include file. The #include has been removed from this file, and the structure definition added to the source file. * From Chris Steinbroner 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 From John Fong The definition in the Makefile for CFACEDIR was incorrect. The use of CFACEDIR in main.c should be FACEDIR instead. * From John Togasaki 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 made several adjustments to the Makefile to get "make install" to work properly. * From Steve Piette 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 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 From Chris Maltby From Rich McAllister From Hakon Lie From Darryl K. Ramm From Tony Landells Need to include in get.c * From Rick Gunderson 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 From Tony Landells The FACEDIR make variable is undefined for make install FACEDIR (for make install) clashes with FACEDIR (-D option). * From John Fong With each mail message, stop looking for From: lines once you've found one. * From Chris Maltby 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 Make install, clean etc did not work because Pyramid make does not predifine $(MAKE). The declaration 'MAKE=make' fixes this. * From Darryl K. Ramm 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 faces/compface/compface.h: Needs #include on Pyramid not . * From Darryl K. Ramm 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 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 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 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 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. ====