]> diplodocus.org Git - nmh/blobdiff - sbr/utils.c
make scan_content() work correctly with content containing NULs
[nmh] / sbr / utils.c
index d8b060fb13ce5f7a87a949166fe01e6d566c73d6..4405f4c95a5c52d5cf406d52cc95535479b71781 100644 (file)
@@ -352,3 +352,37 @@ nmh_init(const char *argv0, int read_context) {
         return status;
     }
 }
+
+
+/* Returns copy of argument str with all characters converted to upper
+   case, and trimmed whitespace (see cpytrim()) . */
+char *
+upcase (const char *str) {
+    char *up = cpytrim (str);
+    char *cp;
+
+    for (cp = up; *cp; ++cp) { *cp = toupper ((unsigned char) *cp); }
+
+    return up;
+}
+
+
+/*
+ * Scan for any 8-bit characters.  Return 1 if they exist.
+ *
+ * Scan up until the given endpoint (but not the actual endpoint itself).
+ * If the endpoint is NULL, scan until a '\0' is reached.
+ */
+
+int
+contains8bit(const char *start, const char *end)
+{
+    if (! start)
+       return 0;
+
+    while (*start != '\0' && (!end || (start < end)))
+       if (! isascii((unsigned char) *start++))
+           return 1;
+
+    return 0;
+}