[tor-commits] [tor/master] string: add BOM helper

nickm at torproject.org nickm at torproject.org
Tue Nov 6 20:34:14 UTC 2018


commit 3704c4a01219cca7273fa5fa0bc6751d98ad05ac
Author: cypherpunks <cypherpunks at torproject.org>
Date:   Wed Aug 29 13:32:52 2018 +0000

    string: add BOM helper
---
 src/lib/string/util_string.c | 13 +++++++++++++
 src/lib/string/util_string.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/src/lib/string/util_string.c b/src/lib/string/util_string.c
index b2b85d151..e76e73046 100644
--- a/src/lib/string/util_string.c
+++ b/src/lib/string/util_string.c
@@ -541,3 +541,16 @@ string_is_utf8(const char *str, size_t len)
   }
   return true;
 }
+
+/** As string_is_utf8(), but returns false if the string begins with a UTF-8
+ * byte order mark (BOM).
+ */
+int
+string_is_utf8_no_bom(const char *str, size_t len)
+{
+  if (len >= 3 && (!strcmpstart(str, "\uFEFF") ||
+                   !strcmpstart(str, "\uFFFE"))) {
+    return false;
+  }
+  return string_is_utf8(str, len);
+}
diff --git a/src/lib/string/util_string.h b/src/lib/string/util_string.h
index 746ece0d3..99467a27c 100644
--- a/src/lib/string/util_string.h
+++ b/src/lib/string/util_string.h
@@ -53,5 +53,6 @@ const char *find_str_at_start_of_line(const char *haystack,
 int string_is_C_identifier(const char *string);
 
 int string_is_utf8(const char *str, size_t len);
+int string_is_utf8_no_bom(const char *str, size_t len);
 
 #endif /* !defined(TOR_UTIL_STRING_H) */





More information about the tor-commits mailing list