On 01.09.2017 06:36, Stefan Fuhrmann wrote: > > > On 29.08.2017 14:04, Branko Čibej wrote: >> On 29.08.2017 13:28, Stefan Sperling wrote: >>> On Tue, Aug 29, 2017 at 01:12:07PM +0200, Stefan Fuhrmann wrote: >>>> How would you implement the case-insensitive comparison >>>> on the server side consistent with the client-side locals? >>> As far as I can tell the utf8proc code which the client uses >>> for this is local-independent. >> >> "Locale," but yes. Utf8proc relies on the Unicode generic case-folding >> rules, which are indeed locale-independent. They won't always be 100% >> grammatically correct for a particular environment, but from my reading >> they'll be good enough for the purpose, which is to find stuff not write >> a linguistic thesis. A few strictly-speaking false-positive edge cases >> won't hurt. > > Then it should not be hard to extend the existing code to > do "fuzzy" comparisons using generic case- and accent folding.
I'd be very surprised if we don't have that kind of matching code somewhere already ... indeed: normalize_cstring() in libsvn_subr/utf8proc.c does exactly this kind of transformation using utf8proc, exposed as a (private) API in svn_utf__xfrm() which has a nodding acquaintance to the standard strxfrm(). -- Brane