- gc->btrn = btr_new_node("grab", parent, NULL, NULL);
- if (!gc->task.pre_select) {
- gc->task.pre_select = gc_pre_select;
- gc->task.post_select = gc_post_select;
- sprintf(gc->task.status, "grab");
- register_task(&gc->task);
- }
+ gc->btrn = btr_new_node(&(struct btr_node_description)
+ EMBRACE(.name = name, .parent = parent));
+
+ gc->task = task_register(&(struct task_info) {
+ .name = name,
+ .pre_select = gc_pre_select,
+ .post_select = gc_post_select,
+ .context = gc,
+ }, s);