Index: trunk/src/drc.h =================================================================== --- trunk/src/drc.h (revision 21162) +++ trunk/src/drc.h (revision 21163) @@ -75,4 +75,7 @@ int pcb_drc_all(pcb_drc_list_t *lst); +/* Slow, linear search for an UID in a list; returns NULL if not found */ +pcb_drc_violation_t *pcb_drc_by_uid(const pcb_drc_list_t *lst, unsigned long int uid); + #endif Index: trunk/src/drc_list.c =================================================================== --- trunk/src/drc_list.c (revision 21162) +++ trunk/src/drc_list.c (revision 21163) @@ -53,3 +53,14 @@ pcb_drc_list_free_fields(lst); free(lst); } + +pcb_drc_violation_t *pcb_drc_by_uid(const pcb_drc_list_t *lst, unsigned long int uid) +{ + pcb_drc_violation_t *v; + + for(v = pcb_drc_list_first((pcb_drc_list_t *)lst); v != NULL; v = pcb_drc_list_next(v)) + if (v->uid == uid) + return v; + + return NULL; +}