*/
#include "h/mh.h"
+#include "sbr/fmt_new.h"
+#include "sbr/concat.h"
#include "sbr/trimcpy.h"
#include "sbr/check_charset.h"
#include "sbr/getcpy.h"
extern int debugsw;
-int nolist = 0;
-
char *progsw = NULL;
/* flags for moreproc/header display */
show_all_messages(CT *cts, int concat, int textonly, int inlineonly)
{
CT ct, *ctp;
- struct format *hfmt, *mfmt;
/*
* If form is not specified, then get default form
if (!formsw)
formsw = mh_xstrdup(etcpath("mhl.headers"));
- /*
- * Compile the content marker and header format lines
- */
- mfmt = compile_marker(markerform);
- hfmt = compile_header(headerform);
-
/*
* If form is "mhl.null", suppress display of header.
*/
/* if top-level type is ok, then display message */
if (type_ok (ct, 1)) {
- if (headersw) output_header(ct, hfmt);
+ /*
+ * Compile the content marker format line
+ */
+ struct format *mfmt = compile_marker(markerform);
+
+ if (headersw) {
+ /*
+ * Compile the header format line
+ */
+ struct format *hfmt = compile_header(headerform);
+ output_header(ct, hfmt);
+ fmt_free(hfmt, 0);
+ }
show_single_message (ct, formsw, concat, textonly, inlineonly,
mfmt);
+ fmt_free(mfmt, 0);
}
}
+ /* Reset the format component hashtable, which free's any components which
+ it references. */
+ fmt_free(NULL, 1);
free_markercomps();
- fmt_free(hfmt, 1);
- fmt_free(mfmt, 1);
}
}
vec = argsplit(buffer, &file, &vecp);
- vec[vecp++] = NULL;
fflush (stdout);
case 'l':
/* display listing prior to displaying content */
- *xlist = !nolist;
+ *xlist = 1;
break;
case 's':
fmtstring = new_fs(form, NULL, DEFAULT_HEADER);
- (void) fmt_compile(fmtstring, &fmt, 1);
+ (void) fmt_compile(fmtstring, &fmt, 0);
free_fs();
while ((comp = fmt_nextcomp(comp, &bucket)) != NULL) {
fmtstring = new_fs(form, NULL, DEFAULT_MARKER);
- (void) fmt_compile(fmtstring, &fmt, 1);
+ (void) fmt_compile(fmtstring, &fmt, 0);
free_fs();
/*