Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 9318) +++ trunk/src/obj_subc.c (revision 9319) @@ -418,6 +418,18 @@ abort(); } + +#define PCB_SUBC_FLAGS (PCB_FLAG_FOUND | PCB_FLAG_CLEARLINE | PCB_FLAG_SELECTED | PCB_FLAG_AUTO | PCB_FLAG_LOCK | PCB_FLAG_VISIT) +void *ChgFlagSubc(pcb_opctx_t *ctx, pcb_subc_t *sc) +{ + if ((ctx->chgflag.flag & PCB_SUBC_FLAGS) != ctx->chgflag.flag) + return NULL; + PCB_FLAG_CHANGE(ctx->chgflag.how, ctx->chgflag.flag, sc); +#warning subc TODO (revise flags) + abort(); +} + + void pcb_select_subc(pcb_board_t *pcb, pcb_subc_t *sc, pcb_change_flag_t how, int redraw) { pcb_opctx_chgflag_t ctx; Index: trunk/src/obj_subc_op.h =================================================================== --- trunk/src/obj_subc_op.h (revision 9318) +++ trunk/src/obj_subc_op.h (revision 9319) @@ -49,5 +49,7 @@ void *SetSubcSquare(pcb_opctx_t *ctx, pcb_subc_t *sc); void *ChangeSubcSquare(pcb_opctx_t *ctx, pcb_subc_t *sc); +void *ChgFlagSubc(pcb_opctx_t *ctx, pcb_subc_t *sc); + #endif