From c636984e3a39ec4d42eae845b17a2cdb327df3fe Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 21 Feb 2026 21:53:57 -0600 Subject: [PATCH] deferred --- esphome/core/string_ref.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/esphome/core/string_ref.h b/esphome/core/string_ref.h index 89ea9dd797..6047202753 100644 --- a/esphome/core/string_ref.h +++ b/esphome/core/string_ref.h @@ -81,18 +81,19 @@ class StringRef { operator std::string() const { return str(); } - /// Compare with a null-terminated C string (compatible with std::string::compare) - int compare(const char *s) const { - size_t s_len = std::strlen(s); - int result = std::memcmp(base_, s, std::min(len_, s_len)); + /// Compare (compatible with std::string::compare) + int compare(const StringRef &other) const { + int result = std::memcmp(base_, other.base_, std::min(len_, other.len_)); if (result != 0) return result; - if (len_ < s_len) + if (len_ < other.len_) return -1; - if (len_ > s_len) + if (len_ > other.len_) return 1; return 0; } + int compare(const char *s) const { return compare(StringRef(s)); } + int compare(const std::string &s) const { return compare(StringRef(s)); } /// Find first occurrence of substring, returns std::string::npos if not found. /// Note: Requires the underlying string to be null-terminated.