Tue Oct 27 12:57:01 1992  Karl Berry  (karl@cs.umb.edu)

	* Version 0.6.

Tue Oct 20 16:28:42 1992  Karl Berry  (karl@cs.umb.edu)

	* GNUmakefile (install): Make second arg a file, not a directory.

Mon Oct 19 08:14:26 1992  Karl Berry  (karl@cs.umb.edu)

	* bzrsetup.mf: Doc fix.

	* metafont.c (metafont_output_bzr_char): Take the subrs as an arg,
	and output a call if the character was previously output as a
	subroutine.
        (metafont_output_ccc_char): Likewise.
        * pstype1.c (pstype1_output_{bzr,ccc}_char): Likewise.

	* pstype1.c (subr_number): New static.
        (output_subr_start): Assign to it; don't bother to test the
        character name; don't return anything.  (Change callers.)
        (OUT_CHAR_SUBR): Use it.

	* pstype3.c (pstype3_output_char): Don't output the character if
	it is not encoded.

	* psutil.h (ps_char_output_p): Remove decl.
        * psutil.c (ps_char_output_p): Remove variable.
        (ps_output_encoding): Take the array as an option, instead of
        using a global.
        * pstype[13].c (char_output_p): New static; change to use this,
          and pass to `ps_output_encoding'.  (Otherwise, the test for
          `space' only work for the first output format.)

	* psutil.c (INIT_CODE): Delete; it's unused now.

	* psutil.c (out_notdef_loop): If only one character is undefined,
	don't output a loop.

	* psutil.c (ps_output_encoding): If the character doesn't exist in
	the encoding, don't output it.

	* main.c (output_{bzr,ccc}_{char,subr}): Output all formats
	requested, not just the first.

	* psutil.c (ps_output_encoding): Output the codingscheme string as
	a comment.

	* pstype1.c (CHARCODE_TO_SUBRS_INDEX, SUBRS_OFFSET): Remove.
	Change calls.

	* char.c (update_subrs, subr_chars): Return the number of
	subrs found.
        * char.h (subr_chars): Change decl.
        * pstype1.c (pstype1_start_subrs): New routine.
        * pstype1.h: Analogous changes.
        * main.c (count_non_subr_chars): New routine.
        (main): Call it, and the new PS1 routines.

	* psutil.c (ps_set_font_info): Assign to the interword space if we
	have TFM info.

	* psutil.c (ps_set_font_info): Had test for `strstr' in weight
	part reversed.

	* pstype1.c ({PUT,DEF}_END): Rename to READONLY_{PUT,DEF}; change
	calls.

	* metafont.c (output_char_title): New routine.
        (output_subr_start, output_{ccc,bzr}_char): Call it.

	* main.c (read_bzr_files): Report the filenames as we read them.
        (main): Report the character codes as we write them.

Sun Oct 18 15:19:30 1992  Karl Berry  (karl@cs.umb.edu)

	* char.c: Include ccc.h.

	* pstype1.c (output_ccc_body): Rewrite -- same as metafont.c now.
        (OUTPUT_BB_CHAR, UPDATE_*, OUT_MOVE, OUTPUT_MOVE): Delete.
        (out_move, out_bb_char): New routine.

	* pstype1.c (output_subr_start): Call `init_charstring_buffers' here.
        (output_bzr_body): Not here.

