Index: obj_term.c =================================================================== --- obj_term.c (revision 10891) +++ obj_term.c (revision 10892) @@ -36,7 +36,6 @@ #include "obj_term.h" #include "obj_subc_parent.h" #include "pcb-printf.h" -#include "rats.h" #include "undo.h" static const char core_term_cookie[] = "core-term"; @@ -260,25 +259,23 @@ #define CHECK_TERM_LY(ob) \ do { \ if (PCB_NSTRCMP(term_name, ob->term) == 0 && (!same || !PCB_FLAG_TEST(PCB_FLAG_DRC, ob))) { \ - conn->ptr1 = subc; \ - conn->obj = (pcb_any_obj_t *)ob; \ - conn->group = layer->grp; \ - pcb_obj_center((pcb_any_obj_t *)ob, &conn->X, &conn->Y); \ - return pcb_true; \ + if (parent_out != NULL) *parent_out = subc; \ + if (gid_out != NULL) *gid_out = layer->grp; \ + return (pcb_any_obj_t *)ob; \ } \ } while(0) -pcb_bool pcb_term_find_name(pcb_data_t *data, const char *subc_name, const char *term_name, pcb_connection_t *conn, pcb_bool same) +pcb_any_obj_t *pcb_term_find_name(pcb_data_t *data, const char *subc_name, const char *term_name, pcb_bool same, pcb_subc_t **parent_out, pcb_layergrp_id_t *gid_out) { pcb_subc_t *subc; if ((subc = pcb_subc_by_name(PCB->Data, subc_name)) == NULL) - return pcb_false; + return NULL; PCB_LINE_ALL_LOOP(data) { CHECK_TERM_LY(line); } PCB_ENDALL_LOOP; - return pcb_false; + return NULL; }