• MakeNL 3.4.6 Release

    From Andrew Leary@1:320/219 to All on Thu Dec 1 22:20:26 2016
    Hello everybody!

    MakeNL 3.4.6 has been released and hatched into the COORDUTL fileecho. Thanks to Torsten Bamberg, Michiel van der Vlist, Wilfred van Velzen, Kees van Eeten, and Janis Kracht for assisting me with testing of this release.

    The main change for this release is the addition of a new "RemoveBOM" option. When enabled with RemoveBOM 1 in the control file, any UTF-8 Byte Order Marks will be stripped out during processing and not passed on to the output nodelist/segment.

    Filenames are as follows:

    MN346D16.ZIP MakeNL v3.4.6 DOS 16-bit version
    MN346D32.ZIP MakeNL v3.4.6 DOS 32-bit version (requires DOS4GW)
    MN346O16.ZIP MakeNL v3.4.6 OS/2 16-bit version (OS/2 v1.x)
    MN346O32.ZIP MakeNL v3.4.6 OS/2 32-bit version (OS/2 v2.x or later) MN346W32.ZIP MakeNL v3.4.6 Windows 32-bit version
    MN346LNX.ZIP MakeNL v3.4.6 Linux 32-bit version (statically linked) MN346SRC.ZIP MakeNL v3.4.6 Source Code

    All of the above are available for FREQ from 1:320/119 and 1:320/219.

    The files are also available for download from the project's SourceForge page at https://sourceforge.net/projects/makenl/

    Regards,

    Andrew

    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Phoenix BBS * phoenix.bnbbbs.net (1:320/219)
  • From Wilfred van Velzen@2:280/464 to Andrew Leary on Fri Dec 2 13:11:10 2016
    Hi Andrew,

    On 2016-12-01 22:20:27, Andrew Leary wrote to All:
    about: "MakeNL 3.4.6 Release":

    MakeNL 3.4.6 has been released and hatched into the COORDUTL fileecho.

    I noticed the following in the output.c file:

    + if (RemoveBOM)
    + {
    + templine = linebegin;
    + templine = strstr(linebegin, "\xef\xbb\xbf");
    + if (templine != NULL) /* BOM found on line */
    + {
    + templn2 = templine + 3; /* Move rest of line over BOM */
    + strcpy(templine, templn2);
    + }
    + }

    Your using strcpy to copy overlapping strings. The behaviour of strcpy when source and destination overlap is undefined for all definitions of strcpy I know. So it might work, or it might not, for all permutations of compilers, os's and compiler options, that makenl is compiled on.

    I suggest:

    memmove(templine, templn2, strlen(templn2) + 1);


    The same is true for the fts5.c file, with about the same code...


    Bye, Wilfred.


    --- FMail-W32 1.73.8.50-B20161201
    * Origin: Native IPv6 connectable node (2:280/464)
  • From Andrew Leary@1:320/219 to Wilfred van Velzen on Fri Dec 2 10:24:22 2016
    Hello Wilfred!

    02 Dec 16 13:11, you wrote to me:

    Your using strcpy to copy overlapping strings. The behaviour of strcpy when source and destination overlap is undefined for all definitions
    of strcpy I know. So it might work, or it might not, for all
    permutations of compilers, os's and compiler options, that makenl is compiled on.

    I suggest:

    memmove(templine, templn2, strlen(templn2) + 1);

    The same is true for the fts5.c file, with about the same code...

    Good point. I will make that change today. The released files do work, as the compilers used (OpenWatcom 1.9 and gcc 5.3.0) apparently do the copy left to right, so the source isn't overwritten until after it has been read and copied to the destination. For portability purposes, it should be fixed.

    Thanks for the report.

    Andrew

    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Phoenix BBS * phoenix.bnbbbs.net (1:320/219)