Mon Oct 12 08:27:38 1992  Karl Berry  (karl@cs.umb.edu)

	* pstype1.c (output_private_dict_1): Take the UniqueID as an arg.
        (pstype1_start_output): Change call.

	* metafont.c (output_{bzr,ccc}_{body,subr,char}): New routines
	rationalizing the old.
        * metafont.h (output_{bzr,ccc}_{subr,char}): Declare.
        * main.c (main): Call them.
        * pstype1.[ch], main.c: Analogous changes.

	* main.c (output_{bzr,ccc}_subr, read_bzr_file{s,}): New routines.
        (main): Call them.

	* char.c (subr_chars, update_subrs): New routine.
        * char.h (subr_chars): Declare it.
        (char_type): New type (different from our last `char_type'...).
        * main.c (main): Call it.

	* metafont.c (charcode_to_subr_name): Use the character name if
	it's defined and alphabetic.

Sun Oct 11 15:24:19 1992  Karl Berry  (karl@cs.umb.edu)

	* main.c (starting_char, ending_char): Make external.
        * main.h: Declare them.
        * metafont.c (output_ligtable): Loop between them.
        (mf_char_output_p): No longer needed.

	* pstype[13].c (tfm_space): Rename to `interword_space'.

	* pstype1.c (OUTPUT_{BB_CHAR,MOVE}): remove semicolon from end of def.

	* GNUmakefile (c_and_h): Remove `oblique'.
        * char.[ch]: Merge oblique.[ch] into here.

	* input-ccc.c (parse_ccc_file): Take the design size as an arg.
        * input-ccc.h (parse_ccc_file): Change decl.
        * main.c (main): Change call.

	* char.h (char_type, get_new_char): Remove decls.
        (scale_char): Take a bzr_char_type instead of a char_type.
        * char.c (get_new_char, scale_{bzr,tfm}_char): Remove all these;
          change scale_char to take a bzr_char.
        * main.c (output_subroutines, output_char): Just pass the BZR
          char, don't use the BZR-extracting macros.
        * {text,metafont,pstype1}.c: Similar changes.

Tue Oct  6 14:29:18 1992  Karl Berry  (karl@cs.umb.edu)

	* ccc.y (BZR_TFM_DIMEN): Replace with new macro, DO_CHAR_DIMEN.
        (unit_of_measure): Use it, using the BZR dimensions instead of the
        TFM dimensions.

	* input-ccc.c (get_ccc_fontinfo): Pass the design size and BZR
	characters, not the char_type array; assign a default x-height at the
	end if necessary.

	* metafont.h (metafont_start_output): Pass a pointer as the TFM
	global info.  (Continuing yesterday's change.)
        * metafont.c (metafont_start_output): Change definition
          accordingly -- i.e., we might not have the TFM info.
	* input-ccc.h (parse_ccc_file): Likewise.
        * input-ccc.c (parse_ccc_file, get_ccc_fontinfo): And it continues.

Mon Oct  5 10:12:03 1992  Karl Berry  (karl@cs.umb.edu)

	* psutil.h (ps_font_info_type): New member `interword_space'.
        (ps_init): Rename to `ps_set_font_info', and take no args.
        * psutil.c (ps_init): Change accordingly; read globals set via
          options instead of passing the info around.
        (option_value): New fn.
        * pstype1.c (pstype1_start_output): Don't pass the font names and
          TFM info; change call to ps_init for new name; use
          BZR_DESIGN_SIZE instead of TFM_DESIGN_SIZE.
        * pstype1.h (pstype1_start_output): Change decl.
        * pstype3.[ch]: Analogous changes.
        * main.c (main): Change calls.
        (read_command_line): New option `-ps-font-info' to generalize
        `-ps-fontname'.
        (USAGE): Document it.

	* main.c (output_subroutines, output_char,
	init_tfm_and_encoding_info): New fns.
        (main): Call them.

	* main.c (bzr_name, encoding_*): Make static.

	* input-ccc.h: Doc fix.

	* main.c (main): Report 13 chars/line, not 8.

	* main.c (read_command_line): If -text is given, set `report_file'
	to stderr.

Mon Sep 28 11:20:41 1992  Karl Berry  (karl@cs.umb.edu)

	* bzrsetup.mf (fill_or_unfill): Delete `loggingall', left in by
	mistake.

Tue Sep 22 13:08:44 1992  Karl Berry  (karl@cs.umb.edu)

        * char.h (BCHAR_*): remove unneeded parens.

Mon Sep 21 17:09:12 1992  Karl Berry  (karl@cs.umb.edu)

        * metafont.c (NO_CHAR_P): rewrite in opposite sense, rename to
          HAVE_CHAR_P, and add tests for the characters existing.
        (output_ligtable): change calls.

        * main.c (main): remove the suffix from `font_name' to make the
          default `ccc_name'.

Thu Sep  3 07:45:36 1992  Karl Berry  (karl@hayley)

        * Version 0.5.

        * metafont.c (metafont_output_ccc_char): fix ) typo.

Wed Sep  2 17:57:12 1992  Karl Berry  (karl@hayley)

        * bzrsetup.mf (turningcheck): set to 1, not 0.

Tue Sep  1 14:04:05 1992  Karl Berry  (karl@hayley)

        * ccc.y: implement a `bbheight' unit of measure.

        * ccc.y (dimension): propagate the DIMEN_VALID flag.

        * text.c (text_output_bzr_char): output the charcode in octal as
          well as hex and ascii.

Mon Aug 31 08:00:23 1992  Karl Berry  (karl@hayley)

        * metafont.c (metafont_output_bzr_char): just use the max row for
          the character height, don't add 1 via the CHAR_HEIGHT macro.

        * metafont.c (metafont_output_ccc_char): simplify current point
          and bounding box accounting.
        (out_move): new function, replaces OUTPUT_MOVE macro.
        (out_bb_char): analogously.
        (OUT4): new macro.

        * main.c (main): use the coding scheme from the encoding file, not
          the existing TFM file, for the MF output.

        * char.c (make_tfm_char): negate the depth.
        * metafont.c (metafont_output_ccc_char): likewise.

        * main.c (need_new_tfm_file): remove this variable, and the code
          that writes a new TFM file.

        * char.c (char_make_tfm): new function.
        * char.h (char_make_tfm): declare it.
        * pstype1.c (pstype1_output_ccc_char): likewise.
        * metafont.c (metafont_output_ccc_char): call it.

        * input-ccc.h (charname_type): new struct.
        * ccc.y (char_known_p): new function.
        (unit_of_measure, statement): call it.

        * input-ccc.h (dimen_type, ccc_cmd_type): add new member `valid'.
        (DIMEN_VALID, CCC_VALID): new macros.
        * ccc.y (dimen_init): new function.
        (unit_of_measure): call it or assign to `valid'.
        (init_cmd_list, append_cmd): deal with the possibility of invalid
         commands.

Sun Aug 30 17:34:59 1992  Karl Berry  (karl@hayley)

        * ccc.y: doc fixes.

Mon Aug 17 08:29:59 1992  Karl Berry  (karl@hayley)

        * ccc.y (CCC_WARN1, CCC_WARN2): new macros.
        (get_word_token): use them.
        (yyerror): put the filename and line number in the error message.
        * input-ccc.h (ccc_filename): new decl.
        * input-ccc.c (ccc_filename): define it.
        (parse_ccc_file): set it.

        * pcc.y: rename to ccc.y.
        * ccc.h: rename to input-ccc.h.
        * input-ccc.c: new file.
        * GNUmakefile, metafont.c, pstyp1.c: corresponding changes.

        * {pstype1,metafont}.c (...output_ccc_char): change T_... to TR_...

Sun Aug 16 11:36:21 1992  Karl Berry  (karl@hayley)

        * pcc.y (T_DEFINE ... TR_BBWIDTH): rename from T_..., for
          consistency with our other Bison files.

        * pcc.y (get_word_token): do not halt execution if an unknown
          identifier is seen; instead, guess that it's a misspelled
          character name.

        * main.c (main): do not use `tfm_name' in the tfm-not-found
          error, since it might be null.

        * pcc.y (parse_ccc_file): new parameter `warning_p'; simplify
          file-opening logic.
        * main.c (main): pass in the new parameter.
        * ccc.h (parse_ccc_file): update declaration.

        * ccc.h (CCC_DIMEN_{AMOUNT,ABSOLUTE}): remove unneeded parens.

        * psutil.c (ps_start_font): don't bother to output braces around
          the comment.

Sat Aug 15 13:28:58 1992  Karl Berry  (karl@hayley)

        * bzrsetup.mf (turningcheck): set to zero, to stop `Strange path'
          errors. 

        * bzrsetup.mf (our_proof_mode): rename to bzr_proof_mode.

        * GNUmakefile (install): install bzrsetup.mf.

        * KKBuildChar.PS: rename to `bzrbuildch.PS'.
        (KKBuildChar): rename to `BZRBuildChar'.
        * pstype3.c: likewise.
        * GNUmakefile (dist): include it.

Mon Aug 10 19:49:35 1992  Karl Berry  (karl@hayley)

        * main.c: doc fixes.

Tue Aug  4 08:48:23 1992  Karl Berry  (karl@hayley)

        * bzredit.el (bzr-gs-{width,height,dpi}): new user variables.
        (bzr-gs-proc): use them.

Mon Aug  3 15:58:04 1992  Karl Berry  (karl@hayley)

        * GNUmakefile (install): install bzredit.el.

Wed Jul 29 09:27:34 1992  Karl Berry  (karl@hayley)

        * main.c (main): use `extend_filename' instead of `concat' to
          produce the BZR name; remove any suffix from the input font name.

        * bzredit.el (bzredit): don't force the user to type the name of
          an existing file.

Tue Jul 28 13:31:20 1992  Karl Berry  (karl@hayley)

        * char.c (scale_tfm_char): don't crash if the TFM char doesn't
          exist.
        * pcc.y (get_font_parameters): likewise.

        * char.c (scale_char): don't scale if `scale_factor' is 1.

Mon Jul 27 18:16:56 1992  Karl Berry  (karl@hayley)

        * text.c: doc fix.

Sun Jul  5 10:42:24 1992  Karl Berry  (karl@hayley)

        * pcc.y (yylex): allow `+' to start a numeric constant.

Tue Jun 30 12:10:27 1992  Kathy Hargreaves  (kathy@hayley)

        * char.c (scale_char): call scale_bzr_char instead of just scaling
          the splines of c's BZR info.
        (scale_bzr_char): added.

        * main.c (main): check if chars[this_char] is NULL before possibly
          putting its TFM char into a TFM file.
          Set need_new_tfm_file if concatenating fonts.

Sun Jun 21 15:28:59 1992  Karl Berry  (karl@io)

        * psutil.c (ps_init): use TFM_SAFE_FONTDIMEN.

        * main.c (main): update for new list interface.
        (append_concat_list): likewise.
        * metafont.c (metafont_output_ccc_char): same.
        * pstype1.c (pstype1_output_cc_char): same.
        * pcc.y (init_cmd_list): same.

Tue Jun  9 07:38:47 1992  Karl Berry  (karl@hayley)

        * pcc.y (yylex): doc fix.

Mon Jun  8 09:05:59 1992  Karl Berry  (karl@hayley)

        * GNUmakefile (y): change to just `pcc'.
        * pcc-parse.y: rename to `pcc.y'.
        * {metafont,pstype1}.c: change the #include.

        * pcc-parse.y: do not include <string.h>.
        (yyerror, yylex): declare as static.

Fri Jun  5 09:19:03 1992  Karl Berry  (karl@hayley)

        * main.c (main): `return 0' instead of `exit (0)'.  (From Paul Eggert)

Sat May 30 15:31:33 1992  Karl Berry  (karl@hayley)

        * main.c (main): change call to tfm_convert_pl.

Fri May 29 11:44:29 1992  Karl Berry  (karl@hayley)

        * main.c (main): change return type to int.

Wed May 27 16:10:51 1992  Kathy Hargreaves  (kathy@hayley)

        * char.c (scale_spline): assign spline list element to s after
          scaling each spline.

Tue May 26 13:58:38 1992  Kathy Hargreaves  (kathy@hayley)

        * main.c (main): in char loop of BZR name loop, set c first to
          get_new_char, then test if it and chars[this_char] are both non-NULL.

        * main.c (main): in BZR name loop, put the non-NULL `c' into
          chars[this_char]. 

        * main.c (main): don't close BZR and TFM file at bottom anymore.

        * main.c (main): read BZR postamble in the BZR name loop.

        * main.c (main): finish reporting char number if chars[this_char]
          isn't NULL, not its BZR info.

        * psutil.c (NO_PARAM_RET): added.
          (psinit): call SAFE_TFM_FONT_PARAMETER instead of TFM_FONT_PARAMETER.

        * main.c (main): close the main TFM input file after getting the
          the information we need.  Add a local tfm_name inside the BZR
          name loop.  Close the current open TFM file at the bottom of
          that loop.
          Ditto with the BZR input file.

        * main.c (main): open the main BZR file before trying to read the
          preamble and postamble.  Move assignment to first element of BZR
          name list to right before loop.

Mon May 25 13:48:11 1992  Kathy Hargreaves  (kathy@hayley)

        * main.c (global): Added `bzr_name_list'
          (main): Added `chars', `first_element', `this_bzr_name'.
	  Deleted `bzr_chars', `tfm_chars'.
          Move parsing CCC chars to after output all the BZR subroutines.
          Initialize `chars'.
          Read a BZR name list (-concat) and concat them onto the main font;
            read a TFM file for each name, if there is one.
	  Added `bzr_designsize', `designsize_ratio', `preamble' local to
            the BZR name loop.
          Report char number and do char instead of CCC char if `chars'
          char isn't NULL, not if `bzr_chars' char isn't null.
	  When writing the PL file, put the TFM char from the current
	  char into a variable.
	  (read_command_line): add "concat" to long_options and main loop.
          (append_concat_list): copied from fontconvert/main.

	* pcc-parse.y (chars): replace bzr_chars with this and use
          TFM_INFO or BZR_INFO
          (get_font_parameters): take char_type** instead of tfm_char*.
          Added `tfm_char'.
          (parse_ccc_file): take char_type** instead of tfm_char*.

	* GNUmakefile: added `char.[hc]'.

        * char.[hc]: added.

	* pstype1.c (pstype1_output_ccc_char): same changes as to
          metafont_output_ccc-char. 

        * metafont.h (metafont_output_bzr_char): take just a char_type.
          (metafont_output_ccc_char): take a char_type** instead of bzr_type**.

        * metafont.c (metafont_output_bzr_char): send in a char_type
          instead of a tfm_char_type and a bzr_char_type and use BZR_INFO.
          (metafont_output_ccc_char): send in char_type** instead of
          bzr_char_type** and use BZR_INFO.  Put the TFM character
          previously returned into the char_type** char and return void.
          (metafont_finish_output, output_ligtable): send in a char_type**
          instead of tfm_char_type*.

        * oblique.c (oblique_splines): free SHAPE.

Sun May 24 08:59:49 1992  Karl Berry  (karl@hayley)

        * main.c (USAGE, read_command_line): new option `-mf' (synonym for
          -metafont).

Thu May 21 15:37:22 1992  Kathy Hargreaves  (kathy@hayley)

        * pstype1.c (output_private_dict_1): make Private contain 8 entries.

        * pstype1.c (OUT_MOVE): use out_moveto.

        * pstype1.c (output_char_subr): added `start' point, to which to
          return after closing the path of a subroutine character.

        * pstype1.c (OUT_*MOVE): deleted indent stuff.

Thu May 21 11:43:40 1992  Karl Berry  (karl@hayley)

        * pstype1.c (output_charstring_buffers): pass data and a
          length to `hexify', instead of the varstring directly.

Tue May 19 14:04:12 1992  Kathy Hargreaves  (kathy@hayley)

        * main.c (main): set encoding_info from TFM file if not set by user.

        * pcc-parse.y (encoding_info): remove global and #include main.h.
          (parse_ccc_file): remove call to set encoding_info.
          (get_font_parameters): remove ENCODING_INFO.

        * metafont.c (metafont_start_output): deleted CCC_CHARS.

        * pstype1.c (CALL_SUBR): changed name to OUT_CHAR_SUBR.

        * metafont.c (OUT_*MOVE): moved to just above OUTPUT_MOVE.

Mon May 18 17:56:59 1992  Karl Berry  (karl@hayley)

        * GNUmakefile (dist): new target.

Mon May 18 15:31:53 1992  Kathy Hargreaves  (kathy@hayley)

        * pstype1.c (pstype1_output_char_subr): add T1_RETURN to end of
          subroutine buffer.
          (absolute_cs_number): same as cs_number, but take an int and
          don't call points_to_adobes.
          (cs_number): call absolute_cs_number after calling points_to_adobes.
          (CALL_SUBR): call absolute_cs_number instead of cs_number.

Sun May 17 17:51:38 1992  Kathy Hargreaves  (kathy@hayley)

       * pstype1.c (pre_charstring_buffer): added.
         (pstype1_start_output): start Subrs the way other GSF
         files do (i.e., with no curly braces, and using `dup'.)
         (pstype1_intermediate_output): end Subrs array with `|-'.
         (pstype1_output_char_subr): output buffer with `|' instead of
         outputting `put'.
         (output_private_dict_1): output `/|' definition.

Sat May 16 17:51:38 1992  Kathy Hargreaves  (kathy@hayley)

        * pstype1.c (cs_number, cs_byte): added a buffer argument.
         (init_charstring_buffers): init both charstring buffers; changed name.
         (output_charstring_buffers): output both charstring buffers after
         concatenting them; changed name; take an argument for buffer END.

        * metafont.c (OUTPUT_MOVE): use `v' instead of 0 in UPDATE*.

Thu May 14 22:37:25 1992  Karl Berry  (karl@claude.cs.umb.edu)

        * GNUmakefile (c_and_h): don't include pcc-parse.

Sun May 10 15:01:38 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (metafont_start_output): output a font_identifier.

        * bzrsetup.mf: use `decimal' instead of `char' to print the charcode.

Sat May  9 16:59:39 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (metafont_output_bzr_char): lose xoffset.

Thu May  7 14:34:15 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (UPDATE_BB_MOVE): took do-while loop out.

        * bzrsetup.mf (end_no_dimen_char): added.

Wed May  6 14:40:02 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (metafont_output_ccc_char): in case T_*MOVE: use new
          CCC macros to get the dimension amount and absolute flag.  Send
          the latter to: OUT_*MOVE.
          
        * pcc-parse.y: added struct dimen_val.  Changed all real_val
          tokens except T_REAL to be of this type.
          Changed all unit_of_measure's to set $$.amount and $$.absolute.

        * ccc.h [dimen_type]: added declaration and replaced the `real'
          type union field of ccc_cmd_type with a field of this type.
          [CCC_DIMEN_AMOUNT, CCC_DIMEN_AMOUNT]: added.
        
        * metafont.c [OUT_PT_SHARP_ASSIGNMENT]: added SHARP to name.
          [OUT_U_ASSIGNMENT]: added.
          [OUT_VAR_ASSIGNMENT]: deleted.

        * metafont.c [SUBR_NAME_PREFIX]: appended an `_'.

        * bzrsetup.mf (move, hmove, vmove): added.
          (begin_no_dimen_char): save `currenttransform'.

        * metafont.c [OUT_MOVE]: call Metafont `move' macro.

Tue May  5 15:37:03 1992  Kathy Hargreaves  (kathy@hayley)

        * pcc-parse.y (get_font_parameters): initialize `depth' to
          INT_MIN, not INT_MAX.

        * pcc-parse.y (global): added `font_capheight' and `font_xheight'.
          (Bison declarations): in T_XHEIGHT case, set unit_of_measure to 
          font_xheight if the TFM font xheight parameter isn't set.
          In the T_CAPHEIGHT case, set unit_of_measure to font_capheight
          if the latter isn't zero, and to font_height if it is.
          (get_font_parameters): try to find a font capheight and xheight.

Mon May  4 12:48:03 1992  Kathy Hargreaves  (kathy@hayley)

        * pcc-parse.y (yylex): add '-' case for T_REAL.

        * metafont.c [OUTPUT_BB_CHAR, OUTPUT_MOVE]: added.
          (metafont_output_ccc_char): use above macros.

        * metafont.c [UPDATE_CP_AND_BB_CHAR]: deleted.
          [UPDATE_CP_CHAR]: changed name to UPDATE_CP_MOVE.
          [UPDATE_BB]: changed name to UPDATE_BB_CHAR.
          [UPDATE_BB_MOVE]: added.
          (metafont_output_ccc_char): use above macros.

        * main.c (main): make pl_output_name using make_suffix, not
          extend_filename. 

Mon May  4 09:31:12 1992  Karl Berry  (karl@hayley)

        * main.c (verbose): remove; it's defined in report.c.

Tue Apr 21 07:47:37 1992  Karl Berry  (karl@hayley)

        * pcc-parse.y (init_cmd_list): use XTALLOC1.

Mon Apr 20 11:20:52 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (metafont_output_ccc_char): initialize the TFM char's
          kern and ligature lists.

        * pcc-parse.y (get_word_token): substituted varstring commands.
          If `word' is a token, put it in yylval.int_val; otherwise, if
          it's a coding scheme, put it in yylval.charcode_val.

Sun Apr 19 11:33:52 1992  Kathy Hargreaves  (kathy@hayley)

        * pcc-parser.y (get_word_token): start this_char off at -1 and
          increment before checking if it's >= word_length;
          realloc `word' to word_length after doubling word_length;
          use on word[this_word] for `while' check and ungetc.

        * pcc-parser.y (get_word_token): only check that last thing put
          into `word' is (first) not EOF and is alpha.  ungetc the last
          thing put into word.

        * pcc-parser.y (yylex): skip space (a la isspace(.)) characters.

        * pcc-parser.y (get_word_token): set yylval.int_val to
          encoding_number (word).  Return the token value if found one,
          otherwise, return T_CHARNAME.
          (yylex): don't set yylval.int_val, but set `t' to get_word_token (.).

        * pcc-parser.y (get_word_token): get a token number for the word.
          Check if both the token and encoding number are set or both are
          unset. 
          (token_number): added.

        * pcc-parser.y (get_word_token): inspect the this_word-1th
          character of `word', not the this_word-th.

Wed Apr 15 15:27:35 1992  Karl Berry  (karl@hayley)

        * various files: `make_output_filename' is now `extend_filename'.

Wed Apr 15 14:02:58 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (metafont_output_char_subr): added code number to
          variable names when outputting the splines, and to labels.

Wed Apr 15 13:48:34 1992  Karl Berry  (karl@hayley)

        * GNUmakefile (BISON, etc): remove special variables and rules;
          defs.make handles Bison sources now.

Wed Apr 15 13:30:56 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c (metafont_output_char_subr): assign to `shape'.

Wed Apr 15 09:14:10 1992  Karl Berry  (karl@hayley)

        * text.c (text_finish_output): output closing paren for the font bb.

Tue Apr 14 18:33:20 1992  Kathy Hargreaves  (kathy@hayley)

        * metafont.c: include "vector.h", "ccc.h", pcc-parse.h".
          [OUT_MOVE, OUT_HMOVE, OUT_VMOVE, OUT_CHAR_SUBR]: added.
          [OUT_POINT]: don't use offset.
          [SUBR_NAME_PREFIX]: added.
          (charcode_to_subr_name): added.
          (metafont_start_output): take CCC_CHARS.
          (metafont_output_ccc_char): added; make and return a TFM character.
          (metafont_output_char_subr): added using metafont_output_char;
          deleted `offset' and now output a subroutine instead of the char.
          (metafont_output_bzr_char): added.
          [UPDATE_BB, UPDATE_CP, UPDATE_CP_AND_BB]: added.

        * main.c (output_name): made static.
          (main): declared bzr_chars.

Tue Apr 14 08:29:51 1992  Karl Berry  (karl@hayley)

        * {metafont,pstype1,text}.h (*_ccc_char, *_bzr_char, *_char_subr):
          declare these.
        * main.c (main): call them.

        * main.h: new file.
        * GNUmakefile (c_and_h): move main here (from c_only).
        * psutil.c: include it.

Mon Apr 13 11:47:46 1992  Karl Berry  (karl@hayley)

        * text.c: rewrite for new output format which we can eval in Elisp.

        * pstype?.h (pstype?_start_output): take the fontname as an arg.
        * main.c (read_command_line): new option `-fontname'.
        (ps_fontname): new static.
        (main): pass it to the PS start_output routines.
        * psutil.c (ps_init): don't read postscript.map; take the PS font
          name as an arg instead.

        * psutil.c (encoding): remove.
        * main.c (main): read the encoding file.
        (encoding): new global.

        * main.c (read_command_line): new options `-range', `-ccc-file',
          `-encoding'.
        (USAGE): document them.
        (ccc_name, starting_char, ending_char, encoding_name): new globals.
        (main): call parse_ccc_file; use starting_char and ending_char;
        loop through the BZR file twice, once to output subroutines, once
        to output the characters, and output the CCC characters if necessary.

Sun Apr 12 17:12:12 1992  Karl Berry  (karl@hayley)

        * pstype1_output_char (pstype1_output_char): if the character
          isn't defined in the output encoding, don't output it.

Tue Apr  7 13:36:12 1992  Karl Berry  (karl@hayley)

        * GNUmakefile (pcc-parse.c): make from pcc-parse.y with Bison.

Thu Apr  2 13:02:40 1992  Karl Berry  (karl at claude.cs.umb.edu)

        * metafont.c (metafont_output_char): check if the spline list is
          empty before getting elements from it.

Sun Mar 29 19:09:52 1992  Karl Berry  (karl at hayley)

        * main.c (read_command_line): remove empty else.

Sat Mar 28 07:46:14 1992  Karl Berry  (karl at hayley)

        * Version 0.4.

        * Change copyright years to 1992 only.

Wed Mar 25 15:37:07 1992  Kathy Hargreaves  (kathy at hayley)

        * metafont.c (metafont_start_output): move outputting `input
          bzrsetup' to above outputting fontdimens.  Tack `* u#' onto each
          fontdimen assignment.

Sun Mar  8 05:12:56 1992  Karl Berry  (karl at fosse)

        * psutil.c (ps_start_font): remove unused printf argument.

Sat Mar  7 14:26:52 1992  Kathy Hargreaves  (kathy at hayley)

        * pstype3.c: analogous to pstype1.c changes directly below.

        * pstype1.c (pstype1_start_output): add OUTPUT_NAME; set
          ps_filename with make_output_file.

        * main.c (main): if it's NULL, set output_name to sizeless
          font_basename.

        * main.c (read_command_line): added `output-file' option.

Sat Mar  7 09:10:15 1992  Karl Berry  (karl at hayley)

        * GNUmakefile (files): replace with `c_and_h', etc.

        * GNUmakefile (libraries): put this back.

        * text.c (text_output_char): use puts instead of printf where possible.

Wed Mar  4 11:18:32 1992  Karl Berry  (karl at hayley)

        * GNUmakefile (libraries): remove.

Sun Mar  1 15:44:00 1992  Kathy Hargreaves  (kathy at hayley)

        * main.c (main): correct test to start pstype3 output.

Sat Feb 22 14:04:10 1992  Karl Berry  (karl at hayley)

        * metafont.c (output_ligtable): new routine; outputs all the
          kerning/ligature information, and omits it if any char involved
          doesn't exist.
        (metafont_finish_output): call it.
        (mf_char_output_p): new static.
        (metafont_output_char): don't output ligtable info here.
        * metafont.h (metafont_output_char): omit TFM info here.
        (metafont_finish_output): use it here.
        * main.c (main): change calls.

        * bzrsetup.mf (turningcheck): set to 1.

        * pstype1.c (out_curveto): new routine.
        (pstype1_output_char): call it.
        (T1_{HV,VH}CURVETO): new opcodes.

        * pstype1.c (out_relative_cmd): generalize out_lineto.
        (out_lineto): use out_relative_cmd.
        (out_moveto): new routine a la out_lineto.
        (pstype1_output_char): call it.
        (T1_[HV]MOVETO): new opcodes.
        (type1_opcode): new type.

        * pstype1.c (out_lineto): new routine, to optimize the lineto
          command used.
        (pstype1_output_char): call it, instead of always outputting an
          rlineto.
        (T1_[HV]LINETO): new opcodes.

Thu Feb 20 07:08:47 1992  Karl Berry  (karl at hayley)

        * pstype1.c (cs_number): encode negative middle numbers correctly.

        * psutil.c (ps_start_font): don't output the literal font name
          here; copy it from the stack instead.

        * pstype1.c (out_point): new routine.
        (pstype1_output_char): call it to output relative points instead
          of absolute.

Wed Feb 19 09:12:52 1992  Karl Berry  (karl at hayley)

        * pstype1.c (cs_number): correct algorithm for middle numbers.

        * pstype1.c (em_factor): new static.
        (points_to_adobes): round using it.
        (pstype1_start_output): set it.

        * pstype1.c (cs_encrypt): reinitialize the key every time we do
          an encryption, instead of making it static.

        * pstype1.c (output_private_dictionary): split into the
          character-independent part and the char-dependent part, call
          them output_private_dict_1 and ..._2.
        (pstype3_start_output): output the first part here.

        * pstype[13].c (pstype?_finish_output): put currentdict on the
          operand stack before `end'ing it.

        * psutil.c (ps_output_encoding): output code to define the
          encoding in the font dictionary.

        * psutil.h (ps_start_font): new routine.
        * pstype[13].c (pstype?_start_output): call it, instead of
          repeating the starting boilerplate.

        * pstype1.c (output_private_dictionary): output definitions for -|
          and |-, to read and define the characters; remove the definition
          of _B.
        (output_charstring_buffer): output calls to these procedures for
          each character.

        * psutil.[ch] (ps_encoding_name): declare the arg as
          `charcode_type', not `int'.
        (ps_encoding_number): don't give a warning if the name is not defined.
        * pstype1.c (pstype1_finish_output): output the space character
          here if it hasn't been output already; don't automatically
          encode it.
        (pstype1_start_output): don't output the space here, but remember
          the TFM space width.
        (tfm_space): new static.
        * pstype3.c: likewise.

        * pstype3.c (OUT_COMMAND?): indent properly.

        * psutil.c (ps_init): erroneously left the dash in the family name.

        * pstype[13].c (pstype?_start_output): pass the right font name to
          `sizeless_font_name'.

Mon Feb 17 07:28:15 1992  Karl Berry  (karl at hayley)

        * metafont.c (metafont_start_output): use `sizeless_font_name' to
          find the output font name.
        * pstype1.c (pstype1_start_output): likewise.
        * pstype3.c (pstype3_start_output): likewise.

        * psutil.h (ps_output_encoding): take a FILE *.
        * pstype?.c: change calls.

        * pstype1.c (pstype1_output_char): write this, at long last.

        * pstype3.c: use the new routines in psutil.c.

        * pstype1.c (cs_encrypt): new routine to construct the encrypted
          charstring and return it.

Fri Feb 14 08:30:17 1992  Karl Berry  (karl at hayley)

        * pstype1.c (ds_points_to_adobes): redo as `points_to_adobes', as
          the bzr routines never return designsize-scaled points (which is
          a good thing).

        * psutil.c (ps_encoding_name): new routine.
        * psutil.h (ps_encoding_name): declare it.

        * psutil.h (ps_encoding_number): declare to return int.
        * psutil.c (ps_encoding_number): define it; include encoding.h.
        (ps_init_encoding): remove this; just call read_encoding_file in
          ps_init. 
        (ENCODING_VECTOR_SIZE, base_encoding): remove these.

Fri Jan 31 17:06:05 1992  Karl Berry  (karl at hayley)

        * main.c (read_command_line): declare `option_index' (for new
          getopt).

