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