X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b58ec23ab118f9614c478cf3ee323e614e3c13bf..ec173fd2c:/uip/fmttest.c?ds=sidebyside diff --git a/uip/fmttest.c b/uip/fmttest.c index 39f4ecc4..1076be48 100644 --- a/uip/fmttest.c +++ b/uip/fmttest.c @@ -6,6 +6,14 @@ */ #include "h/mh.h" +#include "sbr/fmt_new.h" +#include "scansbr.h" +#include "sbr/m_name.h" +#include "sbr/m_getfld.h" +#include "sbr/getarguments.h" +#include "sbr/seq_setprev.h" +#include "sbr/seq_save.h" +#include "sbr/smatch.h" #include "sbr/snprintb.h" #include "sbr/getcpy.h" #include "sbr/m_convert.h" @@ -25,7 +33,6 @@ #include "h/fmt_scan.h" #include "h/fmt_compile.h" #include "h/utils.h" -#include "h/scansbr.h" #include "h/addrsbr.h" #include "h/done.h" #include "sbr/m_maildir.h" @@ -134,7 +141,6 @@ main (int argc, char **argv) struct msgs_array msgs = { 0, 0, NULL }, compargs = { 0, 0, NULL}; bool dump = false; int i; - int outputsize = 0; bool dupaddrs = true; bool trace = false; int files = 0; @@ -148,6 +154,8 @@ main (int argc, char **argv) arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; + bool outputsize_given = false; + int outputsize; while ((cp = *argp++)) { if (*cp == '-') { /* @@ -183,6 +191,7 @@ main (int argc, char **argv) continue; case OUTSIZESW: + outputsize_given = true; if (!(cp = *argp++) || *cp == '-') die("missing argument to %s", argp[-2]); if (strcmp(cp, "max") == 0) @@ -338,11 +347,8 @@ main (int argc, char **argv) buffer = charstring_create(BUFSIZ); - if (outputsize == 0) { - if (mode == MESSAGE) - outputsize = sc_width(); - else - outputsize = INT_MAX; + if (!outputsize_given) { + outputsize = mode == MESSAGE ? sc_width() : INT_MAX; } dat[0] = msgnum; @@ -466,6 +472,7 @@ process_addresses(struct format *fmt, struct msgs_array *addrs, fmt_scan(fmt, buffer, outwidth, dat, cb); fputs(charstring_buffer(buffer), stdout); + charstring_clear(buffer); mlistfree(); free(p->pq_text); @@ -692,6 +699,7 @@ finished: } fmt_scan(fmt, buffer, outwidth, dat, cb); fputs(charstring_buffer (buffer), stdout); + charstring_clear(buffer); mlistfree(); } @@ -725,6 +733,7 @@ process_raw(struct format *fmt, struct msgs_array *text, charstring_t buffer, fmt_scan(fmt, buffer, outwidth, dat, cb); fputs(charstring_buffer (buffer), stdout); + charstring_clear(buffer); mlistfree(); } }