On Mon, Nov 23, 2015 at 2:11 AM, Branko Čibej <br...@apache.org> wrote:
> > +1 to apr_casecmpstr[n]() with a big fat warning in the docstring that > it works for ASCII only. > Well, it 'works' (does not segfault, does not case fold them) for high bit characters, but sorts them in a potentially meaningless way. The Current implementation has already drifted; the currently accepted flavor looks like; 2441/** 2442 * Known-fast version of strcasecmp(): ASCII case-folding, POSIX compliant 2443 * @param s1 The 1st string to compare 2444 * @param s2 The 2nd string to compare 2445 * @return integer greater than, equal to, or less than 0, depending on 2446 * if s1 is lexicographically greater than, equal to, or less 2447 * than s2 ignoring case. 2448 */ 2449AP_DECLARE(int) ap_casecmpstr(const char *s1, const char *s2); 2450 2451/** 2452 * Known-fast version of strncasecmp(): ASCII case-folding, POSIX compliant 2453 * @param s1 The 1st string to compare 2454 * @param s2 The 2nd string to compare 2455 * @param n Maximum number of characters in the strings to compare 2456 * @return integer greater than, equal to, or less than 0, depending on 2457 * if s1 is lexicographically greater than, equal to, or less 2458 * than s2 ignoring case. 2459 */ 2460AP_DECLARE(int) ap_casecmpstrn(const char *s1, const char *s2, apr_size_t n); and is implemented here; http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util.c?view=markup&pathrev=1715736#l3175