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
|
Changes to hp2xx:
=================
3.4.4 : 03/06/22
Source indentation (indent -kr -i8) and removal of some dead code.
Added missing menu entry for 'DXF specifics' in Appendix B of the texinfo
source, updated revision number. Updated manpage and reran texi2html to
update the html version of the texinfo documentation. Corrected drawing
of filled wedges (WG command, broken by polygon buffer rewrite in 3.4.3).
Moved version information from hp2xx.c to hp2xx.h to give output drivers
access to the version number if desired.
3.4.4a9:
Changing the to_png.c 'colour' to an unsigned char in 3.4.3 broke color
PNGs. SP commands in PE mode did not yet update the pen count (important
for raster palette sizing). Added new commandline option -M <pen number>
for remapping of pen 0 drawing commands to any other (ideally unused) pen
- this is just a workaround for the 8bit palette limitation of the raster
buffer, which cannot hold 256 colors plus 'empty' background. (Without
this option, HPGL files that use pen 0 for actual plotting change the
background color of raster images to its color as a side effect.
Vector modes are not affected as they do not use a background color).
3.4.4a8:
page_number was not incremented correctly, especially it should increase
at end-of-file to match the multi-page selection algorithm.
3.4.4a7:
adapted the optional ttf character plot functions to Bitstream Vera Mono,
added commented-out section for ttf support to makes/generic.mak.
Arcs with 'deviation distance' tolerance were seriously broken due to an
embarrassing typo (badly placed braces).
3.4.4a6:
hp2xx incorrectly assumed that any user-defined label terminator should
automatically be printed, mishandled DT without parameters (Rich Pasco),
and completely ignored the optional second parameter in the DT command.
3.4.4a5:
Using the -ansi flag with gcc (even suggested by the generic Makefile) would
make it ignore the prototype of the hypot() function on some if not all
platforms, resulting in a practically unusable binary (NaN in calculation
of image width or height, picbuf overflows in raster modes, etc.). Removed
-ansi from the gcc CFLAGS in generic.mak and added an #ifdef case for the
__STRICT_ANSI__ macro that is set by -ansi to the declaration of HYPOT in
hpgl.h. Added another workaround for cases (typically labels) where the
(stupid) wide line miter code would kick in prematurely, adding spurious
lines to the image.
3.4.4a4:
Reduced the default miter limit in the eps and pdf modes from the arbitrary
"100" value to 5 to remove strange artefacts particularly visible in text
rendering. Changed the circle renderer to generate overlapping circle segments
(needed to render complete circles at huge linewidths) only when not in
polygon mode. Polygon fillcode was propagating its internal linewidth/spacing
settings to the general linedrawing code (which could then overflow the raster
buffer, without adding actual content to the image). Fixed several
inaccuracies and inconsistencies in the polygon fill code (particularly for
vertical fills) uncovered by Eugene Doudines new fill.plt test case.
Special flag S=4 in esc/p2 output now invokes the new color selection commands
for six-color Stylus Photo printers (untested - but a Photo1290 only advances
paper with the old driver).
Fixed some cases in the line pattern generator where a double was compared against
exact zero - which does not work as intended on some platforms such as Solaris.
3.4.4a3:
Documentation fixes and updates. Polygon lines were not clipped in some
cases. Simplified HPGL output could create illegal HPGL (by using exponential
notation for very small coordinates). Added (optional) conversion of pen
number and/or width to DXF line color, added more DXF header items
(Georg Viehoever). Made HPGL error handler print 20 characters around the
unparseable command before quitting - the sequence number information alone
was useless for real-world files.
3.4.4a2:
Removed a few debug printf statements introduced in a1.
Changed PJL header parsing to support linelengths up to the 256 characters
required by the PJL standard (Eugene Doudine). Added support for the rectangle
mode of the PE statement (Eugene Doudine). Treat NR as a frame terminator
(like PG,AF,AH) instead of just ignoring it.
3.4.4a1: 11.2.03
Revived the 'STROKED_FONTS' stubs in chardraw.c by attaching a truetype
font renderer to them. Requires freetype2 and a fixed-width truetype font
such as the LucidaTypewriterRegular.ttf font included with the Sun Java
Runtime Environment (not included here - check licensing conditions).
Fixed two bugs in the scanline renderer that could cause it to fill the gaps
in a complex object. Saving and restoring the pen width when drawing characters
requires the current (parse-time) penwidth to be updated (and not just to
place a command to update the penwidth in the temporary file, which will only
be read at render time) - this is now done by Pen_Width_to_tmpfile().
Both xfig and rgip modes were lacking a handler for the pencolor (DEF_PC)
directive (and would fail on colored input). The rgip mode was still using
wrong penwidths. Added lots of typecasts and typing fixes suggested by
'splint -weak'. Removed the '-m486' compiler switch from my personal Makefile
(the one in sources), as some people try to use it directly instead of adapting
the generic one from the makes directory. Added a 'lint' target for code
checking to same Makefile. Fixed bug that prevented -p with numeric argument
instead of the new A-Z range from working.
3.4.3: 02/12/29
Documentation updates and source indentation.
3.4.3a26:
Silenced the "unknown escape sequence" warnings in quiet mode. Added new
output mode for CNC G-code (experimental, constant depth)(Michael Rooke).
3.4.3a25:
Small improvements in PCL3GUI support (still not really working, best result
had the designjet500 print strips of the desired image separated by equally
wide blank areas (it is unclear whether this is due to extraneous paper feed
commands or to the fact that its native resolution is 600x1200 while the test
case was 600x600dpi). Suppressed miter code for dotted line ends, where it is
unnecessary (this also works around the remaining bug that could cause stray
lines particularly in characters). Made character stroke width independent of
pen linewidth by default. Implemented kind=6 (stroke width) function of the
SD/AD command (-7 to +7 translated to 0.01 ... 0.21 mm penwidth, defaulting
to 0.11 which is close to the hp2xx default penwidth of 0.1. SD6,9999 copies
current PW value). Handle arc commands with an eps value given as zero (Steve
Edmonds)
3.4.3a24:
Wide line miter code still swapped near and far end of preceding line at
will. Hopefully fixed for good now. PCL3GUI does not work yet - best result
had the designjet500 move its printhead across the page several times without
printing or even advancing the page.
3.4.3a23:
Simplified HPGL output (-mhpgl) did not honor any rescaling done with -h,-w.
Added experimental initialization code for HP 'PCL3GUI' devices, and new -I
command to select it (spells taken from gimp-print, incantation possibly not
quite right).
3.4.3a22:
Fixed a bug in the miter fill code that could cause gaps in the filled area.
Modified circle drawing code to create an overlapping segment to join the
first and last segments when drawing wide lines. Modified polygon_PicBuf to
draw fill lines directly instead of calling the bresenham code. Removed all
references to (l)rint as they only created portability problems. Line join
logic should be correct now.
3.4.3a21:
Some code cleanup (Andrew Bird). Modified criteria for drawing miter sections
to fix some cases where non-consecutive lines were erroneosly joined. Improved
sorting of miter region corners. Still have some pathological cases to study.
3.4.3a20:
Reduced the default raster mode miter limit. Added preliminary code for
triangular and square line ends.
3.4.3a19:
Revised the 'butt miter' code for wide lines - the implementation in a17 was
working more by accident than by design. Caught special cases of PS with zero
pagewidth and of blank IW; with default values of P1,P2 .
3.4.3a18:
Small changes to improve numerical stability - the LPattern_Generator
could enter an endless loop on Sun/Solaris due to comparisons of small
floating-point numbers with exact zero (special thanks for Michael Geary
for access to his Sun).
3.4.3a17:
Fixed incompletely applied patch for endcap selection in a16. Added
experimental code for filling the miter section on wide lines to correct
the rendering of arcs and circles drawn with wide pens (replaces the arcs
hack of a16). Fixes size_PicBuf (buffer could be one pixel line too small
depending on penwidths and line endings - this will probably need more work
when (if) we do mitering).
3.4.3a16:
Reverted line end changes from a15 (thin lines should already be handled in
other parts of the code, only this was broken in the raster modes). Modified
IW handling again to accomodate another case. Adapted initialization of line
parameters in eps and pdf modes for multiple input files(Andrew Bird). Added
bad hack in arc drawing code as a temporary workaround for the missing miter
support in the raster modes (switching to round ends even for wide lines to
avoid leaving holes between the segments of the arc). Another ugly hack now
allows specifying penwidths beyond 0.9mm on the commandline by using capital
letters (A being 1.0mm, and Z 3.5mm). Keep EP from drawing the final edge
if it was created by implicit closure while in pen up state (fixes files
generated by transfig, which were broken by the addition of implicit closure
support). Probably need to keep track of penstate for individual edges - EP
edges only pendown moves, while FP fills regardless of penstate. Made frame
selection in multi-image files (-P option) work again.
3.4.3a15:
Fixed bug in a14 that set all pencolors to black unless explicitly defined
using -c. Rewrote IW parameter shuffling to fix all known cases including
those that a14 broke. Line ends were erroneously defaulted to butt-shaped
instead of rounded for thin lines. Reduced pensize used for polygon fills,
and removed check for duplicate intersections. Removed leftover file named
sources/outfile that had somehow crept into the a14 source tree. Fixed
output format for linewidths in svg export. Applied HPGL-to-MM scaling factor
to SVG viewbox, not just to the coordinates (Robert Hancock).
3.4.3a14:
Reset default colors only if they were not overridden by the -c option.
Reset penwidths and IW clipping flag between plots.
Fixed several memory leaks in output filename generation and png output.
Fixed PJL header misinterpretation introduced with the treatment of unknown
esc sequences. Added missing $(EX_DEFS) in HPUX section of generic.mak.
Added special treatment of AF/AH as for PG (AF at end caused crash). Fixed
IW handling for P2<P1.
3.4.3a13:
reset outfile name between files in multiple-file mode (unless a common
basename was declared via -f) to ensure generation of correct output file
names. Reset default pencolors on IN or DF.
3.4.3a12:
S1,S2 were not initialized by IP (Problem uncovered in a11, and reported by
Bengt-Arne Fjellner). Usage message was printing zeroes for the penwidth
string. Rephrased the description of the penwidth and color options - it now
mentions the relation between digit position and pen number, and lists the
corresponding colors for 0-7 instead of refering to the manual. Also mentions
that the range of valid output modes is a property of that particular binary.
More cleanup of to_pdf.c and equivalent changes to to_eps.c (color, miter,join
support) by Andrew Bird. Updated documentation. Added line cap/join support
in to_fig.c, adapted minimum linewidth requirements to get it to draw normal
width lines again. Moved calculated anchor point for polygon fills by 0.5 units
to avoid missing borderlines. Added sanity check for out-of-area scanlines to
the vertical fill function as well.
3.4.3a11:
Rectangle drawing was broken by the vertex buffer changes in a8. The multi-file
mode added in a10 crashed in previews because it tried to generate output file
names. Added an instruction counter for HPGL commands - this also helps decide
whether to generate another output file (otherwise PG at end would be required)
a10 based that decision on the number of commands currently in the temporary
file, but this may change depending on how many initialisation code is moved
there. Moved the line attribute initialization from the temporary file to
global parameters (need to check back with Andrew Bird if this is correct).
Changed wedge code to use the polygon buffer instead of private storage.
Added experimental line join/miter support in PDF output (Simon Milton,using
the framework already built by Andrew Bird). Moved call to init_HPGL to ensure
it is called only once even for multiple files (else PG would imply IN).
Some cleanup in PS/IW/RO - all files from my collection can be rotated without
undue clipping again. Esc E is no longer flagged as an invalid sequence.
Andrew Bird cleaned up to_pdf.c, using filled circle for PLOT_AT instead of
short line. Added OW (output clipping window) command.
3.4.3a10:
another change in the endless RO/IW saga. And a fix for IP with P2.y < P1.y.
Added a loop in std_main/hp2xx.c to allow dissecting plotfiles that contain
several images. Previous versions would plot all in the same frame, now you
get a neat set of numbered output files (or a slideshow-like preview). Replaced
the tmpnam() in to_tif.c with a mkstemp/dup combination - not sure if anybody
even wants to send TIFF output to stdout, as most if not all viewers will need
random access to the image because of its complicated structure (which is also
the reason why we need a temporary file here at all). This is mostly to silence
the annoying warning in GNU ld, and non-Unix platforms still use the old,
potentially insecure code for portability reasons. Added support for IR, but
this is largely untested as i have yet to find a file that does more than
the default "IR0,100,0,100". ifdef'd out Werntges' sanity checks on the
of -o/-O offsets in std_main.c. There may well be valid reasons for negative
offsets (printing on DJ970cx is said to be a case), and maybe even for offsets
bigger than the width or height of an A4 page.
3.4.3a9:
still looking for correct defaults for AC. Reactivated polygon vertex storing
code in line() - not sure if the real problem is with PM1 handling. The code
i added to support Color Range caused strange colors for all but the primary
colors, as i managed to invert the scaling factor. Ouch. Added
TIFFTAG_ROWSPERSTRIP to the TIFF header in to_tif.c - apparently required
by the standard, definitely required by at least one program. Value seems
to be -1 by definition for compressed files, and happens to be 1 for the
uncompressed files because all the code does is dump the individual scanlines.
The 'pentip dots' introduced for PUPDPU sequences got drawn for PDPA as well,
which messed up the drawing of dashed lines (pattern disruption between what
should be consecutive lines, as the dot drawing forced a move command)
3.4.3a8:
moved the vertex adding stuff to a new function that updates the extents of
the drawing as well - previously vertices that were only used as boundaries
for filling, not edging, polygon, did not enter into the size calculation.
Tried to achieve a more sensible initialization of AC - 0,0 as in alpha7 is
plain stupid, but the "physical extents" is a somewhat dubious thing in hp2xx,
and the actual limits are not yet known when the IN or plain AC is seen.
Modified the warning message code to make sure that the "unsupported charset"
message is printed only once per SD, not once per character.
The seeming IW brokenness was not in hp2xx but in the program that created the
strange test file, so i have reverted the change from a7, which makes some
correct files display again.
Some fixes by Bengt-Arne Fjellner: usage message was printing garbage
in description of -p (because of penwidth type change), EMF files were
upside down, and microsoft platforms seem to need a replacement for
rint/lrint (actually some non-MS platforms may need this as well - not sure
if everybody does obey C99 already ?).
3.4.3a7:
Stray Escape chars in the HPGL code are reported and ignored (one guy was
trying to use esc-prefixed commands in his code because he was too familiar
with PCL). Guess what, there was still some brokenness in IW/SC handling.:-(
Fixed some wreckage from the penwidth type change in to_emf.c and added the
ability to create EMF files on UNIX with libEMF. Added VS and CR support.
Added -e for extra margin around IW (at least one commercial code miscalculates
its clip boxes, cutting of text from spectra). FP with --nofill now does EP,
so fat lettering done with just FP does not simply vanish.
3.4.3a6:
PM2 now closes open polygons automatically. Anchor corners for fill patterns
were defaulting to P1 which could be undefined or unsuitable at that time.
Added some whitespace between operators and constants to work around what
is most probably a compiler bug on HPUX 11 with ansi CC.
3.4.3a5:
Most of the LA line ending options are now supported, thanks to Andrew Bird.
X11 previewer was leaking memory when zooming, but valgrind found that.
to_pdf sometimes got confused about when to begin and end its stroke paths.
3.4.3a4:
PJL preambles with more than one Esc sequence confused the HPGL parser.
3.4.3a3:
Several optional arguments to SD,AD and BP were not handled, causing strange
results. Extremely short lines could confuse the line pattern generator
into drawing the gaps instead of the lines.
3.4.3a2:
Andrew Bird implemented a "fat bresenham" to draw true linewidths in the
raster modes.
3.4.3a1:
Ignore broken SC. Fix AC to not always calculate scan lines across the
whole canvas for each polygon. Use 8bpp pixel buffer only if large pen
numbers are actually used, not just defined - lots of programs do NP255
by default. Fixed stupidity where IW/RO interaction could cause unwanted
image cutoff on rotation. to_pdf could overflow the y coordinate, inverting
one half of the image onto the other. Dots for PUPDPU were not clipped by IW.
to_dxf now writes a more elaborate header.
V 3.4.2, 02/04/15:
Added support for AC and CT. Added color support to SVG output module, and
added a new output module for JPEG images, based on libjpeg.
Bugfixes:
- SVG output mode could not be selected on the commandline
- PDF and EPS modes were not always generating penwidth commands on pen changes
- Polygon mode was influencing the overall pen up/down state
- PM1 immediately after PM was not setting the new starting point correctly
- FT instructions did not store/recall hatch spacing and angle correctly
- X11 preview always used black for pen 1
- Polygon fill algorithm did not handle parallel bounding lines correctly,
and could draw lines beyond the limits of the polygon in some cases.
- the commandline interpreter now handles mis-spelled or unknown long
options gracefully (Serge Ivanchenko)
- PDF output was only about 1/3 the intended size
- handling of RO/IW was broken (again) for the unscaled case (no SC)
- PNG output was still using a fixed eight pen palette
- raster modes were limited to 15 pens due to restrictions of the internal
picture buffer (higher pen numbers were either mapped to black or scaled
to the accessible range, depending on output format)
- DXF output had leading whitespace in layer numbers (Patrice Pinel)
- EPS output still had oversized margins
V 3.4.1, 02/01/28:
call line_PicBuf with pt.width scaled by HP_to_xdots/10./0.025 to achieve
more sensible translation from metric penwidths to integer multiples of a
pixel in picbuf.c (Gerhard Buergmann; requires different pensizes correction
in size_PicBuf as well). Added function bezier for the cubic bezier curves
(BR,BZ) to hpgl.c - need real-world cases for testing. Added #ifdef'd code
to stdmain.c that opens stdin/stdout in binary mode on windoze. to_pcx.c
still had one of my eloquent fprintf statements from the debugging phase.
charset2.h was missing a comma in the declaration of the degree sign.
Finally identified(?) Werntges' default setting of P1,P2 to A4-size paper
with margins as the cause of strange offsets and bad cliping ranges.
Joe Greens patch suggested using A3 dimensions (the largest size a 7550 could
handle), i've decided to try A0 unless that blows up something somewhere.
read_string() in hpgl.c was treating '\0', a valid no-op control character
in HPGL, like an ordinary character, accidentally terminating the label at
that point. Added charsets 9,30-39 (by selecting appropriate characters from
sets 0 and 7). Changed status of 'CV' (curved line generator) command from
'unsupported' to 'not applicable' in hp_cmds.lst, as it is basically a pause
command that makes no sense for an emulation. Modified X11 previewer to allow
terminating the program by keypresses or mouse clicks on the preview window,
and to allow moving(paning) about a drawing that is larger than the available
screensize (Based on patches and suggestions by Yuri Strelenko). Updated the
manual page. Changed load_pen_color_table to return -1 instead of 0 on failure,
as assigning and retrieving the color of pen 0 is a valid action in HPGL2. The
previous code would gladly store PC0,255,255,255, but panic with a spurious
'unexpected end of temp. file: SUCCESS' in the output module. Added the math
fonts (Ventura math and the related PS math), as they contain greek characters
and other symbols that might appear in scientific or engineering plots (after
receiving a sample file from Bengt-Arne Fjellner that used several characters
from ventura math). I do not claim to be an artist, and Werntges' encoding
scheme does not simplify matters, but all glyphs should at least be
recognizable. Added SVG output. Fixed some polygon-related problems.
V 3.4.0, 01/02/09:
case CI in hpgl.c did not yet feed the polygon buffer (and adding it
immediately uncovered a bug in fillpoly.c - needed to check for coinciding
start- and endpoint of fill lines, as they may occur for circle segments)
Default case in chardraw changed to substitute the corresponding font 0
character instead of a blank - this makes much more sense at least for the
ISO 646 international fonts 30-39. Fixed the IW clipping of labels - scaling
is now taken into account correctly. Added no-ops for EC (enable cutter)
and NR (not ready, i.e. pause plotter).
V 3.4.alpha6, 01/01/08:
lindef.c had two SCHARS that should be ints, and abs that should be fabs.
In hpgl.c, case PS used MAX(myheight,xmax) when width was not given, instead
of p2.y. The case of height<width was not handled (rotates frame of reference),
we now simply swap width and heigth. The scale/rotate transformation was applied
twice, leading to unnecessary whitespace around plots (duplicate code - bah).
lines() now adds 'pen dots' only if the 'PU without parameters' occured as the
first command in its current invocation (to avoid acting on PD0,0,1,1,...,PU).
V 3.4.alpha5, 01/01/01:
Fixed a bug in the line() function - a stupid if-else sequence added two
MOVE_TOs instead of one when the iwflag was set. This made the pattern
generator reinitialize at each stroke of a polyline, ruining the line pattern.
Changed function lines() to create a small dot for PDPU sequences without
lateral movement, as a real pen plotter would do. (Some oscilloscope software
apparently dumps a screen image that way - ouch).
Andrew Bird found and squashed the real IW bug i introduced in with my code
cleanup and function prototyping in alpha3, and provided a rewrite of the
linetype code, adding linetypes 7,8 and UL in the process.
V 3.4.alpha4, 00/10/10:
Added linewidth handling code and TIFF compression selection via the -S
switch (both patches by Andrew Bird). Wrote similar handling scheme for
pen colors in the Postscript driver - handling the raster modes will be
much harder. Updated the documentation. Reverted some alpha2 changes to
the IW/SC/PS handling that could cut off half of the plot. Added small
tolerances to the clip ranges to avoid numerical problems. Added function
prototypes and fixed variable declarations. Revived the Epson driver (using
the excellent gimp-print driver by Kramitz et al. as documentation) so that it
actually does something. It is limited to A4 format and produces very slow-
printing code (using only one row of nozzles) at the moment, but at least
it does not require ghostscript on the same machine. Cleaned up the fill code
a little. Since alpha2, some input paths were accepted without creating an
appropriate name for the output file.
V 3.4.alpha3, 00/08/??:
Added forgotten references to fillpoly.(c,o) to all Makefiles.
Changed pattern definition for LT-2 in LPattern_Generator (lines were
twice their expected length) (John Reeve). Reinstated scaling of XT/YT
tick marks in the special case of SCaling (bug introduced in 3.3.0 by a
well-meant fix for the non-SC case). Added command line switch to turn
off the polygon filling code.
V 3.4.alpha2, 00/07/20:
Fixed several numeric problems in the scanline fill code, and removed
(commented) the debugging code that stored outlines and scanlines in the
temporary file. Adapted penwidth correction for picbuf to new decipixel
width scheme. Fixed PW code to map penwidths less than 0.1 to .1
Added a patch to provide a message window for the OS/2 viewer. Added build
instructions for NT. (both untested by me)
The X11 previewer no longer aborts when the preview window exceeds
the size of the screen.
Changed the outfile name check from isalpha to isascii to allow relative
filenames and names that start with a number. Fixed the broken header code
in the new epson module, but still did not get it to work. I will probably
drop it again from 3.4, unless i receive requests and/or documentation for
esc/p2 output.
V 3.4.alpha1, 00/03/05:
Added ER (edge rectangle relative), WU (pen width unit) and the 'arc through
three points' commands AT and RT.
Started work on polygon and fill modes - FT (filltype), PM (polygon mode),
EP (edge polygon), FP (fill polygon), WG (filled wedge), RA (filled rectangle
absolute) and RR (filled rectangle relative).
User-defined fill types are not yet supported, and the handling of pattern
angles is not always correct.
Fixed a problem with IW after SC - IW parameters were always treated as
plotter units, but SC imposes user units (reported by Gerhard Buergmann).
Incorporated a set of patches provided by Eugene Doudine that make the
parser more robust by checking both characters of a command and providing
an error exit for broken PE parameters (previously hp2xx could get into an
endless loop getting and ungetting characters from the input). His patches
also rearrange the line drawing functions (PE_line removed, lines reduced
to reader part for PU/PD/PA, new function line() as common backend with
clipping etc.), add anisotropic scaling support (SC types 1 and 2) and
parser functions for PJL and RTL headers.
Investigated PCX colormap problems reported by Christian Steigies - the
current code in to_pcx.c is not really suited for output of non-primary
colors, and the palette seems strange. Changed a few palette entries so
that black-and-white plots do not get a dark red background and switched
back to the original color masking code. Should probably switch to PCX5
24bit image generation (better PCX format documentation needed).
Started work on an Esc/P2 output module for the Epson Stylus inkjet
models, which do not understand PCL. Untested and probably does not work.
V 3.3.2 , 00/02/12:
Added flags to make the command line options -c and -s override any PC or PW
commands in the HPGL file. (One can now force monochrome output from a color
hpgl file again, and work around silly programs that use global PW at every
pen change). Fixed autoscaling of plot in landscape mode and interpretation
of PE pen change commands. Removed artificial A4 page limitation in Postscript
mode. Documented the automatic selection between PBM and PPM file formats
done in pbm mode. Changed color for 'black' pen in to_x11.c from (light)
gray to gray10. Added TIFF output module provided by M.Liberi after changing
requested compression from LZW to DEFLATE, added TIFF and PNG defines to
generic.mak. Added support for DV (vertical text).
V 3.3.1 , 99/11/20:
Changed handling of PS/RO to finally(?) eliminate the scaling problems.
Corrected xfig file header (had FIG3.2 title but 3.1-style parameters).
Added Solaris/SunOS 5.x options for generic.mak (suggested by Wolfram Wagner),
fixed all files in generic.mak that did not yet include to_fig.c and clip.c.
Fixed DR/DI implementation to do correct initialization when called without
parameters, changed text height factor to better resemble plotter output,
(re)allocate LB strings dynamically instead of imposing arbitrary limit on
label length (patches supplied by Georgy Salnikov). Completed PE support.
Cosmetic changes to compile without warnings with gcc -Wall.
Added Michael Schmitz' current email address in to_png.c.
V 3.3.0 , 99/09/30:
Corrected scaling of PS with RO and -r. Corrected positioning and scaling
of clipping box for LB with IW. Removed BF from the list of unsupported
commands, as none of my HP-GL references mentions such a command.
V 3.3 ALPHA2, 99/09/12:
Corrected interpretation of PW (parameter list was backwards and there
was no provision for the 'default' cases), added support for NP and
>8 pens, added PS (plot size) command to accurately reproduce page
position, added EW (edge wedge) command support. Removed improper scaling
of tick marks in ax_ticks(). Corrected rect(), which was advancing the
pen position after an EA.
=====================================================================
V 3.3 ALPHA, 99/09/01:
Incorporated PNG support (patches by Michael Schmitz as packaged
by Lars Koeller for FreeBSD) and partial support for the PE command
(by Eugene Doudine). Added more character sets, so that 0-7 are now
supported (although some glyphs may be ugly or even wrong, they were
drawn after the small illustrations in an old plotter manual). Added
PenColor and PenWidth commands from HPGL/2 (not yet supported in the
old Sun and OS/2 output modules - help needed for these platforms).
PCL initialization sequence changed to use maximum available area in
"-t" mode and generate paper selection commands for formats larger than
A3 (untested).
=====================================================================
V 3.30.0, 99/01/31: (unreleased)
First version packaged by new maintainer (this is what you get when you
ask where to send patches for an orphaned project).
Output functions for xfig (by Ian McPhedran) and gnuplot (by Emmanuel Bigler).
Support for the HP-GL commands IW (clipping) and CS (character set selection),
implementation of character sets 5 (Special Symbols) and 7 (HP Roman8
Extensions), and support for 8bit addressing of charset 7 from charset 0.
PCL initialization sequence now includes appropriate paper size selection
when in "-t" mode (European A4 and A3 formats only), as some (most?) printers
do not select the larger size automatically.
======================================================================
NOTES:
o Intermediate versions have not been made publicly available.
o Letters at end of version number indicate small changes like
source restructuring or minor bug fixes.
V 3.20a, 94/02/15:
This release contains major modifications. Besides a lot of cleamup it
deals with the introduction of high-level functions which represent
the different conversion phases of hp2xx. These may be called by *any*
user front-end, not just the traditional command line interface.
My intention is to facilitate the introduction of various graphical
user front-ends. If you want to add one, study function "action_traditional"
and read the comments in "hp2xx.h"!
-- hp2xx.h: Re-structured! Options & parameters now separated into
three groups: General / for input / for output conversion
-- hp2xx.c: Now with high-level routines suitable for future
GUI front-ends.
CLI functions incl. main() moved to "std_main.c"
-- std_main.c: New file! Keeps functions for traditional command line interface.
PCL mode now also accepts 600 DPI.
-- hpgl.c: Bug fixed: Gap in min/max determination caused later crash
-- to_pbm.c: Color supported + compact binary format (by Ian McPhedran)
-- most files: o Adapted to new parameter structs
o Re-organized
o Use of "const"
o Better error recovery
o Direct output to stderr now eliminated (see std_main.c)
Plus all changes later than 3.14a
V 3.15a, 94/01/02:
Suggestions by Lawrence Lowe:
-- to_pcl.c.c: Effects of -o -O with and without -i more consistent
-- hpgl.c: New option: -C (center mode); affects -o -O
-- chardraw.c: Symbol plotting now with more general symbol centering
-- hp2xx.c: Warning "DPI setting is no ..." suppressed in DeskJet modes
-- hpgl.c: Second parameter of ES now optional (default 0)
V 3.14b, 93/11/23:
-- to_pcx.c: Color mode working again - though CLUT still has no effects
(by R. Frahm, DESY, Hamburg)
-- hp2xxinf.tex:More typos fixes
V 3.14a, 93/11/15:
-- to_eps.c: Code now closer to Adobe EPSF structuring conventions
(thanks to Nelson Beebe for his detailed report)
-- generic.mak: install-exe --> install-bin
-- hp2xxinf.tex:Typos fixes
Plus all changes later than 3.13a
V 3.13c, 93/10/23 & 93/11/08:
-- to_vga.c: Fix in getchar()-handling; bug reported by
Uwe Girlich (girlich@aix520.informatik.uni-leipzig.de)
-- hp2xxinf.tex:Typo causing makeinfo error removed
V 3.13b, 93/09/27:
-- hp2xx.c: Fix in autoset_outfile_name() prevents crash in pipe mode
Improved VAX/VMS "makefiles"
V 3.13a, 93/09/03:
-- hp2xx.c: Wait() --> NormalWait(); -m hpgl added; -Pn:m parser modified
-- hp2xx.h: A few new #define's (VAX-VMS needs them); rect() prototype
-- hp2xx.c: Wait() --> NormalWait(); -m hpgl added; -Pn:m parser modified
-- hpgl.c: Support for EA (rect() added)
-- to_mf.c: Mode 5 (Simple HP-GL) added
-- to_pm.c: Minor changes to match emx 0.8g header
-- to_pcl.c: Compression only in Deskjet modes
-- to_uis.c: Minor fixes
Plus all changes later than 3.12a
V 3.12f, 93/07/20: (see ./fixes)
-- hp2xx.c: SilentWait() better adapted to UNIX pipes (A. Bagge)
-- hp2xx.h: A few prototypes added
-- to_os2.c: Updated (H. Szillat); working in combination with to_vga.c
-- to_pcl.c: TIFF compression (mode 2) added
-- to_vga.c: Minor adaptations
-- generic.mak: Fix for OS/2 full-screen version
V 3.12e, 93/05/28: (see ./fixes)
-- hp2xx.h: "Binary vs. text mode" finally added for OS/2, too
-- to_os2.c (by H. Szillat) added to distribution
-- generic.mak: Minor improvements around OS/2, emx versions
V 3.12d, 93/05/20: (see ./fixes)
-- hpgl.c: Bug fix for LB/PR problem (by W. Eric Norum),
LT1 pattern adjustment
-- to_eps.c: BoundingBox corrected for max pen width
-- to_pcl.c: Code for end-of-raster-graphics corrected
-- hp2xx.c: Option --version added (GNU standard)
V 3.12, 93/04/17:
-- New makefile for ATARI
-- ATARI only: Support for mode "cs" (Chr. Strunk's TeX specials)
-- New ATARI previewer
-- charset.h: `0' without slash now, according to HP-GL charset 0
-- chardraw.c:
Prepared for multiple fonts;
Bug fixed: 8-bit char codes won't crash hp2xx
plot_user_char() added (code by A. Treindl)
-- hpgl.c:
Arcs/circles now properly closed (occasional tiny gaps removed)
Bug fixed: SC followed by draw (without move) misplaced a point
Serious bug fixed in the line type (LT) pattern generator
Exception fixed in LT pattern generator
hypot() problem fixed (DOS)
UC supported
-- picbuf.c:
Always use 4 bits per pel in color mode (and 1 in b/w mode)
New encoding scheme for color codes:
nybbles instead of bit planes
--> more mem, but faster access in color mode
Obsolete type "DotBlock" finally replaced by "Byte"
-- to_pcl.c:
CMYK color support (for HP Deskjet 550C) added
-- to_mf.c:
Bug fix in "cad" mode (\emline statement lines now end with '%')
-- to_eps.c:
VM report lines are suppressed in 'quiet' mode
BoundingBox: improved rounding (using floor and ceil)
-- Much better generic makefile for many UNIX systems;
improved special makefiles
-- Files re-organized (./extras removed):
"amigalib.zoo" now distributed as separate file
"hp2xx.amigalib.zoo"
HGC support now distributed in separate file
"hp2xx.hgc.showit.zoo"
Other sources moved from ./extras to ./sources
V 3.11, 93/01/17:
-- New makefile for Amiga
-- Root directory renamed to hp2xx311 to make life easier
for DOS-based people
-- File ownerships now rw-rw-rw
-- code_to_ucoord() in chardraw.c:
Reported bug (on RS6000 ONLY!) fixed
V 3.10, 93/01/09
First release of sources as hp2xx.3.1.0.tar.Z under GNU conditions!!
CMY color for Deskjet (PLC), option -S now with parameter;
minor corrections
V 3.03a, 92/12/14
Long options & "true size" mode (-t) added
V 3.02c, 92/12/10
Range of pages (-P a:b) permitted now
New mode: "cad" for TeXcad code!
V 3.02a, 92/10/20
HPGL command LT (line type) now fully supported; bug in eps mode removed.
V 3.01d, 92/06/08
HPGL commands SM, TL, XT, YT supported
V 3.00f, 92/05/25
Up to seven colors (some modes)! Multiple-input handling; log files;
auto-generation of output file names; output to stdout via "-f-"
V 2.20d, 92/04/14
Symmetrical use of -h (height) and -w (width) options, new defaults:
200 [mm] for both -h & -w. Picture will always fit into a window
given by -h and -w
V 2.20c, 92/03/03
Arcs, circles, fonts (Charset 0), pages, and many more commands supported
ATARI-ST binary file added (only old version of hp2xx - sorry)
DOS/386 binary file added (compiled with DJ Delorie's GNU-C version)
WARNING: hp2xx386.exe's previewer tries to activate 800x600 SVGA mode!
New modes: -m em (emTeX-specials), -m epic (epic macro \drawline)
Modes pic & pac only supported in (outdated) ATARI version
HPGL parser much easier portable and more tolerant to HPGL syntax variations
Bugs in character scaling fixed; LO now fully supported
V 2.18e, 92/02/06
X11,Sunview,ATARI: preview; IMG format supported;
HPGL parser improved
V 2.17, 92/01/12
Some debugging; more coherent sources, but no functional changes
V 2.16a, 91/11/21
ATARI mode reduced again to simple "pic" format,
support of "LT;", "LT0;" (for point plotting),
support of different pens ("SP;", "SP0;"..."SP8;"),
internal changes (faster now), more flexible MF syntax
V 2.14b, 91/10/10
ATARI mode: New file name convention, adapted to STAD
hp2xx.dvi: Now part of distribution package
V 2.14a, 91/09/08
ATARI ST support added.
V 2.13a, 91/06/30
PostScript support added.
Warning: Due to lack of local resources, PostScript format could
not be thoroughly tested. Please consider the PostScript
part as in "beta" state and report all problems.
V 2.12, 91/06/20
First external release!
Rotate option added, debug code removed
|