Index: trunk/src/change_act.c =================================================================== --- trunk/src/change_act.c (revision 29671) +++ trunk/src/change_act.c (revision 29672) @@ -525,7 +525,7 @@ case F_Layer: name = pcb_hid_prompt_for(PCB_ACT_HIDLIB, "Enter the layer name:", PCB_EMPTY(PCB_CURRLAYER(PCB_ACT_BOARD)->name), "Layer name"); /* NB: pcb_layer_rename_ takes ownership of the passed memory */ - if (name && (pcb_layer_rename_(PCB_CURRLAYER(PCB_ACT_BOARD), name) == 0)) + if (name && (pcb_layer_rename_(PCB_CURRLAYER(PCB_ACT_BOARD), name, 1) == 0)) pcb_board_set_changed_flag(pcb_true); else free(name); Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 29671) +++ trunk/src/gui_act.c (revision 29672) @@ -645,7 +645,7 @@ } else if (strncmp(arg, "name=", 5) == 0) { interactive = 0; - ret |= pcb_layer_rename_(ly, pcb_strdup(arg+5)); + ret |= pcb_layer_rename_(ly, pcb_strdup(arg+5), 1); pcb_board_set_changed_flag(pcb_true); } else if (strncmp(arg, "auto=", 5) == 0) { Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 29671) +++ trunk/src/layer.c (revision 29672) @@ -540,7 +540,7 @@ return id; } -int pcb_layer_rename_(pcb_layer_t *Layer, char *Name) +int pcb_layer_rename_(pcb_layer_t *Layer, char *Name, pcb_bool undoable) { free((char*)Layer->name); Layer->name = Name; @@ -551,12 +551,12 @@ return 0; } -int pcb_layer_rename(pcb_data_t *data, pcb_layer_id_t layer, const char *lname) +int pcb_layer_rename(pcb_data_t *data, pcb_layer_id_t layer, const char *lname, pcb_bool undoable) { - return pcb_layer_rename_(&data->Layer[layer], pcb_strdup(lname)); + return pcb_layer_rename_(&data->Layer[layer], pcb_strdup(lname), undoable); } -int pcb_layer_recolor_(pcb_layer_t *Layer, const pcb_color_t *color) +int pcb_layer_recolor_(pcb_layer_t *Layer, const pcb_color_t *color, pcb_bool undoable) { if (Layer->is_bound) return -1; @@ -568,11 +568,11 @@ return 0; } -int pcb_layer_recolor(pcb_data_t *data, pcb_layer_id_t layer, const char *color) +int pcb_layer_recolor(pcb_data_t *data, pcb_layer_id_t layer, const char *color, pcb_bool undoable) { pcb_color_t clr; pcb_color_load_str(&clr, color); - return pcb_layer_recolor_(&data->Layer[layer], &clr); + return pcb_layer_recolor_(&data->Layer[layer], &clr, undoable); } #undef APPEND Index: trunk/src/layer.h =================================================================== --- trunk/src/layer.h (revision 29671) +++ trunk/src/layer.h (revision 29672) @@ -283,14 +283,14 @@ const pcb_color_t *pcb_layer_default_color(int idx, pcb_layer_type_t lyt); /* Rename/recolor an existing layer by idx */ -int pcb_layer_rename(pcb_data_t *data, pcb_layer_id_t layer, const char *lname); -int pcb_layer_recolor(pcb_data_t *data, pcb_layer_id_t layer, const char *lcolor); +int pcb_layer_rename(pcb_data_t *data, pcb_layer_id_t layer, const char *lname, pcb_bool undoable); +int pcb_layer_recolor(pcb_data_t *data, pcb_layer_id_t layer, const char *lcolor, pcb_bool undoable); /* changes the color of a layer; string has to be allocated by the caller (pcb_strdup) */ -int pcb_layer_rename_(pcb_layer_t *Layer, char *Name); +int pcb_layer_rename_(pcb_layer_t *Layer, char *Name, pcb_bool undoable); /* Low level layer color change, parsed color must be available */ -int pcb_layer_recolor_(pcb_layer_t *Layer, const pcb_color_t *color); +int pcb_layer_recolor_(pcb_layer_t *Layer, const pcb_color_t *color, pcb_bool undoable); /* index is 0..PCB_MAX_LAYER-1. If old_index is -1, a new layer is inserted at that index. If new_index is -1, the specified layer is Index: trunk/src_plugins/dialogs/dlg_layer_flags.c =================================================================== --- trunk/src_plugins/dialogs/dlg_layer_flags.c (revision 29671) +++ trunk/src_plugins/dialogs/dlg_layer_flags.c (revision 29672) @@ -74,7 +74,7 @@ if (failed == 0) { pcb_layer_combining_t comb = 0; if (strcmp(ly->name, dlg[wname].val.str) != 0) { - ar |= pcb_layer_rename_(ly, (char *)dlg[wname].val.str); + ar |= pcb_layer_rename_(ly, (char *)dlg[wname].val.str, 1); pcb_board_set_changed_flag(pcb_true); } if (dlg[wsub].val.lng) comb |= PCB_LYC_SUB; Index: trunk/src_plugins/io_hyp/parser.c =================================================================== --- trunk/src_plugins/io_hyp/parser.c (revision 29671) +++ trunk/src_plugins/io_hyp/parser.c (revision 29672) @@ -885,13 +885,13 @@ switch (layer_count) { case 1: /* rename top copper and return */ - pcb_layer_rename(PCB->Data, top_layer_id, lname); + pcb_layer_rename(PCB->Data, top_layer_id, lname, 0); return top_layer_id; break; case 2: /* rename bottom copper and return */ - pcb_layer_rename(PCB->Data, bottom_layer_id, lname); + pcb_layer_rename(PCB->Data, bottom_layer_id, lname, 0); return bottom_layer_id; break; Index: trunk/src_plugins/propedit/propsel.c =================================================================== --- trunk/src_plugins/propedit/propsel.c (revision 29671) +++ trunk/src_plugins/propedit/propsel.c (revision 29672) @@ -415,7 +415,7 @@ pcb_color_t c; if (pcb_color_load_str(&c, clr) != 0) return -1; - return pcb_layer_recolor_(layer, &c); + return pcb_layer_recolor_(layer, &c, 1); } static int set_layer(pcb_propset_ctx_t *st, pcb_layer_t *layer) @@ -429,7 +429,7 @@ if (strncmp(st->name, "p/layer/", 8) == 0) { if ((strcmp(pn, "name") == 0) && - (pcb_layer_rename_(layer, pcb_strdup(st->s)) == 0)) DONE0; + (pcb_layer_rename_(layer, pcb_strdup(st->s), 1) == 0)) DONE0; if ((strcmp(pn, "color") == 0) && (layer_recolor(layer, st->color.str) == 0)) DONE0;