]> diplodocus.org Git - nmh/blobdiff - uip/mhoutsbr.c
Ignore the sign mismatch warning when sbr/dtimep.c is built with
[nmh] / uip / mhoutsbr.c
index aac061dd2a4f218ef1851d86cb5710cb420a7b1a..db64c4b87d1e2af79e4e448d4ed3a5bf86ea6b6a 100644 (file)
@@ -161,7 +161,14 @@ output_content (CT ct, FILE *out)
     default:
        switch (ct->c_encoding) {
        case CE_7BIT:
-           putc ('\n', out);
+           /* Special case:  if this is a non-MIME message with no
+              body, don't emit the newline that would appear between
+              the headers and body.  In that case, the call to
+              write8Bit() shouldn't be needed, but is harmless. */
+           if (ct->c_ctinfo.ci_attrs[0] != NULL  ||
+               ct->c_begin != ct->c_end) {
+               putc ('\n', out);
+           }
            result = write8Bit (ct, out);
            break;
 
@@ -291,6 +298,7 @@ static int
 write8Bit (CT ct, FILE *out)
 {
     int fd;
+    size_t inbytes;
     char c, *file, buffer[BUFSIZ];
     CE ce = ct->c_cefile;
 
@@ -299,9 +307,9 @@ write8Bit (CT ct, FILE *out)
        return NOTOK;
 
     c = '\n';
-    while (fgets (buffer, sizeof(buffer) - 1, ce->ce_fp)) {
-       c = buffer[strlen (buffer) - 1];
-       fputs (buffer, out);
+    while ((inbytes = fread (buffer, 1, sizeof buffer, ce->ce_fp)) > 0) {
+        c = buffer[inbytes - 1];
+        fwrite (buffer, 1, inbytes, out);
     }
     if (c != '\n')
        putc ('\n', out);