Thu Jan  9 08:30:22 1992  Karl Berry  (karl at hayley)

        * *.c: do not include global.h.

        * *.h: remove #pragma once.

Wed Jan  8 15:29:40 1992  Karl Berry  (karl at hayley)

        * update copyright messages.

        * change `allocate to `xmalloc', `reallocate' to `xrealloc', and
          `string_copy' to `strdup'.

Sun Nov 17 06:50:41 1991  Karl Berry  (karl at hayley)

        * main.c (read_command_line): new option for Type 1 output.
        (translation_targets): add `pstype1'.
        (USAGE): document it.
        (main): call the same routines as the others.
        * pstype1.[ch]: new files.

        * pstype3.c (pstype3_start_output): change extension to `pf3'.
        * main.c (USAGE): document this.

Tue Jul 30 13:17:12 1991  Karl Berry  (karl at ra.cs.umb.edu)

        * Version 0.3.

Sat Jun 15 09:48:50 1991  Karl Berry  (karl at hayley)

        * all files: change `checked_' to `x'.

Thu Jun  6 07:21:18 1991  Karl Berry  (karl at hayley)

        * All files: change to version 2 of the GPL.

Sat Mar 23 16:15:41 1991  Karl Berry  (karl at hayley)

        * main.c (main): call `find_tfm_filename' with `font_name' instead
          of `font_basename'.

Wed Mar 13 17:17:18 1991  Karl Berry  (karl at hayley)

        * pstype3.c (pstype3_start_output); don't call strcmp if one of
          the args might be null.

        * metafont.c (metafont_start_output): remove any design size from
          the output filename.
        * pstype3.c (pstype3_start_output): likewise.

Mon Mar 11 09:39:22 1991  Karl Berry  (karl at hayley)

        * pstype3.c (pstype3_start_output): start the file with a `%!'.

        * ascii.c (ascii_start_output): don't print the interword space.

