fnmatch improvements

Bruno Haible bruno@clisp.org
Thu Jul 27 10:15:54 GMT 2023


Hi,

Gnulib has, for the first time, an fnmatch() implementation that supports
characters outside the Unicode Basic Multilingual Plane (BMP), even on Cygwin
with its 16-bits wchar_t type. That is, in an UTF-8 locale, e.g.
  fnmatch ("x?y", "x\360\237\230\213y", 0)
now returns 0.

This implementation also implements GNU extensions, as documented in
https://www.gnu.org/software/libc/manual/html_node/Wildcard-Matching.html

Now, I see that in the Cygwin master branch the fnmatch implementation has
been improved, supposedly handling non-BMP characters and character classes
as well.

Therefore I would find it interesting to know whether the Cygwin 3.5.0 fnmatch()
now still gets overridden by the gnulib one and, if no, whether it passes the
gnulib test suite.

I can't easily install a Cygwin 3.5.0 snapshot. If one of you would like to
help, here's how to:
  1. Create an environment for working with a Cygwin 3.5.0 snapshot (from
     March 2023 or newer).
  2. wget https://haible.de/bruno/gnu/testdir-fnmatch.tar.gz
  3. tar xfz testdir-fnmatch.tar.gz
  4. cd testdir-fnmatch-posix
     ./configure 2>&1 | tee log1
     make
     make check
     grep fnmatch log1
     grep REPLACE_FNMATCH config.status
     cd ..
  5. cd testdir-fnmatch-gnu
     ./configure 2>&1 | tee log1
     make
     make check
     grep fnmatch log1
     grep REPLACE_FNMATCH config.status
     cd ..
and provide the build and grep results.

Thanks!

         Bruno





More information about the Cygwin mailing list