aboutsummaryrefslogtreecommitdiff
path: root/jim.h
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-01-24 13:49:27 +1000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:45 +1000
commit771262b3fa50a46fa80d8a8fa011f355f1ce0913 (patch)
treef5fccb44226f87c7fc895c3c027f7e2d83831023 /jim.h
parentee6dbe0a8d66f8f17a5da82e8dad810d88e33bf6 (diff)
downloadjimtcl-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.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/jim.h b/jim.h
index fbab8c4..3f5daec 100644
--- a/jim.h
+++ b/jim.h
@@ -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,