Sun Mar 10 15:48:08 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_output_char): output ligature and kerning
          information.
        * metafont.h (metafont_output_char): change the declaration.
        * main.c (main): change the call.

        * main.c (main): report the character codes we do as we go.

        * metafont.c (metafont_start_output): don't output the GPL in the
          generated font.
        * pstype3.c (pstype3_start_output): likewise.

        * metafont.c (metafont_start_output): take the global TFM info as
          a parameter, and output the font parameters.
        * metafont.h (metafont_start_output): change the declaration.
        * pstype3.c (pstype3_start_output): take the global TFM info as a
          parameter, and output the interword space.
        * pstype3.h (pstype3_start_output): change the declaration.
        * main.c (main): change calls.

        * main.c (main): read a TFM file along with the BZR file.

Thu Mar  7 07:31:34 1991  Karl Berry  (karl at hayley)

        * Version 0.2.

Wed Mar  6 15:39:18 1991  Karl Berry  (karl at hayley)

        * bzrsetup.mf (mag, designsize): change things around so we
          generate the same TFM file for all point sizes.

        * bzrsetup.mf (font_quad): don't assign to this; it should come
          from the input.

Fri Mar  1 10:16:57 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_start_output): scale the interword space by
          the design size.

Tue Feb 26 06:50:15 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_finish_output): use `bye' to finish off the
          MF file, instead of `end'.

