ETSET 3.5 Released

I have just released version 3.5 of ETSET, a command-line tool for authors of electronic texts, such as those contributed to resources such as Project Gutenberg. In the interest of preserving these works over time in the face of constant changes in Web standards, these books are usually published in “Plain ASCII” form (often now extended to encodings such as UTF-8, which allow inclusion of characters from other languages and scripts). ETSET allows you to prepare a text in this form and then automatically generate beautifully formatted documents using LaTeX, PDF, and HTML. ETSET is used to produce many of the on-line books at Fourmilab, including the Tom Swift and his Pocket Library collection.

ETSET 3.5 is an incremental stability release which copes with torpedoes aimed at software whose developers were foolish enough to write in the legacy ironic programming language C++ and the Garbage C++ Compiler (GCC) implementation of it. Over the nine years since the last release of ETSET, the pointy-head responsible for C++ and poindexters implementing it in GCC have launched numerous torpedoes at code which compiiled without errors or warnings and worked perfectly on earlier versions of the language and compiler. These not only create bogus warnings, but in some cases failures to compile working code which was previously accepted.

The changes in 3.5 cope with these changes, usually by making the code less readable and more arcane. For example, the completely straightforward code which expands a control character to its conventional representation with an up arrow and keyboard letter: and appends it to a string.

    s += '^' + ('@' + c);

now must be written as:

    s += '^' + static_cast<char>('@' + c);

to avoid a half page of warning messages which finally get around to claiming the code is “reading 1 or more bytes from a region of size 0”.

I also completely redesigned the regression test to avoid torpedoes resulting from attempts to extend the GNU text utilities such as diff, grep, and sed to handle UTF-8 text.

In summary, ETSET 3.5 works just as 3.4 did, but now avoids the Microsoft-style destruction of capital by the C++/GCC crowd over the last nine years. ETSET 3.5 deletes the previously-supplied Win32 executable version of the program. While the program can probably be built from source code and run in that environment, I no longer support legacy proprietary platforms.