Index: trunk/src/board.c =================================================================== --- trunk/src/board.c (revision 12013) +++ trunk/src/board.c (revision 12014) @@ -100,7 +100,7 @@ ptr->minRing = conf_core.design.min_ring; for (i = 0; i < PCB_MAX_LAYER; i++) - ptr->Data->Layer[i].meta.real.name = pcb_strdup(conf_core.design.default_layer_name[i]); + ptr->Data->Layer[i].name = pcb_strdup(conf_core.design.default_layer_name[i]); pcb_font_create_default(ptr); Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 12013) +++ trunk/src/buffer.c (revision 12014) @@ -615,7 +615,7 @@ if (destlayer == NULL) { if ((!(sourcelayer->meta.bound.type & PCB_LYT_VIRTUAL)) && (!pcb_layer_is_pure_empty(sourcelayer))) { - const char *src_name = sourcelayer->meta.bound.name; + const char *src_name = sourcelayer->name; if ((src_name == NULL) || (*src_name == '\0')) src_name = ""; pcb_message(PCB_MSG_WARNING, "Couldn't resolve buffer layer #%d (%s) on the current board\n", i, src_name); Index: trunk/src/change_act.c =================================================================== --- trunk/src/change_act.c (revision 12013) +++ trunk/src/change_act.c (revision 12014) @@ -690,7 +690,7 @@ /* change the name of the active layer */ case F_Layer: - name = pcb_gui->prompt_for(_("Enter the layer name:"), PCB_EMPTY(CURRENT->meta.real.name)); + name = pcb_gui->prompt_for(_("Enter the layer name:"), PCB_EMPTY(CURRENT->name)); /* NB: pcb_layer_rename_ takes ownership of the passed memory */ if (name && (pcb_layer_rename_(CURRENT, name) == 0)) pcb_board_set_changed_flag(pcb_true); Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 12013) +++ trunk/src/data.c (revision 12014) @@ -217,10 +217,7 @@ free(text->TextString); } PCB_END_LOOP; - if (!layer->is_bound) - free((char*)layer->meta.real.name); - else - free((char*)layer->meta.bound.name); + free((char*)layer->name); PCB_LINE_LOOP(layer); { if (line->Number) Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 12013) +++ trunk/src/gui_act.c (revision 12014) @@ -1544,7 +1544,7 @@ {"auto: auto-generated layer", NULL, PCB_HATT_BOOL, 0, 0, {0}, NULL, NULL, 0, NULL, NULL} }; - attr[0].default_val.str_value = pcb_strdup(ly->meta.real.name); + attr[0].default_val.str_value = pcb_strdup(ly->name); attr[1].default_val.int_value = ly->comb & PCB_LYC_SUB; attr[2].default_val.int_value = ly->comb & PCB_LYC_AUTO; @@ -1552,7 +1552,7 @@ if (ar == 0) { pcb_layer_combining_t comb = 0; - if (strcmp(ly->meta.real.name, attr[0].default_val.str_value) != 0) { + if (strcmp(ly->name, attr[0].default_val.str_value) != 0) { ret |= pcb_layer_rename_(ly, (char *)attr[0].default_val.str_value); attr[0].default_val.str_value = NULL; pcb_board_set_changed_flag(pcb_true); Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 12013) +++ trunk/src/layer.c (revision 12014) @@ -303,7 +303,7 @@ { pcb_layer_id_t n; for (n = 0; n < PCB->Data->LayerN; n++) - if (strcmp(PCB->Data->Layer[n].meta.real.name, name) == 0) + if (strcmp(PCB->Data->Layer[n].name, name) == 0) return n; return -1; } @@ -316,9 +316,9 @@ for the rest of the code: the (embedded) default design will overwrite this. */ /* reset layers */ for(n = 0; n < PCB_MAX_LAYER; n++) { - if (PCB->Data->Layer[n].meta.real.name != NULL) - free((char *)PCB->Data->Layer[n].meta.real.name); - PCB->Data->Layer[n].meta.real.name = pcb_strdup(""); + if (PCB->Data->Layer[n].name != NULL) + free((char *)PCB->Data->Layer[n].name); + PCB->Data->Layer[n].name = pcb_strdup(""); PCB->Data->Layer[n].grp = -1; } @@ -348,12 +348,12 @@ id = PCB->Data->LayerN++; if (lname != NULL) { - if (PCB->Data->Layer[id].meta.real.name != NULL) - free((char *)PCB->Data->Layer[id].meta.real.name); + if (PCB->Data->Layer[id].name != NULL) + free((char *)PCB->Data->Layer[id].name); } layer_clear(&PCB->Data->Layer[id]); - PCB->Data->Layer[id].meta.real.name = pcb_strdup(lname); + PCB->Data->Layer[id].name = pcb_strdup(lname); /* add layer to group */ if (grp >= 0) { @@ -369,14 +369,8 @@ int pcb_layer_rename(pcb_layer_id_t layer, const char *lname) { - if (!PCB->Data->Layer[layer].is_bound) { - free((char *)PCB->Data->Layer[layer].meta.real.name); - PCB->Data->Layer[layer].meta.real.name = pcb_strdup(lname); - } - else { - free((char *)PCB->Data->Layer[layer].meta.bound.name); - PCB->Data->Layer[layer].meta.bound.name = pcb_strdup(lname); - } + free((char *)PCB->Data->Layer[layer].name); + PCB->Data->Layer[layer].name = pcb_strdup(lname); return 0; } @@ -413,14 +407,8 @@ int pcb_layer_rename_(pcb_layer_t *Layer, char *Name) { #warning cleanup TODO: duplicate of pcb_layer_rename()? - if (!Layer->is_bound) { - free((char*)Layer->meta.real.name); - Layer->meta.real.name = Name; - } - else { - free((char*)Layer->meta.bound.name); - Layer->meta.bound.name = Name; - } + free((char*)Layer->name); + Layer->name = Name; pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); return 0; } @@ -452,7 +440,7 @@ memset(lp, 0, sizeof(pcb_layer_t)); lp->grp = gid; lp->meta.real.vis = 1; - lp->meta.real.name = pcb_strdup("New Layer"); + lp->name = pcb_strdup("New Layer"); lp->meta.real.color = conf_core.appearance.color.layer[idx]; lp->meta.real.selected_color = conf_core.appearance.color.layer_selected[idx]; if ((gid >= 0) && (PCB->LayerGroups.grp[gid].len == 0)) { /*When adding the first layer in a group, set up comb flags automatically */ @@ -634,7 +622,7 @@ if (id < 0) return NULL; if (id < PCB->Data->LayerN) - return PCB->Data->Layer[id].meta.real.name; + return PCB->Data->Layer[id].name; if ((id >= PCB_LAYER_VIRT_MIN) && (id <= PCB_LAYER_VIRT_MAX)) return pcb_virt_layers[id-PCB_LAYER_VIRT_MIN].name; return NULL; @@ -688,10 +676,10 @@ dst->meta.bound.real = NULL; dst->meta.bound.type = pcb_layergrp_flags(PCB, src->grp); - if (src->meta.real.name != NULL) - dst->meta.bound.name = pcb_strdup(src->meta.real.name); + if (src->name != NULL) + dst->name = pcb_strdup(src->name); else - dst->meta.bound.name = NULL; + dst->name = NULL; if ((dst->meta.bound.type & PCB_LYT_INTERN) && (dst->meta.bound.type & PCB_LYT_COPPER)) { int from_top, from_bottom, res; @@ -705,7 +693,7 @@ dst->meta.bound.stack_offs = -from_bottom; } else - pcb_message(PCB_MSG_ERROR, "Internal error: can't figure the inter copper\nlayer offset for %s\n", src->meta.real.name); + pcb_message(PCB_MSG_ERROR, "Internal error: can't figure the inter copper\nlayer offset for %s\n", src->name); } else dst->meta.bound.stack_offs = 0; @@ -741,13 +729,13 @@ if (ly->comb == src->comb) score++; - if (ly->meta.real.name == src->meta.bound.name) /* mainly for NULL = NULL */ + if (ly->name == src->name) /* mainly for NULL = NULL */ score += 4; - if ((ly->meta.real.name != NULL) && (src->meta.bound.name != NULL)) { - if (strcmp(ly->meta.real.name, src->meta.bound.name) == 0) + if ((ly->name != NULL) && (src->name != NULL)) { + if (strcmp(ly->name, src->name) == 0) score += 4; - else if (pcb_strcasecmp(ly->meta.real.name, src->meta.bound.name) == 0) + else if (pcb_strcasecmp(ly->name, src->name) == 0) score += 2; } @@ -768,7 +756,7 @@ memset(lay, 0, sizeof(pcb_layer_t)); lay->is_bound = 1; - lay->meta.bound.name = pcb_strdup(name); + lay->name = pcb_strdup(name); lay->meta.bound.type = type; lay->grp = -1; lay->parent = data; @@ -867,7 +855,7 @@ void pcb_layer_edit_attrib(pcb_layer_t *layer) { - char *buf = pcb_strdup_printf("Layer %s Attributes", layer->meta.real.name); + char *buf = pcb_strdup_printf("Layer %s Attributes", layer->name); pcb_gui->edit_attributes(buf, &(layer->meta.real.Attributes)); free(buf); } Index: trunk/src/layer.h =================================================================== --- trunk/src/layer.h (revision 12013) +++ trunk/src/layer.h (revision 12014) @@ -100,6 +100,8 @@ arclist_t Arc; pcb_data_t *parent; + const char *name; /* layer name */ + pcb_layergrp_id_t grp; /* the group this layer is in (cross-reference) */ pcb_layer_combining_t comb; /* how to combine this layer with other layers in the group */ @@ -108,7 +110,6 @@ union { struct { /* A real board layer */ - const char *name; /* layer name */ pcb_bool vis; /* visible flag */ const char *color; /* color */ const char *selected_color; @@ -117,8 +118,7 @@ const char *cookie; /* for UI layers: registration cookie; NULL for unused UI layers */ } real; struct { /* A subcircuit layer binding; list data are local but everything else is coming from board layers */ - const char *name; /* layer name */ - pcb_layer_t *real; /* NULL if unbound */ + pcb_layer_t *real; /* NULL if unbound */ /* matching rules */ pcb_layer_type_t type; Index: trunk/src/layer_grp.c =================================================================== --- trunk/src/layer_grp.c (revision 12013) +++ trunk/src/layer_grp.c (revision 12014) @@ -487,7 +487,7 @@ } -#define LAYER_IS_OUTLINE(idx) ((pcb->Data->Layer[idx].meta.real.name != NULL) && ((strcmp(pcb->Data->Layer[idx].meta.real.name, "route") == 0 || strcmp(pcb->Data->Layer[(idx)].meta.real.name, "outline") == 0))) +#define LAYER_IS_OUTLINE(idx) ((pcb->Data->Layer[idx].name != NULL) && ((strcmp(pcb->Data->Layer[idx].name, "route") == 0 || strcmp(pcb->Data->Layer[(idx)].name, "outline") == 0))) int pcb_layer_parse_group_string(pcb_board_t *pcb, const char *grp_str, int LayerN, int oldfmt) { const char *s, *start; @@ -777,7 +777,7 @@ pcb_layergrp_t *grp = pcb_get_grp_new_misc(pcb); grp->type = PCB_LYT_OUTLINE | PCB_LYT_INTERN; grp->name = pcb_strdup("outline"); - pcb_layer_create(pcb_layergrp_id(pcb, grp), ly->meta.bound.name); + pcb_layer_create(pcb_layergrp_id(pcb, grp), ly->name); continue; } @@ -785,7 +785,7 @@ if (ly->meta.bound.type & PCB_LYT_COPPER) { /* top or bottom copper */ grp = pcb_get_grp(&pcb->LayerGroups, ly->meta.bound.type & PCB_LYT_ANYWHERE, PCB_LYT_COPPER); if (grp != NULL) { - pcb_layer_create(pcb_layergrp_id(pcb, grp), ly->meta.bound.name); + pcb_layer_create(pcb_layergrp_id(pcb, grp), ly->name); continue; } } @@ -792,13 +792,13 @@ grp = pcb_get_grp(&pcb->LayerGroups, ly->meta.bound.type & PCB_LYT_ANYWHERE, ly->meta.bound.type & PCB_LYT_ANYTHING); if (grp != NULL) { - pcb_layer_id_t lid = pcb_layer_create(pcb_layergrp_id(pcb, grp), ly->meta.bound.name); + pcb_layer_id_t lid = pcb_layer_create(pcb_layergrp_id(pcb, grp), ly->name); pcb_layer_t *nly = pcb_get_layer(lid); nly->comb = ly->comb; continue; } - pcb_message(PCB_MSG_ERROR, "Failed to create layer from recipe %s\n", ly->meta.bound.name); + pcb_message(PCB_MSG_ERROR, "Failed to create layer from recipe %s\n", ly->name); } if (want_intern > existing_intern) { @@ -822,9 +822,9 @@ /*pcb_trace("offs: %d (%d) == %d\n", offs, existing_intern + offs + 1, int_ofs);*/ if (offs < 0) offs = existing_intern + offs + 1; - if ((offs == int_ofs) && (ly->meta.bound.name != NULL)) { + if ((offs == int_ofs) && (ly->name != NULL)) { pcb->LayerGroups.grp[n].name = pcb_strdup("internal"); - pcb_layer_create(n, ly->meta.bound.name); + pcb_layer_create(n, ly->name); goto found; } } Index: trunk/src/layer_ui.c =================================================================== --- trunk/src/layer_ui.c (revision 12013) +++ trunk/src/layer_ui.c (revision 12014) @@ -53,7 +53,7 @@ found:; l->meta.real.cookie = cookie; l->meta.real.color = color; - l->meta.real.name = name; + l->name = name; l->meta.real.vis = 1; pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); return l; @@ -67,7 +67,7 @@ if (l->meta.real.cookie == cookie) { #warning TODO: free all objects l->meta.real.cookie = NULL; - l->meta.real.color = l->meta.real.name = NULL; + l->meta.real.color = l->name = NULL; l->meta.real.vis = 0; pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); } Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 12013) +++ trunk/src/obj_subc.c (revision 12014) @@ -127,7 +127,7 @@ if (sc->aux_layer == NULL) { int n; for(n = 0; n < sc->data->LayerN; n++) { - if (strcmp(sc->data->Layer[n].meta.bound.name, SUBC_AUX_NAME) == 0) { + if (strcmp(sc->data->Layer[n].name, SUBC_AUX_NAME) == 0) { sc->aux_layer = sc->data->Layer + n; break; } @@ -578,7 +578,7 @@ if ((pcb != NULL) && (pcb == src_pcb)) { /* copy within the same board */ memcpy(&dl->meta.bound, &sl->meta.bound, sizeof(sl->meta.bound)); - dl->meta.bound.name = pcb_strdup(sl->meta.bound.name); + dl->name = pcb_strdup(sl->name); dl->comb = sl->comb; if (dl->meta.bound.real != NULL) pcb_layer_link_trees(dl, dl->meta.bound.real); @@ -586,13 +586,13 @@ else if (pcb != NULL) { /* copying from buffer to board */ memcpy(&dl->meta.bound, &sl->meta.bound, sizeof(sl->meta.bound)); - dl->meta.bound.name = pcb_strdup(sl->meta.bound.name); + dl->name = pcb_strdup(sl->name); dl->meta.bound.real = pcb_layer_resolve_binding(pcb, sl); dl->comb = sl->comb; if (dl->meta.bound.real == NULL) { if (!(dl->meta.bound.type & PCB_LYT_VIRTUAL)) { - const char *name = dl->meta.bound.name; + const char *name = dl->name; if (name == NULL) name = ""; pcb_message(PCB_MSG_WARNING, "Couldn't bind a layer %s of subcricuit while placing it\n", name); } @@ -605,7 +605,7 @@ memcpy(&dl->meta.bound, &sl->meta.bound, sizeof(sl->meta.bound)); dl->meta.bound.real = NULL; - dl->meta.bound.name = pcb_strdup(sl->meta.bound.name); + dl->name = pcb_strdup(sl->name); dl->comb = sl->comb; } Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 12013) +++ trunk/src/object_act.c (revision 12014) @@ -130,7 +130,7 @@ int i; layer = NULL; for (i = 0; i < pcb_max_layer; i++) - if (strcmp(PCB->Data->Layer[i].meta.real.name, layername) == 0) { + if (strcmp(PCB->Data->Layer[i].name, layername) == 0) { layer = &(PCB->Data->Layer[i]); break; } Index: trunk/src_plugins/diag/diag.c =================================================================== --- trunk/src_plugins/diag/diag.c (revision 12013) +++ trunk/src_plugins/diag/diag.c (revision 12014) @@ -172,7 +172,7 @@ printf("All %d bottom copper layers are:\n", used); for(n = 0; n < used; n++) { pcb_layer_id_t layer_id = arr[n]; - printf(" [%lx] %s \n", layer_id, PCB->Data->Layer[layer_id].meta.real.name); + printf(" [%lx] %s \n", layer_id, PCB->Data->Layer[layer_id].name); } /* query by groups (physical layers): any copper in group */ @@ -183,7 +183,7 @@ printf(" group %ld (%d layers)\n", group_id, PCB->LayerGroups.grp[group_id].len); for(n = 0; n < PCB->LayerGroups.grp[group_id].len; n++) { pcb_layer_id_t layer_id = PCB->LayerGroups.grp[group_id].lid[n]; - printf(" [%lx] %s\n", layer_id, PCB->Data->Layer[layer_id].meta.real.name); + printf(" [%lx] %s\n", layer_id, PCB->Data->Layer[layer_id].name); } } Index: trunk/src_plugins/diag/integrity.c =================================================================== --- trunk/src_plugins/diag/integrity.c (revision 12013) +++ trunk/src_plugins/diag/integrity.c (revision 12014) @@ -47,7 +47,7 @@ do { \ if (!(ly)->is_bound) { \ if (((ly)->meta.real.Attributes.Number > 0) && ((ly)->meta.real.Attributes.List == NULL)) \ - pcb_message(PCB_MSG_ERROR, CHK "%s layer %s broken empty attribute list\n", whose, (ly)->meta.real.name); \ + pcb_message(PCB_MSG_ERROR, CHK "%s layer %s broken empty attribute list\n", whose, (ly)->name); \ } \ } while(0) @@ -197,8 +197,8 @@ /* check layers */ if (data->Layer[n].parent != data) - pcb_message(PCB_MSG_ERROR, CHK "%s layer %ld/%s parent proken (%p != %p)\n", whose, n, data->Layer[n].meta.real.name, data->Layer[n].parent, data); - if (name_chk && ((data->Layer[n].meta.real.name == NULL) || (*data->Layer[n].meta.real.name == '\0'))) + pcb_message(PCB_MSG_ERROR, CHK "%s layer %ld/%s parent proken (%p != %p)\n", whose, n, data->Layer[n].name, data->Layer[n].parent, data); + if (name_chk && ((data->Layer[n].name == NULL) || (*data->Layer[n].name == '\0'))) pcb_message(PCB_MSG_ERROR, CHK "%s layer %ld has invalid name\n", whose, n); chk_layer_attr(&data->Layer[n]); Index: trunk/src_plugins/dialogs/dlg_layer_binding.c =================================================================== --- trunk/src_plugins/dialogs/dlg_layer_binding.c (revision 12013) +++ trunk/src_plugins/dialogs/dlg_layer_binding.c (revision 12014) @@ -93,7 +93,7 @@ #define layer_name_mismatch(w, layer) \ -((ctx->attrs[w->name].default_val.str_value == NULL) || (strcmp(layer->meta.bound.name, ctx->attrs[w->name].default_val.str_value) != 0)) +((ctx->attrs[w->name].default_val.str_value == NULL) || (strcmp(layer->name, ctx->attrs[w->name].default_val.str_value) != 0)) static void lb_data2dialog(void *hid_ctx, lb_ctx_t *ctx) { @@ -114,7 +114,7 @@ /* name and type */ if (layer_name_mismatch(w, layer)) - PCB_DAD_SET_VALUE(hid_ctx, w->name, str_value, pcb_strdup(layer->meta.bound.name)); + PCB_DAD_SET_VALUE(hid_ctx, w->name, str_value, pcb_strdup(layer->name)); PCB_DAD_SET_VALUE(hid_ctx, w->comp, int_value, layer->comb); @@ -158,8 +158,8 @@ pcb_layer_t *layer = ctx->data->Layer + n; if (layer_name_mismatch(w, layer)) { - free((char *)layer->meta.bound.name); - layer->meta.bound.name = pcb_strdup(ctx->attrs[w->name].default_val.str_value); + free((char *)layer->name); + layer->name = pcb_strdup(ctx->attrs[w->name].default_val.str_value); } layer->comb = ctx->attrs[w->comp].default_val.int_value; @@ -225,7 +225,7 @@ ctx.widx = malloc(sizeof(lb_widx_t) * ctx.data->LayerN); ctx.layer_names = calloc(sizeof(char *), PCB->Data->LayerN+2); for(n = 0; n < PCB->Data->LayerN; n++) - ctx.layer_names[n] = PCB->Data->Layer[n].meta.real.name; + ctx.layer_names[n] = PCB->Data->Layer[n].name; ctx.no_layer = n; ctx.layer_names[n] = "invalid/unbound"; n++; Index: trunk/src_plugins/draw_csect/draw_csect.c =================================================================== --- trunk/src_plugins/draw_csect/draw_csect.c (revision 12013) +++ trunk/src_plugins/draw_csect/draw_csect.c (revision 12014) @@ -465,7 +465,7 @@ if (lid == drag_lid) continue; - t = dtext_bg(gc, x, y, 200, 0, l->meta.real.name, COLOR_BG, l->meta.real.color); + t = dtext_bg(gc, x, y, 200, 0, l->name, COLOR_BG, l->meta.real.color); pcb_text_bbox(pcb_font(PCB, 0, 1), t); if (l->comb & PCB_LYC_SUB) { dhrect(PCB_COORD_TO_MM(t->BoundingBox.X1), y, PCB_COORD_TO_MM(t->BoundingBox.X2)+1, y+4, 1.2, 0, 0, 0, OMIT_NONE); @@ -473,7 +473,7 @@ } if (redraw_text) - t = dtext_bg(gc, x, y, 200, 0, l->meta.real.name, COLOR_BG, l->meta.real.color); + t = dtext_bg(gc, x, y, 200, 0, l->name, COLOR_BG, l->meta.real.color); else dhrect(PCB_COORD_TO_MM(t->BoundingBox.X1), y, PCB_COORD_TO_MM(t->BoundingBox.X2)+1, y+4, 0.25, 0, 0, 0, OMIT_NONE); @@ -528,7 +528,7 @@ } else if (drag_lid >= 0) { pcb_layer_t *l = &PCB->Data->Layer[drag_lid]; - draw_hover_label(l->meta.real.name); + draw_hover_label(l->name); mark_grp(cy, PCB_LYT_COPPER | PCB_LYT_MASK | PCB_LYT_PASTE | PCB_LYT_SILK, MARK_GRP_FRAME); mark_layer_order(cx); } @@ -728,7 +728,7 @@ else if (check_layer_del(drag_lid) == 0) { g = &PCB->LayerGroups.grp[gactive]; pcb_layer_move_to_group(PCB, drag_lid, gactive); - pcb_message(PCB_MSG_INFO, "moved layer %s to group %d\n", l->meta.real.name, gactive); + pcb_message(PCB_MSG_INFO, "moved layer %s to group %d\n", l->name, gactive); move_layer_to_its_place:; if (lactive_idx < g->len-1) { memmove(g->lid + lactive_idx + 1, g->lid + lactive_idx, (g->len - 1 - lactive_idx) * sizeof(pcb_layer_id_t)); @@ -806,7 +806,7 @@ for(i = 0; i < g->len; i++) { pcb_layer_id_t lid = g->lid[i]; pcb_layer_t *l = &PCB->Data->Layer[lid]; - printf(" [%ld] %s comb=", lid, l->meta.real.name); + printf(" [%ld] %s comb=", lid, l->name); if (l->comb & PCB_LYC_SUB) printf(" sub"); if (l->comb & PCB_LYC_AUTO) printf(" auto"); printf("\n"); Index: trunk/src_plugins/export_dsn/dsn.c =================================================================== --- trunk/src_plugins/export_dsn/dsn.c (revision 12013) +++ trunk/src_plugins/export_dsn/dsn.c (revision 12014) @@ -190,12 +190,12 @@ if (group < top_group) { pcb_message(PCB_MSG_WARNING, "WARNING! DSN export moved layer group with the \"%s\" layer " - "after the top layer group. DSN files must have the top " "layer first.\n", first_layer->meta.real.name); + "after the top layer group. DSN files must have the top " "layer first.\n", first_layer->name); } if (group > bot_group) { pcb_message(PCB_MSG_WARNING, "WARNING! DSN export moved layer group with the \"%s\" layer " - "before the bottom layer group. DSN files must have the " "bottom layer last.\n", first_layer->meta.real.name); + "before the bottom layer group. DSN files must have the " "bottom layer last.\n", first_layer->name); } PCB_COPPER_GROUP_LOOP(PCB->Data, group); @@ -202,7 +202,7 @@ { if (entry > 0) { pcb_message(PCB_MSG_WARNING, "WARNING! DSN export squashed layer \"%s\" into layer " - "\"%s\", DSN files do not have layer groups.", layer->meta.real.name, first_layer->meta.real.name); + "\"%s\", DSN files do not have layer groups.", layer->name, first_layer->name); } } PCB_END_LOOP; @@ -230,12 +230,12 @@ for (int ni = 0; ni < PCB->NetlistLib[PCB_NETLIST_EDITED].MenuN; ni++) { char *nname; nname = PCB->NetlistLib[PCB_NETLIST_EDITED].Menu[ni].Name + 2; - if (!strcmp(layer->meta.real.name, nname)) { + if (!strcmp(layer->name, nname)) { g_free(layeropts); - layeropts = pcb_strdup_printf("(type power) (use_net \"%s\")", layer->meta.real.name); + layeropts = pcb_strdup_printf("(type power) (use_net \"%s\")", layer->name); } } - fprintf(fp, " (layer \"%s\"\n", layer->meta.real.name); + fprintf(fp, " (layer \"%s\"\n", layer->name); fprintf(fp, " %s\n", layeropts); fprintf(fp, " )\n"); g_free(layeropts); @@ -317,7 +317,7 @@ if (!pin->Number) { /* if pin is null just make it a keepout */ for (GList * iter = layerlist; iter; iter = g_list_next(iter)) { pcb_layer_t *lay = iter->data; - pcb_fprintf(fp, " (keepout \"\" (circle \"%s\" %.6mm %.6mm %.6mm))\n", lay->meta.real.name, pinthickness, lx, ly); + pcb_fprintf(fp, " (keepout \"\" (circle \"%s\" %.6mm %.6mm %.6mm))\n", lay->name, pinthickness, lx, ly); } } else { @@ -358,7 +358,7 @@ pcb_layer_t *lay; lay = g_list_nth_data(layerlist, partside); pcb_fprintf(fp, " (keepout \"\" (rect \"%s\" %.6mm %.6mm %.6mm %.6mm))\n", - lay->meta.real.name, lx - xlen / 2, ly - ylen / 2, lx + xlen / 2, ly + ylen / 2); + lay->name, lx - xlen / 2, ly - ylen / 2, lx + xlen / 2, ly + ylen / 2); } else { pcb_fprintf(fp, " (pin %s \"%s\" %.6mm %.6mm)\n", padstack, pad->Number, lx, ly); @@ -400,7 +400,7 @@ dim2 = dim2l; pcb_fprintf(fp, " (shape (rect \"%s\" %.6mm %.6mm %.6mm %.6mm))\n", - ((pcb_layer_t *) (g_list_first(layerlist)->data))->meta.real.name, dim1 / -2, dim2 / -2, dim1 / 2, dim2 / 2); + ((pcb_layer_t *) (g_list_first(layerlist)->data))->name, dim1 / -2, dim2 / -2, dim1 / 2, dim2 / 2); } else if (sscanf(padstack, "Th_square_%ld", &dim1l) == 1) { dim1 = dim1l; @@ -477,7 +477,7 @@ { pcb_fprintf(fp, " (wire (path %s %.6mm %.6mm %.6mm %.6mm %.6mm)\n", - lay->meta.real.name, line->Thickness, line->Point1.X, + lay->name, line->Thickness, line->Point1.X, (PCB->MaxHeight - line->Point1.Y), line->Point2.X, (PCB->MaxHeight - line->Point2.Y)); fprintf(fp, " (type protect))\n"); } Index: trunk/src_plugins/export_fidocadj/fidocadj.c =================================================================== --- trunk/src_plugins/export_fidocadj/fidocadj.c (revision 12013) +++ trunk/src_plugins/export_fidocadj/fidocadj.c (revision 12014) @@ -199,7 +199,7 @@ for(lid = 0; lid < pcb_max_layer; lid++) { pcb_layer_t *ly = PCB->Data->Layer+lid; unsigned int lflg = pcb_layer_flags(PCB, lid); - int fidoly = layer_map(lflg, &fidoly_next, &layer_warned, ly->meta.real.name); + int fidoly = layer_map(lflg, &fidoly_next, &layer_warned, ly->name); if (fidoly < 0) continue; Index: trunk/src_plugins/export_stat/stat.c =================================================================== --- trunk/src_plugins/export_stat/stat.c (revision 12013) +++ trunk/src_plugins/export_stat/stat.c (revision 12014) @@ -177,7 +177,7 @@ lgs = lgss + lgid; fprintf(f, " ha:layer_%d {\n", lid); - fprintf(f, " name={%s}\n", l->meta.real.name); + fprintf(f, " name={%s}\n", l->name); fprintf(f, " empty=%s\n", empty ? "yes" : "no"); fprintf(f, " flags=%x\n", lflg); fprintf(f, " grp=%ld\n", lgid); Index: trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_pkg/layout/layers.c =================================================================== --- trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_pkg/layout/layers.c (revision 12013) +++ trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_pkg/layout/layers.c (revision 12014) @@ -35,7 +35,7 @@ if (name == NULL) return -2; for(n = 0; n < PCB_MAX_LAYER + 2; n++) - if ((PCB->Data->Layer[n].meta.real.name != NULL) && (strcmp(PCB->Data->Layer[n].meta.real.name, name) == 0)) + if ((PCB->Data->Layer[n].name != NULL) && (strcmp(PCB->Data->Layer[n].name, name) == 0)) return n; return -1; } @@ -53,7 +53,7 @@ const char *layout_layer_name(int layer) { layer_check(layer)(""); - return PCB->Data->Layer[layer].meta.real.name; + return PCB->Data->Layer[layer].name; } const char *layout_layer_color(int layer) Index: trunk/src_plugins/hid_batch/batch.c =================================================================== --- trunk/src_plugins/hid_batch/batch.c (revision 12013) +++ trunk/src_plugins/hid_batch/batch.c (revision 12014) @@ -87,7 +87,7 @@ unsigned int gflg = pcb_layergrp_flags(PCB, lg); for (j = 0; j < PCB_MAX_LAYER; j++) putchar(j == lg ? '#' : '-'); - printf(" %c %s\n", (gflg & PCB_LYT_TOP) ? 'c' : (gflg & PCB_LYT_BOTTOM) ? 's' : '-', PCB->Data->Layer[i].meta.real.name); + printf(" %c %s\n", (gflg & PCB_LYT_TOP) ? 'c' : (gflg & PCB_LYT_BOTTOM) ? 's' : '-', PCB->Data->Layer[i].name); } return 0; } Index: trunk/src_plugins/hid_lesstif/menu.c =================================================================== --- trunk/src_plugins/hid_lesstif/menu.c (revision 12013) +++ trunk/src_plugins/hid_lesstif/menu.c (revision 12014) @@ -164,8 +164,8 @@ } stdarg_n = 0; - if (i < PCB_MAX_LAYER && PCB->Data->Layer[i].meta.real.name) { - XmString s = XmStringCreatePCB(PCB->Data->Layer[i].meta.real.name); + if (i < PCB_MAX_LAYER && PCB->Data->Layer[i].name) { + XmString s = XmStringCreatePCB(PCB->Data->Layer[i].name); stdarg(XmNlabelString, s); } if (!lb->is_pick) { @@ -201,7 +201,7 @@ name = "Silk"; break; default: - name = PCB->Data->Layer[current_layer].meta.real.name; + name = PCB->Data->Layer[current_layer].name; break; } stdarg_n = 0; @@ -317,7 +317,7 @@ name = "Silk"; break; default: - name = PCB->Data->Layer[layer].meta.real.name; + name = PCB->Data->Layer[layer].name; break; } stdarg_n = 0; Index: trunk/src_plugins/io_autotrax/write.c =================================================================== --- trunk/src_plugins/io_autotrax/write.c (revision 12013) +++ trunk/src_plugins/io_autotrax/write.c (revision 12014) @@ -449,7 +449,7 @@ pcb_cardinal_t current_layer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { int local_flag = 0; linelist_foreach(&layer->Line, &it, line) { pcb_fprintf(FP, "FT\r\n"); @@ -472,7 +472,7 @@ pcb_cardinal_t current_layer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) ){ /*|| (layer->meta.real.name && *layer->meta.real.name)) { */ + if (!pcb_layer_is_empty_(PCB, layer) ){ /*|| (layer->name && *layer->name)) { */ int local_flag = 0; arclist_foreach(&layer->Arc, &it, arc) { pcb_fprintf(FP, "FA\r\n"); @@ -507,7 +507,7 @@ default_stroke_thickness = 200000; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) ) { /*|| (layer->meta.real.name && *layer->meta.real.name)) {*/ + if (!pcb_layer_is_empty_(PCB, layer) ) { /*|| (layer->name && *layer->name)) {*/ local_flag = 0; textlist_foreach(&layer->Text, &it, text) { if (current_layer < 9) { /* copper or silk layer text */ @@ -689,7 +689,7 @@ pcb_coord_t minx, miny, maxx, maxy; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) ) { /*|| (layer->meta.real.name && *layer->meta.real.name)) {*/ + if (!pcb_layer_is_empty_(PCB, layer) ) { /*|| (layer->name && *layer->name)) {*/ int local_flag = 0; polylist_foreach(&layer->Polygon, &it, polygon) { Index: trunk/src_plugins/io_kicad/write.c =================================================================== --- trunk/src_plugins/io_kicad/write.c (revision 12013) +++ trunk/src_plugins/io_kicad/write.c (revision 12014) @@ -555,10 +555,10 @@ pcb_cardinal_t currentLayer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { /* fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->meta.real.name)); + pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->name)); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->Attributes, "\t"); */ @@ -597,10 +597,10 @@ int copperStartY; /* used for mapping geda copper arcs onto kicad copper lines */ /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { /* fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->meta.real.name)); + pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->name)); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->Attributes, "\t"); */ @@ -678,10 +678,10 @@ pcb_cardinal_t currentLayer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { /* fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->meta.real.name)); + pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->name)); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->Attributes, "\t"); */ @@ -1064,7 +1064,7 @@ pcb_cardinal_t currentLayer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { int localFlag = 0; polylist_foreach(&layer->Polygon, &it, polygon) { if (polygon->HoleIndexN == 0) { /* no holes defined within polygon, which we implement support for first */ Index: trunk/src_plugins/io_kicad_legacy/write.c =================================================================== --- trunk/src_plugins/io_kicad_legacy/write.c (revision 12013) +++ trunk/src_plugins/io_kicad_legacy/write.c (revision 12014) @@ -565,10 +565,10 @@ pcb_cardinal_t currentLayer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { /* fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->meta.real.name)); + pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->name)); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->Attributes, "\t"); */ @@ -609,10 +609,10 @@ int copperStartY; /* used for mapping geda copper arcs onto kicad copper lines */ /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { /* fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->meta.real.name)); + pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->name)); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->Attributes, "\t"); */ @@ -687,10 +687,10 @@ pcb_cardinal_t currentLayer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { /* fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->meta.real.name)); + pcb_print_quoted_string(FP, (char *) PCB_EMPTY(layer->name)); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->Attributes, "\t"); */ @@ -1218,7 +1218,7 @@ pcb_cardinal_t currentLayer = number; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { int localFlag = 0; polylist_foreach(&layer->Polygon, &it, polygon) { if (polygon->HoleIndexN == 0) { /* no holes defined within polygon, which we implement support for first */ Index: trunk/src_plugins/io_lihata/read.c =================================================================== --- trunk/src_plugins/io_lihata/read.c (revision 12013) +++ trunk/src_plugins/io_lihata/read.c (revision 12014) @@ -630,7 +630,7 @@ if (bound) { ly->is_bound = 1; - ly->meta.bound.name = pcb_strdup(grp->name); + ly->name = pcb_strdup(grp->name); parse_int(&dt->Layer[layer_id].meta.bound.stack_offs, lht_dom_hash_get(grp, "stack_offs")); parse_layer_type(&dt->Layer[layer_id].meta.bound.type, lht_dom_hash_get(grp, "type"), "bound layer"); if (pcb != NULL) { @@ -638,19 +638,19 @@ if (dt->Layer[layer_id].meta.bound.real != NULL) pcb_layer_link_trees(&dt->Layer[layer_id], dt->Layer[layer_id].meta.bound.real); else if (!(dt->Layer[layer_id].meta.bound.type & PCB_LYT_VIRTUAL)) - pcb_message(PCB_MSG_WARNING, "Can't bind subcircuit layer %s: can't find anything similar on the current board\n", dt->Layer[layer_id].meta.bound.name); + pcb_message(PCB_MSG_WARNING, "Can't bind subcircuit layer %s: can't find anything similar on the current board\n", dt->Layer[layer_id].name); dt->via_tree = subc_parent->via_tree; } } else { /* real */ - ly->meta.real.name = pcb_strdup(grp->name); + ly->name = pcb_strdup(grp->name); parse_bool(&ly->meta.real.vis, lht_dom_hash_get(grp, "visible")); if (pcb != NULL) { int grp_id; parse_int(&grp_id, lht_dom_hash_get(grp, "group")); dt->Layer[layer_id].grp = grp_id; - /* pcb_trace("parse_data_layer name: %d,%d '%s' grp=%d\n", layer_id, dt->LayerN-1, ly->meta.real.name, grp_id);*/ + /* pcb_trace("parse_data_layer name: %d,%d '%s' grp=%d\n", layer_id, dt->LayerN-1, ly->name, grp_id);*/ } } @@ -885,7 +885,7 @@ for(n = 0; n < pcb->Data->LayerN - 2; n++) { pcb_layer_t *l = &pcb->Data->Layer[n]; pcb_layergrp_id_t grp = l->grp; - /*pcb_trace("********* l=%d %s g=%ld (top=%ld bottom=%ld)\n", n, l->meta.real.name, grp, top_silk, bottom_silk);*/ + /*pcb_trace("********* l=%d %s g=%ld (top=%ld bottom=%ld)\n", n, l->name, grp, top_silk, bottom_silk);*/ l->grp = -1; if (grp == bottom_silk) @@ -897,11 +897,11 @@ /* pcb_trace(" add %ld\n", g - pcb->LayerGroups.grp);*/ if (g != NULL) { pcb_layer_add_in_group_(pcb, g, g - pcb->LayerGroups.grp, n); - if (strcmp(l->meta.real.name, "outline") == 0) + if (strcmp(l->name, "outline") == 0) pcb_layergrp_fix_turn_to_outline(g); } else - pcb_message(PCB_MSG_ERROR, "failed to create layer %s\n", l->meta.real.name); + pcb_message(PCB_MSG_ERROR, "failed to create layer %s\n", l->name); } pcb_layergrp_fix_old_outline(pcb); Index: trunk/src_plugins/io_lihata/write.c =================================================================== --- trunk/src_plugins/io_lihata/write.c (revision 12013) +++ trunk/src_plugins/io_lihata/write.c (revision 12014) @@ -198,7 +198,7 @@ int t = PCB_FLAG_THERM_GET(layer, &fh); if (t != 0) { const char *name; - txt = lht_dom_node_alloc(LHT_TEXT, PCB->Data->Layer[layer].meta.real.name); + txt = lht_dom_node_alloc(LHT_TEXT, PCB->Data->Layer[layer].name); name = io_lihata_thermal_style(t); if (name != NULL) txt->data.text.value = pcb_strdup(name); @@ -556,7 +556,7 @@ pcb_text_t *tx; int added = 0; - obj = lht_dom_node_alloc(LHT_HASH, layer->meta.real.name); + obj = lht_dom_node_alloc(LHT_HASH, layer->name); if (!layer->is_bound) { lht_dom_hash_put(obj, build_text("visible", layer->meta.real.vis ? "1" : "0")); Index: trunk/src_plugins/io_pcb/file.c =================================================================== --- trunk/src_plugins/io_pcb/file.c (revision 12013) +++ trunk/src_plugins/io_pcb/file.c (revision 12014) @@ -508,9 +508,9 @@ pcb_polygon_t *polygon; /* write information about non empty layers */ - if (!pcb_layer_is_empty_(PCB, layer) || (layer->meta.real.name && *layer->meta.real.name)) { + if (!pcb_layer_is_empty_(PCB, layer) || (layer->name && *layer->name)) { fprintf(FP, "Layer(%i ", (int) Number + 1); - pcb_print_quoted_string(FP, layer_name_hack(layer, PCB_EMPTY(layer->meta.real.name))); + pcb_print_quoted_string(FP, layer_name_hack(layer, PCB_EMPTY(layer->name))); fputs(")\n(\n", FP); WriteAttributeList(FP, &layer->meta.real.Attributes, "\t"); @@ -745,7 +745,7 @@ if (pcb->Data->LayerN >= PCB_MAX_LAYER) return -1; lid = pcb->Data->LayerN; - pcb->Data->Layer[lid].meta.real.name = pcb_strdup(name); + pcb->Data->Layer[lid].name = pcb_strdup(name); pcb->Data->Layer[lid].parent = pcb->Data; pcb->Data->LayerN++; return lid; @@ -756,8 +756,8 @@ pcb_layer_id_t lid; for(lid = 0; lid < PCB_MAX_LAYER; lid++) { if (pcb->Data->Layer[lid].grp == 0) { - free((char *)pcb->Data->Layer[lid].meta.real.name); - pcb->Data->Layer[lid].meta.real.name = pcb_strdup(name); + free((char *)pcb->Data->Layer[lid].name); + pcb->Data->Layer[lid].name = pcb_strdup(name); return lid; } } @@ -772,7 +772,7 @@ pcb_layer_group_setup_default(&pcb->LayerGroups); for(lid = 0; lid < pcb->Data->LayerN; lid++) { - if (strcmp(pcb->Data->Layer[lid].meta.real.name, "silk") == 0) { + if (strcmp(pcb->Data->Layer[lid].name, "silk") == 0) { if (silk < 0) pcb_layergrp_list(PCB, PCB_LYT_BOTTOM | PCB_LYT_SILK, &gid, 1); else @@ -781,9 +781,9 @@ silk = lid; } else { - if (*pcb->Data->Layer[lid].meta.real.name == '\0') { - free((char *)pcb->Data->Layer[lid].meta.real.name); - pcb->Data->Layer[lid].meta.real.name = pcb_strdup("anonymous"); + if (*pcb->Data->Layer[lid].name == '\0') { + free((char *)pcb->Data->Layer[lid].name); + pcb->Data->Layer[lid].name = pcb_strdup("anonymous"); } if (lid == 0) pcb_layergrp_list(PCB, PCB_LYT_TOP | PCB_LYT_COPPER, &gid, 1); Index: trunk/src_plugins/io_pcb/parse_y.c =================================================================== --- trunk/src_plugins/io_pcb/parse_y.c (revision 12013) +++ trunk/src_plugins/io_pcb/parse_y.c (revision 12014) @@ -2240,9 +2240,9 @@ Layer->parent = yyData; /* memory for name is already allocated */ - if (Layer->meta.real.name != NULL) - free((char*)Layer->meta.real.name); - Layer->meta.real.name = (yyvsp[-3].string); /* shouldn't this be strdup()'ed ? */ + if (Layer->name != NULL) + free((char*)Layer->name); + Layer->name = (yyvsp[-3].string); /* shouldn't this be strdup()'ed ? */ LayerFlag[(yyvsp[-4].integer)-1] = pcb_true; if (yyData->LayerN < (yyvsp[-4].integer)) yyData->LayerN = (yyvsp[-4].integer); Index: trunk/src_plugins/io_pcb/parse_y.y =================================================================== --- trunk/src_plugins/io_pcb/parse_y.y (revision 12013) +++ trunk/src_plugins/io_pcb/parse_y.y (revision 12014) @@ -893,9 +893,9 @@ Layer->parent = yyData; /* memory for name is already allocated */ - if (Layer->meta.real.name != NULL) - free((char*)Layer->meta.real.name); - Layer->meta.real.name = $4; /* shouldn't this be strdup()'ed ? */ + if (Layer->name != NULL) + free((char*)Layer->name); + Layer->name = $4; /* shouldn't this be strdup()'ed ? */ LayerFlag[$3-1] = pcb_true; if (yyData->LayerN < $3) yyData->LayerN = $3; Index: trunk/src_plugins/lib_gtk_common/dlg_propedit.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_propedit.c (revision 12013) +++ trunk/src_plugins/lib_gtk_common/dlg_propedit.c (revision 12014) @@ -311,7 +311,7 @@ for (n = 0; n < pcb_max_layer; n++) { preview_pcb.Data->Layer[n].meta.real.vis = 1; preview_pcb.Data->Layer[n].meta.real.color = pcb_strdup(PCB->Data->Layer[n].meta.real.color); - preview_pcb.Data->Layer[n].meta.real.name = pcb_strdup("preview dummy"); + preview_pcb.Data->Layer[n].name = pcb_strdup("preview dummy"); } Index: trunk/src_plugins/lib_gtk_common/wt_layersel.c =================================================================== --- trunk/src_plugins/lib_gtk_common/wt_layersel.c (revision 12013) +++ trunk/src_plugins/lib_gtk_common/wt_layersel.c (revision 12014) @@ -535,7 +535,7 @@ for(n = 0; n < grp->len; n++) { pcb_layer_t *l = pcb_get_layer(grp->lid[n]); if (l != NULL) { - GtkWidget *wl = build_layer(lsg, &lsg->layer[n], l->meta.real.name, grp->lid[n], NULL); + GtkWidget *wl = build_layer(lsg, &lsg->layer[n], l->name, grp->lid[n], NULL); gtk_box_pack_start(GTK_BOX(lsg->layers), wl, TRUE, TRUE, 1); lsg->layer[n].lid = grp->lid[n]; } @@ -606,7 +606,7 @@ gtk_box_pack_start(GTK_BOX(ls->grp_box), build_group_start(ls, lsg, "UI", 0, &ls->grp_ui), FALSE, FALSE, 0); for(n = 0; n < vtlayer_len(&pcb_uilayer); n++) { - gtk_box_pack_start(GTK_BOX(lsg->layers), build_layer(lsg, &lsg->layer[n], pcb_uilayer.array[n].meta.real.name, -1, &pcb_uilayer.array[n].meta.real.color), FALSE, FALSE, 1); + gtk_box_pack_start(GTK_BOX(lsg->layers), build_layer(lsg, &lsg->layer[n], pcb_uilayer.array[n].name, -1, &pcb_uilayer.array[n].meta.real.color), FALSE, FALSE, 1); lsg->layer[n].ev_selected = ev_lyr_no_select; lsg->layer[n].ev_vis = vis_ui; lsg->layer[n].virt_data = n; Index: trunk/src_plugins/lib_gtk_config/gui-config.c =================================================================== --- trunk/src_plugins/lib_gtk_config/gui-config.c (revision 12013) +++ trunk/src_plugins/lib_gtk_config/gui-config.c (revision 12014) @@ -1347,9 +1347,9 @@ sprintf(lnp, "design/default_layer_name[%d]", n); nd = conf_lht_get_at(ctx->dst_role, lnp, 1); layer = &PCB->Data->Layer[n]; - if (strcmp(layer->meta.real.name, nd->data.text.value) != 0) { + if (strcmp(layer->name, nd->data.text.value) != 0) { free(nd->data.text.value); - nd->data.text.value = pcb_strdup(layer->meta.real.name); + nd->data.text.value = pcb_strdup(layer->name); conf_makedirty(ctx->dst_role); } } Index: trunk/src_plugins/lib_hid_common/layer_menu.c =================================================================== --- trunk/src_plugins/lib_hid_common/layer_menu.c (revision 12013) +++ trunk/src_plugins/lib_hid_common/layer_menu.c (revision 12014) @@ -57,7 +57,7 @@ for(n = 0; n < g->len; n++) { pcb_layer_t *l = pcb_get_layer(g->lid[n]); - pcb_snprintf(bn, len_avail, " %s", l->meta.real.name); + pcb_snprintf(bn, len_avail, " %s", l->name); pcb_gui->create_menu(path, "TODO: action", "", "accel", "Layer", cookie); } } Index: trunk/src_plugins/query/query_access.c =================================================================== --- trunk/src_plugins/query/query_access.c (revision 12013) +++ trunk/src_plugins/query/query_access.c (revision 12014) @@ -239,7 +239,7 @@ PCB_QRY_RET_INV(res); switch(fh1) { - case query_fields_name: PCB_QRY_RET_STR(res, l->meta.real.name); + case query_fields_name: PCB_QRY_RET_STR(res, l->name); case query_fields_visible: PCB_QRY_RET_INT(res, l->meta.real.vis); case query_fields_position: PCB_QRY_RET_INT(res, pcb_layer_flags_(PCB, l) & PCB_LYT_ANYWHERE); case query_fields_type: PCB_QRY_RET_INT(res, pcb_layer_flags_(PCB, l) & PCB_LYT_ANYTHING);