Mon Feb 25 14:47:51 1991  Karl Berry  (karl at hayley)

        * main.c (main): call `bzr_...' instead of `..._bzr_...'.

        * metafont.c (OUT_PT_ASSIGNMENT): new macro.

        * bzrsetup.mf: use `font_size' instead of `designsize'.
        * metafont.c (metafont_start_output): output the font's interword
          space.

Sun Feb 17 11:46:48 1991  Karl Berry  (karl at hayley)

        * pstype3.c (ps_init_encoding, find_ps_info): use `LIB_ENVVAR',
          not `LIB_NAME'.

Sat Feb 16 16:49:34 1991  Karl Berry  (karl at hayley)

        * *.c: include "config.h".

        * pstype3.c (LIB_NAME): move to ../include/global.h.
        (DEFAULT_LIB_PATH): move to ../include/paths.h-dist.

Sun Feb 10 11:46:31 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_output_char): make sure all the labels
        appear.

Fri Feb  1 14:44:49 1991  Karl Berry  (karl at hayley)

        * bzrsetup.mf: save and restore `proofing' around `mode_setup' if
          the former is >2.

Wed Jan 30 16:00:29 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_start_output): print the copyleft.

        * metafont.c (metafont_output_char): output the first point of
          each spline list with the suffix `s', and the last point with no
          suffix.
        * barsetup.mf (proof_labels): change the suffix we look for
          correspondingly.

Tue Jan 29 10:35:05 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_output_char): output `proof_labels' by
          itself.

