X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fforw.c;h=b9c3c144ceac283f05c8146d7ca4f33ee5e16b7e;hp=b84632bd1a5c4347cb85191a0538e54e13c67e70;hb=0b40f7c1c35770622511eda71ec5353784ea1dc6;hpb=6e271608b7b9c23771523f88d23a4d3593010cf1 diff --git a/uip/forw.c b/uip/forw.c index b84632b..b9c3c14 100644 --- a/uip/forw.c +++ b/uip/forw.c @@ -73,6 +73,7 @@ main(int argc, char **argv) char *folder = NULL; char *form = NULL, buf[BUFSIZ], value[10]; char **argp, **arguments, *msgs[MAXARGS]; + char *nfs; #ifdef MHE int buildsw = 0; @@ -213,6 +214,9 @@ main(int argc, char **argv) done(1); seq_setprev(mp); /* set the previous sequence */ + if ((out = creat(drft, m_gmprot())) == NOTOK) + adios(drft, "unable to create"); + /* Open form (component) file. */ if (digest) { if (issue == 0) { @@ -230,18 +234,16 @@ main(int argc, char **argv) if (!form) form = digestcomps; in = build_form(form, digest, volume, issue); - } else - in = open_form(&form, forwcomps); - - if ((out = creat(drft, m_gmprot())) == NOTOK) - adios(drft, "unable to create"); - - /* - ** copy the components into the draft - */ - cpydata(in, out, form, drft); - close(in); + cpydata(in, out, form, drft); + close(in); + } else { + nfs = new_fs(form, forwcomps); + if (write(out, nfs, strlen(nfs)) != strlen(nfs)) { + adios(drft, "error writing"); + } + } close(out); + add_forw_hdr(drft); if (digest) { @@ -304,7 +306,7 @@ build_form(char *form, char *digest, int volume, int issue) char *cp = NULL; /* Get new format string */ - nfs = new_fs(form, NULL, NULL); + nfs = new_fs(form, NULL); fmtsize = strlen(nfs) + 256; /* Compile format string */