On 01.09.2017 15:31, Branko Čibej wrote:
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().

I've seen that begin called in the client but was not sure
whether that is generic logic or locale-dependent.

-- Stefan^2.

Reply via email to