Index: Plug.tmpasm =================================================================== --- Plug.tmpasm (revision 25852) +++ Plug.tmpasm (revision 25853) @@ -1,7 +1,9 @@ put /local/pcb/mod {act_draw} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/act_draw/act_draw.o + $(PLUGDIR)/act_draw/keywords_sphash.o @] +put /local/pcb/mod/SPHASH {$(PLUGDIR)/act_draw/keywords.sphash} switch /local/pcb/act_draw/controls case {buildin} include /local/pcb/tmpasm/buildin; end; Index: act_draw.c =================================================================== --- act_draw.c (revision 25852) +++ act_draw.c (revision 25853) @@ -41,6 +41,8 @@ #include "plugins.h" #include "undo.h" +#include "keywords_sphash.h" + static const char *PTR_DOMAIN_POLY = "fgw_ptr_domain_poly"; static int flg_error(const char *msg) Index: act_pstk_proto.c =================================================================== --- act_pstk_proto.c (revision 25852) +++ act_pstk_proto.c (revision 25853) @@ -38,5 +38,23 @@ static const char pcb_acth_PstkProtoTmp[] = "Allocate, insert or free a temporary padstack prototype"; static fgw_error_t pcb_act_PstkProtoTmp(fgw_arg_t *res, int argc, fgw_arg_t *argv) { - return -1; + char *cmd; + DRAWOPTARG; + + res->type = FGW_PTR | FGW_STRUCT; + res->val.ptr_void = NULL; + + PCB_ACT_CONVARG(1+ao, FGW_STR, PstkProtoTmp, cmd = argv[1+ao].val.str); + + switch(act_draw_keywords_sphash(cmd)) { + case act_draw_keywords_new: + case act_draw_keywords_dup: + case act_draw_keywords_insert: + case act_draw_keywords_insert_dup: + case act_draw_keywords_free: + case act_draw_keywords_SPHASH_INVALID: + break; + } + + return 0; } Index: keywords.sphash =================================================================== --- keywords.sphash (nonexistent) +++ keywords.sphash (revision 25853) @@ -0,0 +1,5 @@ +new +dup +insert +insert_dup +free