1Version 2.6 released, 9/2009.  [Includes libplot 4.4, interface age=2.]
2
3ode:	 File ode/specfun.c now heavily rewritten to remove all non-GNU
4	 copyrights.  For details, see the file ./COMPAT.
5libplot: Several bugfixes to the SVG and PS drivers.  (Thanks to Diomidis
6	 Spinellis, James Anderson, and others, for pointing out that
7	 several apps that import SVG or PS were choking on libplot's
8	 output.  Some still choke on its SVG output, but that's no longer
9	 libplot's fault; see ./COMPAT.)
10libplot: The SVG driver now no longer assumes that the application that
11	 imports or displays SVG can do _any_ justification of text strings
12	 (not even horizontal justification, e.g., position a string in a
13	 right-justified way, with its right edge at a given point).  Many
14	 SVG viewers still get this wrong.
15libplot: Fig plotters now slightly increase the width of drawn lines,
16	 in .fig output, to agree with the interpretation of `line width'
17	 in recent releases of xfig.  (Thanks to Wolfgang Glunz and
18	 Bart De Schutter for pointing out the need for this.)  This
19	 affects executables built with libplot, such as `graph -Tfig'.
20graph,plot,tek2plot,plotfont,pic2plot,hersheydemo: The output of the
21         `--help' option now cautions that if a `-T' or `--output-format'
22         command-line option is not included, the output will by default
23         be in the `metafile' format, which is probably not what the user
24         expects or wants (by default, it is in binary).
25hersheydemo: New executable, generating a single demo page that serves
26	 as an advertisement for the Hershey vector fonts.  (It replaces
27         the file doc/h-demo.c.)  Invoke it by doing, e.g.,
28	 `hersheydemo -Tsvg > demo.svg' , or `hersheydemo -Tps | lpr' .
29         It supports the usual libplot options such as --bg-color,
30	 --pen-color, and --page-size.  Also --bitmap-size, if a bitmap
31	 output format is requested; but note that the Hershey fonts, not
32	 being anti-aliased, do not look their best in low-resolution
33	 (i.e., small-size) bitmap output.
34
35Version 2.5.1 released, 7/2008.  [Includes libplot 4.3, interface age=2.]
36
37package: license for the package (and for libplot) upgraded to GNU GPL v3.
38libplot: SVG output format slightly tweaked, to ensure compatability with
39	 SVG 1.1 syntax, as tested for by validator.w3.org.
40	 Note: a few SVG editing tools, such as inkscape, currently fail
41	 to agree with libplot's SVG semantics, in positioning text.
42	 That appears to be their fault (they do not comply with the
43	 handling of reflected text, as specified in the SVG 1.1 standard).
44libplot: Fixed a bug in bounding box computatations when triangular
45	 line-joins are used.
46executables: Changed nearly all warning and error messages to complete
47         sentences, to smooth the upcoming transition to gettext.
48
49Version 2.5 released, 12/2005.  [Includes libplot 4.2, interface age=2.]
50
51package: bug reporting address has changed to bug-plotutils@gnu.org.
52libplot: support for rotated and sheared (i.e., "anamorphically
53	 transformed") X Window System fonts has been completely rewritten.
54	 Core X fonts are still used, but it is no longer assumed that the
55	 X display has the ability to rasterize rotated and sheared glyphs.
56	 (Recent releases of XFree86 are broken in this regard.)  Instead,
57	 unrotated glyphs are retrieved from the server, and rotated or
58	 transformed within libplot.  See new module libplot/x_afftext.c.
59graph: plotting of rotated y-axis labels by the `-Y' option, when `-T X' is
60         specified (so that output is to an X Window System display) should
61         now work, even when recent broken releases of XFree86 are used.
62         This is due to the above change to libplot.
63libplot: URW versions of the standard 35 Adobe fonts (Helvetica,
64	 Times-Roman etc.) are now checked for under their own names on any
65	 X Window System display, as well as under the Adobe names.  This
66	 fixes a problem with recent SuSE GNU/Linux distributions, of
67	 `graph -T X' being unable to use even the default Helvetica font.
68libplot: SVG output is now conformant SVG 1.1, and should not be rejected
69	 by the Firefox browser.
70libplot: vertical positioning of text strings by the SVG driver is
71	 improved; libplot now does vertical positioning itself, since
72	 many SVG renderers, e.g. Firefox 1.5, can't do it properly.
73libplot: the ROTATION parameter, which is the angle in degrees at which the
74	 viewport in the output (device) frame should be rotated, can now
75	 take values other than 0, 90, 180, and 270.
76graph,plot,tek2plot,plotfont,pic2plot: the --rotation option no longer
77         requires that the specified angle be 0, 90, 180, or 270 degrees.
78         Some quite postmodern effects can now be obtained.
79libplot: modifiers such as "xsize=6in", "yoffset=8cm" appended to the
80	 PAGESIZE parameter by the user, to do fine positioning of the
81	 viewport on the output page, are no longer sometimes ignored.
82graph,plot,tek2plot,plotfont,pic2plot: modifiers such as "xsize=6in",
83         "yoffset=8cm" appended to the argument of the --page-size option,
84         by the user, to do fine positioning of the viewport on the output
85         page, are no longer sometimes ignored.
86libplotter,pic2plot: problems with compilation by recent C++ compilers now
87	 fixed: unsigned char* is cast to char* as needed, deprecated C++
88	 headers have had their names modernized, etc.  Support for `bool'
89	 in the C++ compiler is now assumed (this could be trivially backed
90	 out of, if needed).
91installation: entire package can now be compiled by a C++ compiler if
92	 desired; request this by doing e.g. `CC=g++ ./configure'.
93installation: support for pre-ANSI C compilers, such the SunOS 4.1.3 one,
94	 now largely dropped.  Non-working `const' is still checked for,
95	 but compiler support for prototypes and void is now assumed.
96	 Removal of preprocessor macros that supported pre-ANSI C, from
97	 many source files, considerably improved maintainability.
98installation: updated GNU autotools now used (autoconf-2.59, libtool-1.5.6,
99	 and the older automake-1.4-p6 for safety's sake).  Also, recent
100	 flex/bison have been used to prepare the scanner and parser supplied
101	 with the ode source (flex-2.5.31 and bison-1.875d).
102graph: new short `-Q' option, which is equivalent to the long option
103	 `--toggle-rotate-y-axis-label'.
104graph,plot,tek2plot,plotfont,pic2plot: `--display-type' long option, the
105	 name of which confused some users, has been changed to
106	 `--output-format'.  The old option is still supported but is now
107	 deprecated.  The short option `-T' continues to work.
108libplot: problems with PS output triggering an error in some versions of
109	 ghostscript (and hence ghostview, gv), due to changes in the way
110	 ghostscript handles FontBBox, now fixed.  Thanks, Brian Gough (and
111	 also Alex Cherepanov, who found the fix to idraw's PS prologue).
112libplot: most external symbols not meant to be publicly accessible now have
113	 names beginning with the prefix "_pl_", to reduce the possibility
114	 of namespace collisions.  This will be completed in a later release.
115executables: output of "--help" has been altered to agree with current GNU
116	 coding standards.
117package: copyright and license notices added to nearly all source files.
118
119Version 2.4.1 released, 7/2000.  [Includes libplot 4.1, interface age=2.]
120
121graph,plot,tek2plot,plotfont,pic2plot: `--page-size' option and PAGESIZE
122	 environment variable now allow precise specification of viewport
123	 size and location on the printed page.  For example,
124	 `--page-size=letter,xsize=5in,ysize=3in,xorigin=1in,yorigin=2in'
125	 is now a possible command-line option.  The traditional `xoffset'
126	 and `yoffset' fields are still supported.
127libplot: PAGESIZE parameter extended, to allow precise specification of
128	 viewport size and location on the printed page (see item above).
129libplot: bug dealing with filling of paths formed from segments of multiple
130	 types now fixed.  It affected CGM and possibly other output
131	 formats.  (CGM version number was affected: it could be too high.)
132pic2plot: pic parser extended to support a new command, srand(), which sets
133	 the seed for the random number generator that rand() invokes.
134	 This is for compatibility for GNU pic, which (as distributed in
135	 the recently released groff-1.16) now supports srand().
136libplot: a bug in xfig is now worked around.  When producing Fig output,
137	 any text string consisting of a single space, which is rotated at
138	 a nonzero angle, is no longer written to the output file.  As of
139	 xfig-3.2.2, xfig crashes when it sees such strings.
140installation: `configure' now supports `--with-athena=DIR' and
141	 `--with-motif=DIR' options, to allow specification of location of
142	 Athena and Motif files.  Also, `--with-xpm=DIR' is now supported,
143	 since some versions of Motif require linking with libXpm, and the
144	 libXpm may be located in an odd place.  (Thanks, Albert Chin.)
145pic2plot: distributed `gram.c' file is now prepared with bison-1.28, so it
146	 should compile under Solaris 2.7.  (Thanks, Albert Chin.)
147
148Version 2.4 released, 6/2000.  [Includes libplot 4.0, interface age=2.]
149
150libplot: libxmi rendering module (used by GIF/PNM/PNG drivers) has been
151	 upgraded from version 1.1.1 to 1.2.  This fixed an obscure bug
152	 that appeared when regions of one color were completely covered by
153	 regions of another color.  The bug caused both memory allocation
154	 failures and segfaulting.
155libplot: library now contains a version string, `pl_libplot_ver'.  The
156         plot.h and plotter.h header files now contain both the version
157	 string and a numeric variant of it, as macros.  Cf. libpng.
158libplot: rendering of color on truecolor X displays has been speeded up.
159	 Pixel value computations are now performed in libplot, not in the
160	 X display.  Useful Plotter parameter XDRAWABLE_VISUAL added.
161graph,plot,tek2plot,plotfont,pic2plot: `-T svg --bg-color none' and `-T cgm
162	 --bg-color none' now supported (see below).
163libplot: SVG and CGM Plotters now support a background color of "none", to
164	 turn off the background.  This is useful when generated graphics
165	 files that will be placed in Web pages, especially.
166graph,plot,tek2plot,plotfont,pic2plot: `-T svg' now allowed.
167libplot: SVG driver added, which outputs the new XML-based SVG (scalable
168	 vector graphics) format.
169graph,plot,tek2plot,plotfont,pic2plot: all color names, when supplied as
170	 command-line arguments, may now be specified as 24-bit RGB
171	 strings, e.g., '#ffffff'.
172libplot: pencolorname(), fillcolorname(), and bgcolorname() now allow
173	 colors to be specified as 24-bit RGB strings, e.g., '#ffffff'.
174libplot: space() operation, or equivalent, no longer needs to be invoked at
175	 the beginning of each page of graphics to set the user coordinate
176	 system.  Default coordinate system assigns coordinates (0,0),
177	 (1,0), (1,1), (0,1) to the corners of the graphics display.
178libplot: fontsize() operation now accepts an argument of zero, though the
179	 meaning of `font size 0' is Plotter-dependent.  Few Plotters can
180	 draw strings with zero font size; in non-Hershey fonts, anyway.
181libplot: Tektronix driver now analyses the environment variable TERM more
182	 carefully.  Any string beginning with "xterm", "nxterm", or
183	 "kterm" is treated as as equivalent to "xterm", for example.
184documentation: man page for plotfont added.
185libplot: completely new metafile export driver, written from scratch.
186libplot: filled marker symbols were sometimes drawn incorrectly.  Fixed.
187ode: distributed `gram.c' file is now prepared with bison-1.28, so it
188	 should now compile under Solaris 2.7.  (Thanks, Albert Chin.)
189libplot: alabel() function now accepts a `C' positioning option, which
190	 aligns a label's cap line with the current vertical position.
191libplot: escape sequences "\r^" and "\l^" in labels, which shift right and
192	 left by 1/12 em, respectively, weren't working if the current font
193	 was a Hershey font.  Fixed.
194libplot: new function, fsetmatrix(), added to the API.  It sets the
195	 transformation matrix from user coordinates to normalized device
196	 coordinates.  In NDC coordinates, the graphics display,
197	 i.e. viewport, has corners (0,0), (1,0), (1,1), (0,1).
198libplot: bug in drawing of rectangles by X driver, when ROTATION parameter
199	 is set, now fixed.  (It affected `graph -TX --rotation=90'.)
200graph,plot,tek2plot,plotfont,pic2plot: `-T regis' now allowed.
201libplot: ReGIS driver added, which outputs ReGIS (DEC's remote graphics
202	 instruction set, understood by DEC's VT340 and earlier terminals,
203	 and also emulators like DEC's decterm).  No support yet for filling
204	 paths that extend beyond the boundaries of a ReGIS display, due to
205	 a need for clipping code.
206libplot: flattening of Beziers into polylines, in output formats that don't
207	 provide native support for Beziers, now much improved.  An
208	 adaptive scheme now handles unusually `bent' sections of a Bezier.
209libplot: when producing PCL 5 output, ellipses and elliptic arcs are now
210	 approximated by cubic Beziers.  When producing Illustrator output,
211	 circular arcs are now approximated by them, too.
212libplot: bugs in rendering of elliptic arcs, ellipses, and circles, in
213	 Illustrator output format, now fixed.  The bugs were due to an
214	 incorrect approximation of these primitives by cubic Beziers.
215libplot: in GIF, PNM, and PNG output, arcs (circular and elliptic), circles
216	 and ellipses are now drawn using libxmi scan-conversion, rather
217	 than being polygonalized, and drawn by libxmi as polylines.
218libplot: PCL5 driver now uses the HP-GL/2 `SV' and `CF' instructions to do
219	 a better job of matching user-specified pen colors.  It can now
220	 employ shaded (desaturated) versions of the defined pen colors, as
221	 well as the defined colors themselves.  Of course, only PCL5
222	 printers that support dynamic pen color assignment (which you must
223	 request via the `PCL_ASSIGN_COLORS' option) do a perfect job of
224	 matching user-specified pen colors.  Many monochrome PCL5 printers
225	 map all 7 standard PCL5 (i.e. HP-GL/2) pen colors to `black'.
226graph,plot,tek2plot,plotfont,pic2plot: `-T png' now allowed if libplot
227	 contains a PNG driver.
228libplot: PNG driver added, which outputs PNG (portable network graphics)
229	 format.  Included only if libpng (version number >= 0.95) and libz
230	 are found at package installation time.  `configure' now supports
231	 a `--without-libpng' option to disable PNG support.
232pic2plot: if the `-d' option is used to request precision dotting or
233	 dashing, filled rounded boxes with a dotted or dashed boundary are
234	 no longer displayed with an unwanted solid edge.
235libplot: marker symbols are now always drawn with pentype `1', fixing
236	 a bug that appeared when pentype was manually set to `0'.
237graph,plot,tek2plot,plotfont,pic2plot: `--emulate-color yes' option now
238	 supported, to replace each color in the output by a grayscale
239	 approximation.  Particularly useful when preparing PCL 5 output
240	 with `-T pcl', to be printed on a monochrome PCL 5 printer.  Most
241	 such printers map HP-GL/2's seven standard pen colors (even
242	 yellow!) to black.
243libplot: EMULATE_COLOR Plotter parameter added.  If "yes", grayscale
244	 emulation of colors results, in accord with the CIE luminance
245	 computation standardized by Rec. 790.
246libplot: PS driver now maps the output of each call to box() to idraw's
247	 `Rect' primitive, rather than to idraw's `Poly' primitive.
248libplot: some obscure bugs involving the edging of rectangles with
249	 user-defined dashing patterns have been corrected.  If the
250	 rectangle is generated by calling box(), the dash pattern now
251	 starts at the first-specified vertex, in all output formats.
252libplot: zero-length dash arrays [specified with linedash()] were causing a
253	 segfault in HPGL Plotters when HPGL_VERSION="1.5" or "1".  Fixed.
254libplot and applications: when producing HP-GL/2 output, e.g., via the
255	 default `-T hpgl' option, the kerning of non-fixed width device
256	 resident fonts such as "Arc" has been much improved.  Also, such
257	 half-Japanese fonts as "StickANK" and "ArcANK" can now be used.
258libplot and applications: when producing generic HP-GL output, via the
259	 option `-T hpgl' with HPGL_VERSION=1, basic device-resident vector
260	 fonts such as "Stick" and "Arc" can now be used, if present.
261libplot: when HPGL_VERSION is 1.5 or 1, the filling of regions has been
262	 improved.  Solid filling with a single pen was used, but this has
263	 been changed to cross-hatching, to match better the filling color.
264	 The algorithm for choosing the inter-line distance in the
265	 cross-hatch is from the HP7550B (HP's first HP-GL/2 pen plotter).
266libplot: HP-GL and PCL Plotters, in their output files, now round the miter
267	 limit to the nearest integer, downwards.  That's because there's
268	 at least one HP-GL/2 interpreter (the firmware in the HP7550B pen
269	 plotter) that insists that it be an integer.  In early
270	 documentation, HP itself seems to have been unclear on that point.
271libplot: due to renaming of external symbols, it is now possible to link
272	 both libplot/libplotter and libxmi simultaneously with an
273	 application, if desired.
274libplot: as previously promised in libplot documentation, calling the API
275	 function pentype() with a value argument of `0' now turns off the
276	 drawing of markers and `points' (i.e., pixels), besides turning
277	 off the edging of paths, which is all that it formerly did.
278libplot: bug in drawing of rectangles by X and XDrawable Plotters, when
279	 user coordinate system has been rotated relative to the default
280	 coordinate system, now fixed.
281libplot: invoking closepl() on an XPlotter or XDrawablePlotter when the
282	 stack of drawing states is nonempty, without first calling
283	 restorestate() repeatedly to pop the stack, formerly yielded
284	 erratic behavior.  Now fixed.
285libplot: X driver, very rarely, would sometimes block, waiting for user
286	 input such as mouse motion.  This was due to blocking behavior of
287	 select(), invoked by XtAppPending() in our hand-crafted event
288	 loop.  Now fixed; previously, the bug had almost (but not
289	 completely!)  been fixed in plotutils-2.2.  Thanks to Massimo
290	 Santini for providing a system call trace, as a useful diagnostic.
291libplot: X driver now checks the coordinates of each polyline, before
292	 drawing it, to determine whether they can be represented as 2-byte
293	 integers in accordance with the X11 wire protocol.  If not,
294	 polyline is truncated and a warning message is emitted.
295libplot: PCL driver, when generating PCL 5 output containing Postscript
296	 fonts, was specifying the wrong font number for Bookman.  Fixed.
297	 (This bug was significant only if `--enable-ps-fonts-in-pcl' was
298	 specified at installation time.)
299libplot: the point() operation, when invoked on a CGM Plotter, was not
300	 updating the graphics cursor position.  Fixed.
301libplot: font descriptions included in WebCGM output files, to facilitate
302	 font substitution, incorrectly identified italic Postscript fonts
303	 as `oblique' rather than italic, and contained incorrect
304	 classifications for AvantGarde and NewCenturySchlbk.  This
305	 affected `-T cgm' output from all graphics utilities.  Fixed.
306libplot: `offset' parameter of linedash() function, if nonzero, did not
307	 produce correct effect in WebCGM output.  Fixed.
308libplot: when producing WebCGM output, libplot's `triangular' line cap
309	 style is now mapped to CGM's round line cap style, rather than
310	 CGM's triangular line cap style, since the latter disagrees with
311	 libplot's convention (taken from HP-GL/2) that the cap should be a
312	 stubby triangle, not an equilateral one.
313libplot: when a FigPlotter runs out of user-defined colors (511 appears to
314	 be the maximum), it now quantizes to the nearest standard or
315	 user-defined color.  Previously, exceeding the maximum number of
316	 user-defined colors triggered a bug.
317installation: CFLAGS and CXXFLAGS may now be set at build time, i.e., if
318	 set, will not be ignored.
319
320Version 2.3 released, 10/1999.  [Includes libplot 3.0, interface age=1.]
321
322graph,plot,tek2plot,plotfont,pic2plot: `-T cgm' option now allowed.  The
323	 CGM version number and encoding scheme may be selected by setting
324	 the CGM_MAX_VERSION, CGM_ENCODING environment variables.
325libplot: CGM support added.  By default, a CGM Plotter produces
326	 binary-encoded version-3 CGM format, which conforms to the WebCGM
327	 profile.  Parameters CGM_MAX_VERSION, CGM_ENCODING are supported.
328libplot: X Plotters now support an X_AUTO_FLUSH parameter, with default
329	 value "yes".  Set it to "no" to turn off the invocation of
330	 XFlush() after each drawing operation, which slows down some
331	 applications that use libplot's X Plotter support.
332libplot: when producing X11 output, box() and fbox() were drawing
333	 rectangles clockwise, beginning at the upper left corner,
334	 disagreeing with libplot's convention of drawing rectangles
335	 counterclockwise, beginning at the first-specified vertex.  Fixed.
336libplot: new function pentype() added to the API.  If its argument is 0,
337	 stroking of paths (as opposed to filling) is turned off.  So,
338	 e.g., `edgeless polygons' can now be drawn.
339libplot: fixed the `zombie children' problem with the X driver.  With each
340	 invocation of closepl(), a child process is forked off to manage a
341	 popped-up X window.  Previously, if `q' was typed in a previously
342	 popped-up window, that window would close, but its process would
343	 turn into a zombie (still appearing in the process table).
344libplot: flinedash() was not acting correctly on Metafile Plotters unless
345	 the META_PORTABLE parameter was set to "yes".  Fixed.
346libplot: width tables for the AlbertusMedium font, available when producing
347	 PCL5 and HP-GL/2 output, contained errors, giving incorrect
348	 positioning of text strings, e.g., by `graph -T pcl'.  Now fixed.
349libplot: label() and alabel() operations, when applied to a MetaPlotter,
350	 now check that the argument string contains only characters in the
351	 printable ISO-Latin range.  Other Plotters already did this.
352libplot: fixed problem with Illustrator Plotters sometimes changing line
353	 styles and other drawing attributes when erase() was invoked.
354graph,plot: `--max-line-length' option was incorrectly ignored; now fixed.
355libplot: MAX_LINE_LENGTH Plotter parameter variable was usually ignored;
356	 this has been fixed.
357tests: regression tests performed by `make check' now include tests on PCL5
358	 output.
359graph: new `-H' option added.  `graph -H' will draw a copy of the graph
360	 frame (including grid lines) on top of the data, as well as
361	 beneath it.  This is useful if the plotted dataset(s) project
362	 slightly beyond the frame, due to large symbols or a large line
363	 thickness being used.
364libplot: for X, X Drawable, PNM, GIF, and PCL/HP-GL Plotters, introduced a
365	 convention for how to draw polylines all of whose vertices are
366	 mapped to the same pixel in integer device coordinates.  Now drawn
367	 as a filled circle of diameter equal to line width, provided that
368	 either (1) the points in user space weren't all the same, or (2)
369	 they were all the same, but the cap mode is "round".  (Line width
370	 0 is treated as line width 1 here.)  If neither (1) nor (2) holds,
371	 draw nothing.  Tektronix Plotters now follow a similar policy on
372	 whether or not to display such polylines visibly.
373libplot: PCL and HP-GL Plotters no longer segfault (due to a stack blowout)
374	 when trying to render very small line segments or marker symbols.
375libplot: PNM and GIF Plotters were incorrectly displaying paths with line
376	 mode "disconnected" as a sequence of single pixels, rather than a
377	 sequence of filled circles of diameter equal to linewidth.  Fixed.
378libplot: incorrect PCL font names Univers-Italic and Univers-BoldItalic
379	 changed to Univers-Oblique and Univers-BoldOblique.  Similarly,
380	 UniversCondensed-{Italic,BoldItalic} renamed.
381libplot: new ROTATION parameter added, to provide support at the libplot
382	 level for the `--rotation' option of the command-line utilities.
383	 It rotates the viewport on the display device, without changing its
384	 position.  The rotation maps vertices to vertices.
385libplot: default font when producing PCL5 output is now Univers rather than
386	 HersheySerif.
387libplot: on their output pages, PCL, Fig, PS, and HP-GL Plotters will now
388	 shift their viewports as specified in the PAGESIZE
389	 parameter/environment variable.  E.g., its value could be
390	 "letter,xoffset=1in,yoffset=-2cm" or "a4,yoffset=+12mm", as well
391	 as just "letter" or "a4".  Default viewport locations documented.
392libplot: PCL Plotters and Fig Plotters now position their viewports
393	 (i.e. "graphics displays") in the center of their pages, like PS
394	 Plotters.  So support for the PCL_XOFFSET and PCL_YOFFSET
395	 parameters has been dropped.  Support for HPGL_XOFFSET and
396	 HPGL_YOFFSET also removed for consistency, even though the default
397	 HP-GL viewport position has not changed.
398libplot: PS fonts Courier-Oblique, Courier-BoldOblique can now be requested
399	 under the names Courier-Italic, Courier-BoldItalic.  Also, PCL
400	 fonts Courier-Italic, Courier-BoldItalic can now be requested
401	 under the names Courier-Oblique, Courier-BoldOblique.
402libplotter: fixed a very bad bug in the MetaPlotter output routine that was
403	 garbling output in non-portable mode.
404libplotter: fixed a very bad bug in warning-message and error-message
405	 handlers.  Messages were being written to output stream, not error
406	 stream.
407libplot and graph: substantial changes to the code that plots marker
408	 symbols.  The marker symbols that `graph' produces when `-TX',
409	 `-Tgif', or `-Tpnm' is specified are now much better-looking.
410graph: data files in the `table' format produced by recent versions of
411	 gnuplot can now be read, if the `-I g' option is specified.
412libplot: support for "triangular" join mode added to PNM and GIF Plotters.
413	 Partial support for triangular cap mode too (for single arcs, but
414	 not for polylines or arbitrary paths).  Triangular joins and caps
415	 have the same meaning as in HP-GL/2.
416libplot and installation: libpthread, and support for pthreads (Posix
417	 threads) in libc, are now checked for at build time.  If they're
418	 found, special support for multithreading is added to libplot.
419libplot: new thread-safe C++ API added (via PlotterParams object, passed to
420	 Plotter ctors).  Old non-thread-safe C++ API still supported.
421libplot: new thread-safe C API added, with function names like pl_newpl_r()
422	 and pl_openpl_r().  Much hacking of libplot source code to make it
423	 thread-safe, but the old C API (non-thread-safe) is still
424	 supported.
425graph: improved the computation of the x and y ranges, if only partially
426	 specified by user.  Now expanded to show, in full, truncated line
427	 segments between data points (if any).
428spline: some numerical instability problems fixed (tension parameter may
429	 now be taken extremely large without ill effects).
430libxmi: new low-level scan conversion library, containing the X11
431	 rasterization code used by PNM and GIF Plotters.  Installed as a
432	 standalone library, along with header file xmi.h, if `./configure
433	 --enable-libxmi' is done.  Separate texinfo documentation
434	 installed too.  libxmi will be distributed as a separate GNU
435	 package, also.
436installation: if gcc is employed, optimization option "-O2" is now used.
437	 Well-known strength-reduction bug in "gcc -O2" is checked for.
438tek2plot: each `point' in a Tektronix-type input file is now mapped to
439	 libplot marker symbol #1 (a dot).  This improves visibility.
440libplot: marker symbol #1 (a dot) is now drawn in many output formats as a
441	 small filled circle, of diameter equal to one-fifth of the
442	 diameter of marker symbol #4 (an open circle).  This improves
443	 visibility for the output of `graph -m 0 -S 1' (previously, in
444	 many output formats marker symbol #1 was too small to see).  If
445	 this is too large, specify a second argument to the `-S' option.
446installation: --enable-lj-fonts-in-ps option now works (no more compilation
447	 problems).
448graph,plot,tek2plot,plotfont,pic2plot: fixed the output of `-T hpgl
449	 --list-fonts', which unlike `-T hpgl --help-fonts', was listing
450	 the names of some Stick fonts (i.e. HP vector fonts) that are
451	 inaccessible unless HPGL_VERSION is "1.5".
452installation: bizarre installation problem on powerpc-apple-machten4
453	 systems (involving presence of .xcoff files) now worked around.
454	 (Configure script now ignores *.xcoff files.)
455
456Version 2.2 released, 3/1999.  [Includes libplot 2.0, interface age=0.]
457
458libplotter: added support for iostreams.
459libplot: X Drawable Plotters can now use double buffering (a fatal
460	 error was identified and fixed, thanks to Georgy Salnikov).
461graph: increased number of orders of magnitude that a logarithmic axis may
462	 span, before ticks not at powers of ten are omitted.  Was 4.0; now
463	 5.0.  Suggested by Martin Ward.
464graph: -R option sometimes caused crashing on logarithmic axes, since it
465	 could change the lower endpoint of the axis to zero.  Fixed.
466libplot: values "yes" and "fast" for USE_DOUBLE_BUFFERING are now
467	 equivalent.  If double buffering, X driver now automatically uses
468	 the DBE protocol extension (or the MBX extension) if available.
469libplot: X driver, very rarely, would sometimes block, waiting for user
470	 input such as mouse motion.  Traced to blocking behavior of
471	 select(), invoked by XEventsQueued(), invoked by XtAppPending().
472	 Problem now fixed (thanks, Nathan Salwen).
473libplot: Tektronix driver, when driving a kermit Tektronix emulator, can
474	 now set the background to any ansi.sys color.  So commands like
475	 "TERM=kermit graph -Ttek --bg-color=green" now work.
476libplot: outfile() operation declared obsolescent.  Now undocumented,
477	 and will eventually be dropped.
478libplot: fixed a bug in PCL and HP-GL Plotters that sometimes resulted in
479	 an infinite loop when drawing very short paths, or rendering text
480	 in very small font sizes.  Thanks, Stefan Wagner.
481libplot: PCL and HP-GL Plotters now support "triangular" caps and joins,
482	 in addition to the three standard cap types and join types.
483pic2plot: new utility, which can translate the pic language to any
484	 supported graphics format, including X11.  Based on James Clark's
485	 gpic.
486libplot: functions linedash()/flinedash() added to API, supporting
487	 arbitrary PS-style dashing styles.  Most Plotter types support them.
488	 (Old, unused, Unix libplot `d' opcode now represents linedash.)
489libplot: fixed bug that was occasionally causing paths to be broken after
490	 circular arc segments, in some output formats.
491libplot: Appearance of HersheyEUC font improved by shrinking the stroke
492	 width.  Also, row 1, character 1 of the font is now a full-width
493	 space, of the same width as any other Japanese character.
494plotfont: title of any character map for the HersheyEUC font now refers to
495	 `row' of font, not `page', and character numbering changed too.
496	 --jis-row option added, and --jis-page option declared
497	 obsolescent.
498libplot: non-solid line types ("dotted", "dotdashed", etc.)
499	 redesigned, and are now as device-independent as possible.
500libplot: new "dotdotdashed" line style added, supported by all Plotters
501	 except Tektronix Plotters.  "dotdotdotdashed" added too.
502graph: font size, tick size, and symbol size are now specified as fraction
503	 of size of plotting box, where size means minimum dimension (width
504	 or height).  Documentation clarified.
505graph: no more bogus error messages when `-N x' or `-N y' is specified.
506graph: --toggle-switch-axis-end option renamed --toggle-axis-end, and `-E'
507	 is made an alias for it.  Also, conventions reversed: `-E x' and
508	 `-E y' now do what `-E y' and `-E x' would have done.
509graph: any of the three arguments to each of the -x and -y options (the
510	 min, max, and spacing values for an axis) may now be supplied as
511	 "-" (a single hyphen), to indicate that it should be computed from
512	 the dataset.  E.g. "echo 0 0 1 1 2 0 | graph -x - 3 -" will work.
513libplot: paths may now contain segments that are quadratic and cubic Bezier
514	 curves.  bezier2(), bezier3() etc. operations now included in API.
515	 Illustrator Plotters now draw each ellipse, elliptic arc, and
516	 circular arc using cubic Beziers, like Illustrator itself.
517libplot: fixed bugs dealing with multi-page HP-GL or PCL output files
518	 (e.g., pages were incorrectly merged into a single page).
519plot: parsing of portable metafile format is now more flexible.  Arbitrary
520	 white space can be included in file.
521libplot: fixed bug in x_endpath.c that would occasionally cause X errors
522	 related to a bad drawable in an X_DrawPoints request.
523libplot: support for Adobe Illustrator version 3 format now obsolescent.
524	 Format still supported, but no longer mentioned in documentation.
525libplot,graph: fixed bug in drawing marker symbols 14,21,28 (fancy
526	 squares), and decreased sizes of symbols 30,31 (octagons).
527graph,plot: arguments of --font-size and --title-font-size arguments no
528	 longer allowed to be >=1.0.  (By passing bogus values, lusers or
529	 nefarious users could crash X servers).
530libplot: fixed bug dealing with retrieval of X fonts rotated 180 degrees.
531graph,tek2plot,plotfont: new --rotation option (can rotate plots
532	 counterclockwise within the graphics display by 90, 180, or 270
533	 degrees).
534libplot: new fillmod() operation.  For self-intersecting paths, can now
535	 specify nonzero-winding-rule filling rather than even-odd filling.
536libplotter: new C++ library.  Provides base Plotter class, subclasses for
537	 the different sorts of Plotter.  Massive restructuring of code.
538libplot: if line width is zero, the X driver now draws each line in a
539	 polyline immediately (it doesn't wait until endpath() is invoked).
540	 So if you do `graph -TX -W 0', and type in the coordinates of a
541	 series of points manually, you'll now see the polyline drawn in
542	 real time, as long as you also use the `-x' and `-y' options.
543libplot: text string format now supports "\fP" macro for switching to
544	 previous font (cf. troff; "\fR", "\fI", "\fB" supported too).
545libplot: fmiterlimit() operation added to API.
546documentation: man pages for ode, spline, plot, tek2plot added.
547graph,plot,tek2plot,plotfont: `-T pnm' and `-T gif' now allowed.
548libplot: PNM driver added, which outputs PBM/PGM/PPM format.
549libplot: pseudo-GIF driver added, using miGIF run-length encoding routines
550	 (thanks, Maus and ivo).  Incorporates X11 polygon filling and wide
551	 line code, as a more or less independent module.
552libplot: selectpl() now returns the handle of the previously selected
553	 Plotter.
554libplot: X Drawable and X Plotters now fill `rotated' ellipses (those whose
555	 axes are not aligned with the coordinate axes) more speedily,
556	 using the special X rendering algorithm for filling convex
557	 polygons.  This speeds up the the `drifting eye' example in the
558	 manual.
559libplot: fixed bugs in handling of "disconnected" line type.  Our
560	 convention: no Plotter should draw anything when circle() or
561	 ellipse() is invoked, if the current line type is "disconnected".
562
563Version 2.1.6 released, 10/1998.  [Includes libplot 1.6, interface age=1.]
564
565plot: new `-s' option, which merges together all displayed pages. This is
566	 to assist people who are accustomed to concatenating Unix plot
567	 files together (GNU metafiles can also be concatenated together,
568	 but the resulting metafile does not merge pages).
569libplot: PS driver now correctly updates list of used PS fonts when erase()
570	 is invoked.  This was causing ISO-Latin-1 fonts in multipage
571	 documents not to be reencoded correctly.
572libplot: Fig driver now places each drawn object at its own depth level.
573	 This is because fig2dev seems not to use xfig's own conventions
574	 for layering objects within a single depth level.
575libplot: Japanese page size "B5" now supported.  So the `--page-size'
576	 option to graph,plot,tek2plot,plotfont now supports "B5" too.
577libplot: Fig driver now properly supports "dotdashed" line type, since it
578	 is supported in Fig 3.2 format.  So `graph -m 3 -T fig' now works
579	 as it should.
580libplot: Fig driver now produces Fig 3.2 format, so xfig 3.2 is required to
581	 view and edit it.  This affects output obtained with `-T fig'.
582plot.h: marker symbols and metafile op codes are now defined as enum's,
583	 rather than via #define's.
584graph,plot,tek2plot,plotfont: `-T ai' option added, for Illustrator output.
585libplot: Adobe Illustrator driver added, outputting either Illustrator
586	 file format version 3 or version 5 (latter is default).
587plot.h: old workarounds for change in 2.1 from `endpoly' to `endpath'
588	 and from `fill' to `filltype' finally removed (they were
589	 conflicting with a Debian package).
590libplot: in each Hershey font, stroke width increased by about 20%,
591	 to remove white (i.e. unfilled) space in some characters.
592libplot: when space() is invoked, X Plotters no longer attempt immediately
593	 to retrieve a font from the X server (they wait until
594	 fontname/fontsize/textangle is next invoked, or failing that, until
595	 alabel/labelwidth is).  This reduces the chance of failing to
596	 retrieve a too-small or too-large X font.
597libplot: in metafiles, separate op codes for frotate, fscale, ftranslate
598	 operations now obsolete (they are mapped into fconcat, internally).
599libplot: fixed bug in Metafile Plotter support for convenience operations
600	 frotate, fscale, franslate.
601libplot: fixed inelegance in Metafile Plotter portable output (a couple of
602	 op codes needed only for binary-format were being emitted).
603libplot: HP-GL and PCL Plotters now emit more compact code for any path
604	 that contains more than a single circular arc (the HP-GL `AA'
605	 instruction, rather than a polygonal approximation, is now used).
606libplot: new internal `path' structure now used (a linked list of elements).
607libplot: invocations of space() on a Plotter, after the first mandatory
608	 invocation for each page, no longer affect the line width or font
609	 size in terms of user coordinates.  This is for consistency with
610	 fconcat() and for consistency with Postscript.  Postscript does not
611	 change user-frame line widths or user-frame font sizes when the
612	 affine map from user coordinates to device coordinates is updated.
613libplot: No more bogus warnings issued by Metafile Plotters if they're
614	 asked to render a label in a non-builtin font, e.g. a non-PS X
615	 font.  (This removes some bogus warning messages from raw `graph'.)
616graph/plot/tek2plot/plotfont and libplot: in code, exit(1) replaced by
617	 exit(EXIT_FAILURE) to improve portability beyond Unix.
618
619Version 2.1.5 released, 8/1998.  [Includes libplot 1.5, interface age=1.]
620
621texinfo documentation: full explanation given of the 18 supported
622	 Hewlett-Packard vector fonts, also known as `stick fonts'.
623libplot: escape sequences added for the 12 signs of the zodiac; they are
624	 recognized in labels whenever the current font is a Hershey font.
625libplot: new escape sequences "\r^" and "\l^" added, for use in labels;
626	 they shift right and left by 1/12 em, respectively.  (Cf. troff.)
627libplot: 3 missing Japanese Katakana added to the HersheyEUC font (they
628	 are the 3 that have no Hiragana counterpart).
629graph,plot,tek2plot,plotfont: `-T pcl' option added, for PCL 5 output.
630libplot: PCL 5 driver added; it essentially outputs HP-GL/2, with
631	 a preceding control sequence to switch the printer or plotter
632	 from PCL 5 mode to HP-GL/2 mode, and a following control sequence
633	 to switch back.
634plot: parsing bug fixed; files may now be listed on command line.
635configure: options now include `--enable-ps-fonts-in-pcl',
636	 `--enable-lj-fonts-in-ps', and `enable-lj-fonts-in-x'.  Previous
637	 option `--enable-lj-fonts' was split into final two.
638libplot: HP-GL/2 driver now supports the 35 PS fonts.  So e.g. in principle
639	 `plotfont -Thpgl Helvetica > map.plt' will work, allowing a PS
640	 character map to be displayed on a PCL device.  But PS fonts are
641	 available only on high-end PCL devices, e.g., 4000-series
642	 LaserJets.
643libplot: when drawing labels in any of the 43 ISO-Latin-1 PCL fonts,
644	 HP-GL/2 driver previously displayed five characters (-, `, ', ^, ~)
645	 incorrectly.  Final four of these were displayed as accents.
646	 Problem was traced to HP's idiosyncratic definition of ISO-Latin-1
647	 ("ECMA-96 Latin-1").  Now fixed.
648
649Version 2.1.4 released, 7/1998.  [Includes libplot 1.4, interface age=1.]
650
651libplot: HP-GL driver now supports 8 Stick fonts (device-resident vector
652	 fonts) when producing HP-GL/2 output, and 18 Stick fonts when
653	 producing output for an HP7550A plotter (HPGL_VERSION="1.5").  Not
654	 yet documented because kerning is being worked on, but they show
655	 up when `--help-fonts' or `--list-fonts' is used.
656libplot: HP-GL driver, if HPGL_VERSION is "1.5", will no longer attempt to
657	 use pen #0 as a white pen, when filling polygons that are meant to
658	 be filled with white.
659graph, plot, tek2plot, plotfont: no more segmentation faults when using the
660	 `--help-fonts' or `--list-fonts' options.
661
662Version 2.1.3 released, 7/1998.  [Includes libplot 1.3, interface age=1.]
663
664plotfont: new `--numbering-font-name' option.
665libplot: color was not being updated (if necessary) before rendering labels
666	 in HP-GL[/2] output. Now fixed.
667libplot: default value for HPGL_PENS parameter/environment variable is now
668	 "1=black:2=red:3=green:4=yellow:5=blue:6=magenta:7=cyan" when
669	 HPGL_VERSION is "1.5", as well as when it is "2".
670tests: validation tests may now be run even if the build directory is
671	 different from the source directory (thanks Thomas Walter).
672tests: bug in test for HP-GL/2 output fixed (thanks Thomas Walter).
673
674Version 2.1.2 released, 7/1998.  [Includes libplot 1.2, interface age=1.]
675
676libplot: any polyline with "disconnected" line type is now drawn as a set
677	 of filled circles, one centered on each defining point.  Circle
678	 diameter is chosen to be the nominal line width.
679libplot: PS driver previously did not quite close large filled circles
680	 and ellipses, leading to an `inverse pie-wedge' effect.  Now fixed.
681libplot: previously the HP-GL driver required that HPGL_VERSION be "1"
682	 to produce paths, arcs, etc. that would be positioned correctly on
683	 generic HP-GL (as opposed to HP-GL/2) devices.  No longer
684	 absolutely necessary: HP-GL/2 line graphics produced by the driver
685	 should be positioned correctly even when erroneously sent to an
686	 HP-GL device.  Fonts do not work, however.
687libplot: HP-GL driver now visibly displays zero-length line segments,
688	 if cap mode is `round' or `projecting'.
689libplot: dot/dash spacing in the "dotted", "dotdashed", "shortdashed" and
690	 "longdashed" line types, as produced by the PS, Fig, HP-GL/2, and
691	 X11 drivers, now scales with line width.  This affects the lines
692	 produced by the `-m' option to `graph', when used with `-W'.
693spline, double: now permit comment lines in ascii input files, like `graph'.
694double: default is now to print all fields, i.e., `-f' option is not
695	 needed in order for the program to function.  Instructions on using
696	 `double' added to double.c, but not yet to texinfo documentation.
697libplot: when producing HP-GL/2 output, can now use 8 builtin HP-GL/2
698	 vector typefaces (Arc as well as Stick; usual 4 variants for each).
699libplot and utilities based on it: installation-time option
700	 "--enable-lj-fonts" allows use of PCL fonts when using `-T X' or
701	 `-T ps' options.  For this to be meaningful, installer must obtain
702	 the 45 PCL (i.e. LaserJet) fonts from Hewlett-Packard and install
703	 them.  They are available for free via the net (see instructions in
704	 ./INSTALL.fonts).
705libplot: small errors in positioning text strings, when producing PS
706	 output, now fixed.  The bug only appeared when rendering
707	 non-Courier text strings with nonzero angle of inclination.
708libplot: X Windows names of several of the 35 supported PS fonts to agree
709	 with current conventions.  (Old names continue to work.)
710	 "avantgarde-medium-r-normal" is now "itc avant garde
711	 gothic-book-r-normal", "zapfchancery-medium-i-normal" is now
712	 "itc zapf chancery-medium-i-normal", etc.
713libplot: In HP-GL/2 driver code, fixed slight errors in positioning text
714	 strings, when rendered in the PCL and Stick fonts.  Errors were due
715	 to an unusual HP-GL/2 `leftward shift' label positioning convention
716	 dating back to pen plotter days.
717texinfo documentation: Fixed incorrect statement that for `plot' and
718	 `tek2plot', the relative order of filenames and command-line
719	 options matters.
720graph,plot,tek2plot,plotfont: --rotate option dropped, and ROTATE
721	 environment variable renamed to HPGL_ROTATE.  `Rotation' only
722	 occurs if `-T hpgl' is specified, and HP-GL[/2] output is produced.
723	 So by our coding standards, it doesn't deserve a command-line option.
724libplot: ROTATE Plotter parameter, which affected only HPGL Plotters,
725	 renamed to HPGL_ROTATE.  (It doesn't provide a pure rotation; in
726	 HP-GL, `rotation' includes a coordinate shift as well.)
727plotfont: new utility, displays either half of any recognized font.  Which
728	 fonts are recognized depends on the output device (set with -T
729	 option).  `plotfont -T X' will also display any X font specified by
730	 [truncated] XLFD name, e.g. "utopia-medium-r-normal".  By doing
731	 e.g. `--bitmap-size 300x450' you can scale fonts anisotropically.
732libplot: HP-GL driver had two characters out of place in the upper half of
733	 the Stick font.  Fixed.
734libplot: all substitutions of fonts (due to lack of availability) and
735	 colors (due to color names not being recognized) now yield a
736	 warning message.  However, only the first font warning message
737	 and the first color warning message of each sort (pen color,
738	 fill color, background color) is actually emitted.
739graph,plot,tek2plot: new --list-fonts option.
740libplot: On X11R6 displays, X driver now rasterizes and retrieves only the
741	 characters in any scalable font that will actually be used in
742	 drawing a text string.  This _enormously_ speeds up the drawing of
743	 text strings and the animation of text.
744libplot: default value of Plotter parameter HPGL_OPAQUE_MODE is now "yes"
745	 rather than "no", for consistency with libplot's imaging model.
746	 Some rather old HP-GL/2 devices (large pen plotters?) are reported
747	 to malfunction if asked to switch from transparent mode to opaque
748	 mode.  Set the parameter to "no" for such devices.
749configuration: now checks for -lXp if --with-motif is used (for Motif 2.x).
750libplot: X driver now treats absurdly small numbers passed back from some
751	 X11R6 servers when requesting fonts rotated by 0 or 90 degrees
752	 (e.g., 4e-311) as zero.  Such numbers are too small to be
753	 manipulated arithmetically on DEC Alphas, and caused floating point
754	 exceptions in `graph -T X' when the `-Y' option was used.
755all utilities: output of --help option now includes an email address
756	 for reporting bugs.
757package: several small changes made to ensure it will compile under DOS
758	 with DJGPP (thanks Michel de Ruiter).
759libplot: X Plotters now support hardware (i.e. server-supported) double
760	 buffering, if available.  Set USE_DOUBLE_BUFFERING to "fast" to
761	 obtain it.  Both DBE and MBX, of the standard X11 double buffering
762	 extensions, are tried.
763libplot: output of PS driver now fully conforms to the PS DSC (Document
764	 Structuring Conventions).  If output is only a single page of
765	 graphics, it is in EPS format.
766libplot: Plotters that do not do output in real time (i.e. Fig, HP-GL, and
767	 PS Plotters) must now, in general, be deleted in order for an
768	 output file to be written.  That is, _in general_ each page is not
769	 emitted when closepl() is called.  In practice, pages are still
770	 emitted when closepl() is seen, for Fig and HP-GL Plotters.  But PS
771	 Plotters now do not emit anything until deletepl() is called.
772libplot: fixed bugs dealing with Greek and mathematical symbol escapes in
773	 text strings, when the current font is a user-specified X Windows
774	 font (e.g. "utopia-medium-r-normal" or "vtsingle").  When the
775	 user-specified font is an ISO-Latin-1 font, the usual ISO-Latin-1
776	 escape sequences (e.g. "\sc" for the section symbol) now work also.
777	 This fixed problems with `graph' labels.
778libplot: Fig Plotters now produce only a single page of output,
779	 irrespective of how many times openpl..closepl are invoked.  Only
780	 the first page of graphics is written to the file, since Fig format
781	 currently supports only a single page of graphics.
782libplot: Tektronix driver now visibly displays zero-length line segments,
783	 if cap mode is `round' or `projecting'.
784libplot: HersheyGothic-German font renamed HersheyGothicGerman, etc.
785	 (Former font names continue to work.)  Similarly,
786	 HersheySerif-Symbol and HersheySans-Symbol fonts renamed
787	 HersheySerifSymbol and HersheySansSymbol.  Oblique, Bold,
788	 BoldOblique variants added to former; Oblique variant added to
789	 latter.  Similarly, HersheyCyrillic-Oblique added.
790	 HersheySerifSymbol-Bold is based on Allen Hershey's Triplex Greek
791	 alphabet.  There are now 22 Hershey fonts in all.
792libplot: Hershey glyph database updated.  Now incorporates Allen Hershey's
793	 final revisions, and his Triplex Greek alphabet.  That alphabet
794	 does not appear in most releases of the Hershey glyphs, since it
795	 was developed c. 1990.  See ./doc/h-fonts.doc, ./doc/h-glyphs.doc.
796
797Version 2.1.1 released, 5/1998.  [Includes libplot 1.1, interface age=1.]
798
799libplot: to permit smooth animations, double buffering is now implemented
800	 for X and X Drawable Plotters.  Double buffering is turned on if a
801	 new device parameter, USE_DOUBLE_BUFFERING, is set to "yes" at
802	 Plotter creation time.  Successive frames of graphics are separated
803	 by invocations of erase().
804libplot: X and X Drawable Plotters now maintain a local cache of X color
805	 cells, and no longer automatically allocate new one(s) for each
806	 plotted object.  This speeds up rendering, and avoids a memory leak
807	 in the X server.  If color cells in the standard colormap are
808	 exhausted, an X Plotter (but not an X Drawable Plotter) will switch
809	 to a private colormap.
810libplot: new device driver parameters, BG_COLOR and XDRAWABLE_COLORMAP.
811	 Former allows background color of an X or X Drawable Plotter to be
812	 specified at creation time; latter adds support for non-default
813	 colormaps.
814libplot: setting unrecognized parameters with parampl()	 no longer yields
815	 a warning message.
816libplot: bug in point() that affected X Drawable Plotters now fixed.
817libplot: erase() now acts correctly on X and X Drawable Plotters: any
818	 path under construction is flushed out before erasure.
819libplot: nearly all internal read-only tables now defined as `const', so
820	 that on	 most systems the linker will place them in a sharable
821	 read-only data section.
822libplot: X driver now visibly displays zero-length line segments, if cap
823	 mode is `round' or `projecting'.  This fixes a problem with
824	 `tek2plot -TX', since Tektronix files use zero-length lines as
825	 points.
826tek2plot: now uses rounded cap mode for line segments obtained from vectors,
827	 to improve visibility of zero-length lines.  Rounded join mode
828	 now used too, to smooth out curves.
829texinfo documentation: now processed correctly by texi2html.
830
831Version 2.1 released, 4/1998.  [Includes libplot 1.0, interface age=1.]
832
833graph:  may access the new Euro currency symbol by using the '\eu' escape
834	 sequence.  This may be used when labelling the axes of graphs, etc.
835	 Accessible whenever the current font is a Postscript or PCL
836	 font.  Be sure to install the Postscript fonts accompanying the
837	 plotutils distribution on your X server, if you want to see it.
838	 Whether or not you see the new symbol when you send a plot to
839	 a Postscript or a PCL printer, depends on whether or the printer
840	 has up-to-date firmware.  (E.g. HP LaserJet 5's don't.)
841libplot: may access the new Euro symbol, when drawing text strings in
842	 a Postscript or PCL font, by using the '\eu' escape sequence.
843fonts: included Type1 Symbol font, from URW++, now includes the
844	 Euro glyph (the new European currency symbol).
845libplot: a bug in handling of an empty plot, i.e. openpl() immediately
846	 followed by closepl(), now fixed.  (This situation caused garbage
847	 output from several drivers.)
848libplot: X driver no longer prints a warning message when substituting
849	 a Hershey font for an unavailable PS font.  (Substitution often
850	 occurs when the X server doesn't support anamorphically transformed
851	 fonts, e.g. if it's a pre-X11R6 server.)  Warning message was
852	 confusing `graph' end-users.
853libplot: fixed a bug in X driver that was selecting fonts based on point
854	 size rather than pixel size, leading to different-sized labels
855	 on X displays of different resolution.  This affected
856	 graph,plot,tek2plot.
857libplot: fixed a sign error in x_erase.c that prevented erase()
858	 from working on Sun's OpenWindows 3.0 X server, and other
859	 early X11 displays; this affected graph,plot,tek2plot.
860graph,plot,tek2plot: --bitmap-size option added, affecting output
861	 on X displays only.
862libplot: added BITMAPSIZE device driver parameter, which currently
863	 affects only X Plotters (sets size of popped-up window).
864plot: new --page-number option, cf. tek2plot.
865graph,plot,tek2plot: on X11R6 systems, now linked with -lSM -lICE in
866	 the correct way (-lSM -lICE -lXext -lX11 follows -lXt on command
867	 line).  This previously caused problems on cygwin32 systems.
868libplot: X Drawable Plotters now use parameters XDRAWABLE_DISPLAY etc.,
869	 in accordance with documentation, rather than X_DRAWABLE_DISPLAY etc.
870tek2plot: when parsing multipage Tektronix files, now calls
871	 openpl()..closepl() on each page.  So `tek2plot -TX' now yields
872	 multiple X windows, unless the --page-number option is used.
873libplot: PS driver hacked so that output, when openpl..closepl is invoked
874	 more than once, is closer to conforming to the PS DSC (document
875	 structuring conventions).  You may modify the PS file so that it is
876	 fully conformant (remove extraneous %%EOF's, i.e., all but the
877	 final one, and correct the pagecount on the %%Pages line).  When
878	 openpl..closepl is invoked only once, it is fully conformant.
879graph,plot,tek2plot: --bg-color option added, for use on X displays only.
880libplot: new bgcolor() and bgcolorname() functions added to API.
881	 They affect only X and X Drawable Plotters.  Libplot API version
882	 bumped to 1:0:1 (i.e. version 1.0, supporting 0.x interface also).
883graph: new --pen-colors option, allowing the specification of the color
884	 of each of the five pens used for drawing colored plots.  The
885	 default choice is the usual "1=red:2=green:3=blue:4=magenta:5=cyan".
886spline: some numerical instability problems fixed (tension parameter may
887	 now be taken arbitrarily close to zero without ill effects).
888spline: support for multidimensional splines added (-d, -s, -A options)
889spline: now tests for monotonicity of abscissa variable in each dataset
890graph,spline,double: now test for NaN's (not-a-number's) when reading
891	 floating point numbers from an input file.  plot already did this.
892plot:   When reading input files in plot(5) format, negative integers
893	 (i.e. negative integer coordinates) now parsed correctly.
894plot: 	 Multiple '\n' separator characters now ignored in
895	 portable GNU metafiles, and in input files in `-A' format too.
896plot: -A option (replacing -I, which disappeared with 1.x) added and
897	 documented.  It enables metafiles in the ascii version of plot(5)
898	 format (e.g., obtained with Unix plottoa(1)) to be plotted; also it
899	 will handle portable GNU metafiles generated by plotutils-1.x.
900
901Version 2.0 released, 1/1998.  [Includes libplot 0.0, interface age=0.]
902
903Installation process now installs (by default in subdirectories of
904	 /usr/local/share) documentation files for ode, tek2plot, and libplot.
905libplot: a new type of Plotter added.  An `X Drawable Plotter' will draw
906	 graphics to one or two drawables (e.g. a window and a pixmap).
907spline, tek2plot: "-" on command line now means standard input.
908libplot: function declarations in plot.h header file now use `const char *'
909	 as appropriate.  parampl() now takes a void * as value argument.
910libplot: semantics of "disconnected" linetype clarified.  For ellipses,
911	 circles, and boxes it's the same as "solid".  For paths, it means
912	 the defining points are plotted, and nothing else (it's irrelevant
913	 whether they were joined by line segments or arcs).
914libplot: invoking deletepl() on an XPlotter now sends a SIGKILL to the
915	 forked-off processes maintaining each of the X windows generated by a
916	 openpl()..closepl() pair, causing said X windows to vanish.
917libplot: metafile driver now has access to metrics for Hershey, PS, and PCL
918	 fonts.  So it can compute string widths with the labelwidth() method.
919libplot and plot: graphics metafile format now supports `open device'
920	 and `close device' directives, as in Plan 9.
921spline: -x option (--x-limits) replaced by -t (--t-limits), in preparation
922	 for a move to multidimensional splining.  --tension option moved
923	 accordingly from -t to -T.  Yes, this smacks of overloading.
924libplot: box() now moves graphics cursor to midpoint of the box, not
925	 the second-specified vertex.
926graph, spline, double: support for two additional binary input/output formats,
927	 namely single-precision floating point and integer.
928libplot: new user-settable error handlers added as global variables
929	 (libplot_error and libplot_warning; former is fatal).
930plotutils: package converted to use automake and libtool.
931libplot: falabel() dropped from the API, and alabel() no longer returns a
932	 value related to the width of the label.  This is in preparation
933	 for a more object-oriented version of the library.  If you need to
934	 get the width of a label, use flabelwidth() or labelwidth().
935libplot: undocumented dot() function dropped from the API.  Seems last
936	 to have been used in Unix libplot on a Bell Labs PDP-11 in the
937	 mid-'70s, driving a Tektronix 611 ("Versitek") storage scope.
938	 (Thanks Lorinda Cherry <llc@research.att.com> for background info!)
939graph,plot,tek2plot: --ascii-output option renamed --portable-output.
940libplot: all 45 fonts resident in PCL 5 devices such as recent HP LaserJets
941	 are now supported by the HP-GL/2 driver.  Traditional Stick and
942	 Stick-Bold fonts supported too.
943libplot: font size can now be set to zero without unexpected consequences.
944libplot: improper affine transformations from user to device coordinates,
945	 i.e., those that involve a reflection, now fully supported.  Many
946	 bugs dealing with them, in all device drivers, were fixed.
947libplot: fallback font for nonexistent or inaccessible X fonts is now a
948	 Hershey font.  (No more problems with old X servers not being able
949	 to retrieve rotated or sheared fonts!)  Similarly, retrieving an
950	 anamorphically transformed PS font from the xfig driver will now
951	 yield a Hershey font, since xfig does not support anamorphic
952	 transformations (only rotations).
953graph,plot,tek2plot: display device type now specified with `-T' option.
954libplot: support now added for multiple display devices.  The libplot
955	 family of libraries is merged into a single library.  The C binding
956	 supports multiple display devices through new functions newpl(),
957	 selectpl(), and deletepl().
958libplot: code completely reconfigured, internally, in preparation for a C++
959	 binding.  Now quite object-oriented, including a form of dynamic
960	 binding.  `Plotter objects' introduced, each with private data and
961	 public methods.
962libplot: all external variables now begin with an underscore, to
963	 avoid namespace collisions.
964libplot, all versions: new havecap() function, which checks a version
965	 of libplot for capabilities (0/1/2=yes/no/maybe).  Replaces
966	 the undocumented external capability variables.
967raw libplot: binary metafile format now uses ints rather than short ints to
968	 represent integers.  Plot filters changed to compensate.  Plot
969	 filters should still parse traditional plot(5) input format,
970	 however; if there are any problems, be sure to use the -h or -l
971	 option, whichever is appropriate for your architecture.
972plot: undocumented --guess-byte-order option dropped as obsolete.
973graph: line width used in drawing marker symbols is now properly
974	 device-independent, and a fixed fraction of the marker size.
975graph: --help-fonts option now yields nicely formatted 2-column lists of
976	 fonts.
977libplotps: BoundingBox computations now take line widths into account,
978	 cap styles and join styles too.
979libplotps and graph-ps: line widths are no longer quantized, as seen by
980	 a Postscript interpreter (they continue to be quantized when the
981	 output file is edited with idraw, since idraw supports only line
982	 widths that are integer multiples of 1 point).
983libplotX: setting join mode for polylines no longer core dumps.
984libplot, all versions: "mitre" is now a synonym for "miter"
985	 (i.e. as an argument to the joinmod() function).
986libplotX (and graph-X etc.): previously, xplot.geometry resource needed to
987	 be set, to adjust window size.  Now, Xplot.geometry suffices, in
988	 agreement with documentation.
989tek2plot: new -p option, to select frame in Tek file by number.
990tek2plot: Tek parser completely rewritten (now uses essentially the same
991	 parse tables as the Tek emulator in xterm(1), developed by Edward Moy
992	 at Berkeley in the mid-'80s).  tek2plot documented.
993graph: bug in plots with a user-specified reversed (min > max) axis fixed
994	 (axis range on other axis no longer incorrectly set).
995ode/specfun.c: gamma support now always works (no more compilation problems).
996New libplot function, parampl(), for setting device-specific driver
997	 parameters.  Can also set them via environment variables
998	 (parampl() wins).
999All user-writable external variables removed from libplot (they were
1000	 undocumented, in fact anything undocumented is subject to change).
1001libplottek: `graphics display' (a square) is now central 3/4 of Tek display
1002	 rather than left 3/4.  This affects graph-tek and plot2tek.
1003tek2plot command-line parsing improved.  --pen-color initialization
1004	 and --help-fonts command-line options added.
1005graph: Partial workaround of problem with xfig 3.1: text strings
1006	 containing a printable 8-bit (non-ascii) char, followed by a digit,
1007	 are incorrectly displayed by xfig.  Fixed in xfig 3.2.
1008Output from libplotps now uses idraw `Circ' primitive instead of `Elli'
1009	 to draw circles.
1010Plot filter options --{high|low}-byte-order renamed to
1011	 --{high|low}-byte-order-input.
1012	 Also, -I option dropped as unnecessary (due to magic string).
1013	 Continues to exist, but is now undocumented and flagged for deletion.
1014Each graphics metafile produced by raw libplot (or raw graph, or plot2plot)
1015	 now begins with a magic string, currently "#PLOT" followed by the
1016	 metafile format number.
1017libplotps: capmod() and joinmod() now take effect (non-default cap style
1018	 and join style are not recognized by idraw, however).
1019graph:  --{high|low}-byte-order options now dropped as obsolete.
1020Plot filter parser overhauled.  plot filters should no longer crash on
1021	 garbage input (keep fingers crossed here).  If input file named on
1022	 command line is nonexistent, plot filter no longer opens stdin
1023	 instead.
1024Improved parsing of graph command-line options.  Bad syntax now recognized
1025	 immediately, without data files or stdin being read.
1026libplothpgl: new libplot library, by default emitting HP-GL/2.
1027	 plot2hpgl and graph-hpgl are linked with it.  Many options specified
1028	 via environment variables (HP-GL and HP7550A format also supported).
1029In raw libplot, space2() produced wrong plot(5) op code.  Now fixed.
1030Bad problems with fill color in libplotps now fixed (quantization for idraw
1031	 was interfering with fill color as seen by a PS interpreter).
1032New convention on quantization of pen colors in versions of libplot which
1033	 quantize them (libplothpgl unless HPGL_HAVE_LOGICAL_PENS is set and
1034	 HPGL_VERSION is 2, libplotps when producing colors for idraw,
1035	 libplottek when producing kermit output).  Non-white pen colors are
1036	 no longer quantized to white, to avoid confusion.
1037In several versions of libplot, calling endpoly() on polylines with linemode
1038	 "disconnected" was incorrectly moving the graphics cursor.  Now fixed.
1039libplot: New `plotter-like' semantics for arc() and ellarc().  After drawing,
1040	 position of graphics cursor now moves to endpoint of arc.
1041libplot: arc() now draws an arc with sweep angle no greater than 180
1042	 degrees, which may be clockwise as well as counterclockwise.  Also,
1043	 ellarc() now always draws a quarter-ellipse, never a three-quarter
1044	 ellipse.
1045Remaining positioning problems in graph-fig and libplotfig fixed:
1046	 later-plotted objects now never placed `behind' previously
1047	 plotted ones.
1048libplotps and graph-ps: PS_ANY_LINE_WIDTH environment variable now supported.
1049	 If set to "yes", no quantization of line widths; arbitrarily thin lines
1050	 may be drawn, but support for editing the PS output with idraw is lost.
1051libplotps,libplotfig,libplothpgl: PAGESIZE environment variable now
1052	 supported, can be any ISO or ANSI size such as "a4", "a3", "a2",
1053	 "a1", "a0", "letter" (i.e. "usletter" or "a" ), "legal"
1054	 (i.e. "uslegal"), "ledger" (i.e. "usledger"), "tabloid" (i.e. "b"),
1055	 "c", "d", or "e".
1056libplot: calling closepl() to end a plot, when there is one or more
1057	 drawing states on the stack, no longer generates a warning message.
1058libplottek: exiting from kermit Tektronix emulation mode no longer
1059	 incorrectly affects text color.
1060libplotX: in Motif, drag-and-drop via middle mouse button should now work.
1061
1062Version 1.3 released, 9/1997.
1063
1064Major improvements to process of configuration and building (thanks to
1065	 Nelson Beebe <beebe@math.utah.edu>, many new configs now work).
1066Validation test of plot2fig no longer fails on some systems due to
1067	 innocuous causes (sign differences).  This does not include
1068	 NeXT's, which format floating point numbers in a genuinely
1069	 nonstandard way.
1070Output of libplotfig and graph-fig now indicates (via comment lines) which
1071	 ellipse objects are circles.
1072Bugs in support for MS-DOS kermit's Tektronix emulation fixed: initial
1073	 drawing color now is white, background black.  TERM="kermit",
1074	 "kterm" now recognized.  Linemodes 3, 4 no longer incorrectly
1075	 swapped.
1076Library linking (if Athena widgets used) is now -lXmu -lXt, not the reverse.
1077ode: improvements to arithemetic exception handling (error or warning
1078	 message now always printed).
1079ode/specfun.c: `signgam' variable declared and used properly.
1080Problems with pointers to signed vs. unsigned chars, which gave problems on
1081	 overly strict ANSI or pseudo-ANSI compilers, fixed.
1082
1083Version 1.2 released, 9/1997.
1084
1085Problems with 8-bit characters (`8-bit uncleanliness') fixed in libplot.
1086	 In `graph', they affected the drawing of axis labels containing
1087	 8-bit characters.
1088graph: buggy --reposition option fixed.
1089--with-motif configuration option added, for systems (e.g. HP/UX) with
1090	 Motif widgets but not Athena widgets.
1091libplotps (and e.g. graph-ps) output is now conformant EPS, version 3.0.
1092	 No more spare dictionary left on the PS stack, which interfered
1093	 with inclusion as an EPS file and importing into xfig.
1094Escape sequences which allow access to Greek characters and mathematical
1095	 symbols (e.g. "\*a", which means `alpha') now work in graph-X and
1096	 in general in libplotX even if the current font is a non-builtin
1097	 (user-specified) X font.
1098libplotX: switching among builtin PS fonts in a single label was causing
1099	 slightly incorrect estimates for the label width, with not-so-good
1100	 horizontal justification as a result (visible e.g. in graph-X
1101	 labels).  Fixed.
1102raw libplot: functions that take a string argument no longer try to write
1103	 into the string.
1104graph: when labelling ticks along an axis with large or small numbers
1105	 (printed in exponent form, i.e. FOOx10^BAR), zero is now printed
1106	 just as `0', not as 0.0x10^0.
1107graph: FOOx10^BAR form for tick labels now works even when current font is
1108	 a symbol font.
1109graph: identical upper and lower limits on an axis no longer cause an error
1110	 message and an abort. Instead each limit is displaced by 1 unit,
1111	 with a warning message.
1112graph: -s option (--save-screen) now works.  (Meaningful only for
1113	 graph-tek and raw graph.)
1114libplotfig: later-drawn objects, of whatever kind, now appear in front of
1115	 (rather than behind) earlier-drawn objects.  This has implications
1116	 for graph-fig (it fixes a bug previously mentioned in the PROBLEMS
1117	 file).
1118graph: new --frame-color option (sets name of color of frame, and plotted
1119	 curves too if -C option is not used)
1120New libplot functions: pencolorname(), fillcolorname(), colorname(), which
1121	 search a database of color names (orig. from X11R6 rgb.txt).
1122New libplot function: pencolor().  color() now just calls it and fillcolor().
1123plot filters: bug in parsing of fmarkerrel() op code fixed.
1124plot filters (plot2X etc.) now abort instead of just printing a warning, if
1125	 an unrecognized directive is seen in the input stream.  This is to
1126	 avoid confusing ascii-format input streams with binary-format
1127	 input streams (which can cause X servers to crash).
1128Regression tests in ./test reworked; different options now used
1129	 on `graph', in the tests.  Output is more visually pleasing.
1130ode-examples directory reworked; examples are documented and some
1131	 are renamed.
1132ode arithmetic exception handling improved.
1133Separate ascii-format doc on ode (originally nroff) merged into texinfo
1134	 doc, heavily edited.
1135In ./ode, gram.c, gram.tab.h and lex.c are no longer removed during a `make
1136	 distclean'.  This is for the benefit of people who may not have
1137	 bison or yacc.  If you want to re-make them, you should do a `make
1138	 realclean'.  The info/plotutils.info documentation file and
1139	 test/*.xout are similarly not removed except in a `make
1140	 realclean'.
1141No more annoying flicker in graph-X after plot is drawn (libplotX
1142	 no longer clears window before redrawing, when closepl() is called).
1143alloca.c now supplied in ./ode directory for machines that don't have alloca.
1144Repeated calls to openpl..closepl in libplotps were producing
1145	 incorrect %%DocumentFonts lines in the PS output; now fixed.
1146Closed polylines (final vertex = initial vertex) drawn with libplotps now
1147	 close correctly, as seen by a PS interpreter.
1148Widths of lines drawn with libplotps, as displayed by idraw, now agree with
1149	 the widths seen by a PS interpreter such as Ghostscript.  If lines
1150	 now look too thick, use the zero-linewidth (`-W 0') option.
1151Octagonal markers added (markers #30 and #31), as in UGS marker set.
1152Bug in special function code (used by ode), for machines that don't have
1153	 them, now fixed (compilation of ode/specfun.c no longer bombs).
1154Hershey fonts now include Russian HersheyCyrillic, and HersheyEUC (for Japanese
1155	 support; Hiragana, Katakana, and 603 Kanji are supported).
1156HersheyScript is now located in its own typeface; HersheySans-Oblique
1157	 and HersheySans-BoldOblique created.
1158Ligature support added to certain Hershey fonts.
1159ISO-Latin-1 characters in Hershey fonts now include most accented
1160	 characters.
1161Characters missing from Hershey fonts now print as an
1162	 `undefined character' symbol (seven horizontal strokes).
1163Hershey astronomical and misc. symbols added.
1164Many miscellaneous cleanups to Hershey fonts
1165	 (inverted questionmark and exclamation point now supported,
1166	 for example; `asteriskmath' vertical height fixed, etc.).
1167plot.h now works with C++ as well as C
1168
1169Version 1.1 released, 7/1997.  See ONEWS for earlier changes.
1170