fnmatch improvements
Corinna Vinschen
corinna-cygwin@cygwin.com
Thu Jul 27 18:24:17 GMT 2023
Hi Bruno,
On Jul 27 12:15, Bruno Haible via Cygwin wrote:
> 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.
The major changes are using 32 bit unicode values internally and
implementing collating symbols and equivalence class expressions.
> 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'm looking into that. First thing, your testsuite uncovered a bug in
the latest fnmatch in the C locale. Comparing pointers instead of
comparing characters was never a good idea for pattern matching...
When I'm done I hope that our 3.5 fnmatch won't be overridden by the
gnulib version :}
> 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
No worries, thanks for the testcases, I think I have some result
tomorrow.
Corinna
More information about the Cygwin
mailing list