An implementation of the traditional Unix macro processor.
It is mostly SVR4 compatible although it has some extensions (for
example, handling more than 9 positional parameters to macros).
GNU m4 also has built-in functions for including files, running shell
commands, doing arithmetic, etc.
For more information see the project home pages:
https://www.gnu.org/software/m4/
https://sv.gnu.org/projects/m4/
The following packages have been upgraded in the Cygwin distribution:
- m4 1.4.20
For changes since the previous Cygwin release, see below or read
/usr/share/doc/m4/NEWS after installation; for complete details see:
/usr/share/doc/m4/ChangeLog
https://git.sv.gnu.org/gitweb/?p=m4.git;a=log;h=v1.4.20
2025-05-10 1.4.20
- Fix a bug in the `eval' builtin where it does not suppress warnings
about division by zero that occurs within a more complex expression on
the right hand side of || or && (present since short-circuiting was
introduced in 1.4.8b).
- The `syscmd' and `esyscmd' builtins no longer mishandle a command line
starting with `-' or `+' (present since "the beginning").
- Fix regression introduced in 1.4.19 where trace output (such as with
`debugmode(t)') could read invalid memory when tracing a series of
pushed macros that are popped during argument collection.
- Fix regression introduced in 1.4.19 where the `format' builtin
inadvertently took on locale-dependent parsing and output of floating
point numbers as a side-effect of introducing message translations.
While it would be nice for m4 to be fully locale-aware, such a
behavior change belongs in a major version release such as 1.6, and
not a minor release.
- Fix regression introduced in 1.4.11 where the experimental
`changeword' builtin could cause a crash if given a regex that does
not match all one-byte prefixes of valid longer matches. As a
reminder, `changeword' is not recommended for production use, and will
likely not be present in the next major version release.
- On non-Unix platforms where binary files differ from text, loading a
frozen file (which should be cross-platform compatible) now correctly
uses binary mode.
- Several documentation improvements to the manual.
- Update to comply with newer C standards, and inherit portability
improvements from gnulib.
--
*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***
The easiest way to unsubscribe is to visit
<https://cygwin.com/mailman/options/cygwin-announce>, and click 'Unsubscribe'.
If you need more information on unsubscribing, start reading here:
<https://sourceware.org/lists.html#unsubscribe>.