diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-01-24 13:49:27 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:45 +1000 |
commit | 771262b3fa50a46fa80d8a8fa011f355f1ce0913 (patch) | |
tree | f5fccb44226f87c7fc895c3c027f7e2d83831023 /jim.h | |
parent | ee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6 (diff) | |
download | jimtcl-771262b3fa50a46fa80d8a8fa011f355f1ce0913.zip jimtcl-771262b3fa50a46fa80d8a8fa011f355f1ce0913.tar.gz jimtcl-771262b3fa50a46fa80d8a8fa011f355f1ce0913.tar.bz2 |
Implement TIP #288
See http://www.tcl.tk/cgi-bin/tct/tip/288.html
Args and optional args may be to the left of required args
Diffstat (limited to 'jim.h')
-rw-r--r-- | jim.h | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -475,8 +475,10 @@ typedef struct Jim_Cmd { Jim_Obj *argListObjPtr; Jim_Obj *bodyObjPtr; Jim_HashTable *staticVars; /* Static vars hash table. NULL if no statics. */ - int arityMin; /* Min number of arguments. */ - int arityMax; /* Max number of arguments. */ + int leftArity; /* Required args assigned from the left */ + int optionalArgs; /* Number of optional args (default values) */ + int rightArity; /* Required args assigned from the right */ + int args; /* True if 'args' specified */ } Jim_Cmd; /* Pseudo Random Number Generator State structure */ @@ -704,9 +706,9 @@ JIM_EXPORT void Jim_RegisterCoreCommands (Jim_Interp *interp); JIM_EXPORT int Jim_CreateCommand (Jim_Interp *interp, const char *cmdName, Jim_CmdProc cmdProc, void *privData, Jim_DelCmdProc delProc); -JIM_EXPORT int Jim_CreateProcedure (Jim_Interp *interp, - const char *cmdName, Jim_Obj *argListObjPtr, Jim_Obj *staticsListObjPtr, - Jim_Obj *bodyObjPtr, int arityMin, int arityMax); +JIM_EXPORT int Jim_CreateProcedure(Jim_Interp *interp, const char *cmdName, + Jim_Obj *argListObjPtr, Jim_Obj *staticsListObjPtr, Jim_Obj *bodyObjPtr, + int leftArity, int defaultArgs, int argsPos, int rightArity); JIM_EXPORT int Jim_DeleteCommand (Jim_Interp *interp, const char *cmdName); JIM_EXPORT int Jim_RenameCommand (Jim_Interp *interp, |