From: Stephen D. <sd...@us...> - 2005-03-26 14:25:33
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3873/include Modified Files: ns.h Log Message: * include/ns.h: * nsd/nsd.h: * nsd/tclobjv.c: * nsd/tclcmds.c: * tests/ns_parseargs.test: Change the signature of Ns_ObjvProc()s to return either TCL_OK, TCL_ERROR or TCL_BREAK. Fixes a bug where options were being double-counted as args. Also simplified the Ns_ObjvProc interface by passing the Ns_ObjvSpec directly. Added a new Tcl command: ns_parseargs specification args. It parses options, args and handles defaults. * nsd/tclobj.c: Added some wrapper procs for handling Tcl obj types. * nsd/tclinit.c: Added Ns_TclPrintfResult() as a convenience for writing ints into a formatted string result. Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ns.h 24 Mar 2005 01:17:55 -0000 1.9 --- ns.h 26 Mar 2005 14:25:16 -0000 1.10 *************** *** 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); /* --- 286,293 ---- typedef int (Ns_LogFlushProc) (char *msg, size_t len); typedef int (Ns_LogProc) (Ns_DString *dsPtr, Ns_LogSeverity severity, char *fmt, va_list ap); ! struct Ns_ObjvSpec; ! typedef int (Ns_ObjvProc) (struct Ns_ObjvSpec *spec, Tcl_Interp *interp, ! int *objcPtr, Tcl_Obj *CONST objv[]); ! /* *************** *** 783,790 **** --- 785,799 ---- NS_EXTERN void Ns_GenSeeds(unsigned long *seedsPtr, int nseeds); NS_EXTERN double Ns_DRand(void); + /* * tclobj.c: */ + NS_EXTERN void Ns_TclResetObjType(Tcl_Obj *objPtr, Tcl_ObjType *newTypePtr); + NS_EXTERN void Ns_TclSetTwoPtrValue(Tcl_Obj *objPtr, Tcl_ObjType *newTypePtr, + void *ptr1, void *ptr2); + NS_EXTERN void Ns_TclSetOtherValuePtr(Tcl_Obj *objPtr, Tcl_ObjType *newTypePtr, + void *value); + NS_EXTERN void Ns_TclSetStringRep(Tcl_Obj *objPtr, char *bytes, int length); NS_EXTERN void Ns_TclSetTimeObj(Tcl_Obj *objPtr, Ns_Time *timePtr); NS_EXTERN int Ns_TclGetTimeFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, Ns_Time *timePtr); *************** *** 1162,1165 **** --- 1171,1175 ---- NS_EXTERN int Ns_TclInit(Tcl_Interp *interp); + NS_EXTERN void Ns_TclPrintfResult(Tcl_Interp *interp, char *fmt, ...); NS_EXTERN int Nsd_Init(Tcl_Interp *interp); NS_EXTERN int Ns_TclInitInterps(char *server, Ns_TclInterpInitProc *proc, void *arg); |