Make the 'svn ls --search' implementation actually case- and accent- insensitive. The option handling of '--search' already assumes it but the implementation did not follow up.
That's easily done by using the same generic UTF8-based normalization to the path segments as 'svn' applies to the patterns. To reduce code duplication, move the normalization and matching function to lib_subr. And because there isn't really a better place to put it, add it to utf8proc.
* subversion/include/private/svn_utf_private.h (svn_utf__fuzzy_glob_match): Declare new private API.
* subversion/libsvn_subr/utf8proc.c (svn_utf__fuzzy_glob_match): Implement the function, code mostly taken from list.c.
* subversion/libsvn_client/list.c (match_patterns): Forward to the new matching function. (get_dir_contents): Add SCRATCH_BUFFER as a pass-through argument. (list_internal): Provide the SCRATCH_BUFFER.
* subversion/libsvn_repos/list.c (matches_any, do_list, svn_repos_list): Mirror the changes from the client side above.
* subversion/libsvn_ra/ra_loader.h (svn_ra__vtable_t::list): Likewise. * subversion/libsvn_ra/ra_loader.c (svn_ra_list): Likewise. * subversion/libsvn_ra_local/ra_plugin.c (svn_ra_local__list): Likewise. * subversion/libsvn_ra_svn/client.c (ra_svn_list): And again. * subversion/libsvn_repos/list.c (matches_any, do_list, svn_repos_list): And some more of the same.