%%%
%%%  File: CHANGES.tex
%%%
%%%  mfpic 0.2.10.8 alfa  Tue 28 May 1996
%%%

\magnification=\magstep1

% Read `header.tex' for some typesetting definitions.
\input header

\head{CHANGES HISTORY.}

\vskip\myskip\nobreak
%
\noindent{\it Version 0.0.x:}  Development versions.  Never released.
%
\par\noindent{\it Version 0.1:}  First version RELEASED to network,
30 June 1992.
%
\par\noindent{\it Version 0.1.x:}  Test versions for new features,
fixes, etc.
None of them were released for general distribution.
Many new features added, bugs worked out, code cleaned up.
%
\par\noindent{\it Version 0.2:}  Second version RELEASED to network,
7 Sept.\ 1992.
(Still had 0.1.13.1 version number in code---oops!)
%
\par\noindent{\it Versions 0.2.x:}  Resumed serious development of
\TeX\ code:  Sun 7 Nov.\ 1993.
Much work done on graphbase code in meantime, especially by
Geoffrey Tobin.  The primary task at this point was a radical rewrite
of the \TeX\ code, including defining a prefix form for shading
macros.
%
\par\noindent
{\it Bug fix RELEASE Version 0.2.5} of Wed 10 Nov.\ 1993:
\par\indent
Primarily work by Geoffrey Tobin.
%
\par\noindent{\it Version 0.2.(5.0.)9} of Mon 28 Feb.\ 1994:
Intended to release as version 0.3 to network.
\par\noindent
{\it Release delayed}, as picture operator code is overhauled
to cope with arbitrary overlays:  11 Mar.\ 1994.
\par\noindent
Horizontal offset by unwanted glue is traced to missing comment
characters:  Fri 29 Apr.\ 1994.
\par\noindent
Vertical displacement of shading reported for \MF{} modes with
nonrectangular pixels:  Mon 23 May 1994.
%
\par\noindent
{\it Bug fix RELEASE 0.2.5.1} of Wed 13 July 1994:
Corrected `unxconv' bug which remained in version 0.2.5's graphbase.mf.
%
\par\noindent
{\bf Alpha Test Versions.}
\par\noindent
{\it Version 0.2.9 Alpha} of Thu 11 August 1994:
\par\indent
A test RELEASE prior to any official version 0.3,
is ready for intrepid users.
Introduces coordinate transforms, and other novelties.
\par\noindent
{\it Update 0.2.9.1 Alpha} of Thu 8 September 1994:
\par\indent
Fixes a bug in \macro {sclosed} and a bug in \macro {white},
corrects some omissions and typos in the documentation,
and adds the \macro {shadewd}, \macro {hatchwd}, \macro {lhatch}
and \macro {rhatch} macros.
\par\noindent
{\it Update 0.2.9.2 Alpha} of Fri 24 February 1995:
\par\indent
Rearranges some code in \file {mfpic.tex}; little else to report.
\par\noindent
In {\it 0.2.9.3 Alpha} of Thu 21 March 1995:
\par\indent
GT renamed \macro {fill} to \macro {gfill}, in order to avoid conflict
with the \LaTeX{} \macro {fill} macro.
\par\noindent
{\it Update 0.2.9.4 Alpha} of Thu 13 April 1995:
\par\indent
Contributes a test for an existing definition of each macro in
\file {mfpic.tex},
\par\indent
Renaming of \macro {label} to \macro {tlabel}, and \macro {caption} to
\macro {tcaption}, in order to avoid conflict with the \LaTeX{} macros
with those names.
\par\indent
\macro {white} was renamed to \macro {gclear}, because \macro {white} is
a likely name for a color macro.
\par\indent
Also, a new macro for defining \MF{} functions was introduced, because
user-defined functions provide more power, and function plotting
macros were added that accept \MF{} function names instead of \MF{}
expressions.
\par\indent
Renaming of \file {graphbase.mf} \& \file {graphdoc.tex} to
\file {grafbase.mf} and \file {grafdoc.tex} to emphasise incompatible
upgrade of \prog {mfpic} \MF{} macros, and to provide $8+3$ filenames
for \prog {ms-dos} users.
\par\indent
Added \macro {hbox\{\}} to start of \macro {mfpic}, for some now
forgotten reason to do with formatting, I suppose.
\par\noindent
{\it Version 0.2.9.5 Alfa} of Wed 19 July 1995:
\par\indent
Replaces \TeX{} dimensions by font dimensions for economy.
\par\indent
Renames \macro {mfcmd} to \macro {mfsrc} for clarity.
\par\indent
Renames \macro {wedge} to \macro {sector} to avoid conflict with the
character name defined in plain \TeX{} and \LaTeX{}.
\par\indent
Introduces \macro {mftitle}, \macro {tmtitle} and \macro {plr}.
\par\indent
Abolishes \macro {plrpoint}, \macro {plrlines}, \macro {plrcurve} and
\macro {plrcyclic} as redundant specialisations.
The meaning of \macro {turtle} is changed to a Cartesian form, for
flexibility.
\par\indent
Changed \file {objects.tex} to use \macro {tmtitle}, \macro {plr},
\macro {mfsrc}, \macro {gfill}, \macro {gclear}, \macro {tlabel}, and
\macro {tcaption}.
\par\indent
Rendering macros redesigned, and \macro {setrender} introduced.
Coordinate transforms in \file {grafbase.mf} made slightly more robust.
Begin an attempt to make \file {grafbase.mf} compatible with John
Hobby's MetaPost drawing program.
\par\indent
Added comment in \file {grafbase.mf} about dangers of \mfc {text}
arguments,
\par\indent
Updated the documentation files \file {grafdoc.tex},
\file {Acknowl.tex}, \file {README2}, \file {MANIFEST} and
\file {mfpicdoc.tex}.
\par\noindent
{\it Update 0.2.9.6 Alfa} of Mon 24 July 1995:
\par\indent
Contributes \macro {thatch} which provides hatching by lines at any
angle.
\par\indent
Modifications to \macro {pen}, \macro {shadewd} and \macro {hatchwd},
along with changes to \file {grafbase.mf} to make drawing, shading and
hatching more independent.
\par\indent
Decided that the behavior of \macro {point} inside a \env {connect}
environment was bizarre, hazardous, and an unnecessary complication
to the \prog {mfpic} macros, so \macro {point} has reverted to its
original, obvious and simple definition.
\par\indent
Renamed \macro {rotate} to \macro {rotatepath}.
\par\indent
Also renamed the affine transform macros, so that they no longer use
the `s' of the present tense, which could be mistaken for a plural.
(The sample files did not hitherto use the affine transform macros, so
the damage may be slight.)
\par\indent
Modified \file {grafbase.mf} to use a transform stack to implement local
\MF{} coordinate systems; this may be more robust, and extensible to
other graphic localisations.
\par\noindent
{\it Update 0.2.9.7 alfa}, Fri 18 August 1995:
\par\noindent
{\it Changes to \file {pictures.tex}:}
\par\indent
Replaced version from `{\tt 0.2.9.1 alpha  Thu 8 September 1994}' to
`{\tt 0.2.9.7 alfa  Sat 5 August 1995}'.
\par\indent
Added a comment containing an ASCII sketch of the commutative diagram
example, and indicated where each arc is drawn.
\par\indent
Replaced all uses of \macro {label} by \macro {tlabel}, \macro {caption}
by \macro {tcaption}, \macro {fill} by \macro {gfill}, \macro {wedge} by
\macro {sector}.
\par\indent
Added some uses of \macro {mftitle}.
\par\indent
Moved one arrow in the commutative diagram, to illustrate the {\tt b}
option of the \macro {arrow} command.
\par\indent
Simplified \MF{} algebraic expressions used in function plots, so that
they use fewer {\tt *} operators.
\par\indent
Edited the example of \macro {turtle} to allow for the new semantics of
rectangular coordinates.
\par\indent
Captioned all eight figures, with figure numbers and descriptions.
\par\indent
Deleted an instance of `\macro {vfill}\macro {eject}'.
\par\indent
Increased the complexity of the seventh figure, to illustrate use of
hatching, closing, point, dotted curves, and so forth.
\par\indent
Made figures~seven and~eight twice as large.
\par\noindent
{\it Changes to \file {lapictures.tex}:}
\par\indent
Renamed version from `{\tt 0.2.9.1 alpha  Thu 8 September 1994}' to
`{\tt 0.2.9.7 alfa  Thu 17 August 1995}'.
\par\indent
Magnified the LaTeX pictures document to the same scale as the plain
TeX one, using the \macro {mag} command.
\par\indent
Set \macro {fboxsep} to zero.
\par\indent
Initialised arrow heads using \macro {headshape}.
\par\indent
Commented out the \env {center} environment around the commutative
diagram example.
\par\indent
Placed \macro {fbox} commands around each picture.
\par\indent
Other changes as in \file {pictures.tex}.
\par\noindent
{\it Extensive changes to \file {grafbase.mf}:}
\par\indent
Turned \mfc {warningcheck} off.
\par\indent
Used an explicit \mfc {designsize}.
\par\indent
Debugging refined.
\par\indent
Rearranged some code.
\par\indent
Made \mfc {ClipOn} \mfc {boolean} (instead of \mfc {numeric}).
\par\indent
Added \mfc {maparr} macro.
\par\indent
Eliminated mistake of using \mfc {hround} in graph-to-pixel coordinate
transformation.
\par\indent
Remarked that clipping can distort paths by changing their points.
\par\indent
Tried to clip on character boundary.
\par\indent
Added \MF{} vector coordinate transform, to complement affine
transform for geometric points.
\par\indent
Write message when drawing nominal \MF{} bounding box.
\par\indent
Changed \mfc {beginmfpic} \MF{} macro to take only the character code
as an argument.
\par\indent
Introduced global \MF{} \mfc {transform} stack, for coordinate changes.
\par\indent
Replaced \mfc {currentpen} by \mfc {drawpen} in path stroking.
\par\indent
Changed \mfc {ourfill} and \mfc {ourunfill} to use an {\it undelimited}
\mfc {path} argument.
\par\indent
Added \mfc {setdotpath}, \mfc {ourdot}.
\par\indent
Changed \mfc {onedot} to use \mfc {dotpath} instead of a scaled
\mfc {shape} path.
\par\indent
Edited \mfc {tightbbox} and \mfc {bbox} to take a path described in
pixel coordinates as their first argument, instead of one in graph
coordinates.
\par\indent
Added \mfc {tbbox}.
\par\indent
Did some more saving of local variables in \MF{} functions.
\par\indent
Deleted \mfc {lhatchf} and \mfc {rhatchf}.
\par\indent
Added \mfc {thatchf}, \mfc {thatch}, \mfc {hhatch} and \mfc {xhatch}.
\par\indent
Rewrote mfc{lhatch} and \mfc {rhatch} to use \mfc {thatch}.
\par\indent
Edited \mfc {dotted}, renamed it \mfc {dashed}.
\par\indent
Added a separate \mfc {dotted} \MF{} macro.
\par\indent
Changed \mfc {head} from a \mfc {def} to a \mfc {vardef}; edited
\mfc {head} to clarify its code.
\par\indent
Altered axis tic mark macros, \mfc {xmarks} and \mfc {ymarks} to ensure
that the tic marks are always at right angles to their axes,
irrespective of coordinate transforms.
\par\indent
Added a \mfc {grid} command.
\par\indent
Renamed \mfc {mkellipse} to \mfc {ellipse}, deleted old \mfc {ellipse}.
\par\indent
Renamed \mfc {mkarc} to \mfc {arc}.
\par\noindent
{\it Update 0.2.9.8 alfa}, Mon 11 September 1995:
\par\noindent
Added to \file {Acknowl.tex}.
\par\noindent
In \file {mfpic.tex}:
\par\indent
Add comment about use of \macro {ignorespaces} to skip spaces in user's
document after \macro {mfpic} command.
\par\indent
Retain line separations of user's document's \env {mfpic} environment
when writing \MF{} file.  This prevents long \MF{} commands from
exceeding \MF{}'s input buffer.
\par\noindent
{\it Update 0.2.9.9 alfa}, Thu 5 October 1995:
\par\noindent
In \file {mfpicdoc.tex}:
\par\indent
changed macro{wedge} references to \macro {sector},
and \macro {rotateabout} reference to \macro {rotatearound}.
\par\indent
Added some logical formatting commands to \file {mfpicdoc.tex}.
\par\indent
Included much more information about recent changes
(from {\it 0.2.9.1} to {\it 0.2.9.8}).
\par\noindent
In \file {mfpic.tex}:
\par\indent
Renamed \macro {@graph} to \macro {@graphfont} for identifiability.
\par\noindent
{\it Update 0.2.9.10 alfa}, Fri 6 October 1995:
\par\noindent
In \file {grafbase.mf}:
\par\indent
Deleted spurious argument to \macro {xyswap}.
\par\indent
Changed \macro {store} to take two arguments, and to logically
`bracket' the second, which is the path description.
\par\noindent
{\it Update 0.2.9.11 alfa}, Fri 24 November 1995:
\par\noindent
In \file {grafbase.mf}:
\par\indent
Fixed X-coordinate rounding bug in \mfc {thatchf}.
\par\noindent
{\it Revision 0.2.10.0 alfa}, Wed 17 January 1996:
\par\noindent
In \file {mfpic.tex} and \file {grafbase.mf}:
\par\indent
Changed names of five \MF{} macros:
\macro {xslanted}, \macro {yslanted}, \macro {zslanted}, \macro {boosted},
\macro {xyswapped}
to
\macro {xslant}, \macro {yslant}, \macro {zslant}, \macro {boost},
\macro {xyswap}.
\par\noindent
In \file {grafbase.mf}:
\par\indent
Replaced my dash and dot code by Frank Michielsen's, modified to use
\macro {suffix} arguments instead of \macro {text} for l-values.
\par\indent
Also, the \macro {dotsize} argument to \macro {dotted} is now effective.
\par\indent
Deleted the unused \macro {ourdraw, ourfill, ourunfill} macros.
\par\indent
Simplified the \macro {dotpath} and \macro {onedot} initialisation code;
it was too baroque.
\par\indent
Added a \macro {pixdot} macro as a shorthand for
\macro {picdot (active\_plane, onedot, p)}.
\par\indent
Replaced the \macro {apoint (w, a)} macro by \macro {bpoint (w, b)}
which is a shorthand for \macro {fullcircle scaled w shifted b}.
\par\indent
Gratuitously added Bruce Leban's overlay macros from \MFbook{}, p 295.
\par\indent
Cosmetic reformatting of source.
\par\noindent
In \file {Acknowl.tex}:
\noindent
Add Frank Michielsen's name.
\par\noindent
{\it Revision 0.2.10.1 alfa}, Thu 18 January 1996:
\par\noindent
In \file {grafbase.mf}:
\par\indent
Fixed wrong declaration in \macro {dotted} of \macro {dp} from
\macro {path} to \macro {pair}.
\par\noindent
{\it Revision 0.2.10.2 alfa}, Tue 23 January 1996:
\par\indent
Editing to restore compatibility with older graphbase.mf versions used
with \prog {xfig}'s (actually, \prog {transfig}'s \prog {fig2dev}'s)
\prog {mf} driver (\file {genmf.c}).
\par\noindent
In \file {mfpic.tex}:
\par\indent
Edited writing of setting of \MF{} variables \macro {xscale} and
\macro {yscale} to omit factor of \macro {unitlen}.
\par\indent
Changed references to \gbc {drawwd} to \gbc {penwd} in
\macro {drawpen}.
\par\noindent
In \file {grafbase.mf}:
\par\indent
Add declarations and initialisations of these variables:
\macro {unitlen, xscale, yscale, xneg, xpos, yneg, ypos}.
\par\indent
Renamed \macro {drawwd} to its former name, \macro {penwd}.
\par\indent
Again made \macro {penwd, hdwdr, hdten} into \macro {newinternal}
variables, and assign them using \macro {interim}.
\par\indent
Definition of ztr now includes \macro {unitlen} as a factor in the x
and y scaling.
\par\indent
\macro {mfpicenv} and \macro {endmfpicenv} defined as empty statements.
\par\indent
\macro {bounds} defined for setting \macro {xneg, xpos, yneg, ypos}.
\par\indent
\macro {beginchar} now includes \macro {unitlen}.
\par\noindent
{\it Revision 0.2.10.3 alfa}, Tue 6 February 1996:
\par\noindent
In \file {mfpicdoc.tex}:
\par\indent
Updated documentation to cover to \macro {dotted}, \macro {dotsize}
and \macro {dotspace} on the one hand, and \macro {dashed},
\macro {dashlen} and \macro {dashspace} on the other.
\par\indent
$\cdots$
\par\noindent
{\it Revision 0.2.10.4 alfa}, Mon 26 February 1996:
\par\noindent
In \file {mfpic.tex}:
\par\indent
Let internal \macro {sim@gdef} (simple global definition)
stand for \macro {gdef}.
\par\indent
Added \macro {newgdef} for new global definitions with a test for
previous definition.
\par\indent
Replaced use of \macro {obeylines} by \macro {mfpicobeylines}, to use
\macro {endgraf} instead of \macro {par}, because LaTeX(2e) redefines
\macro {par} with unpleasant effects on \MF{} files when using LaTeX's
center environment.  (To wit, LaTeX's \env {center} environment would
write \macro {@@par} to the \MF{} file.
\par\indent
Defined \macro {preservelines} to call \macro {mfpicobeylines} then
set \macro {newlinechar} to control-M (carriage return).
\par\indent
Use \macro {preservelines} in \macro {mfsrc}, thus bypassing (I hope)
the mischief arising from LaTeX in the center environment.
\par\indent
Wrapped replacement text of \macro {mfsrc} in a layer of braces.
\par\indent
Added descriptive comments for \macro {tlabel} and \macro {tcaption}.
\par\indent
Set \TeX's primitives \macro {leftskip} and \macro {rightskip} to zero
dimension inside \macro {tcaption}, so as to protect typesetting of
diagrams' captions from unwanted effects.
\par\noindent
{\it Revision 0.2.10.5 alfa}, Sat 9 March 1996:
\par\noindent
Minor reformatting of \file {mfpic.tex}, including adding spaces,
adding comment characters at end of more lines, and renaming some
internal register variables.
\par\noindent
Introduced \macro {polyline} as an alternative name for \macro {lines}.
\par\noindent
In order to avoid repetition of side-effects, changed \macro {tcaption}
to use \macro {unhbox}\macro {@textbox},
instead of repeating its text argument.
\par\indent
{\it Revision 0.2.10.6 alfa}, (two hours later) on Sat 9 March 1996:
\par\indent
Updated \file {mfpic.tex} and documentation files to incorporate
improvements by Daniel H.~Luecking:
\par\indent
a loading check that automatically saves and restores the catcode of
`@';
\hfil\break
the name of the graph base is now stored in a macro near the top of
\file {mfpic.tex};
\hfil\break
\macro {leavevmode} is now moved
[GT has, for now, commented it out completely];
\hfil\break
\macro {polyline} instroduced as a synonym for \macro {lines};
a \macro {polygon} figure has been introduced;
\hfil\break
{\bsl\bsl} specifies explicit line breaks in tlabels and tcaptions;
\hfil\break
\macro {onelevel} causes one level of expansion in an \macro {edef};
\hfil\break
\macro {savepic} and \macro {copypic} allow saving, use and copying
of an entire \prog {mfpic} picture, including its tcaptions and
tlabels.
\par\indent
Also modified \macro {tcaption} code to prevent repeated use of the
text argument, as that can cause side effects, as reported by
Dennis Petrovic.
\par\noindent
{\it Revision 0.2.10.7 alfa}, Sat 28 March 1996:
\par\noindent
First RELEASE via Geoffrey Tobin's School's local anon ftp site:
\hfil\break
\hskip 1cm \file {ftp.ee.latrobe.edu.au : pub/gt/mfpic}
\par\indent
Added \file {skip-pix.tex} file, which tests whether \TeX's
\macro {leftskip} primitive breaks up \prog {mfpic}'s typesetting
of diagrams.  Fortunately, it seems not.
\par\noindent
{\it Revision 0.2.10.8 alfa}, Tue 26 May 1996:
\par\noindent
Second, and bug fix, RELEASE via Geoffrey Tobin's anonymous ftp area.
\par\indent
Due to change in syntax of \macro {store} to take the path command as
a second argument (which made coding of \file {mfpic.tex} easier),
\file {objects.tex} and part of \file {mfpicdoc.tex} needed to be
amended.
Reported by Miroslav Dont (Thu 16 May 1996).
\par\indent
Descriptions of \LaTeX\ environments clarified to emphasise that
\prog {mfpic}'s plain \TeX\ command names may be used in \LaTeX.
This is useful to know when designing automatic code generators.
Reported by Van Snyder (Fri 17 May 1996).
\par\indent
Added hyphenation to \macro {MFbook} in documentation macro file
\file {header.tex}.
\par\indent
Noticed that the method by which the line breaks in the \TeX{}
file are copied into the \MF{} file can cause command arguments
to be omitted from the \MF{} file unless at least the left brace
(immediately before the arguments) occurs on the same line as the
command.
Corrected \file {objects.tex} to obey this restriction.
Also noted this phenomenon in \file {mfpicdoc.tex}.
Effect reported by Miroslav Dont (Thu 16 May 1996).
\par\indent
Updated \file {lapictures.tex} to \LaTeXe.
\par\indent
Added \LaTeXe\ logo to \file {header.tex}.

\bye

%%%
%%%  end  CHANGES.tex
%%%
