(root)/
Python-3.12.0/
Python/
pystrcmp.c
       1  /* Cross platform case insensitive string compare functions
       2   */
       3  
       4  #include "Python.h"
       5  
       6  int
       7  PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size)
       8  {
       9      const unsigned char *p1, *p2;
      10      if (size == 0)
      11          return 0;
      12      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          ;
      17      }
      18      return tolower(*p1) - tolower(*p2);
      19  }
      20  
      21  int
      22  PyOS_mystricmp(const char *s1, const char *s2)
      23  {
      24      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++) {
      27          ;
      28      }
      29      return (tolower(*p1) - tolower(*p2));
      30  }