]> diplodocus.org Git - nmh/blobdiff - sbr/utils.c
Add failing test case for single-character header parsing.
[nmh] / sbr / utils.c
index cf920a39e457e9f4aa50b55f7c2ca3b83df6a236..7ebb418618965615a67c71f3c31c863c8651f3c9 100644 (file)
@@ -56,7 +56,7 @@ mh_xrealloc(void *ptr, size_t size)
         return mh_xmalloc(size);
 
     if (size == 0)
-        adios(NULL, "Tried to realloc 0bytes");
+        adios(NULL, "Tried to realloc 0 bytes");
 
     memory = realloc(ptr, size);
     if (!memory)
@@ -390,15 +390,15 @@ nmh_init(const char *argv0, int read_context) {
             isatty (fileno (stdout))  &&  isatty (fileno (stderr))) {
             if (nmh_version_changed (check_older_version)) {
                 printf ("==================================================="
-                        "====================\n");
+                        "=====================\n");
                 printf ("Welcome to nmh version %s\n\n", VERSION);
-                printf ("See the release notes in %s/NEWS .\n\n",
+                printf ("See the release notes in %s/NEWS\n\n",
                          mhdocdir);
                 print_intro (stdout, 1);
                 printf ("\nThis message will not be repeated until "
                         "nmh is next updated.\n");
                 printf ("==================================================="
-                        "====================\n\n");
+                        "=====================\n\n");
 
                 fputs ("Press enter to continue: ", stdout);
                 (void) read_line ();
@@ -410,7 +410,7 @@ nmh_init(const char *argv0, int read_context) {
     } else {
         int status = context_foil(NULL);
         if (status != OK) {
-            advise("", "failed to create minimal profile/conext");
+            advise("", "failed to create minimal profile/context");
         }
         return status;
     }
@@ -484,3 +484,25 @@ contains8bit(const char *start, const char *end)
 
     return 0;
 }
+
+
+/*
+ * See if input has any 8-bit bytes.
+ */
+int
+scan_input (int fd, int *eightbit) {
+    int state;
+    char buf[BUFSIZ];
+
+    *eightbit = 0;
+    lseek (fd, (off_t) 0, SEEK_SET);
+
+    while ((state = read (fd, buf, sizeof buf)) > 0) {
+        if (contains8bit (buf, buf + state)) {
+            *eightbit = 1;
+            return OK;
+        }
+    }
+
+    return state == NOTOK  ?  NOTOK  :  OK;
+}