X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=filter.c;h=93e4161802debea6af042bad8785556a5362046b;hp=bf428b36dbc7668ccd2ac139117c7eb8d7d73ec0;hb=eecc102ad0abeb0335fe994bb72031a15b9090d7;hpb=5dca082c9d8261794d9cc63ed241aa3afa5bb50a diff --git a/filter.c b/filter.c index bf428b36..93e41618 100644 --- a/filter.c +++ b/filter.c @@ -116,7 +116,8 @@ int main(int argc, char *argv[]) ret = parse_config(argc, argv); if (ret < 0) goto out; - sit->btrn = btr_new_node("stdin", NULL, NULL, NULL); + sit->btrn = btr_new_node(&(struct btr_node_description) + EMBRACE(.name = "stdin")); stdin_set_defaults(sit); register_task(&sit->task); @@ -135,14 +136,17 @@ int main(int argc, char *argv[]) f = filters + fn->filter_num; sprintf(fn->task.status, "%s", f->name); PARA_DEBUG_LOG("filter #%d: %s\n", i, f->name); - fn->btrn = btr_new_node(f->name, parent, f->execute, fn); + fn->btrn = btr_new_node(&(struct btr_node_description) + EMBRACE(.name = f->name, .parent = parent, + .handler = f->execute, .context = fn)); fn->task.pre_select = f->pre_select; fn->task.post_select = f->post_select; f->open(fn); register_task(&fn->task); parent = fn->btrn; } - sot->btrn = btr_new_node("stdout", parent, NULL, NULL); + sot->btrn = btr_new_node(&(struct btr_node_description) + EMBRACE(.name = "stdout", .parent = parent)); stdout_set_defaults(sot); register_task(&sot->task); @@ -155,7 +159,8 @@ out_cleanup: struct filter_node *fn = fns[i]; f = filters + fn->filter_num; - f->close(fn); + if (f->close) + f->close(fn); btr_free_node(fn->btrn); free(fn->conf); free(fn);