static char *ovtxt;
-static unsigned char *onelp;
+static char *onelp;
static char *parptr;
if (!cp[1])
*cp = 0;
- fmt_scan (c1->c_fmt, buffer, sizeof buffer - 1, sizeof buffer - 1, dat);
+ fmt_scan (c1->c_fmt, buffer, sizeof buffer - 1, sizeof buffer - 1,
+ dat, NULL);
/* Don't need to append a newline, dctime() already did */
c2->c_text = getcpy (buffer);
p->pq_error = NULL;
}
- fmt_scan (c1->c_fmt, buffer, sizeof buffer - 1, sizeof buffer - 1, dat);
+ fmt_scan (c1->c_fmt, buffer, sizeof buffer - 1, sizeof buffer - 1,
+ dat, NULL);
if (*buffer) {
if (c2->c_text)
c2->c_text = add (",\n", c2->c_text);
putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
{
int count, cchdr;
- unsigned char *cp;
+ char *cp;
cchdr = 0;
lm = 0;
if (!(c1->c_flags & HDROUTPUT) && !(c1->c_flags & NOCOMPONENT)) {
if (c1->c_flags & UPPERCASE) /* uppercase component also */
for (cp = (c1->c_text ? c1->c_text : c1->c_name); *cp; cp++)
- if (islower (*cp))
- *cp = toupper (*cp);
+ if (islower ((unsigned char) *cp))
+ *cp = toupper ((unsigned char) *cp);
putstr (c1->c_text ? c1->c_text : c1->c_name, c1->c_flags);
if (flag != BODYCOMP) {
putstr (": ", c1->c_flags);
&& !(c2->c_flags & NOCOMPONENT)) {
if (c1->c_flags & UPPERCASE)
for (cp = c2->c_name; *cp; cp++)
- if (islower (*cp))
- *cp = toupper (*cp);
+ if (islower ((unsigned char) *cp))
+ *cp = toupper ((unsigned char) *cp);
putstr (c2->c_name, c1->c_flags);
putstr (": ", c1->c_flags);
if (!(c1->c_flags & SPLIT))
}
if (c1->c_flags & UPPERCASE)
for (cp = c2->c_text; *cp; cp++)
- if (islower (*cp))
- *cp = toupper (*cp);
+ if (islower ((unsigned char) *cp))
+ *cp = toupper ((unsigned char) *cp);
count = 0;
if (cchdr) {
term = 0;
if (flags & COMPRESS) {
for (spc = 1, cp = ret; *onelp; onelp++)
- if (isspace (*onelp)) {
+ if (isspace ((unsigned char) *onelp)) {
if (*onelp == '\n' && (!onelp[1] || (flags & ADDRFMT))) {
term = '\n';
*onelp++ = 0;
*/
switch (filterpid = fork()) {
- char **args;
+ char **args, *program;
struct arglist *a;
- int i, dat[5], s;
+ int i, dat[5], s, argp;
case 0:
/*
- * Allocate an argument array for us
+ * Configure an argument array for us
*/
- args = (char **) mh_xmalloc((filter_nargs + 2) * sizeof(char *));
- args[0] = formatproc;
- args[filter_nargs + 1] = NULL;
+ args = argsplit(formatproc, &program, &argp);
+ args[argp + filter_nargs] = NULL;
dat[0] = 0;
dat[1] = 0;
dat[2] = 0;
* Pull out each argument and scan them.
*/
- for (a = arglist_head, i = 1; a != NULL; a = a->a_next, i++) {
+ for (a = arglist_head, i = argp; a != NULL; a = a->a_next, i++) {
args[i] = mh_xmalloc(BUFSIZ);
- fmt_scan(a->a_fmt, args[i], BUFSIZ - 1, BUFSIZ, dat);
+ fmt_scan(a->a_fmt, args[i], BUFSIZ - 1, BUFSIZ, dat, NULL);
/*
* fmt_scan likes to put a trailing newline at the end of the
* format string. If we have one, get rid of it.