Thu Jan 17 16:30:18 1991  Karl Berry  (karl at hayley)

        * bzrsetup.mf: save and restore `proofing' around the
          `mode_setup'; no, don't do that, it makes smoke mode fail.

Wed Jan 16 08:07:45 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_output_char): only output the point list
          once.
        * bzrsetup.mf (proof_labels, general_label): new macros to do all
          the work of producing the proofsheet labels.

        * ascii.c (ascii_output_char), metafont.c (metafont_output_char),
          pstype3.c (out_splines), oblique.[ch] (oblique_splines): changes
          to accomodate the new representation of the character shape as a
          list of lists.

Sat Jan 12 10:39:49 1991  Karl Berry  (karl at hayley)

        * bzrsetup.mf (fill_or_unfill): use := to set `temp_path' instead
          of =.

Fri Jan 11 14:47:08 1991  Karl Berry  (karl at hayley)

        * bzrsetup.mf (fill_or_unfill): improve, so that the Metafont
          output doesn't need temporary path variables.

        * metafont.c (counterclockwise): this was a foolish idea; remove
          this routine, and output MF code to use `turningnumber' instead.
        (FINISH_PATH): new macro to help.

        * metafont.c (metafont_start_output): do `input bzrsetup' in the
          .mf file, instead of writing out all that stuff.
        * bzrsetup.mf: new file.

Thu Jan 10 11:35:28 1991  Karl Berry  (karl at hayley)

        * metafont.c (counterclockwise): make work for the length=2 case.

        * metafont.c (counterclockwise): use the starting point and ending
          point of the first spline, instead of the ending point and the
          first and starting of the next.

Wed Jan  9 07:12:50 1991  Karl Berry  (karl at hayley)

        * metafont.c (counterclockwise): new routine.
        (metafont_output_char): call it, to determine whether we should
        fill or unfill the curve.

Tue Jan  1 16:30:35 1991  Karl Berry  (karl at hayley)

        * metafont.c (metafont_output_char): reinitialize
          `previous_end_point' before outputting the path commands, so we
          don't get a spurious equality.

