Blog Project Updates and Random Thoughts

TTF v1.0.0 August 19, 2024

This is the first stable release of TTF, a simple C library for using TrueType and OpenType font files.

Enjoy!

Download TTF v1.0.0 Home Page Github Project

Comments
 

Announcing TTF, a Simple C Library for Using TrueType/OpenType Files August 09, 2024

TTF is a simple C library for using TrueType and OpenType font files. I’ve actually been embedding this in a couple other projects but wanted to make the core project more visible for those that need to work with font files.

I’m providing TTF under the Apache License Version 2.0 with an (optional) exception to allow linking against GPL2/LGPL2 software.

Home Page Github Project

Comments
 

PDFio 1.3.1 August 05, 2024

PDFio 1.3.1 is a security fix release. Changes include:

  • CVE 2024-42358: Updated TrueType font reader to avoid large memory allocations.
  • Fixed some documentation errors and added examples (Issue #68, Issue #69)

Enjoy!

Download PDFio v1.3.1 Home Page

Comments
 

PDFio 1.3.0 June 28, 2024

PDFio 1.3.0 is a feature and bug fix release. Changes include:

  • Added pdfioFileGetCatalog API for accessing the root/catalog object of a PDF file (Issue #67)
  • Updated number support to avoid locale issues (Issue #61)
  • Updated the PDFio private header to allow compilation with MingW; note that MingW is NOT a supported toolchain for PDFio (Issue #66)
  • Optimized string pool code.

Enjoy!

Download PDFio v1.3.0 Home Page

Comments
 

Mini-XML 4.0.3 April 21, 2024

Mini-XML v4.0.3 is a bug fix release. Changes include:

  • Now default the DSOFLAGS value to LDFLAGS in the configure script (Issue #325)
  • Now install the man page as “mxml4” to allow parallel installation of Mini-XML 4.x and 3.x (Issue #324)
  • Added MXML_ALLOC_SIZE define to control the allocation increment for attributes and indices (Issue #318)
  • Fixed mxmlSetDeclarationf implementation (Issue #322)

Enjoy!

Download Mini-XML 4.0.3 Home Page

Comments
 

Mini-XML 4.0.2 March 24, 2024

Mini-XML v4.0.2 fixes an issue with GNU make and parallel builds (Issue #314).

Enjoy!

Download Mini-XML 4.0.2 Home Page

Comments
 

StringsUtil v1.1 March 23, 2024

StringsUtil v1.1 is now available and is a bug fix release. Changes include:

  • Now support building against CUPS 2.x or libcups 3.x.
  • When exporting a C header/source file, the variable name no longer includes directory information.
  • Fixed decoding of JSON Unicode escapes (“\uXXXX”).
  • Fixed exporting of quotes in “.strings” files in C header/source files.
  • Now preserve formatting strings when translating.

Enjoy!

Download StringsUtil v1.1 Home Page Github Project

Comments
 

Mini-XML 4.0.1 March 22, 2024

Mini-XML v4.0.1 is a bug fix release. Changes include:

  • Fixed missing “docdir” definition in makefile.
  • Fixed missing CPPFLAGS, OPTIM, and WARNINGS in CFLAGS in makefile.
  • Fixed configure script issues.

Enjoy!

Download Mini-XML 4.0.1 Home Page

Comments
 

mmd v2.0 March 22, 2024

This release of mmd adds new load functions and mmdutil options and fixes bugs. Changes include:

  • Added mmdLoadIO and mmdLoadString APIs (Issue #12)
  • Added mmdutil “-“ filename/option to read markdown from stdin (Issue #16)
  • Added a document pointer to the other load functions to allow concatenation of markdown files.
  • Added mmdutil “–no-title” option to disable the generated HTML title page.
  • Updated mmdGetWhitespace and mmdIsBlock functions to return bool values.
  • Fixed support for emphasized or strong linked text (Issue #15)
  • Fixed an issue with headings directly after a table.
  • Fixed some more issues with the Commonmark tests.
  • Fixed lists in man page output.

Enjoy!

Download mmd 2.0 Install mmdutil 2.0 Snap Home Page

Comments
 

codedoc v3.7 March 22, 2024

This release of codedoc adds more syntax highlighting and fixes a number of bugs. Changes include:

  • Now require Mini-XML 4.x.
  • Now include a configure script.
  • Added quoting of “.” and “’” at the beginning of lines and now use the “.IP” macro instead of “.IN” in man output (Issue #12)
  • Added support for @body@ comment directive to add body text inline with code (Issue #10)
  • Added highlighting of HTML and XML in code-fenced markdown (Issue #19)
  • Added highlighting of CSS in code-fenced markdown.
  • Added highlighting of reserved words, numbers, and strings in reference documentation, to match markdown code example highlighting.
  • Fixed double-free bug (Issue #16)
  • Fixed some bugs detected with fuzzing (Issue #13, Issue #14, Issue #15)
  • Fixed support for markdown code fences and indentation in code example comments.
  • Cleaned up some issues reported by Coverity and Cppcheck.

Enjoy!

Download codedoc 3.7 Install codedoc 3.7 Snap Home Page

Comments
 

Mini-XML 4.0.0 March 20, 2024

Mini-XML v4.0 adds some new features, updates the callback APIs to include data pointers, and generally cleans up and normalizes the interfaces from prior releases. While largely similar, this release is not source or binary compatible with Mini-XML v3.x - migration details are included in the documentation.

Mini-XML v4.0 weighs in at a mere 3,491 lines of code, down from the 4,300 lines of code in Mini-XML v4.0.0. Changes include:

  • Now require C99 support (Issue #300)
  • Now install as “libmxml4” to support installing both Mini-XML 3.x and 4.x at the same time (use --disable-libmxml4-prefix configure option to disable)
  • Added mxmlLoadIO and mxmlSaveIO functions to load and save XML via callbacks (Issue #98)
  • Added new MXML_TYPE_CDATA, MXML_TYPE_COMMENT, MXML_TYPE_DECLARATION, and MXML_TYPE_DIRECTIVE node types (Issue #250)
  • Added mxmlLoadFilename and mxmlSaveFilename functions (Issue #291)
  • Added AFL fuzzing support (Issue #306)
  • Added mxmlOptions APIs to replace the long list of callbacks and options for each of the load and save functions (Issue #312)
  • Added string copy/free callbacks to support alternate memory management of strings.
  • Renamed mxml_type_t enumerations to MXML_TYPE_xxx (Issue #251)
  • Updated APIs to use bool type instead of an int representing a boolean value.
  • Updated the SAX callback to return a bool value to control processing (Issue #51)
  • Updated the load and save callbacks to include a context pointer (Issue #106)
  • Fixed some warnings (Issue #301)
  • Fixed real number support in non-English locales (Issue #311)

Enjoy!

Download Mini-XML 4.0.0 Home Page

Comments
 

HTMLDOC 1.9.18 February 11, 2024

HTMLDOC 1.9.18 is a bug fix release. Changes include:

  • Fixed table rendering when there are missing </tr> (Issue #494)
  • Fixed support for links of the form “filename.html#anchor” in PDF output (Issue #514)
  • Fixed --header1 support for web page output (Issue #515)
  • Fixed markdown emphasized, strong, and struck-through text (Issue 517)

Binaries are available from Github for Windows and macOS, and through the Snapcraft store for Linux.

Enjoy!

Download HTMLDOC 1.9.18 Install HTMLDOC 1.9.18 Snap Home Page

Comments
 

PAPPL v1.4.6 February 09, 2024

PAPPL v1.4.6 is now available for download and is a bug fix release. Changes include:

  • Fixed reporting of “printer-strings-languages-supported” attribute (Issue #328)
  • Fixed saving of “print-darkness-default” and “print-speed-default” values (Issue #330 and #337)
  • Fixed incoming “raw” print socket support (Issue #331 and #338)
  • Fixed web interface support for “printer-darkness” (Issue #333)
  • Fixed some issues discovered by OpenScanHub (Issue #335)
  • Fixed localization of command-line (main loop) interface.

Enjoy!

Download PAPPL v1.4.6 Home Page

Comments
 

LPrint v1.3.1 February 09, 2024

LPrint v1.3.1 is a bug fix release. Changes include:

  • Updated “print-speed” support in TSPL driver (Issue #120 and #121)
  • Fixed lprint-modify man page (Issue #122 and #126)
  • Fixed snap documentation for connecting LPrint to Avahi.

Enjoy!

Download LPrint 1.3.1 Install lprint Snap Home Page

Comments
 

HP Printer Application v1.3.0 February 09, 2024

HP Printer Application v1.3.0 is now available for download as an “officially supported” printer application for older PCL laser and inkjet printers. Changes in 1.3.0 include:

  • Switched to using a configure script.
  • Updated documentation for current PAPPL.
  • Added support for snap server configuration settings (Issue #21)
  • Updated macOS and Linux binaries to use PAPPL 1.4.x.

Enjoy!

Download PAPPL v1.3.0 Home Page

Comments
 

LPrint v1.3.0 January 31, 2024

LPrint v1.3.0 adds a new dithering algorithm, support for new printers, support for configuration files, and fixes a number of bugs. Changes include:

  • Added new dithering algorithm to better support barcode printing with shaded content.
  • Added experimental Brother printer support (Issue #15)
  • Added basic TSPL printer support (Issue #54)
  • Added basic SEIKO printer support (Issue #58)
  • Added experimental Zebra CPCL printer support.
  • Added support for configuration files in “/etc”, “/usr/local/etc”, or “/Library/Application Support” (macOS).
  • Updated ZPL driver to report ‘media-needed’ reason when out of labels during a job.
  • Fixed copies support for ZPL printers (Issue #100)
  • Fixed darkness calculations for EPL and ZPL printers (Issue #104)

Enjoy!

Download LPrint 1.3.0 Install lprint Snap Home Page

Comments
 

PAPPL v1.4.5 January 26, 2024

PAPPL v1.4.5 is now available for download and is a bug fix release. Changes include:

  • Fixed --disable-libpam configure option.
  • Fixed support for “finishings”, “output-bin”, and “sides” options.
  • Fixed IEEE-1284 device ID generation code.
  • Fixed crash in retrofit printer application (Issue #322)
  • Fixed some Coverity-detected threading issues.

Enjoy!

Download PAPPL v1.4.5 Home Page

Comments
 

PDFio 1.2.0 January 24, 2024

PDFio 1.2.0 is a feature release. Changes include:

  • Now use autoconf to configure the PDFio sources (Issue #54)
  • Added pdfioFileCreateNumberObj and pdfioFileCreateStringObj functions (Issue #14)
  • Added pdfioContentTextMeasure function (Issue #17)
  • Added pdfioContentTextNewLineShow and pdfioContentTextNewLineShowf functions (Issue #24)
  • Renamed pdfioContentTextNextLine to pdfioContentTextNewLine.
  • Updated the maximum number of object streams in a single file from 4096 to 8192 (Issue #58)
  • Updated the token reading code to protect against some obvious abuses of the PDF format.
  • Updated the xref reading code to protect against loops.
  • Updated the object handling code to use a binary insertion algorithm - provides a significant (~800x) improvement in open times.
  • Fixed handling of encrypted PDFs with per-object file IDs (Issue #42)
  • Fixed handling of of trailer dictionaries that started immediately after the “trailer” keyword (Issue #58)
  • Fixed handling of invalid, but common, PDF files with a generation number of 65536 in the xref table (Issue #59)

Enjoy!

Download PDFio v1.2.0 Home Page

Comments