struct node *first, *cur_node, *node, *last = NULL, *prev;
size_t folder_len;
int count, total = 0;
- char *command = NULL, *sequences_s = NULL;
+ char *sequences_s = NULL;
+ int argc = 0;
+ char *argv[MAXARGS];
+ char **seqp;
+ char buf[BUFSIZ];
if (cur == NULL || cur[0] == '\0') {
cur = "inbox";
}
fflush(stdout);
- /*
- ** TODO: Split enough of scan.c out so that we can
- ** call it here.
- */
- command = concat("scan +", node->n_name, " ",
- sequences_s, (void *)NULL);
- system(command);
- free(command);
+ argc = 0;
+ argv[argc++] = "scan";
+ snprintf(buf, sizeof buf, "+%s", node->n_name);
+ argv[argc++] = buf;
+ for (seqp=sequences; *seqp; seqp++) {
+ argv[argc++] = *seqp;
+ }
+ argv[argc] = (char *)NULL;
+ execprog(*argv, argv);
} else {
if (node->n_field == NULL) {
continue;