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