if (width > WBUFSIZ)
width = WBUFSIZ;
fmt_norm = normalize;
- fmt_compile (nfs, &fmt);
+ fmt_compile (nfs, &fmt, 1);
dat[0] = 0;
dat[1] = 0;
for (addrp = 0; addrs[addrp]; addrp++)
status += process (addrs[addrp], width, normalize);
+ fmt_free (fmt, 1);
done (status);
return 1;
}
}
for (p = pq.pq_next; p; p = q) {
- FINDCOMP (cptr, "text");
- if (cptr)
+ cptr = fmt_findcomp ("text");
+ if (cptr) {
+ if (cptr->c_text)
+ free(cptr->c_text);
cptr->c_text = p->pq_text;
- FINDCOMP (cptr, "error");
- if (cptr)
+ p->pq_text = NULL;
+ }
+ cptr = fmt_findcomp ("error");
+ if (cptr) {
+ if (cptr->c_text)
+ free(cptr->c_text);
cptr->c_text = p->pq_error;
+ p->pq_error = NULL;
+ }
fmt_scan (fmt, buffer, sizeof buffer - 1, length, dat);
fputs (buffer, stdout);
- free (p->pq_text);
+ if (p->pq_text)
+ free (p->pq_text);
if (p->pq_error)
free (p->pq_error);
q = p->pq_next;
}
if (width > WBUFSIZ)
width = WBUFSIZ;
- fmt_compile (nfs, &fmt);
+ fmt_compile (nfs, &fmt, 1);
dat[0] = 0;
dat[1] = 0;
status += process (dates[datep], width);
context_save (); /* save the context file */
+ fmt_free (fmt, 1);
done (status);
return 1;
}
char buffer[WBUFSIZ + 1];
register struct comp *cptr;
- FINDCOMP (cptr, "text");
- if (cptr)
- cptr->c_text = date;
+ cptr = fmt_findcomp ("text");
+ if (cptr) {
+ if (cptr->c_text)
+ free(cptr->c_text);
+ cptr->c_text = getcpy(date);
+ }
fmt_scan (fmt, buffer, sizeof buffer - 1, length, dat);
fputs (buffer, stdout);
* Get new format string. Must be before chdir().
*/
nfs = new_fs (form, format, FORMAT);
- (void) fmt_compile(nfs, &fmt);
+ (void) fmt_compile(nfs, &fmt, 1);
fmt_dump(fmt);
+
+ fmt_free(fmt);
+
done(0);
return 1;
}