mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
	
	
		
			35 lines
		
	
	
	
		
			644 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
	
		
			644 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/* stringlib: count implementation */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef STRINGLIB_COUNT_H
							 | 
						||
| 
								 | 
							
								#define STRINGLIB_COUNT_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef STRINGLIB_FASTSEARCH_H
							 | 
						||
| 
								 | 
							
								#error must include "stringlib/fastsearch.h" before including this module
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Py_LOCAL(Py_ssize_t)
							 | 
						||
| 
								 | 
							
								stringlib_count(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
							 | 
						||
| 
								 | 
							
								                const STRINGLIB_CHAR* sub, Py_ssize_t sub_len)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    Py_ssize_t count;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (sub_len == 0)
							 | 
						||
| 
								 | 
							
								        return str_len + 1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    count = fastsearch(str, str_len, sub, sub_len, FAST_COUNT);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (count < 0)
							 | 
						||
| 
								 | 
							
								        count = 0; /* no match */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return count;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								Local variables:
							 | 
						||
| 
								 | 
							
								c-basic-offset: 4
							 | 
						||
| 
								 | 
							
								indent-tabs-mode: nil
							 | 
						||
| 
								 | 
							
								End:
							 | 
						||
| 
								 | 
							
								*/
							 |