Index: trunk/src/layer_grp.c =================================================================== --- trunk/src/layer_grp.c (revision 8641) +++ trunk/src/layer_grp.c (revision 8642) @@ -594,6 +594,24 @@ /* NEWG(g, PCB_LYT_INTERN | PCB_LYT_OUTLINE, "outline");*/ } + + +int pcb_layergrp_rename_(pcb_layer_group_t *grp, char *name) +{ + free(grp->name); + grp->name = name; + pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + return 0; +} + +int pcb_layergrp_rename(pcb_board_t *pcb, pcb_layergrp_id_t gid, const char *name) +{ + pcb_layer_group_t *grp = pcb_get_layergrp(pcb, gid); + if (grp == NULL) return -1; + return pcb_layergrp_rename_(grp, pcb_strdup(name)); +} + + static pcb_layergrp_id_t pcb_layergrp_get_cached(pcb_board_t *pcb, pcb_layer_id_t *cache, unsigned int loc, unsigned int typ) { pcb_layer_group_t *g; Index: trunk/src/layer_grp.h =================================================================== --- trunk/src/layer_grp.h (revision 8641) +++ trunk/src/layer_grp.h (revision 8642) @@ -108,6 +108,13 @@ void pcb_layergrp_inhibit_inc(void); void pcb_layergrp_inhibit_dec(void); +/* Rename an existing layer by idx */ +int pcb_layergrp_rename(pcb_board_t *pcb, pcb_layergrp_id_t gid, const char *lname); + +/* changes the name of a layer; memory has to be already allocated */ +int pcb_layergrp_rename_(pcb_layer_group_t *grp, char *name); + + /********* OBSOLETE functions, do not use in new code *********/ /* parses the group definition string which is a colon separated list of comma separated layer numbers (1,2,b:4,6,8,t); oldfmt is 0 or 1