X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/71458b3b2492943349f7693a46792756d5013c69..3c5fba356eb42adf87e7d6e8728c55dd4fcd658f:/uip/comp.c?ds=sidebyside diff --git a/uip/comp.c b/uip/comp.c index a7300c34..13d73c1b 100644 --- a/uip/comp.c +++ b/uip/comp.c @@ -83,11 +83,7 @@ main (int argc, char **argv) struct format *fmt; struct stat st; - setlocale(LC_ALL, ""); - invo_name = r1bindex (argv[0], '/'); - - /* read user profile/context */ - context_read(); + if (nmh_init(argv[0], 1)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -375,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);