- GREP_FIRST(output, croot, !strcmp(child->name, assignment->output));
- break;
- } else if (parsed_num != -1 && name_is_digits(assignment->name) && ws_name_to_number(assignment->name) == parsed_num) {
+ Output *assigned_by_name = get_output_by_name(assignment->output, true);
+ if (assigned_by_name) {
+ /* When the name matches exactly, skip numbered assignments. */
+ return assigned_by_name->con;
+ }
+ } else if (!output && /* Only keep the first numbered assignment. */
+ parsed_num != -1 &&
+ name_is_digits(assignment->name) &&
+ ws_name_to_number(assignment->name) == parsed_num) {