Hi, I got following failures when running Debug build with VC 2010: FAIL: log_tests.py 40: test 'svn log -g --search' FAIL: log_tests.py 39: 'svn log --search'
They fail because of assertion in VC runtime: [[[ W: f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c(68) : Assertion failed: (unsigned)(c + 1) <= 256 ]]] This happens because apr_fnmatch does not handle UTF8 character and pass UTF lead char to tolower() call. There is already XXX comment in apr\strings\apr_fnmatch.c:121 [[ /* Look at only well-formed range patterns; * "x-]" is not allowed unless escaped ("x-\]") * XXX: Fix for locale/MBCS character width */ if (((*pattern)[1] == '-') && ((*pattern)[2] != ']')) { startch = *pattern; *pattern += (escape && ((*pattern)[2] == '\\')) ? 3 : 2; /* NOT a properly balanced [expr] pattern, EOS terminated * or ranges containing a slash in FNM_PATHNAME mode pattern * fall out to to the rewind and test '[' literal code path */ if (!**pattern || (slash && (**pattern == '/'))) break; /* XXX: handle locale/MBCS comparison, advance by MBCS char width */ if ((**string >= *startch) && (**string <= **pattern)) result = 0; else if (nocase && (isupper(**string) || isupper(*startch) || isupper(**pattern)) && (tolower(**string) >= tolower(*startch)) && (tolower(**string) <= tolower(**pattern))) result = 0; ++*pattern; continue; } /* XXX: handle locale/MBCS comparison, advance by MBCS char width */ if ((**string == **pattern)) result = 0; else if (nocase && (isupper(**string) || isupper(**pattern)) && (tolower(**string) == tolower(**pattern))) result = 0; ]] Easy solution could be use apr_fnmatch without APR_FNM_CASE_BLIND and make svn --search case-sensitive. Alternative solution is convert search pattern and search string to lower case before passing to apr_fnmatch. And third option is to fix apr_fnmatch(). -- Ivan Zhakov CTO | VisualSVN | http://www.visualsvn.com
fails.log
Description: Binary data