Recent changes : ================= 3.5.0a37: - Further improvements to the polygon fill code. - Some code cleanup, addressing warnings generated by gcc12 and LLVM11 3.5.0a36: - New polygon fill code. - PE command handling fixes 3.5.0a35: - Updated PNG code to allow compilation with recent libpng versions. - Allowed presetting pen color for all 255 pens instead of just the first 8. 3.5.0a34: - Corrected scaling of the slash character. - Reworked parts of the RTL and PE handling code. 3.5.0a33: - Fix parsing of MG. 3.5.0a32: - Fix parsing of AD and SD. Made SD6,9999 change the penwidth of the active font immediately as there may be no SS before LB 3.5.0a31: - Made sure that penwidth is always initialized to a sane default. 3.5.0a30: - Added output mode "iso", ISO G-code optimized for Gerber cutters with special option for conventions used in the textile business 3.5.0a29: - more PDF updates/fixes related to libharu2 (dot/line sequences, error handling - both fixes contributed by Andrew Jackson) - Added some support for embedded PCL images using TIFF encoding and/or color planes (based on sample file from Prakash Gajera, which unfortunately still does not work) 3.5.0a28: - Implemented polygon filling by winding rule (FP1 instruction). - Improved paper size selection in the PCL module 3.5.0a27: - more PDF updates/fixes related to libharu2. - number of fill lines for solid fills now calculated from dpi, should improve performance without changing quality. - Solid fills now also draw the outline of the polygon to catch special cases where one of the boundary lines is not an edge. 3.5.0a26: - updated libharu-based PDF output for new libharu2. 3.5.0a26: Adapted pdf output to new, plain-c libharu2. Fixed PCL offset generation in to_pcl.c to properly support negative offsets. Fixed cut-and-paste error in the truetype font rendering code. 3.5.0a25: Added support for password protection and usage restrictions to the PDF export module (based on a patch by Horst Liesinger, see sample resource file PDF_Per.ini in the doc directory) Removed an extraneous character set conversion that could cause wrong characters to be output when using truetype fonts. 3.5.0a24: Made truetype font support compile again, added -T option to activate it. Added full truetye glyph support for plotter font 7 (national language characters and common symbols). Fixed two syntactical errors in the manpage. Number of pen lines used for solid fills was larger than necessary for solid appearance. 3.5.0a23: RTL supports ROtation now; uses grayscale palette instead of b/w. 3.5.0a22: Very rudimentary RTL support (only unencoded or delta-encoded, color-by-pixel images are rendered (black and white only), most other formats are at least read and reported). 3.5.0a21: Adjusted tolerance factor for polygon outline detection. Updated to_pdf.c for current libharu. 3.5.0a20: Replaced the broken fillpoly.c with the correct version that should already have been in a19 (sorry). Added linecap and linejoin style support in SVG mode. Removed or reworded obsolete warnings about missing features. 3.5.0a19: Removed remaining epsilon values from the scanline polygon fill code; added proper handling of the special case of intersection at a vertex. Removed some debugging printouts. Reinstated scaling transformation in IW code. 3.5.0a18: fixed some typos (missing commas) in the initializing lists of character sets 2 and 3 (Anton Hadinger). Suppressed wide-line miter filling if the calculated miter length exceeds the penwidth (basically just a stupid sanity check to cover an unfound bug). Removed the noisy-and-useless "zero linelength" warning. Corrected parsing of Esc-E (PCL reset) sequences in preambles. Corrected calculation of "square" line ends. Replaced individual epsilon values in the scanline fill code with a single variable that defaults to zero. Replaced several C++ comment characters with their standard-conforming C equivalent. 3.5.0a17: hp2xx no longer terminates when it encounters an empty (sub)drawing, unless the end of the input file has been reached. It also does a better job of suppressing empty drawings. The 'simplified hpgl' sub-mode of to_vec.c no longer outputs an SP for the current pen in response to a penwidth change. 3.5.0a16: hp2xx no longer aborts on HP-GL syntax errors. Instead, the appropriate HP-GL error code is set (and may be queried by OE or OS), and the offending command is ignored. Reporting of the offending instruction can now be suppressed by the "-q/--quiet" option. The OI (output identification) command is now supported, it returns HP2XX- and the version number. 3.5.0a15: Fixed segfault on exit when writing image to stdout. Changed line drawing (PU/PD/PA) code to ignore invalid coordinates (as required by the HP-GL documentation) instead of aborting. 3.5.0a14: fixed bug in canvas size calculation for files with both SCaling and polygons (which made calculated image area grow when rotated). Fixed clipping of final circle segment (could cause extraneous border on clipped plots). Added new -u --uniform_width option to select the "old", simple method of drawing wide lines in raster modes, as the "new" mechanism of 3.4.3 can cause small fluctuations in line width in some circumstances. 3.5.0a13: re-added GIF output and enabled LZW compression option in TIFF 3.5.0a12: Added do-while loops in AD and SD option processing to handle more than one font option per command. IW without parameters was scaled twice if SC was set. Character drawing now uses DtClipLine function instead of local, broken logic. 3.5.0a11: The fixed penwidth of 0.1 used internally for solid fills needs to be scaled if the plot uses SC (Simon Clayton). Made another attempt to get pen-state handling in polygon mode right - polygons declared with the pen up should now render correctly with FP, and be invisible with EP. 3.5.0a10: Need to force pen_down state when entering polygon mode, else polygons drawn with pen up will not render correctly or even not at all. Cannot suppress MOVE_TO sequences in arc_increment as this would create wrong lines when circles are clipped. Wrong ordering of cases caused unsupported AD/SD font parameters such as pitch or posture to change the font weight. Changed all BYTE types to Byte to avoid clashes with X11's BYTE type. Initial support for variable-width fonts (only if truetype support is available). 3.5.0a9: Added very experimental support for variable-width fonts (truetype mode only). Corrected (non-)rendering of polygons starting with a pen-up move. Corrected clipping of arcs and circles. Prevented unsupported font style options from changing the font linewidth. 3.5.0a9: Fixed several bugs in the wide-line miter code that could lead to jagged lines and extraneous lines. Disabled Esc%?A as separator again, as this breaks several files including our own spectrum.plt example, where it is immediately followed by another Esc%?B "enter HPGL mode" command. 3.5.0a8: Made filltype 11 work again (after breaking it during addition of type 10). The 'leave HPGL mode' PCL/RTL commands Esc%0A,Esc%1A are now recognized as separators in multi-image files. 3.5.0a7: Added support for filltypes 10 (percentage) and 11 (user-defined raster pattern) and the RF (raster fill pattern definition) command (using the old-style polygon fill code). 3.5.0a6: fig and rgip output modules still aborted when trying to change the color of pen 0. Penwidth was erroneously reset to that of pen 1 instead of the current value after (old-style) polygon filling. 3.5.0a5: Adapted the pdf module to the new high-level command handling scheme. hp2xx can now be compiled/linked against Takeshi Kanno's libharu (see sf.net) for PDF output support (which, unlike the commercial PDFLIB, is available under the PNG/ZLIB license and thus may be used royalty-free even in commercial projects) 3.5.0a4: Files containing both SC and polygons were rendered with extra margins (original patch by Hans-Peter Rueger) and sometimes with unfilled or missing polygons 3.5.0a3: Lowercase HPGL commands were ignored (very old bug, found and fixed by Yuishi Fujishige) Several of the Makefile templates were missing closing quotation marks on echo commands (Christian Zuckschwerdt) 3.5.0a2: Several fixes contributed by Eugene Doudine: -I had misapplied part of his 3.5.0a1 patch, thereby breaking IW. -the formula used in AT (arc through three points) was wrong, giving correct results for some trivial cases only -fixed some more cases where the pen is lowered and raised but not moved in between, and hp2xx did not draw a dot as a plotter would -added mandatory SP command in pages.hp example 3.5.0a1: General code changes to use highlevel drawing commands (currently implemented for polygon fills) instead of line drawing if the output format supports it, and addition of an experimental Postscript driver that makes use of this. (Eugene Doudine) 3.4.4 released 03/06/23 Corrected WG (filled wedge) drawing, which got horribly broken in 3.4.3. Updated documentation and 'indent'ed sources. 3.4.4a9: Corrected color PNG output. Added commandline option to remap pen 0 drawing commands to another pen number (to workaround the problem that pen0 doubles as background color in the raster output modes). 3.4.4a8: Corrected the page counting of multi-image files. 3.4.4a7: Corrected a typo that caused drawing of arcs (AA) with tolerance set to deviation distance (CT1) to fail. Adapted the optional ttf renderer to the freely available Bitstream Vera Mono font (www.gnome.org/fonts). 3.4.4a6: Corrected the handling of the DT command (non-default terminators were always printed, default "DT;" command would set terminator to ";"). 3.4.4a5: Fixed missing function prototypes (leading to compilation of an unusable program) when the -ansi compiler flag was used on some platforms. Added another workaround for the miter code generating spurious lines in text characters. Added commandline arguments -W and -H to set the perceived 'hardware device limits' of hp2xx (in plotter units, to fix default character size for plotfiles intended for a particular, e.g. A4-size plotter model). 3.4.4a4: More fixes to the polygon fill code, particularly for vertical fills. This also solves a problem with the raster buffer receiving invalid image rows. Reduced the default miter limit in EPS and PDF mode to a more realistic value. Added special case S=4 for the Epson ESC/P2 output mode to support the recent six-color Stylus Photo models (untested). 3.4.4a3: Added optional support for line color and width in DXF output and improved the DXF header (Georg Viehoever). Made the error handler print the offending HPGL command, not only its sequence number. Fixed a bug that could allow polygon sides to avoid clipping. Changed the simplified HPGL output to avoid writing small numbers in exponential notation. 3.4.4a2: Added rectangle mode support for PE, modified PJL parser to support lines up to 256 characters (Eugene Doudine). Added NR to the list of commands that may separate drawings in multi-image plot files. Removed some debug messages (from 3.4.4a1) from the eps driver. 3.4.4a1: Bugfixes for -p not working with numeric arguments; wrong penwidth after drawing labels; wrong lines in polygon fills; broken color support in xfig and rgip output. Added preliminary support for truetype fonts instead of the ugly stick fonts. Needs a fixed-width font (LucidaTypewriterRegular from Sun's JRE is ok, but does not seem to be freely redistributable). Fixed sloppy coding found by 'splint -weak'. 3.4.3 (completed on Dec.29, but appeared on gnu.org in late January) Documentation updates and source indentation. 3.4.3a26 (release candidate for 3.4.3): Silenced a few messages that were printed even in quiet mode. Added a new output module, CNC G-code for engravings (Michael Rooke). 3.4.3a25: Switched off the wide-line mitre code for lines with round endcaps (where it is unnecessary). Added some small improvements to the PCL3GUI output - a designjet500 at least plots now, but the image is separated into inch-wide (printhead-wide?) strips with equal amounts of whitespace in between). Corrected handling of arc commands with a chord setting of zero (Steve Edmonds) 3.4.3a24: Yet more fixes to the 'wide line miter' stuff (the previous code sometimes added extraneous lines in characters). The PCL3GUI code definitely does not work, and i do not yet know why. 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. 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: Redid the butt miter code for raster output of wide lines. Fixed handling of special cases 'PS0;' and 'IN;IW'. 3.4.3a18: Small changes to improve numerical stability - the LPattern_Generator could enter an endless loop on Sun/Solaris. 3.4.3a17: Fixed incompletely applied patch for endcap selection in a16. Added experimental code for filling the miter section on wide lines. 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. 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