Sat Dec 29 14:54:14 1990  Karl Berry  (karl at hayley)

        * metafont.c (metafont_output_char): output the labels for the
          control points separately from the start/end points.

        * metafont.c (metafont_output_char): don't output an ending point
          if it is also the first point of the spline.

Wed Dec 26 09:02:24 1990  Karl Berry  (karl at hayley)

        * metafont.c (OUT_LINE): new macro.
        (metafont_finish_output): use it to output the `end'.
        
        * metafont.c (metafont_start_output): get the true-size character
          onto the proofsheet if we're not labeling.

        * metafont.c (metafont_start_output): can't use `unknown
          designsize', since `designsize' is always known.  Instead, test
          if it =0.

Tue Dec 18 14:59:42 1990  Karl Berry  (karl at hayley)

        * metafont.c (metafont_start_output): set turningcheck to 1 in the
          MF output, instead of doing scrollmode, to avoid strange path
          errors and yet stop on other errors.

        * metafont.c (metafont_start_output): take the BZR preamble as an
          arg, so we can use it in the Metafont output.  Allow the user to
          specify an arbitrary point size by setting `designsize'.
        * main.c (main): send in the preamble.

        * ascii.c (ascii_finish_output): doc fix.

        * metafont.c (metafont_output_char): output label commands.

        * metafont.c (metafont_start_output): use OUT_ASSIGNMENT for all
          the assignments.

        * metafont.c (OUT_ZASSIGNMENT): use =, not :=.

        * pstype.c (pstype3_start_output): change KKCharBuilder to
          KKBuildChar, for consistency.
        * KKBuildChar.PS: likewise.

Wed Dec 12 18:53:51 1990  Karl Berry  (karl at aten)

        * metafont.c (metafont_output_char): output the points as Metafont
          variables, instead of just using the points.

Sun Dec  9 14:25:26 1990  Karl Berry  (karl at hayley)

        * metafont.c (OUT1, OUT_ASSIGNMENT, OUT_ZASSIGNMENT): new macros
          to abbreviate output to mf_file.

        * ascii.c, pstype3.c: doc fix.

        * main.c (read_command_line): use FINISH_COMMAND_LINE.

        * GNUmakefile (files): include metafont.
        * main.c (read_command_line, USAGE): new option, `-metafont'.

