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
Received on 2017-09-01 15:31:22 CEST