X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b56c88e2847c582f9b18ae5bbda44f033cd49c42..f4cdcfd0c1167900db546c1d5cfd2dd691436e59:/uip/comp.c diff --git a/uip/comp.c b/uip/comp.c index 02feefaa..a018d743 100644 --- a/uip/comp.c +++ b/uip/comp.c @@ -31,7 +31,7 @@ X("cc address", 0, CCSW) \ X("from address", 0, FROMSW) \ X("fcc mailbox", 0, FCCSW) \ - X("width colums", 0, WIDTHSW) \ + X("width columns", 0, WIDTHSW) \ X("subject text", 0, SUBJECTSW) \ #define X(sw, minchars, id) id, @@ -192,8 +192,7 @@ main (int argc, char **argv) if (*cp == '@') cp = dp = path(cp + 1, TSUBCWF); fcc = addlist(fcc, cp); - if (dp) - free(dp); + mh_xfree(dp); continue; case WIDTHSW: @@ -223,7 +222,7 @@ main (int argc, char **argv) } } - cwd = getcpy (pwd ()); + cwd = mh_xstrdup(pwd ()); if (!context_find ("path")) free (path ("./", TFOLDER)); @@ -271,7 +270,7 @@ main (int argc, char **argv) if (mp->numsel > 1) adios (NULL, "only one message at a time!"); - if ((in = open (form = getcpy (m_name (mp->lowsel)), O_RDONLY)) == NOTOK) + if ((in = open (form = mh_xstrdup(m_name (mp->lowsel)), O_RDONLY)) == NOTOK) adios (form, "unable to open message"); } else { struct comp *cptr; @@ -337,7 +336,8 @@ try_it_again: adios (drft, "unable to stat"); printf ("Draft \"%s\" exists (%ld bytes).", drft, (long) st.st_size); for (i = LISTDSW; i != YESW;) { - if (!(argp = getans ("\nDisposition? ", isdf ? aqrunl : aqrul))) + if (!(argp = read_switch_multiword ("\nDisposition? ", + isdf ? aqrunl : aqrul))) done (1); switch (i = smatch (*argp, isdf ? aqrunl : aqrul)) { case NOSW: @@ -371,18 +371,21 @@ try_it_again: if ((out = creat (drft, m_gmprot ())) == NOTOK) adios (drft, "unable to create"); if (cp) { - char *scanl; + charstring_t scanl; i = format_len + 1024; - scanl = mh_xmalloc((size_t) i + 2); + scanl = charstring_create (i + 2); dat[0] = 0; dat[1] = 0; dat[2] = 0; dat[3] = outputlinelen; dat[4] = 0; - fmt_scan(fmt, scanl, i + 1, i, dat, NULL); - write(out, scanl, strlen(scanl)); - free(scanl); + fmt_scan(fmt, scanl, i, dat, NULL); + if (write(out, charstring_buffer (scanl), + charstring_bytes (scanl)) < 0) { + advise (drft, "write"); + } + charstring_free(scanl); } else { cpydata (in, out, form, drft); close (in);