mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 23:21:54 +00:00 
			
		
		
		
	reduce
This commit is contained in:
		| @@ -115,24 +115,6 @@ bool str_startswith_case_insensitive(const std::string &str, const std::string & | |||||||
|   return str_ncmp_ci(str.c_str(), prefix.c_str(), prefix.length()); |   return str_ncmp_ci(str.c_str(), prefix.c_str(), prefix.length()); | ||||||
| } | } | ||||||
|  |  | ||||||
| // Find a substring case-insensitively |  | ||||||
| size_t str_find_case_insensitive(const std::string &haystack, const std::string &needle, size_t pos) { |  | ||||||
|   if (needle.empty() || pos >= haystack.length()) { |  | ||||||
|     return std::string::npos; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   const size_t needle_len = needle.length(); |  | ||||||
|   const size_t max_pos = haystack.length() - needle_len; |  | ||||||
|  |  | ||||||
|   for (size_t i = pos; i <= max_pos; i++) { |  | ||||||
|     if (str_ncmp_ci(haystack.c_str() + i, needle.c_str(), needle_len)) { |  | ||||||
|       return i; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return std::string::npos; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Extract a parameter value from a header line | // Extract a parameter value from a header line | ||||||
| // Handles both quoted and unquoted values | // Handles both quoted and unquoted values | ||||||
| std::string extract_header_param(const std::string &header, const std::string ¶m) { | std::string extract_header_param(const std::string &header, const std::string ¶m) { | ||||||
| @@ -140,10 +122,11 @@ std::string extract_header_param(const std::string &header, const std::string &p | |||||||
|  |  | ||||||
|   while (search_pos < header.length()) { |   while (search_pos < header.length()) { | ||||||
|     // Look for param name |     // Look for param name | ||||||
|     size_t pos = str_find_case_insensitive(header, param, search_pos); |     const char *found = stristr(header.c_str() + search_pos, param.c_str()); | ||||||
|     if (pos == std::string::npos) { |     if (!found) { | ||||||
|       return ""; |       return ""; | ||||||
|     } |     } | ||||||
|  |     size_t pos = found - header.c_str(); | ||||||
|  |  | ||||||
|     // Check if this is a word boundary (not part of another parameter) |     // Check if this is a word boundary (not part of another parameter) | ||||||
|     if (pos > 0 && header[pos - 1] != ' ' && header[pos - 1] != ';' && header[pos - 1] != '\t') { |     if (pos > 0 && header[pos - 1] != ' ' && header[pos - 1] != ';' && header[pos - 1] != '\t') { | ||||||
|   | |||||||
| @@ -68,9 +68,6 @@ class MultipartReader { | |||||||
| // Case-insensitive string prefix check | // Case-insensitive string prefix check | ||||||
| bool str_startswith_case_insensitive(const std::string &str, const std::string &prefix); | bool str_startswith_case_insensitive(const std::string &str, const std::string &prefix); | ||||||
|  |  | ||||||
| // Find a substring case-insensitively |  | ||||||
| size_t str_find_case_insensitive(const std::string &haystack, const std::string &needle, size_t pos = 0); |  | ||||||
|  |  | ||||||
| // Extract a parameter value from a header line | // Extract a parameter value from a header line | ||||||
| // Handles both quoted and unquoted values | // Handles both quoted and unquoted values | ||||||
| std::string extract_header_param(const std::string &header, const std::string ¶m); | std::string extract_header_param(const std::string &header, const std::string ¶m); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user