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 -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple