From: Zoran V. <vas...@us...> - 2005-02-26 17:18:17
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28493/include Modified Files: ns.h Log Message: Added declarations for following structs: o. Ns_ObjvSpec o. Ns_ObjvTable and following calls: o. Ns_ParseObjv o. Ns_ObjvBool o. Ns_ObjvInt o. Ns_ObjvLong o. Ns_ObjvWideInt o. Ns_ObjvDouble o. Ns_ObjvString o. Ns_ObjvObj o. Ns_ObjvIndex o. Ns_ObjvFlags o. Ns_ObjvBreak o. Ns_ObjvArgs This all implements new argument parsing code from Stephen. Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ns.h 26 Feb 2005 13:21:23 -0000 1.4 --- ns.h 26 Feb 2005 17:18:08 -0000 1.5 *************** *** 286,289 **** --- 286,291 ---- typedef int (Ns_LogFlushProc) (char *msg, size_t len); typedef int (Ns_LogProc) (Ns_DString *dsPtr, Ns_LogSeverity severity, char *fmt, va_list ap); + typedef int (Ns_ObjvProc) (void *dest, Tcl_Interp *interp, + int objc, Tcl_Obj *CONST objv[], void *arg); /* *************** *** 362,365 **** --- 364,389 ---- /* + * The following struct describes how to process an option + * or argument passed to a Tcl command. + */ + + typedef struct Ns_ObjvSpec { + char *key; + Ns_ObjvProc *proc; + void *dest; + void *arg; + } Ns_ObjvSpec; + + /* + * The following struct is used to validate options from + * a choice of values. + */ + + typedef struct Ns_ObjvTable { + char *key; + int value; + } Ns_ObjvTable; + + /* * The following structure defines an I/O * scatter/gather buffer for WIN32. *************** *** 766,769 **** --- 790,811 ---- /* + * tclobjv.c + */ + + NS_EXTERN int Ns_ParseObjv(Ns_ObjvSpec *optSpec, Ns_ObjvSpec *argSpec, + Tcl_Interp *interp, int offset, int objc, Tcl_Obj *CONST objv[]); + NS_EXTERN Ns_ObjvProc Ns_ObjvBool; + NS_EXTERN Ns_ObjvProc Ns_ObjvInt; + NS_EXTERN Ns_ObjvProc Ns_ObjvLong; + NS_EXTERN Ns_ObjvProc Ns_ObjvWideInt; + NS_EXTERN Ns_ObjvProc Ns_ObjvDouble; + NS_EXTERN Ns_ObjvProc Ns_ObjvString; + NS_EXTERN Ns_ObjvProc Ns_ObjvObj; + NS_EXTERN Ns_ObjvProc Ns_ObjvIndex; + NS_EXTERN Ns_ObjvProc Ns_ObjvFlags; + NS_EXTERN Ns_ObjvProc Ns_ObjvBreak; + NS_EXTERN Ns_ObjvProc Ns_ObjvArgs; + + /* * tclthread.c: */ |