Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 12035) +++ trunk/src/data.c (revision 12036) @@ -48,13 +48,13 @@ /* callback based loops */ -void pcb_loop_layers(void *ctx, pcb_layer_cb_t lacb, pcb_line_cb_t lcb, pcb_arc_cb_t acb, pcb_text_cb_t tcb, pcb_poly_cb_t pocb) +void pcb_loop_layers(pcb_board_t *pcb, void *ctx, pcb_layer_cb_t lacb, pcb_line_cb_t lcb, pcb_arc_cb_t acb, pcb_text_cb_t tcb, pcb_poly_cb_t pocb) { if ((lacb != NULL) || (lcb != NULL) || (acb != NULL) || (tcb != NULL) || (pocb != NULL)) { pcb_layer_it_t it; pcb_layer_id_t lid; - for(lid = pcb_layer_first_all(&PCB->LayerGroups, &it); lid != -1; lid = pcb_layer_next(&it)) { - pcb_layer_t *layer = PCB->Data->Layer + lid; + for(lid = pcb_layer_first_all(&pcb->LayerGroups, &it); lid != -1; lid = pcb_layer_next(&it)) { + pcb_layer_t *layer = pcb->Data->Layer + lid; if (lacb != NULL) if (lacb(ctx, PCB, layer, 1)) continue; @@ -95,10 +95,10 @@ } } -void pcb_loop_elements(void *ctx, pcb_element_cb_t ecb, pcb_eline_cb_t elcb, pcb_earc_cb_t eacb, pcb_etext_cb_t etcb, pcb_epin_cb_t epicb, pcb_epad_cb_t epacb) +void pcb_loop_elements(pcb_board_t *pcb, void *ctx, pcb_element_cb_t ecb, pcb_eline_cb_t elcb, pcb_earc_cb_t eacb, pcb_etext_cb_t etcb, pcb_epin_cb_t epicb, pcb_epad_cb_t epacb) { if ((ecb != NULL) || (elcb != NULL) || (eacb != NULL) || (etcb != NULL) || (epicb != NULL) || (epacb != NULL)) { - PCB_ELEMENT_LOOP(PCB->Data); + PCB_ELEMENT_LOOP(pcb->Data); { if (ecb != NULL) if (ecb(ctx, PCB, element, 1)) @@ -152,10 +152,10 @@ } } -void pcb_loop_vias(void *ctx, pcb_via_cb_t vcb) +void pcb_loop_vias(pcb_board_t *pcb, void *ctx, pcb_via_cb_t vcb) { if (vcb != NULL) { - PCB_VIA_LOOP(PCB->Data); + PCB_VIA_LOOP(pcb->Data); { vcb(ctx, PCB, via); } @@ -163,15 +163,15 @@ } } -void pcb_loop_all(void *ctx, +void pcb_loop_all(pcb_board_t *pcb, void *ctx, pcb_layer_cb_t lacb, pcb_line_cb_t lcb, pcb_arc_cb_t acb, pcb_text_cb_t tcb, pcb_poly_cb_t pocb, pcb_element_cb_t ecb, pcb_eline_cb_t elcb, pcb_earc_cb_t eacb, pcb_etext_cb_t etcb, pcb_epin_cb_t epicb, pcb_epad_cb_t epacb, pcb_via_cb_t vcb ) { - pcb_loop_layers(ctx, lacb, lcb, acb, tcb, pocb); - pcb_loop_elements(ctx, ecb, elcb, eacb, etcb, epicb, epacb); - pcb_loop_vias(ctx, vcb); + pcb_loop_layers(pcb, ctx, lacb, lcb, acb, tcb, pocb); + pcb_loop_elements(pcb, ctx, ecb, elcb, eacb, etcb, epicb, epacb); + pcb_loop_vias(pcb, ctx, vcb); } /* --------------------------------------------------------------------------- Index: trunk/src/data.h =================================================================== --- trunk/src/data.h (revision 12035) +++ trunk/src/data.h (revision 12036) @@ -101,16 +101,16 @@ typedef void (*pcb_via_cb_t)(void *ctx, pcb_board_t *pcb, pcb_pin_t *via); /* Loop over all layer objects on each layer. Layer is the outer loop. */ -void pcb_loop_layers(void *ctx, pcb_layer_cb_t lacb, pcb_line_cb_t lcb, pcb_arc_cb_t acb, pcb_text_cb_t tcb, pcb_poly_cb_t pocb); +void pcb_loop_layers(pcb_board_t *pcb, void *ctx, pcb_layer_cb_t lacb, pcb_line_cb_t lcb, pcb_arc_cb_t acb, pcb_text_cb_t tcb, pcb_poly_cb_t pocb); /* Loop over all elements and element primitives. Element is the outer loop. */ -void pcb_loop_elements(void *ctx, pcb_element_cb_t ecb, pcb_eline_cb_t elcb, pcb_earc_cb_t eacb, pcb_etext_cb_t etcb, pcb_epin_cb_t epicb, pcb_epad_cb_t epacb); +void pcb_loop_elements(pcb_board_t *pcb, void *ctx, pcb_element_cb_t ecb, pcb_eline_cb_t elcb, pcb_earc_cb_t eacb, pcb_etext_cb_t etcb, pcb_epin_cb_t epicb, pcb_epad_cb_t epacb); /* Loop over all vias. */ -void pcb_loop_vias(void *ctx, pcb_via_cb_t vcb); +void pcb_loop_vias(pcb_board_t *pcb, void *ctx, pcb_via_cb_t vcb); /* Loop over all design objects. (So all the above three in one call.) */ -void pcb_loop_all(void *ctx, +void pcb_loop_all(pcb_board_t *pcb, void *ctx, pcb_layer_cb_t lacb, pcb_line_cb_t lcb, pcb_arc_cb_t acb, pcb_text_cb_t tcb, pcb_poly_cb_t pocb, pcb_element_cb_t ecb, pcb_eline_cb_t elcb, pcb_earc_cb_t eacb, pcb_etext_cb_t etcb, pcb_epin_cb_t epicb, pcb_epad_cb_t epacb, pcb_via_cb_t vcb Index: trunk/src_plugins/export_xy/xy.c =================================================================== --- trunk/src_plugins/export_xy/xy.c (revision 12035) +++ trunk/src_plugins/export_xy/xy.c (revision 12036) @@ -222,7 +222,7 @@ ctx->ox = ctx->oy = 0; ctx->origin_tmp = tmp; - pcb_loop_layers(ctx, NULL, find_origin_bump, NULL, NULL, NULL); + pcb_loop_layers(PCB, ctx, NULL, find_origin_bump, NULL, NULL, NULL); } static void calc_pad_bbox_(subst_ctx_t *ctx, pcb_element_t *element, pcb_coord_t *pw, pcb_coord_t *ph, pcb_coord_t *pcx, pcb_coord_t *pcy) Index: trunk/src_plugins/lib_netmap/netmap.c =================================================================== --- trunk/src_plugins/lib_netmap/netmap.c (revision 12035) +++ trunk/src_plugins/lib_netmap/netmap.c (revision 12036) @@ -133,7 +133,7 @@ map->pcb = pcb; /* step 1: find known nets (from pins and pads) */ - pcb_loop_all(map, + pcb_loop_all(PCB, map, NULL, /* layer */ NULL, /* line */ NULL, /* arc */ @@ -149,7 +149,7 @@ ); /* step 2: find unknown nets and uniquely name them */ - pcb_loop_all(map, + pcb_loop_all(PCB, map, NULL, /* layer */ list_line_cb, list_arc_cb, Index: trunk/src_plugins/propedit/propsel.c =================================================================== --- trunk/src_plugins/propedit/propsel.c (revision 12035) +++ trunk/src_plugins/propedit/propsel.c (revision 12036) @@ -180,7 +180,7 @@ ctx.props = props; - pcb_loop_all(&ctx, + pcb_loop_all(PCB, &ctx, NULL, map_line_cb, map_arc_cb, map_text_cb, map_poly_cb, NULL, map_eline_cb, map_earc_cb, map_etext_cb, map_epin_cb, map_epad_cb, map_via_cb @@ -456,7 +456,7 @@ pcb_undo_save_serial(); - pcb_loop_all(&ctx, + pcb_loop_all(PCB, &ctx, NULL, MAYBE_PROP(ctx.is_trace, "p/line/", set_line_cb), MAYBE_PROP(ctx.is_trace, "p/arc/", set_arc_cb), @@ -561,7 +561,7 @@ st.key = key; st.del_cnt = 0; - pcb_loop_all(&st, + pcb_loop_all(PCB, &st, NULL, del_line_cb, del_arc_cb, del_text_cb, del_poly_cb, NULL, del_eline_cb, del_earc_cb, del_etext_cb, del_epin_cb, del_epad_cb, del_via_cb Index: trunk/src_plugins/query/query_access.c =================================================================== --- trunk/src_plugins/query/query_access.c (revision 12035) +++ trunk/src_plugins/query/query_access.c (revision 12036) @@ -109,7 +109,7 @@ void pcb_qry_list_all(pcb_qry_val_t *lst, pcb_objtype_t mask) { assert(lst->type == PCBQ_VT_LST); - pcb_loop_all(&lst->data.lst, + pcb_loop_all(PCB, &lst->data.lst, (mask & PCB_OBJ_LAYER) ? list_layer_cb : NULL, (mask & PCB_OBJ_LINE) ? list_line_cb : NULL, (mask & PCB_OBJ_ARC) ? list_arc_cb : NULL,