(root)/
Python-3.11.7/
Objects/
stringlib/
count.h
       1  /* stringlib: count implementation */
       2  
       3  #ifndef STRINGLIB_FASTSEARCH_H
       4  #error must include "stringlib/fastsearch.h" before including this module
       5  #endif
       6  
       7  Py_LOCAL_INLINE(Py_ssize_t)
       8  STRINGLIB(count)(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
       9                  const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,
      10                  Py_ssize_t maxcount)
      11  {
      12      Py_ssize_t count;
      13  
      14      if (str_len < 0)
      15          return 0; /* start > len(str) */
      16      if (sub_len == 0)
      17          return (str_len < maxcount) ? str_len + 1 : maxcount;
      18  
      19      count = FASTSEARCH(str, str_len, sub, sub_len, maxcount, FAST_COUNT);
      20  
      21      if (count < 0)
      22          return 0; /* no match */
      23  
      24      return count;
      25  }
      26  
      27