Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 19185) +++ trunk/src/layer.c (revision 19186) @@ -921,7 +921,7 @@ return best; } -pcb_layer_t *pcb_layer_new_bound(pcb_data_t *data, pcb_layer_type_t type, const char *name) +pcb_layer_t *pcb_layer_new_bound(pcb_data_t *data, pcb_layer_type_t type, const char *name, const char *purpose) { pcb_layer_t *lay = &data->Layer[data->LayerN++]; @@ -929,6 +929,7 @@ lay->is_bound = 1; lay->name = pcb_strdup(name); lay->meta.bound.type = type; + lay->meta.bound.purpose = purpose; lay->parent.data = data; lay->parent_type = PCB_PARENT_DATA; lay->type = PCB_OBJ_LAYER; Index: trunk/src/layer.h =================================================================== --- trunk/src/layer.h (revision 19185) +++ trunk/src/layer.h (revision 19186) @@ -310,7 +310,7 @@ pcb_layer_t *pcb_layer_resolve_binding(pcb_board_t *pcb, pcb_layer_t *src); /* Allocate a new bound layer within data, set it up, but do not do the binding */ -pcb_layer_t *pcb_layer_new_bound(pcb_data_t *data, pcb_layer_type_t type, const char *name); +pcb_layer_t *pcb_layer_new_bound(pcb_data_t *data, pcb_layer_type_t type, const char *name, const char *purpose); /* Calculate a hash of a bound layer (ingoring its name) */ unsigned int pcb_layer_hash_bound(pcb_layer_t *ly, pcb_bool smirror); Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 19185) +++ trunk/src/obj_subc.c (revision 19186) @@ -164,7 +164,7 @@ } if (sc->aux_layer == NULL) - sc->aux_layer = pcb_layer_new_bound(sc->data, PCB_LYT_VIRTUAL | PCB_LYT_NOEXPORT | PCB_LYT_MISC | PCB_LYT_TOP, SUBC_AUX_NAME); + sc->aux_layer = pcb_layer_new_bound(sc->data, PCB_LYT_VIRTUAL | PCB_LYT_NOEXPORT | PCB_LYT_MISC | PCB_LYT_TOP, SUBC_AUX_NAME, NULL); } /* Looking up aux objects for determining orientation/origin of a subc @@ -511,17 +511,17 @@ { if (top_pads > 0) { if (dst_top_paste == NULL) - dst_top_paste = pcb_layer_new_bound(sc->data, PCB_LYT_TOP | PCB_LYT_PASTE, "top paste"); + dst_top_paste = pcb_layer_new_bound(sc->data, PCB_LYT_TOP | PCB_LYT_PASTE, "top paste", NULL); if (dst_top_mask == NULL) { - dst_top_mask = pcb_layer_new_bound(sc->data, PCB_LYT_TOP | PCB_LYT_MASK, "top mask"); + dst_top_mask = pcb_layer_new_bound(sc->data, PCB_LYT_TOP | PCB_LYT_MASK, "top mask", NULL); dst_top_mask->comb = PCB_LYC_SUB; } } if (bottom_pads > 0) { if (dst_bottom_paste == NULL) - dst_bottom_paste = pcb_layer_new_bound(sc->data, PCB_LYT_BOTTOM | PCB_LYT_PASTE, "bottom paste"); + dst_bottom_paste = pcb_layer_new_bound(sc->data, PCB_LYT_BOTTOM | PCB_LYT_PASTE, "bottom paste", NULL); if (dst_bottom_mask == NULL) { - dst_bottom_mask = pcb_layer_new_bound(sc->data, PCB_LYT_BOTTOM | PCB_LYT_MASK, "bottom mask"); + dst_bottom_mask = pcb_layer_new_bound(sc->data, PCB_LYT_BOTTOM | PCB_LYT_MASK, "bottom mask", NULL); dst_bottom_mask->comb = PCB_LYC_SUB; } } @@ -550,7 +550,7 @@ pcb_attribute_put(&sc->Attributes, "refdes", "U0"); if (!has_refdes_text) { if (dst_top_silk == NULL) - dst_top_silk = pcb_layer_new_bound(sc->data, PCB_LYT_TOP | PCB_LYT_SILK, "top-silk"); + dst_top_silk = pcb_layer_new_bound(sc->data, PCB_LYT_TOP | PCB_LYT_SILK, "top-silk", NULL); if (dst_top_silk != NULL) pcb_text_new(dst_top_silk, pcb_font(PCB, 0, 0), buffer->X, buffer->Y, 0, 100, "%a.parent.refdes%", pcb_flag_make(PCB_FLAG_DYNTEXT | PCB_FLAG_FLOATER)); else Index: trunk/src_plugins/io_kicad/read.c =================================================================== --- trunk/src_plugins/io_kicad/read.c (revision 19185) +++ trunk/src_plugins/io_kicad/read.c (revision 19186) @@ -1115,9 +1115,7 @@ } else { /* registering a new layer in buffer */ -#warning layer TODO: -/* pcb_layer_t *ly = pcb_layer_new_bound(st->fp_data, mask, kicad_name, -1, purpose);*/ - pcb_layer_t *ly = pcb_layer_new_bound(st->fp_data, mask, kicad_name); + pcb_layer_t *ly = pcb_layer_new_bound(st->fp_data, mask, kicad_name, purpose); id = ly - st->fp_data->Layer; } htsi_set(&st->layer_k2i, pcb_strdup(kicad_name), id);