Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 7733) +++ trunk/src/buffer.c (revision 7734) @@ -487,8 +487,8 @@ Buffer->Data->Layer[CLayer] = swap; /* swap layer groups when balanced */ - sgroup = pcb_layer_get_group(SLayer); - cgroup = pcb_layer_get_group(CLayer); + sgroup = pcb_layer_get_group(PCB, SLayer); + cgroup = pcb_layer_get_group(PCB, CLayer); #warning layer TODO: revise this code for the generic physical layer support; move this code to layer*.c if (PCB->LayerGroups.grp[cgroup].len == PCB->LayerGroups.grp[sgroup].len) { for (j = k = 0; j < PCB->LayerGroups.grp[sgroup].len; j++) { Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 7733) +++ trunk/src/draw.c (revision 7734) @@ -193,7 +193,7 @@ memset(do_group, 0, sizeof(do_group)); for (ngroups = 0, i = 0; i < pcb_max_layer; i++) { pcb_layer_t *l = LAYER_ON_STACK(i); - pcb_layergrp_id_t group = pcb_layer_get_group(pcb_layer_stack[i]); + pcb_layergrp_id_t group = pcb_layer_get_group(PCB, pcb_layer_stack[i]); unsigned int gflg = pcb_layergrp_flags(group); if (gflg & PCB_LYT_SILK) /* do not draw silk here, it'll be drawn separately */ Index: trunk/src/find_lookup.c =================================================================== --- trunk/src/find_lookup.c (revision 7733) +++ trunk/src/find_lookup.c (revision 7734) @@ -1199,7 +1199,7 @@ { pcb_rat_t *rat = (pcb_rat_t *) b; struct lo_info *i = (struct lo_info *) cl; - pcb_layergrp_id_t i_layergrp = pcb_layer_get_group(i->layer); + pcb_layergrp_id_t i_layergrp = pcb_layer_get_group(PCB, i->layer); if (!PCB_FLAG_TEST(TheFlag, rat)) { if (rat->group1 == i_layergrp && Index: trunk/src/hid_helper.c =================================================================== --- trunk/src/hid_helper.c (revision 7733) +++ trunk/src/hid_helper.c (revision 7734) @@ -56,7 +56,7 @@ } - group = pcb_layer_get_group(lid); + group = pcb_layer_get_group(PCB, lid); nlayers = PCB->LayerGroups.grp[group].len; single_name = pcb_layer_name(lid); Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 7733) +++ trunk/src/layer.c (revision 7734) @@ -537,8 +537,8 @@ static int is_last_top_copper_layer(int layer) { - pcb_layergrp_id_t cgroup = pcb_layer_get_group(pcb_max_group + PCB_COMPONENT_SIDE); - pcb_layergrp_id_t lgroup = pcb_layer_get_group(layer); + pcb_layergrp_id_t cgroup = pcb_layer_get_group(PCB, pcb_max_group + PCB_COMPONENT_SIDE); + pcb_layergrp_id_t lgroup = pcb_layer_get_group(PCB, layer); if (cgroup == lgroup && PCB->LayerGroups.grp[lgroup].len == 1) return 1; return 0; @@ -546,8 +546,8 @@ static int is_last_bottom_copper_layer(int layer) { - int sgroup = pcb_layer_get_group(pcb_max_group + PCB_SOLDER_SIDE); - int lgroup = pcb_layer_get_group(layer); + int sgroup = pcb_layer_get_group(PCB, pcb_max_group + PCB_SOLDER_SIDE); + int lgroup = pcb_layer_get_group(PCB, layer); if (sgroup == lgroup && PCB->LayerGroups.grp[lgroup].len == 1) return 1; return 0; Index: trunk/src/layer_grp.c =================================================================== --- trunk/src/layer_grp.c (revision 7733) +++ trunk/src/layer_grp.c (revision 7734) @@ -59,12 +59,12 @@ return Layer->grp; } -pcb_layergrp_id_t pcb_layer_get_group(pcb_layer_id_t lid) +pcb_layergrp_id_t pcb_layer_get_group(pcb_board_t *pcb, pcb_layer_id_t lid) { if ((lid < 0) || (lid >= pcb_max_layer)) return -1; - return pcb_layer_get_group_(&PCB->Data->Layer[lid]); + return pcb_layer_get_group_(&pcb->Data->Layer[lid]); } int pcb_layergrp_del_layer(pcb_board_t *pcb, pcb_layergrp_id_t gid, pcb_layer_id_t lid) Index: trunk/src/layer_grp.h =================================================================== --- trunk/src/layer_grp.h (revision 7733) +++ trunk/src/layer_grp.h (revision 7734) @@ -58,7 +58,7 @@ }; /* lookup the group to which a layer belongs to returns -1 if no group is found */ -pcb_layergrp_id_t pcb_layer_get_group(pcb_layer_id_t Layer); +pcb_layergrp_id_t pcb_layer_get_group(pcb_board_t *pcb, pcb_layer_id_t Layer); pcb_layergrp_id_t pcb_layer_get_group_(pcb_layer_t *Layer); /* Returns group actually moved to (i.e. either group or previous) */ Index: trunk/src/layer_vis.c =================================================================== --- trunk/src/layer_vis.c (revision 7733) +++ trunk/src/layer_vis.c (revision 7734) @@ -191,7 +191,7 @@ printf("pcb_layervis_change_group_vis(Layer=%d, On=%d, ChangeStackOrder=%d)\n", Layer, On, ChangeStackOrder); /* decrement 'i' to keep stack in order of layergroup */ - if ((group = pcb_layer_get_group(Layer)) >= 0) { + if ((group = pcb_layer_get_group(PCB, Layer)) >= 0) { for (i = PCB->LayerGroups.grp[group].len; i;) { pcb_layer_id_t layer = PCB->LayerGroups.grp[group].lid[--i]; Index: trunk/src/obj_line_drcenf.c =================================================================== --- trunk/src/obj_line_drcenf.c (revision 7733) +++ trunk/src/obj_line_drcenf.c (revision 7734) @@ -285,7 +285,7 @@ x_is_long = pcb_false; length = coord_abs(dy); } - group = pcb_layer_get_group(INDEXOFCURRENT); + group = pcb_layer_get_group(PCB, INDEXOFCURRENT); comp = pcb_max_group + 10; /* this out-of-range group might save a call */ if (pcb_layergrp_flags(group) & PCB_LYT_BOTTOM) info.solder = pcb_true; @@ -440,7 +440,7 @@ line.Point2 = aline.Point2; /* prepare for the intersection search */ - group = pcb_layer_get_group(INDEXOFCURRENT); + group = pcb_layer_get_group(PCB, INDEXOFCURRENT); comp = pcb_max_group + 10; /* this out-of-range group might save a call */ if (pcb_layergrp_flags(group) & PCB_LYT_BOTTOM) info.solder = pcb_true; Index: trunk/src/polygon.c =================================================================== --- trunk/src/polygon.c (revision 7733) +++ trunk/src/polygon.c (revision 7734) @@ -1512,7 +1512,7 @@ PCB_END_LOOP; } else { - PCB_COPPER_GROUP_LOOP(Data, pcb_layer_get_group(pcb_layer_id(Data, ((pcb_layer_t *) ptr1)))); + PCB_COPPER_GROUP_LOOP(Data, pcb_layer_get_group(PCB, pcb_layer_id(Data, ((pcb_layer_t *) ptr1)))); { info.layer = layer; pcb_r_search(layer->polygon_tree, &sb, NULL, plow_callback, &info, &seen); @@ -1530,7 +1530,7 @@ /* non-copper (e.g. silk, outline) doesn't plow */ if (!(pcb_layer_flags(pcb_layer_id(Data, (pcb_layer_t *) ptr1) & PCB_LYT_COPPER))) return 0; - PCB_COPPER_GROUP_LOOP(Data, pcb_layer_get_group(pcb_layer_id(Data, ((pcb_layer_t *) ptr1)))); + PCB_COPPER_GROUP_LOOP(Data, pcb_layer_get_group(PCB, pcb_layer_id(Data, ((pcb_layer_t *) ptr1)))); { info.layer = layer; pcb_r_search(layer->polygon_tree, &sb, NULL, plow_callback, &info, &seen); Index: trunk/src_plugins/autoroute/autoroute.c =================================================================== --- trunk/src_plugins/autoroute/autoroute.c (revision 7733) +++ trunk/src_plugins/autoroute/autoroute.c (revision 7734) @@ -729,7 +729,7 @@ static routebox_t *AddPolygon(vtptr_t layergroupboxes[], pcb_cardinal_t layer, pcb_polygon_t *polygon, pcb_route_style_t * style) { int is_not_rectangle = 1; - pcb_layergrp_id_t layergroup = pcb_layer_get_group(layer); + pcb_layergrp_id_t layergroup = pcb_layer_get_group(PCB, layer); routebox_t *rb; assert(0 <= layergroup && layergroup < pcb_max_group); rb = AddIrregularObstacle(layergroupboxes, @@ -1077,7 +1077,7 @@ if (!(pcb_layer_flags(i) & PCB_LYT_COPPER)) continue; - layergroup = pcb_layer_get_group(i); + layergroup = pcb_layer_get_group(PCB, i); /* add all (non-rat) lines */ PCB_LINE_LOOP(LAYER_PTR(i)); Index: trunk/src_plugins/diag/diag.c =================================================================== --- trunk/src_plugins/diag/diag.c (revision 7733) +++ trunk/src_plugins/diag/diag.c (revision 7734) @@ -155,7 +155,7 @@ used = pcb_layer_list_any(PCB_LYT_ANYTHING | PCB_LYT_ANYWHERE | PCB_LYT_VIRTUAL, arr, sizeof(arr)/sizeof(arr[0])); for(n = 0; n < used; n++) { pcb_layer_id_t layer_id = arr[n]; - pcb_layergrp_id_t grp = pcb_layer_get_group(layer_id); + pcb_layergrp_id_t grp = pcb_layer_get_group(PCB, layer_id); printf(" [%lx] %04x group=%ld %s\n", layer_id, pcb_layer_flags(layer_id), grp, pcb_layer_name(layer_id)); } Index: trunk/src_plugins/export_bboard/bboard.c =================================================================== --- trunk/src_plugins/export_bboard/bboard.c (revision 7733) +++ trunk/src_plugins/export_bboard/bboard.c (revision 7734) @@ -508,7 +508,7 @@ for (i = 0; i < pcb_max_layer; i++) { layer = PCB->Data->Layer + i; if (linelist_length(&layer->Line) > 0) - group_data[pcb_layer_get_group(i)].draw = 1; + group_data[pcb_layer_get_group(PCB, i)].draw = 1; } bboard_init_board_cairo(PCB->MaxWidth, PCB->MaxHeight, bboard_bgcolor, options[HA_antialias].int_value); @@ -532,7 +532,7 @@ unsigned int flg = pcb_layer_flags(i); if (flg & PCB_LYT_SILK) continue; - if (bboard_validate_layer(flg, pcb_layer_get_group(i), options[HA_skipsolder].int_value)) { + if (bboard_validate_layer(flg, pcb_layer_get_group(PCB, i), options[HA_skipsolder].int_value)) { bboard_get_layer_color(&(PCB->Data->Layer[i]), &clr_r, &clr_g, &clr_b); bboard_set_color_cairo(clr_r, clr_g, clr_b); PCB_LINE_LOOP(&(PCB->Data->Layer[i])); Index: trunk/src_plugins/export_dxf/dxf.c =================================================================== --- trunk/src_plugins/export_dxf/dxf.c (revision 7733) +++ trunk/src_plugins/export_dxf/dxf.c (revision 7734) @@ -742,7 +742,7 @@ */ static pcb_layergrp_id_t dxf_group_for_layer(int l) { if ((l < pcb_max_layer) && (l >= 0)) { - return pcb_layer_get_group(l); + return pcb_layer_get_group(PCB, l); } /* else something unique */ return pcb_max_group + 3 + l; Index: trunk/src_plugins/export_gcode/gcode.c =================================================================== --- trunk/src_plugins/export_gcode/gcode.c (revision 7733) +++ trunk/src_plugins/export_gcode/gcode.c (revision 7734) @@ -272,7 +272,7 @@ */ if ((flags & PCB_LYT_COPPER) || (flags & PCB_LYT_OUTLINE)) { - m = pcb_layer_get_group(n); + m = pcb_layer_get_group(PCB, n); /* the export layer */ gcode_export_group[m] = 1; @@ -411,7 +411,7 @@ /* magic */ idx = (i >= 0 && i < pcb_max_group) ? PCB->LayerGroups.grp[i].lid[0] : i; printf("idx=%d %s\n", idx, name); - is_solder = (pcb_layergrp_flags(pcb_layer_get_group(idx)) & PCB_LYT_BOTTOM) ? 1 : 0; + is_solder = (pcb_layergrp_flags(pcb_layer_get_group(PCB, idx)) & PCB_LYT_BOTTOM) ? 1 : 0; save_drill = is_solder; /* save drills for one layer only */ gcode_start_png(gcode_basename, name); pcb_hid_save_and_show_layer_ons(save_ons); Index: trunk/src_plugins/export_gerber/gerber.c =================================================================== --- trunk/src_plugins/export_gerber/gerber.c (revision 7733) +++ trunk/src_plugins/export_gerber/gerber.c (revision 7734) @@ -368,7 +368,7 @@ static pcb_layergrp_id_t group_for_layer(int l) { if (l < pcb_max_layer && l >= 0) - return pcb_layer_get_group(l); + return pcb_layer_get_group(PCB, l); /* else something unique */ return pcb_max_group + 3 + l; } Index: trunk/src_plugins/export_nelma/nelma.c =================================================================== --- trunk/src_plugins/export_nelma/nelma.c (revision 7733) +++ trunk/src_plugins/export_nelma/nelma.c (revision 7734) @@ -499,7 +499,7 @@ /* layer isn't empty */ if ((flags & PCB_LYT_COPPER) || (flags & PCB_LYT_OUTLINE)) { /* layer is a copper layer */ - m = pcb_layer_get_group(n); + m = pcb_layer_get_group(PCB, n); /* the export layer */ nelma_export_group[m] = 1; Index: trunk/src_plugins/export_openscad/scad.c =================================================================== --- trunk/src_plugins/export_openscad/scad.c (revision 7733) +++ trunk/src_plugins/export_openscad/scad.c (revision 7734) @@ -549,7 +549,7 @@ continue; layer = PCB->Data->Layer + i; if (!pcb_layer_is_empty_(layer)) - group_data[pcb_layer_get_group(i)].draw = 1; + group_data[pcb_layer_get_group(PCB, i)].draw = 1; } inner_layers = 0; Index: trunk/src_plugins/export_png/png.c =================================================================== --- trunk/src_plugins/export_png/png.c (revision 7733) +++ trunk/src_plugins/export_png/png.c (revision 7734) @@ -385,7 +385,7 @@ static pcb_layergrp_id_t group_for_layer(int l) { if (l < pcb_max_layer && l >= 0) - return pcb_layer_get_group(l); + return pcb_layer_get_group(PCB, l); /* else something unique */ return pcb_max_group + 3 + l; } Index: trunk/src_plugins/export_ps/eps.c =================================================================== --- trunk/src_plugins/export_ps/eps.c (revision 7733) +++ trunk/src_plugins/export_ps/eps.c (revision 7734) @@ -148,7 +148,7 @@ static pcb_layergrp_id_t group_for_layer(int l) { if (l < pcb_max_layer && l >= 0) - return pcb_layer_get_group(l); + return pcb_layer_get_group(PCB, l); /* else something unique */ return pcb_max_group + 3 + l; } @@ -212,7 +212,7 @@ continue; if (layer->On) if (!PCB_LAYER_IS_EMPTY(layer)) - print_group[pcb_layer_get_group(i)] = 1; + print_group[pcb_layer_get_group(PCB, i)] = 1; } /* Now, if only one layer has real stuff on it, we can use the fast @@ -228,7 +228,7 @@ if (fast_erase == 0) { pcb_layergrp_id_t comp_copp; if (pcb_layer_group_list(PCB_LYT_TOP | PCB_LYT_COPPER, &comp_copp, 1) > 0) { - print_group[pcb_layer_get_group(comp_copp)] = 1; + print_group[pcb_layer_get_group(PCB, comp_copp)] = 1; fast_erase = 1; } } @@ -241,7 +241,7 @@ for (i = 0; i < pcb_max_layer; i++) { if (pcb_layer_flags(i) & PCB_LYT_SILK) continue; - if (print_group[pcb_layer_get_group(i)]) + if (print_group[pcb_layer_get_group(PCB, i)]) print_layer[i] = 1; } Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 7733) +++ trunk/src_plugins/export_ps/ps.c (revision 7734) @@ -429,7 +429,7 @@ static pcb_layergrp_id_t group_for_layer(int l) { if (l < pcb_max_layer && l >= 0) - return pcb_layer_get_group(l); + return pcb_layer_get_group(PCB, l); /* else something unique */ return pcb_max_group + 3 + l; } Index: trunk/src_plugins/export_stat/stat.c =================================================================== --- trunk/src_plugins/export_stat/stat.c (revision 7733) +++ trunk/src_plugins/export_stat/stat.c (revision 7734) @@ -174,7 +174,7 @@ int empty = pcb_layer_is_empty_(l); unsigned int lflg = pcb_layer_flags(lid); - lgid = pcb_layer_get_group(lid); + lgid = pcb_layer_get_group(PCB, lid); lgs = lgss + lgid; fprintf(f, " ha:layer_%d {\n", lid); Index: trunk/src_plugins/hid_batch/batch.c =================================================================== --- trunk/src_plugins/hid_batch/batch.c (revision 7733) +++ trunk/src_plugins/hid_batch/batch.c (revision 7734) @@ -83,7 +83,7 @@ printf("Filename: %s\n", PCB->Filename); pcb_printf("Size: %ml x %ml mils, %mm x %mm mm\n", PCB->MaxWidth, PCB->MaxHeight, PCB->MaxWidth, PCB->MaxHeight); for (i = 0; i < PCB_MAX_LAYER; i++) { - pcb_layergrp_id_t lg = pcb_layer_get_group(i); + pcb_layergrp_id_t lg = pcb_layer_get_group(PCB, i); unsigned int gflg = pcb_layergrp_flags(lg); for (j = 0; j < PCB_MAX_LAYER; j++) putchar(j == lg ? '#' : '-'); Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 7733) +++ trunk/src_plugins/hid_lesstif/main.c (revision 7734) @@ -580,7 +580,7 @@ { int old_shown_side = conf_core.editor.show_solder_side; pcb_layergrp_id_t comp_group = -1, solder_group = -1; - pcb_layergrp_id_t active_group = pcb_layer_get_group(pcb_layer_stack[0]); + pcb_layergrp_id_t active_group = pcb_layer_get_group(PCB, pcb_layer_stack[0]); int comp_layer; int solder_layer; int comp_showing = 0, solder_showing = 0; @@ -2743,7 +2743,7 @@ idx = PCB->LayerGroups.grp[group].lid[idx]; #if 0 if (idx == pcb_layer_stack[0] - || pcb_layer_get_group(idx) == pcb_layer_get_group(pcb_layer_stack[0])) + || pcb_layer_get_group(PCB, idx) == pcb_layer_get_group(PCB, pcb_layer_stack[0])) autofade = 0; else autofade = 1; Index: trunk/src_plugins/hid_lesstif/menu.c =================================================================== --- trunk/src_plugins/hid_lesstif/menu.c (revision 7733) +++ trunk/src_plugins/hid_lesstif/menu.c (revision 7734) @@ -254,7 +254,7 @@ show_one_layer_button(layer, set); if ((layer < pcb_max_layer) && (!(pcb_layer_flags(layer) & PCB_LYT_SILK))) { int i; - pcb_layergrp_id_t group = pcb_layer_get_group(layer); + pcb_layergrp_id_t group = pcb_layer_get_group(PCB, layer); for (i = 0; i < PCB->LayerGroups.grp[group].len; i++) { l = PCB->LayerGroups.grp[group].lid[i]; if (l != layer && (!(pcb_layer_flags(l) & PCB_LYT_SILK))) { Index: trunk/src_plugins/hid_remote/remote.c =================================================================== --- trunk/src_plugins/hid_remote/remote.c (revision 7733) +++ trunk/src_plugins/hid_remote/remote.c (revision 7734) @@ -78,7 +78,7 @@ for(n = 0; n < used; n++) { const char *name; pcb_layer_id_t layer_id = arr[n]; - pcb_layergrp_id_t gid = pcb_layer_get_group(layer_id); + pcb_layergrp_id_t gid = pcb_layer_get_group(PCB, layer_id); name = pcb_layer_name(layer_id); if ((gid < 0) && (name != NULL)) { pcb_remote_new_layer_group(name, layer_id, pcb_layer_flags(layer_id)); @@ -89,7 +89,7 @@ for(n = 0; n < used; n++) { pcb_layer_id_t lid = arr[n]; - pcb_layergrp_id_t gid = pcb_layer_get_group(lid); + pcb_layergrp_id_t gid = pcb_layer_get_group(PCB, lid); if (gid >= 0) pcb_remote_new_layer(pcb_layer_name(lid), lid, gid); } Index: trunk/src_plugins/import_hyp/parser.c =================================================================== --- trunk/src_plugins/import_hyp/parser.c (revision 7733) +++ trunk/src_plugins/import_hyp/parser.c (revision 7734) @@ -1989,8 +1989,8 @@ /* XXX fixme. I want to put an unrouted segment between two layers, not two layer groups. */ /* lookup layer group begin and end layer are on */ - layer1_grp_id = pcb_layer_get_group(hyp_create_layer(h->layer1_name)); - layer2_grp_id = pcb_layer_get_group(hyp_create_layer(h->layer2_name)); + layer1_grp_id = pcb_layer_get_group(PCB, hyp_create_layer(h->layer1_name)); + layer2_grp_id = pcb_layer_get_group(PCB, hyp_create_layer(h->layer2_name)); if ((layer1_grp_id == -1) || (layer2_grp_id == -1)) { if (hyp_debug) Index: trunk/src_plugins/lib_gtk_common/ui_zoompan.c =================================================================== --- trunk/src_plugins/lib_gtk_common/ui_zoompan.c (revision 7733) +++ trunk/src_plugins/lib_gtk_common/ui_zoompan.c (revision 7734) @@ -351,7 +351,7 @@ int pcb_gtk_swap_sides(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) { - pcb_layergrp_id_t active_group = pcb_layer_get_group(pcb_layer_stack[0]); + pcb_layergrp_id_t active_group = pcb_layer_get_group(PCB, pcb_layer_stack[0]); pcb_layergrp_id_t comp_group = -1, solder_group = -1; pcb_bool comp_on = pcb_false, solder_on = pcb_false;