Sat Dec  1 16:44:34 1990  Karl Berry  (karl at hayley)

        * main.c: include cmdline.h.

        * pstype3.c: include file-open.h.

Wed Oct 24 14:59:16 1990  Karl Berry  (karl at aten)

        * Version 0.0.

Fri Sep 28 09:54:30 1990  Karl Berry  (karl at hayley)

        * main.c (main): call basename on the font name before opening the
        output files.
        (read_command_line): call remove_suffix on the font name before
        returning it.
        Include filename.h.

        * main.c (read_command_line): return NULL at the end.

        * main.c: include "getopt.h", not <getopt.h>.
        * pstype3.c: include filename.h.

Tue Jul 24 13:10:07 1990  Karl Berry  (karl at hayley)

        * pstype3.c (pstype3_start_output): don't include time.h.

Fri Jun 22 17:33:09 1990  Karl Berry  (karl at hayley)

        * pstype3.c (pstype3_start_output): double %'s in calls to OUT1.

        * pstype3.c (ps_init_encoding): use the name find_path_filename
        found to look for the encoding file.

Wed Jun 20 16:10:00 1990  Karl Berry  (karl at hayley)

        * main.c (read_command_line): new routine.

        * GNUmakefile (files): remove read, add oblique, ascii and pstype3.

Sat Jun 16 09:04:58 1990  Karl Berry  (karl at hayley)

        * read.c (do_characters): remove spurious newline after printing
        lines; also, change call to get_bzr_char to the new name,
        get_next_bzr_char.
