Index: trunk/src/change.c =================================================================== --- trunk/src/change.c (revision 11728) +++ trunk/src/change.c (revision 11729) @@ -1296,6 +1296,10 @@ case PCB_TYPE_ELEMENT: name = pcb_gui->prompt_for(_("Elementname:"), PCB_EMPTY(PCB_ELEM_NAME_VISIBLE(PCB, (pcb_element_t *) Ptr2))); break; + + case PCB_TYPE_SUBC: + name = pcb_gui->prompt_for(_("Subcircuit refdes:"), PCB_EMPTY(((pcb_subc_t *)Ptr2)->refdes)); + break; } if (name) { /* NB: ChangeObjectName takes ownership of the passed memory */ Index: trunk/src/change.h =================================================================== --- trunk/src/change.h (revision 11728) +++ trunk/src/change.h (revision 11729) @@ -39,7 +39,7 @@ * some defines */ #define PCB_CHANGENAME_TYPES \ - (PCB_TYPE_VIA | PCB_TYPE_PIN | PCB_TYPE_PAD | PCB_TYPE_TEXT | PCB_TYPE_ELEMENT | PCB_TYPE_SUBC | PCB_TYPE_ELEMENT_NAME | PCB_TYPE_LINE | PCB_TYPE_ARC | PCB_TYPE_POLYGON | PCB_TYPE_SUBC_PART) + (PCB_TYPE_VIA | PCB_TYPE_PIN | PCB_TYPE_PAD | PCB_TYPE_TEXT | PCB_TYPE_ELEMENT | PCB_TYPE_SUBC | PCB_TYPE_ELEMENT_NAME | PCB_TYPE_LINE | PCB_TYPE_ARC | PCB_TYPE_POLYGON | PCB_TYPE_SUBC_PART | PCB_TYPE_SUBC) #define PCB_CHANGESIZE_TYPES \ (PCB_TYPE_POLYGON | PCB_TYPE_VIA | PCB_TYPE_PIN | PCB_TYPE_PAD | PCB_TYPE_LINE | \ Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 11728) +++ trunk/src/obj_subc.c (revision 11729) @@ -1004,8 +1004,8 @@ void *pcb_subcop_change_name(pcb_opctx_t *ctx, pcb_subc_t *sc) { -#warning subc TODO - abort(); + pcb_attribute_put(&sc->Attributes, "refdes", ctx->chgname.new_name); + return sc; } void *pcb_subcop_destroy(pcb_opctx_t *ctx, pcb_subc_t *sc)