X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8f802697c8d9c4fc52e4d0ce4facf643358aac1a..7516f2bc331634fbd4e9a96baa9c50d058179259:/uip/fmttest.c diff --git a/uip/fmttest.c b/uip/fmttest.c index db16ae74..1076be48 100644 --- a/uip/fmttest.c +++ b/uip/fmttest.c @@ -141,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; @@ -155,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 == '-') { /* @@ -190,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) @@ -345,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; @@ -473,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); @@ -699,6 +699,7 @@ finished: } fmt_scan(fmt, buffer, outwidth, dat, cb); fputs(charstring_buffer (buffer), stdout); + charstring_clear(buffer); mlistfree(); } @@ -732,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(); } }