#include <h/mh.h>
#include <fcntl.h>
-#include <h/signals.h>
#include <h/md5.h>
#include <h/mts.h>
#include <h/tws.h>
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_first_pm != NULL ||
+ if (ct->c_ctinfo.ci_first_pm != NULL || ct->c_begin == 0 ||
ct->c_begin != ct->c_end) {
putc ('\n', out);
}
c = '\n';
while ((inbytes = fread (buffer, 1, sizeof buffer, ce->ce_fp)) > 0) {
c = buffer[inbytes - 1];
- fwrite (buffer, 1, inbytes, out);
+ if (fwrite (buffer, 1, inbytes, out) < inbytes) {
+ advise ("write8Bit", "fwrite");
+ }
}
if (c != '\n')
putc ('\n', out);
putc ('\n', out);
(*ct->c_ceclosefnx) (ct);
+ free (bufp);
return OK;
}
if ((fd = (*ct->c_ceopenfnx) (ct, &file)) == NOTOK)
return NOTOK;
- result = writeBase64aux (ce->ce_fp, out, (ct->c_type == CT_TEXT));
+ result = writeBase64aux (ce->ce_fp, out,
+ ct->c_type == CT_TEXT && ct->c_ctparams
+ ? ((struct text *) ct->c_ctparams)->lf_line_endings == 0
+ : 0);
(*ct->c_ceclosefnx) (ct);
return result;
}