Index: trunk/src/change.c =================================================================== --- trunk/src/change.c (revision 12775) +++ trunk/src/change.c (revision 12776) @@ -426,7 +426,7 @@ NULL, NULL, pcb_subcop_change_flag, - NULL /* padstack */ + pcb_pstkop_change_flag }; static pcb_opfunc_t InvalLabelFunctions = { Index: trunk/src/obj_pstk_op.c =================================================================== --- trunk/src/obj_pstk_op.c (revision 12775) +++ trunk/src/obj_pstk_op.c (revision 12776) @@ -155,3 +155,17 @@ return ps; } +void *pcb_pstkop_change_flag(pcb_opctx_t *ctx, pcb_pstk_t *ps) +{ + static pcb_flag_values_t pcb_pstk_flags = 0; + if (pcb_pstk_flags == 0) + pcb_pstk_flags = pcb_obj_valid_flags(PCB_TYPE_PSTK); + + if ((ctx->chgflag.flag & pcb_pstk_flags) != ctx->chgflag.flag) + return NULL; + if ((ctx->chgflag.flag & PCB_FLAG_TERMNAME) && (ps->term == NULL)) + return NULL; + pcb_undo_add_obj_to_flag(ps); + PCB_FLAG_CHANGE(ctx->chgflag.how, ctx->chgflag.flag, ps); + return ps; +} Index: trunk/src/obj_pstk_op.h =================================================================== --- trunk/src/obj_pstk_op.h (revision 12775) +++ trunk/src/obj_pstk_op.h (revision 12776) @@ -36,7 +36,9 @@ void *pcb_pstkop_change_thermal(pcb_opctx_t *ctx, pcb_pstk_t *ps); +void *pcb_pstkop_change_flag(pcb_opctx_t *ctx, pcb_pstk_t *ps); + /*** TODO: unimplemented ones ***/ void *pcb_pstkop_change_size(pcb_opctx_t *ctx, pcb_pstk_t *ps); @@ -43,6 +45,4 @@ void *pcb_pstkop_change_2nd_size(pcb_opctx_t *ctx, pcb_pstk_t *ps); void *pcb_pstkop_change_clear_size(pcb_opctx_t *ctx, pcb_pstk_t *ps); -void *pcb_pstkop_change_flag(pcb_opctx_t *ctx, pcb_pstk_t *ps); - void *pcb_pstkop_rotate90(pcb_opctx_t *ctx, pcb_pstk_t *ps);