EDITFONT

     By Kelly Roach.  Last revised 29-Jan-84.
     EDITFONT gives the user functions for creating and editting
DISPLAY fonts which can be read and written as STRIKE font files.
The following functions are provided to the user:
     (1) (EDITFONT FONT).  FONT may be any DISPLAY FONTDESCRIPTOR
datatype.  The user will be presented with a matrix of 257 character
bitmaps.  The 257th char is the dummy char, used as a default for
unspecified chars.  Buttoning a character bitmap with the LEFT mouse
button will call EDITBM on that character bitmap.  Buttoning a
character bitmap with the MIDDLE mouse button pops up a menu that
allows the user to STOP (abort EDITFONT), OK (save EDITFONT's work
into FONT), or DUMMY (make selected character an unspecified char).
     (2) (BLANKFONTCREATE FAMILY SIZE FACE ROTATION DEVICE
FIRSTCHAR LASTCHAR ASCENT DESCENT WIDTH).  This function will create a
blank font for the user.  Charcodes not between FIRSTCHAR and LASTCHAR
are left unspecified.  WIDTH may be a number, causing WIDTH to be the
width of every character; or WIDTH may be a list of 
	(IPLUS LASTCHAR (IMINUS FIRSTCHAR) 2)
numbers, determining the width for each specified char plus the dummy
char.  Another good way to get a fresh font is to do a COPYALL of some
already existing fontdescriptor (e.g. (COPYALL (FONTCREATE 'GACHA
10))).  Use Interlisp's SETFONTDESCRIPTOR function to make your fonts
known to Interlisp's FONTCREATE.
     (3) (READSTRIKEFONTFILE FAMILY SIZE FACE FILE).  Reads STRIKE
font FILE, returning a fontdescriptor.
     (4) (WRITESTRIKEFONTFILE FONT FILE).  Writes FONT out to STRIKE
file FILE.  Can be read back in with READSTRIKEFONTFILE.  You can put
your STRIKE font files on FONTCREATE's search path by adding your
font directory to Interlisp's global FONTDIRECTORIES.
     (5) AN IMPORTANT NOTE:  The user is hereby warned that it is
generally not a good idea to EDITFONT an existing font directly.
I.e., instead of
	(EDITFONT (FONTCREATE 'GACHA 10))
I recommend
	(EDITFONT (COPYALL (FONTCREATE 'GACHA 10)))
The reason you should be wary of editing an already existing font, is
that the Interlisp WINDOW package caches certain parts of Interlisp
FONTDESCRIPTORs on its windows.  EDITFONT doesn't know about this
cached info, and if you smash a font that the WINDOW package is also
using, you may get some funny looking characters or worse.
     Comments and bugs can be sent to ROACH.PA.