blob: 9224ce4c70605526dca14bc2bbe26b4280e6b543 [file] [log] [blame]
Christian Heimesfe337bf2008-03-23 21:54:12 +00001/* Cross platform case insensitive string compare functions
Christian Heimes99170a52007-12-19 02:07:34 +00002 */
3
4#include "Python.h"
5
6int
7PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size)
8{
wmeehan97eaf2b2020-08-27 01:45:25 -04009 const unsigned char *p1, *p2;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000010 if (size == 0)
11 return 0;
wmeehan97eaf2b2020-08-27 01:45:25 -040012 p1 = (const unsigned char *)s1;
13 p2 = (const unsigned char *)s2;
14 for (; (--size > 0) && *p1 && *p2 && (tolower(*p1) == tolower(*p2));
15 p1++, p2++) {
16 ;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000017 }
wmeehan97eaf2b2020-08-27 01:45:25 -040018 return tolower(*p1) - tolower(*p2);
Christian Heimes99170a52007-12-19 02:07:34 +000019}
20
21int
22PyOS_mystricmp(const char *s1, const char *s2)
23{
wmeehan97eaf2b2020-08-27 01:45:25 -040024 const unsigned char *p1 = (const unsigned char *)s1;
25 const unsigned char *p2 = (const unsigned char *)s2;
26 for (; *p1 && *p2 && (tolower(*p1) == tolower(*p2)); p1++, p2++) {
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000027 ;
28 }
wmeehan97eaf2b2020-08-27 01:45:25 -040029 return (tolower(*p1) - tolower(*p2));
Christian Heimes99170a52007-12-19 02:07:34 +000030}