Sorting ASCII tokens still seems valuable for various sorts of optimizations, and it really doesn't carry a significant cpu cost to do so...
I'd rather we kept the <0 ! >0 behavior. On Mon, Nov 23, 2015 at 9:44 AM, Jim Jagielski <j...@jagunet.com> wrote: > Should we then adjust docs and usage to remove the "greater/less than" > criteria and just say equal strings return 0 and non 0 means that > the strings don't compare/are different? > > > On Nov 23, 2015, at 10:19 AM, William A Rowe Jr <wr...@rowe-clan.net> > wrote: > > > > 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 > > */ > > > > 2449 > > AP_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 > > */ > > > > 2460 > > AP_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 > > > > > > > >