e062be1bc1
Version 1.4.8 - 20 November 2006, by Eric Blake (CVS version 1.4.7a) * The `divert' macro and `-H'/`--hashsize' command line option no longer cause a core dump when handed extra large values. Also, `divert' now uses memory proportional to the number of diversions in use, rather than to the maximum diversion number encountered, so that large diversion numbers are less likely to exhaust system memory; and is no longer limited by the maximum number of file descriptors. * The `--help' and `--version' command line options now consistently override all earlier options. For example, `m4 --debugfile=trace --help' now no longer accidentally creates an empty file `trace'. * The `-L'/`--nesting-limit' command line option can now be set to 0 to remove the default limit of 1024. However, it is still possible that heavily nested input can cause abrupt program termination due to stack overflow. * Problems encountered when writing to standard error, such as with the `errprint' macro, now always cause a non-zero exit status. * Warnings and errors issued during macro expansion are now consistently reported at the line where the macro name was detected, rather than where the close parenthesis resides. Text wrapped by `m4wrap' now remembers the location that was in effect when m4wrap was invoked, rather than changing to line 0 and the empty string for a file. The macros `__line__' and `__file__' now work correctly even as the last token in an included file. * The `builtin' and `indir' macros now transparently handle builtin tokens generated by `defn'. * When diversions created by the `divert' macro collect enough text that M4 must use temporary files, the environment variable $TMPDIR is now consulted, and a better effort is made to clean up those files in the event of a fatal signal. * The `mkstemp' builtin is added with the same GNU semantics as `maketemp', based on the recommendation of POSIX to deprecate the POSIX semantics of `maketemp' as inherently insecure. In GNU mode (no -G supplied on the command line), `maketemp' silently retains the secure GNU semantics, but a future release of M4 will change this to emit a warning. In traditional mode (m4 -G), `maketemp' now uses the POSIX-mandated insecure semantics, and issues a warning that you should convert your script to use `mkstemp' instead. Additionally, `mkstemp' and `maketemp' are now well-defined even if the template argument does not end in six `X' characters. * The manual has been improved, including a new section on a composite macro `foreach'. * The `changecom' and `changequote' macros now treat an empty second argument the same as if it were missing, rather than using the empty string and making it impossible to end a comment or quote. * The `translit' macro now operates in linear instead of quadratic time, and is now eight-bit clean. * The `-D', `-U', `-s', and `-t' command line options now take effect after any files encountered earlier on the command line, rather than up front, as is done in traditional implementations and required by POSIX. |
||
---|---|---|
.. | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |