Index: Makefile.in =================================================================== diff -u -r033cfdaac4e149a7c26863adfacc33020ae3d864 -r74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708 --- Makefile.in (.../Makefile.in) (revision 033cfdaac4e149a7c26863adfacc33020ae3d864) +++ Makefile.in (.../Makefile.in) (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -676,10 +676,22 @@ # Target to regenerate header files and stub files from the *.decls tables. # +TCL_SRC_DIR_85=/usr/local/src/tcl8.5.16 +TCL_SRC_DIR_86=/usr/local/src/tcl8.6.1 + genstubs: - $(TCLSH) $(TCL_SRC_DIR)/tools/genStubs.tcl $(src_generic_dir) \ + tclsh8.5 $(TCL_SRC_DIR_85)/tools/genStubs.tcl $(src_generic_dir) \ $(src_generic_dir)/nsf.decls $(src_generic_dir)/nsfInt.decls + mkdir -p $(src_generic_dir)/stubs8.5 + cp $(src_generic_dir)/nsfDecls.h $(src_generic_dir)/nsfIntDecls.h $(src_generic_dir)/nsfStubInit.c $(src_generic_dir)/stubs8.5 + tclsh8.6 $(TCL_SRC_DIR_86)/tools/genStubs.tcl $(src_generic_dir) \ + $(src_generic_dir)/nsf.decls $(src_generic_dir)/nsfInt.decls + mkdir -p $(src_generic_dir)/stubs8.6 + cp $(src_generic_dir)/nsfDecls.h $(src_generic_dir)/nsfIntDecls.h $(src_generic_dir)/nsfStubInit.c $(src_generic_dir)/stubs8.6 +getstubs: + $(TCLSH) $(src_app_dir_native)/utils/getstubs.tcl $(src_generic_dir) + # # Target to check that all exported functions have an entry in the stubs # tables. Index: TODO =================================================================== diff -u -rf0adb8a2fcdb8285acaa463bcf885e5abc01d7ee -r74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708 --- TODO (.../TODO) (revision f0adb8a2fcdb8285acaa463bcf885e5abc01d7ee) +++ TODO (.../TODO) (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -5540,26 +5540,16 @@ nsf.c: - make types for bit operations unsigned (mostly flags) -======================================================================== -TODO: -- [current isnextcall] does not work for ensemble next: - +build system: +- don't call genstubs from configure, since Debian does not seem + to have genstubs.tcl installed. Now, we pre-generate the + stub files for tcl8.5 and tcl8.6 and copy the "right" version + depending on the configured version. -Object create o { - :public object method foo {} {return [current isnextcall]} - :public object method "x y" {} {return [current isnextcall]} -} -Class create M { - :public method foo {} {next} - :public method "x y" {} {next} -} -? {o foo} 0 -? {o x y} 0 -o object mixins add M -? {o foo} 1 -? {o x y} 1; # gives 0 ... +======================================================================== +TODO: - finish plural reform - update migration guide and tutorial @@ -5918,4 +5908,27 @@ - coro-enable nsf::proc * renable/translate deletex XOTcl demo scripts, such as - e.g. those from library/xotcl/apps/scripts \ No newline at end of file + e.g. those from library/xotcl/apps/scripts + + + + +observation: +- [current isnextcall] does not work for ensemble next: + ... but should probably not, since this is an implicit + next call just for resolving an ensemble call. + +Object create o { + :public object method foo {} {return [current isnextcall]} + :public object method "x y" {} {return [current isnextcall]} +} +Class create M { + :public method foo {} {next} + :public method "x y" {} {next} +} + +? {o foo} 0 +? {o x y} 0 +o object mixins add M +? {o foo} 1 +? {o x y} 1; # gives 0 ... \ No newline at end of file Index: apps/utils/getstubs.tcl =================================================================== diff -u --- apps/utils/getstubs.tcl (revision 0) +++ apps/utils/getstubs.tcl (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,8 @@ +# +# Copy stubs from the appropriate tcl version directory. Since the +# configured tclsh "knows" its version, one can use this to fetch the +# appropriate stub files after configuration. +# +puts "Using stubs for Tcl [set tcl_version]" +set generic [lindex $argv 0] +file copy -force {*}[glob $generic/stubs[set tcl_version]/*.*] $generic Index: configure =================================================================== diff -u -r9297b4159bf699939e464a50dedf193406061a77 -r74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708 --- configure (.../configure) (revision 9297b4159bf699939e464a50dedf193406061a77) +++ configure (.../configure) (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -10192,7 +10192,7 @@ chmod +x nxsh nxwish library/xotcl/xotclsh library/xotcl/xowish echo "==================== building genstubs (needed for Tcl 8.6)" -make genstubs +make getstubs echo "==================== genstubs built" here=${PWD} Index: configure.ac =================================================================== diff -u -r1e0bfe13a24da7bb97007fce4dcd6ebf681dcbd3 -r74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708 --- configure.ac (.../configure.ac) (revision 1e0bfe13a24da7bb97007fce4dcd6ebf681dcbd3) +++ configure.ac (.../configure.ac) (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -446,7 +446,7 @@ chmod +x nxsh nxwish library/xotcl/xotclsh library/xotcl/xowish echo "==================== building genstubs (needed for Tcl 8.6)" -make genstubs +make getstubs echo "==================== genstubs built" here=${PWD} Index: generic/stubs8.5/nsfDecls.h =================================================================== diff -u --- generic/stubs8.5/nsfDecls.h (revision 0) +++ generic/stubs8.5/nsfDecls.h (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,514 @@ +/* + * nsfDecls.h -- + * + * Declarations of functions in the platform independent public Nsf API. + * + * This file is part of the Next Scripting Framework. + * + * Copyright (C) 1999-2014 Gustaf Neumann + * Copyright (C) 1999-2007 Uwe Zdun + * + * See the file "tcl-license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#ifndef _NSFDECLS +#define _NSFDECLS + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the nsf.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Exported function declarations: + */ + +#ifndef Nsf_Init_TCL_DECLARED +#define Nsf_Init_TCL_DECLARED +/* 0 */ +EXTERN int Nsf_Init(Tcl_Interp *interp); +#endif +/* Slot 1 is reserved */ +#ifndef NsfIsClass_TCL_DECLARED +#define NsfIsClass_TCL_DECLARED +/* 2 */ +EXTERN struct Nsf_Class * NsfIsClass(Tcl_Interp *interp, ClientData cd); +#endif +#ifndef NsfGetObject_TCL_DECLARED +#define NsfGetObject_TCL_DECLARED +/* 3 */ +EXTERN struct Nsf_Object * NsfGetObject(Tcl_Interp *interp, CONST char *name); +#endif +#ifndef NsfGetClass_TCL_DECLARED +#define NsfGetClass_TCL_DECLARED +/* 4 */ +EXTERN struct Nsf_Class * NsfGetClass(Tcl_Interp *interp, CONST char *name); +#endif +#ifndef NsfDeleteObject_TCL_DECLARED +#define NsfDeleteObject_TCL_DECLARED +/* 5 */ +EXTERN int NsfDeleteObject(Tcl_Interp *interp, + struct Nsf_Object *object); +#endif +#ifndef NsfRemoveObjectMethod_TCL_DECLARED +#define NsfRemoveObjectMethod_TCL_DECLARED +/* 6 */ +EXTERN int NsfRemoveObjectMethod(Tcl_Interp *interp, + struct Nsf_Object *object, CONST char *nm); +#endif +#ifndef NsfRemoveClassMethod_TCL_DECLARED +#define NsfRemoveClassMethod_TCL_DECLARED +/* 7 */ +EXTERN int NsfRemoveClassMethod(Tcl_Interp *interp, + struct Nsf_Class *cl, CONST char *nm); +#endif +#ifndef Nsf_ObjSetVar2_TCL_DECLARED +#define Nsf_ObjSetVar2_TCL_DECLARED +/* 8 */ +EXTERN Tcl_Obj * Nsf_ObjSetVar2(struct Nsf_Object *object, + Tcl_Interp *interp, Tcl_Obj *name1, + Tcl_Obj *name2, Tcl_Obj *value, + unsigned int flags); +#endif +#ifndef Nsf_ObjGetVar2_TCL_DECLARED +#define Nsf_ObjGetVar2_TCL_DECLARED +/* 9 */ +EXTERN Tcl_Obj * Nsf_ObjGetVar2(struct Nsf_Object *object, + Tcl_Interp *interp, Tcl_Obj *name1, + Tcl_Obj *name2, unsigned int flags); +#endif +#ifndef Nsf_UnsetVar2_TCL_DECLARED +#define Nsf_UnsetVar2_TCL_DECLARED +/* 10 */ +EXTERN int Nsf_UnsetVar2(struct Nsf_Object *object, + Tcl_Interp *interp, CONST char *name1, + CONST char *name2, unsigned int flags); +#endif +#ifndef NsfDStringPrintf_TCL_DECLARED +#define NsfDStringPrintf_TCL_DECLARED +/* 11 */ +EXTERN void NsfDStringPrintf(Tcl_DString *dsPtr, CONST char *fmt, + va_list apSrc); +#endif +#ifndef NsfPrintError_TCL_DECLARED +#define NsfPrintError_TCL_DECLARED +/* 12 */ +EXTERN int NsfPrintError(Tcl_Interp *interp, CONST char *fmt, ...); +#endif +#ifndef NsfErrInProc_TCL_DECLARED +#define NsfErrInProc_TCL_DECLARED +/* 13 */ +EXTERN int NsfErrInProc(Tcl_Interp *interp, Tcl_Obj *objName, + Tcl_Obj *clName, CONST char *procName); +#endif +#ifndef NsfObjErrType_TCL_DECLARED +#define NsfObjErrType_TCL_DECLARED +/* 14 */ +EXTERN int NsfObjErrType(Tcl_Interp *interp, + CONST char *context, Tcl_Obj *value, + CONST char *type, Nsf_Param CONST *pPtr); +#endif +#ifndef NsfStackDump_TCL_DECLARED +#define NsfStackDump_TCL_DECLARED +/* 15 */ +EXTERN void NsfStackDump(Tcl_Interp *interp); +#endif +#ifndef NsfSetObjClientData_TCL_DECLARED +#define NsfSetObjClientData_TCL_DECLARED +/* 16 */ +EXTERN void NsfSetObjClientData(Tcl_Interp *interp, + Nsf_Object *object, ClientData data); +#endif +#ifndef NsfGetObjClientData_TCL_DECLARED +#define NsfGetObjClientData_TCL_DECLARED +/* 17 */ +EXTERN ClientData NsfGetObjClientData(Tcl_Interp *interp, + Nsf_Object *object); +#endif +#ifndef NsfSetClassClientData_TCL_DECLARED +#define NsfSetClassClientData_TCL_DECLARED +/* 18 */ +EXTERN void NsfSetClassClientData(Tcl_Interp *interp, + Nsf_Class *cl, ClientData data); +#endif +#ifndef NsfGetClassClientData_TCL_DECLARED +#define NsfGetClassClientData_TCL_DECLARED +/* 19 */ +EXTERN ClientData NsfGetClassClientData(Tcl_Interp *interp, + Nsf_Class *cl); +#endif +#ifndef NsfRequireObjNamespace_TCL_DECLARED +#define NsfRequireObjNamespace_TCL_DECLARED +/* 20 */ +EXTERN void NsfRequireObjNamespace(Tcl_Interp *interp, + Nsf_Object *object); +#endif +#ifndef NsfCallMethodWithArgs_TCL_DECLARED +#define NsfCallMethodWithArgs_TCL_DECLARED +/* 21 */ +EXTERN int NsfCallMethodWithArgs(Tcl_Interp *interp, + Nsf_Object *object, Tcl_Obj *method, + Tcl_Obj *arg, int objc, + Tcl_Obj *CONST objv[], unsigned int flags); +#endif +#ifndef NsfAddObjectMethod_TCL_DECLARED +#define NsfAddObjectMethod_TCL_DECLARED +/* 22 */ +EXTERN int NsfAddObjectMethod(Tcl_Interp *interp, + struct Nsf_Object *object, CONST char *nm, + Tcl_ObjCmdProc *proc, ClientData cd, + Tcl_CmdDeleteProc *dp, unsigned int flags); +#endif +#ifndef NsfAddClassMethod_TCL_DECLARED +#define NsfAddClassMethod_TCL_DECLARED +/* 23 */ +EXTERN int NsfAddClassMethod(Tcl_Interp *interp, + struct Nsf_Class *cl, CONST char *nm, + Tcl_ObjCmdProc *proc, ClientData cd, + Tcl_CmdDeleteProc *dp, unsigned int flags); +#endif +#ifndef NsfCreate_TCL_DECLARED +#define NsfCreate_TCL_DECLARED +/* 24 */ +EXTERN int NsfCreate(Tcl_Interp *in, Nsf_Class *class, + Tcl_Obj *name, int objc, + Tcl_Obj *CONST objv[]); +#endif +#ifndef Nsf_ArgumentParse_TCL_DECLARED +#define Nsf_ArgumentParse_TCL_DECLARED +/* 25 */ +EXTERN int Nsf_ArgumentParse(Tcl_Interp *interp, int objc, + Tcl_Obj *CONST objv[], Nsf_Object *object, + Tcl_Obj *procNameObj, + Nsf_Param CONST *paramPtr, int nrParams, + int serial, unsigned int processFlags, + Nsf_ParseContext *pcPtr); +#endif +#ifndef NsfLog_TCL_DECLARED +#define NsfLog_TCL_DECLARED +/* 26 */ +EXTERN void NsfLog(Tcl_Interp *interp, int requiredLevel, + CONST char *fmt, ...); +#endif +#ifndef Nsf_PointerAdd_TCL_DECLARED +#define Nsf_PointerAdd_TCL_DECLARED +/* 27 */ +EXTERN int Nsf_PointerAdd(Tcl_Interp *interp, char *buffer, + CONST char *typeName, VOID *valuePtr); +#endif +#ifndef Nsf_PointerDelete_TCL_DECLARED +#define Nsf_PointerDelete_TCL_DECLARED +/* 28 */ +EXTERN int Nsf_PointerDelete(CONST char *key, VOID *valuePtr, + int free); +#endif +#ifndef Nsf_PointerTypeRegister_TCL_DECLARED +#define Nsf_PointerTypeRegister_TCL_DECLARED +/* 29 */ +EXTERN int Nsf_PointerTypeRegister(Tcl_Interp *interp, + CONST char*typeName, int *counterPtr); +#endif +#ifndef Nsf_ConvertToBoolean_TCL_DECLARED +#define Nsf_ConvertToBoolean_TCL_DECLARED +/* 30 */ +EXTERN int Nsf_ConvertToBoolean(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToClass_TCL_DECLARED +#define Nsf_ConvertToClass_TCL_DECLARED +/* 31 */ +EXTERN int Nsf_ConvertToClass(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToInt32_TCL_DECLARED +#define Nsf_ConvertToInt32_TCL_DECLARED +/* 32 */ +EXTERN int Nsf_ConvertToInt32(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToInteger_TCL_DECLARED +#define Nsf_ConvertToInteger_TCL_DECLARED +/* 33 */ +EXTERN int Nsf_ConvertToInteger(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToObject_TCL_DECLARED +#define Nsf_ConvertToObject_TCL_DECLARED +/* 34 */ +EXTERN int Nsf_ConvertToObject(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToPointer_TCL_DECLARED +#define Nsf_ConvertToPointer_TCL_DECLARED +/* 35 */ +EXTERN int Nsf_ConvertToPointer(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToString_TCL_DECLARED +#define Nsf_ConvertToString_TCL_DECLARED +/* 36 */ +EXTERN int Nsf_ConvertToString(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_ConvertToTclobj_TCL_DECLARED +#define Nsf_ConvertToTclobj_TCL_DECLARED +/* 37 */ +EXTERN int Nsf_ConvertToTclobj(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +#endif +#ifndef Nsf_EnumerationTypeRegister_TCL_DECLARED +#define Nsf_EnumerationTypeRegister_TCL_DECLARED +/* 38 */ +EXTERN int Nsf_EnumerationTypeRegister(Tcl_Interp *interp, + Nsf_EnumeratorConverterEntry *typeRecords); +#endif +#ifndef Nsf_CmdDefinitionRegister_TCL_DECLARED +#define Nsf_CmdDefinitionRegister_TCL_DECLARED +/* 39 */ +EXTERN int Nsf_CmdDefinitionRegister(Tcl_Interp *interp, + Nsf_methodDefinition *definitionRecords); +#endif + +typedef struct NsfStubHooks { + struct NsfIntStubs *nsfIntStubs; +} NsfStubHooks; + +typedef struct NsfStubs { + int magic; + struct NsfStubHooks *hooks; + + int (*nsf_Init) (Tcl_Interp *interp); /* 0 */ + VOID *reserved1; + struct Nsf_Class * (*nsfIsClass) (Tcl_Interp *interp, ClientData cd); /* 2 */ + struct Nsf_Object * (*nsfGetObject) (Tcl_Interp *interp, CONST char *name); /* 3 */ + struct Nsf_Class * (*nsfGetClass) (Tcl_Interp *interp, CONST char *name); /* 4 */ + int (*nsfDeleteObject) (Tcl_Interp *interp, struct Nsf_Object *object); /* 5 */ + int (*nsfRemoveObjectMethod) (Tcl_Interp *interp, struct Nsf_Object *object, CONST char *nm); /* 6 */ + int (*nsfRemoveClassMethod) (Tcl_Interp *interp, struct Nsf_Class *cl, CONST char *nm); /* 7 */ + Tcl_Obj * (*nsf_ObjSetVar2) (struct Nsf_Object *object, Tcl_Interp *interp, Tcl_Obj *name1, Tcl_Obj *name2, Tcl_Obj *value, unsigned int flags); /* 8 */ + Tcl_Obj * (*nsf_ObjGetVar2) (struct Nsf_Object *object, Tcl_Interp *interp, Tcl_Obj *name1, Tcl_Obj *name2, unsigned int flags); /* 9 */ + int (*nsf_UnsetVar2) (struct Nsf_Object *object, Tcl_Interp *interp, CONST char *name1, CONST char *name2, unsigned int flags); /* 10 */ + void (*nsfDStringPrintf) (Tcl_DString *dsPtr, CONST char *fmt, va_list apSrc); /* 11 */ + int (*nsfPrintError) (Tcl_Interp *interp, CONST char *fmt, ...); /* 12 */ + int (*nsfErrInProc) (Tcl_Interp *interp, Tcl_Obj *objName, Tcl_Obj *clName, CONST char *procName); /* 13 */ + int (*nsfObjErrType) (Tcl_Interp *interp, CONST char *context, Tcl_Obj *value, CONST char *type, Nsf_Param CONST *pPtr); /* 14 */ + void (*nsfStackDump) (Tcl_Interp *interp); /* 15 */ + void (*nsfSetObjClientData) (Tcl_Interp *interp, Nsf_Object *object, ClientData data); /* 16 */ + ClientData (*nsfGetObjClientData) (Tcl_Interp *interp, Nsf_Object *object); /* 17 */ + void (*nsfSetClassClientData) (Tcl_Interp *interp, Nsf_Class *cl, ClientData data); /* 18 */ + ClientData (*nsfGetClassClientData) (Tcl_Interp *interp, Nsf_Class *cl); /* 19 */ + void (*nsfRequireObjNamespace) (Tcl_Interp *interp, Nsf_Object *object); /* 20 */ + int (*nsfCallMethodWithArgs) (Tcl_Interp *interp, Nsf_Object *object, Tcl_Obj *method, Tcl_Obj *arg, int objc, Tcl_Obj *CONST objv[], unsigned int flags); /* 21 */ + int (*nsfAddObjectMethod) (Tcl_Interp *interp, struct Nsf_Object *object, CONST char *nm, Tcl_ObjCmdProc *proc, ClientData cd, Tcl_CmdDeleteProc *dp, unsigned int flags); /* 22 */ + int (*nsfAddClassMethod) (Tcl_Interp *interp, struct Nsf_Class *cl, CONST char *nm, Tcl_ObjCmdProc *proc, ClientData cd, Tcl_CmdDeleteProc *dp, unsigned int flags); /* 23 */ + int (*nsfCreate) (Tcl_Interp *in, Nsf_Class *class, Tcl_Obj *name, int objc, Tcl_Obj *CONST objv[]); /* 24 */ + int (*nsf_ArgumentParse) (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], Nsf_Object *object, Tcl_Obj *procNameObj, Nsf_Param CONST *paramPtr, int nrParams, int serial, unsigned int processFlags, Nsf_ParseContext *pcPtr); /* 25 */ + void (*nsfLog) (Tcl_Interp *interp, int requiredLevel, CONST char *fmt, ...); /* 26 */ + int (*nsf_PointerAdd) (Tcl_Interp *interp, char *buffer, CONST char *typeName, VOID *valuePtr); /* 27 */ + int (*nsf_PointerDelete) (CONST char *key, VOID *valuePtr, int free); /* 28 */ + int (*nsf_PointerTypeRegister) (Tcl_Interp *interp, CONST char*typeName, int *counterPtr); /* 29 */ + int (*nsf_ConvertToBoolean) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 30 */ + int (*nsf_ConvertToClass) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 31 */ + int (*nsf_ConvertToInt32) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 32 */ + int (*nsf_ConvertToInteger) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 33 */ + int (*nsf_ConvertToObject) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 34 */ + int (*nsf_ConvertToPointer) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 35 */ + int (*nsf_ConvertToString) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 36 */ + int (*nsf_ConvertToTclobj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 37 */ + int (*nsf_EnumerationTypeRegister) (Tcl_Interp *interp, Nsf_EnumeratorConverterEntry *typeRecords); /* 38 */ + int (*nsf_CmdDefinitionRegister) (Tcl_Interp *interp, Nsf_methodDefinition *definitionRecords); /* 39 */ +} NsfStubs; + +extern NsfStubs *nsfStubsPtr; + +#ifdef __cplusplus +} +#endif + +#if defined(USE_NSF_STUBS) && !defined(USE_NSF_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifndef Nsf_Init +#define Nsf_Init \ + (nsfStubsPtr->nsf_Init) /* 0 */ +#endif +/* Slot 1 is reserved */ +#ifndef NsfIsClass +#define NsfIsClass \ + (nsfStubsPtr->nsfIsClass) /* 2 */ +#endif +#ifndef NsfGetObject +#define NsfGetObject \ + (nsfStubsPtr->nsfGetObject) /* 3 */ +#endif +#ifndef NsfGetClass +#define NsfGetClass \ + (nsfStubsPtr->nsfGetClass) /* 4 */ +#endif +#ifndef NsfDeleteObject +#define NsfDeleteObject \ + (nsfStubsPtr->nsfDeleteObject) /* 5 */ +#endif +#ifndef NsfRemoveObjectMethod +#define NsfRemoveObjectMethod \ + (nsfStubsPtr->nsfRemoveObjectMethod) /* 6 */ +#endif +#ifndef NsfRemoveClassMethod +#define NsfRemoveClassMethod \ + (nsfStubsPtr->nsfRemoveClassMethod) /* 7 */ +#endif +#ifndef Nsf_ObjSetVar2 +#define Nsf_ObjSetVar2 \ + (nsfStubsPtr->nsf_ObjSetVar2) /* 8 */ +#endif +#ifndef Nsf_ObjGetVar2 +#define Nsf_ObjGetVar2 \ + (nsfStubsPtr->nsf_ObjGetVar2) /* 9 */ +#endif +#ifndef Nsf_UnsetVar2 +#define Nsf_UnsetVar2 \ + (nsfStubsPtr->nsf_UnsetVar2) /* 10 */ +#endif +#ifndef NsfDStringPrintf +#define NsfDStringPrintf \ + (nsfStubsPtr->nsfDStringPrintf) /* 11 */ +#endif +#ifndef NsfPrintError +#define NsfPrintError \ + (nsfStubsPtr->nsfPrintError) /* 12 */ +#endif +#ifndef NsfErrInProc +#define NsfErrInProc \ + (nsfStubsPtr->nsfErrInProc) /* 13 */ +#endif +#ifndef NsfObjErrType +#define NsfObjErrType \ + (nsfStubsPtr->nsfObjErrType) /* 14 */ +#endif +#ifndef NsfStackDump +#define NsfStackDump \ + (nsfStubsPtr->nsfStackDump) /* 15 */ +#endif +#ifndef NsfSetObjClientData +#define NsfSetObjClientData \ + (nsfStubsPtr->nsfSetObjClientData) /* 16 */ +#endif +#ifndef NsfGetObjClientData +#define NsfGetObjClientData \ + (nsfStubsPtr->nsfGetObjClientData) /* 17 */ +#endif +#ifndef NsfSetClassClientData +#define NsfSetClassClientData \ + (nsfStubsPtr->nsfSetClassClientData) /* 18 */ +#endif +#ifndef NsfGetClassClientData +#define NsfGetClassClientData \ + (nsfStubsPtr->nsfGetClassClientData) /* 19 */ +#endif +#ifndef NsfRequireObjNamespace +#define NsfRequireObjNamespace \ + (nsfStubsPtr->nsfRequireObjNamespace) /* 20 */ +#endif +#ifndef NsfCallMethodWithArgs +#define NsfCallMethodWithArgs \ + (nsfStubsPtr->nsfCallMethodWithArgs) /* 21 */ +#endif +#ifndef NsfAddObjectMethod +#define NsfAddObjectMethod \ + (nsfStubsPtr->nsfAddObjectMethod) /* 22 */ +#endif +#ifndef NsfAddClassMethod +#define NsfAddClassMethod \ + (nsfStubsPtr->nsfAddClassMethod) /* 23 */ +#endif +#ifndef NsfCreate +#define NsfCreate \ + (nsfStubsPtr->nsfCreate) /* 24 */ +#endif +#ifndef Nsf_ArgumentParse +#define Nsf_ArgumentParse \ + (nsfStubsPtr->nsf_ArgumentParse) /* 25 */ +#endif +#ifndef NsfLog +#define NsfLog \ + (nsfStubsPtr->nsfLog) /* 26 */ +#endif +#ifndef Nsf_PointerAdd +#define Nsf_PointerAdd \ + (nsfStubsPtr->nsf_PointerAdd) /* 27 */ +#endif +#ifndef Nsf_PointerDelete +#define Nsf_PointerDelete \ + (nsfStubsPtr->nsf_PointerDelete) /* 28 */ +#endif +#ifndef Nsf_PointerTypeRegister +#define Nsf_PointerTypeRegister \ + (nsfStubsPtr->nsf_PointerTypeRegister) /* 29 */ +#endif +#ifndef Nsf_ConvertToBoolean +#define Nsf_ConvertToBoolean \ + (nsfStubsPtr->nsf_ConvertToBoolean) /* 30 */ +#endif +#ifndef Nsf_ConvertToClass +#define Nsf_ConvertToClass \ + (nsfStubsPtr->nsf_ConvertToClass) /* 31 */ +#endif +#ifndef Nsf_ConvertToInt32 +#define Nsf_ConvertToInt32 \ + (nsfStubsPtr->nsf_ConvertToInt32) /* 32 */ +#endif +#ifndef Nsf_ConvertToInteger +#define Nsf_ConvertToInteger \ + (nsfStubsPtr->nsf_ConvertToInteger) /* 33 */ +#endif +#ifndef Nsf_ConvertToObject +#define Nsf_ConvertToObject \ + (nsfStubsPtr->nsf_ConvertToObject) /* 34 */ +#endif +#ifndef Nsf_ConvertToPointer +#define Nsf_ConvertToPointer \ + (nsfStubsPtr->nsf_ConvertToPointer) /* 35 */ +#endif +#ifndef Nsf_ConvertToString +#define Nsf_ConvertToString \ + (nsfStubsPtr->nsf_ConvertToString) /* 36 */ +#endif +#ifndef Nsf_ConvertToTclobj +#define Nsf_ConvertToTclobj \ + (nsfStubsPtr->nsf_ConvertToTclobj) /* 37 */ +#endif +#ifndef Nsf_EnumerationTypeRegister +#define Nsf_EnumerationTypeRegister \ + (nsfStubsPtr->nsf_EnumerationTypeRegister) /* 38 */ +#endif +#ifndef Nsf_CmdDefinitionRegister +#define Nsf_CmdDefinitionRegister \ + (nsfStubsPtr->nsf_CmdDefinitionRegister) /* 39 */ +#endif + +#endif /* defined(USE_NSF_STUBS) && !defined(USE_NSF_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#endif /* _NSFDECLS */ + Index: generic/stubs8.5/nsfIntDecls.h =================================================================== diff -u --- generic/stubs8.5/nsfIntDecls.h (revision 0) +++ generic/stubs8.5/nsfIntDecls.h (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,60 @@ +/* + * nsfIntDecls.h -- + * + * This file contains the declarations for all unsupported + * functions that are exported by the Tcl library. These + * interfaces are not guaranteed to remain the same between + * versions. Use at your own risk. + * + * Copyright (C) 1998-2008 Uwe Zdun + * Copyright (C) 1998-2014 Gustaf Neumann + * + * See the file "tcl-license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#ifndef _NSFINTDECLS +#define _NSFINTDECLS + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the nsfInt.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Exported function declarations: + */ + + +typedef struct NsfIntStubs { + int magic; + struct NsfIntStubHooks *hooks; + +} NsfIntStubs; + +extern NsfIntStubs *nsfIntStubsPtr; + +#ifdef __cplusplus +} +#endif + +#if defined(USE_NSF_STUBS) && !defined(USE_NSF_STUB_PROCS) + +/* + * Inline function declarations: + */ + + +#endif /* defined(USE_NSF_STUBS) && !defined(USE_NSF_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#endif /* _NSFINTDECLS */ Index: generic/stubs8.5/nsfStubInit.c =================================================================== diff -u --- generic/stubs8.5/nsfStubInit.c (revision 0) +++ generic/stubs8.5/nsfStubInit.c (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,99 @@ +/* + * nxStubInit.c -- + * + * This file contains the initializers for the stub vectors of the Next + * Scripting Framework. + * + * Copyright (C) 1998-1999 by XXX + * + * See the file "tcl-license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#include "nsfInt.h" + +/* + * Remove macros that will interfere with the definitions below. + */ + +/* + * WARNING: The contents of this file is automatically generated by the + * tools/genStubs.tcl script. Any modifications to the function declarations + * below should be made in the generic/tcl.decls script. + */ + +#if defined(PRE86) +EXTERN NsfStubs nsfStubs; +# else +MODULE_SCOPE const NsfStubs nsfStubs; +#endif + + + + +/* !BEGIN!: Do not edit below this line. */ + +NsfIntStubs nsfIntStubs = { + TCL_STUB_MAGIC, + NULL, +}; + +static NsfStubHooks nsfStubHooks = { + &nsfIntStubs +}; + +NsfStubs nsfStubs = { + TCL_STUB_MAGIC, + &nsfStubHooks, + Nsf_Init, /* 0 */ + NULL, /* 1 */ + NsfIsClass, /* 2 */ + NsfGetObject, /* 3 */ + NsfGetClass, /* 4 */ + NsfDeleteObject, /* 5 */ + NsfRemoveObjectMethod, /* 6 */ + NsfRemoveClassMethod, /* 7 */ + Nsf_ObjSetVar2, /* 8 */ + Nsf_ObjGetVar2, /* 9 */ + Nsf_UnsetVar2, /* 10 */ + NsfDStringPrintf, /* 11 */ + NsfPrintError, /* 12 */ + NsfErrInProc, /* 13 */ + NsfObjErrType, /* 14 */ + NsfStackDump, /* 15 */ + NsfSetObjClientData, /* 16 */ + NsfGetObjClientData, /* 17 */ + NsfSetClassClientData, /* 18 */ + NsfGetClassClientData, /* 19 */ + NsfRequireObjNamespace, /* 20 */ + NsfCallMethodWithArgs, /* 21 */ + NsfAddObjectMethod, /* 22 */ + NsfAddClassMethod, /* 23 */ + NsfCreate, /* 24 */ + Nsf_ArgumentParse, /* 25 */ + NsfLog, /* 26 */ + Nsf_PointerAdd, /* 27 */ + Nsf_PointerDelete, /* 28 */ + Nsf_PointerTypeRegister, /* 29 */ + Nsf_ConvertToBoolean, /* 30 */ + Nsf_ConvertToClass, /* 31 */ + Nsf_ConvertToInt32, /* 32 */ + Nsf_ConvertToInteger, /* 33 */ + Nsf_ConvertToObject, /* 34 */ + Nsf_ConvertToPointer, /* 35 */ + Nsf_ConvertToString, /* 36 */ + Nsf_ConvertToTclobj, /* 37 */ + Nsf_EnumerationTypeRegister, /* 38 */ + Nsf_CmdDefinitionRegister, /* 39 */ +}; + +/* !END!: Do not edit above this line. */ + +/* + * Local Variables: + * mode: c + * c-basic-offset: 2 + * fill-column: 78 + * End: + */ Index: generic/stubs8.6/nsfDecls.h =================================================================== diff -u --- generic/stubs8.6/nsfDecls.h (revision 0) +++ generic/stubs8.6/nsfDecls.h (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,317 @@ +/* + * nsfDecls.h -- + * + * Declarations of functions in the platform independent public Nsf API. + * + * This file is part of the Next Scripting Framework. + * + * Copyright (C) 1999-2014 Gustaf Neumann + * Copyright (C) 1999-2007 Uwe Zdun + * + * See the file "tcl-license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#ifndef _NSFDECLS +#define _NSFDECLS + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the nsf.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +/* 0 */ +EXTERN int Nsf_Init(Tcl_Interp *interp); +/* Slot 1 is reserved */ +/* 2 */ +EXTERN struct Nsf_Class * NsfIsClass(Tcl_Interp *interp, ClientData cd); +/* 3 */ +EXTERN struct Nsf_Object * NsfGetObject(Tcl_Interp *interp, CONST char *name); +/* 4 */ +EXTERN struct Nsf_Class * NsfGetClass(Tcl_Interp *interp, CONST char *name); +/* 5 */ +EXTERN int NsfDeleteObject(Tcl_Interp *interp, + struct Nsf_Object *object); +/* 6 */ +EXTERN int NsfRemoveObjectMethod(Tcl_Interp *interp, + struct Nsf_Object *object, CONST char *nm); +/* 7 */ +EXTERN int NsfRemoveClassMethod(Tcl_Interp *interp, + struct Nsf_Class *cl, CONST char *nm); +/* 8 */ +EXTERN Tcl_Obj * Nsf_ObjSetVar2(struct Nsf_Object *object, + Tcl_Interp *interp, Tcl_Obj *name1, + Tcl_Obj *name2, Tcl_Obj *value, + unsigned int flags); +/* 9 */ +EXTERN Tcl_Obj * Nsf_ObjGetVar2(struct Nsf_Object *object, + Tcl_Interp *interp, Tcl_Obj *name1, + Tcl_Obj *name2, unsigned int flags); +/* 10 */ +EXTERN int Nsf_UnsetVar2(struct Nsf_Object *object, + Tcl_Interp *interp, CONST char *name1, + CONST char *name2, unsigned int flags); +/* 11 */ +EXTERN void NsfDStringPrintf(Tcl_DString *dsPtr, CONST char *fmt, + va_list apSrc); +/* 12 */ +EXTERN int NsfPrintError(Tcl_Interp *interp, CONST char *fmt, ...); +/* 13 */ +EXTERN int NsfErrInProc(Tcl_Interp *interp, Tcl_Obj *objName, + Tcl_Obj *clName, CONST char *procName); +/* 14 */ +EXTERN int NsfObjErrType(Tcl_Interp *interp, + CONST char *context, Tcl_Obj *value, + CONST char *type, Nsf_Param CONST *pPtr); +/* 15 */ +EXTERN void NsfStackDump(Tcl_Interp *interp); +/* 16 */ +EXTERN void NsfSetObjClientData(Tcl_Interp *interp, + Nsf_Object *object, ClientData data); +/* 17 */ +EXTERN ClientData NsfGetObjClientData(Tcl_Interp *interp, + Nsf_Object *object); +/* 18 */ +EXTERN void NsfSetClassClientData(Tcl_Interp *interp, + Nsf_Class *cl, ClientData data); +/* 19 */ +EXTERN ClientData NsfGetClassClientData(Tcl_Interp *interp, + Nsf_Class *cl); +/* 20 */ +EXTERN void NsfRequireObjNamespace(Tcl_Interp *interp, + Nsf_Object *object); +/* 21 */ +EXTERN int NsfCallMethodWithArgs(Tcl_Interp *interp, + Nsf_Object *object, Tcl_Obj *method, + Tcl_Obj *arg, int objc, + Tcl_Obj *CONST objv[], unsigned int flags); +/* 22 */ +EXTERN int NsfAddObjectMethod(Tcl_Interp *interp, + struct Nsf_Object *object, CONST char *nm, + Tcl_ObjCmdProc *proc, ClientData cd, + Tcl_CmdDeleteProc *dp, unsigned int flags); +/* 23 */ +EXTERN int NsfAddClassMethod(Tcl_Interp *interp, + struct Nsf_Class *cl, CONST char *nm, + Tcl_ObjCmdProc *proc, ClientData cd, + Tcl_CmdDeleteProc *dp, unsigned int flags); +/* 24 */ +EXTERN int NsfCreate(Tcl_Interp *in, Nsf_Class *class, + Tcl_Obj *name, int objc, + Tcl_Obj *CONST objv[]); +/* 25 */ +EXTERN int Nsf_ArgumentParse(Tcl_Interp *interp, int objc, + Tcl_Obj *CONST objv[], Nsf_Object *object, + Tcl_Obj *procNameObj, + Nsf_Param CONST *paramPtr, int nrParams, + int serial, unsigned int processFlags, + Nsf_ParseContext *pcPtr); +/* 26 */ +EXTERN void NsfLog(Tcl_Interp *interp, int requiredLevel, + CONST char *fmt, ...); +/* 27 */ +EXTERN int Nsf_PointerAdd(Tcl_Interp *interp, char *buffer, + CONST char *typeName, void *valuePtr); +/* 28 */ +EXTERN int Nsf_PointerDelete(CONST char *key, void *valuePtr, + int free); +/* 29 */ +EXTERN int Nsf_PointerTypeRegister(Tcl_Interp *interp, + CONST char*typeName, int *counterPtr); +/* 30 */ +EXTERN int Nsf_ConvertToBoolean(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 31 */ +EXTERN int Nsf_ConvertToClass(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 32 */ +EXTERN int Nsf_ConvertToInt32(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 33 */ +EXTERN int Nsf_ConvertToInteger(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 34 */ +EXTERN int Nsf_ConvertToObject(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 35 */ +EXTERN int Nsf_ConvertToPointer(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 36 */ +EXTERN int Nsf_ConvertToString(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 37 */ +EXTERN int Nsf_ConvertToTclobj(Tcl_Interp *interp, + Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, + ClientData *clientData, Tcl_Obj **outObjPtr); +/* 38 */ +EXTERN int Nsf_EnumerationTypeRegister(Tcl_Interp *interp, + Nsf_EnumeratorConverterEntry *typeRecords); +/* 39 */ +EXTERN int Nsf_CmdDefinitionRegister(Tcl_Interp *interp, + Nsf_methodDefinition *definitionRecords); + +typedef struct { + const struct NsfIntStubs *nsfIntStubs; +} NsfStubHooks; + +typedef struct NsfStubs { + int magic; + const NsfStubHooks *hooks; + + int (*nsf_Init) (Tcl_Interp *interp); /* 0 */ + void (*reserved1)(void); + struct Nsf_Class * (*nsfIsClass) (Tcl_Interp *interp, ClientData cd); /* 2 */ + struct Nsf_Object * (*nsfGetObject) (Tcl_Interp *interp, CONST char *name); /* 3 */ + struct Nsf_Class * (*nsfGetClass) (Tcl_Interp *interp, CONST char *name); /* 4 */ + int (*nsfDeleteObject) (Tcl_Interp *interp, struct Nsf_Object *object); /* 5 */ + int (*nsfRemoveObjectMethod) (Tcl_Interp *interp, struct Nsf_Object *object, CONST char *nm); /* 6 */ + int (*nsfRemoveClassMethod) (Tcl_Interp *interp, struct Nsf_Class *cl, CONST char *nm); /* 7 */ + Tcl_Obj * (*nsf_ObjSetVar2) (struct Nsf_Object *object, Tcl_Interp *interp, Tcl_Obj *name1, Tcl_Obj *name2, Tcl_Obj *value, unsigned int flags); /* 8 */ + Tcl_Obj * (*nsf_ObjGetVar2) (struct Nsf_Object *object, Tcl_Interp *interp, Tcl_Obj *name1, Tcl_Obj *name2, unsigned int flags); /* 9 */ + int (*nsf_UnsetVar2) (struct Nsf_Object *object, Tcl_Interp *interp, CONST char *name1, CONST char *name2, unsigned int flags); /* 10 */ + void (*nsfDStringPrintf) (Tcl_DString *dsPtr, CONST char *fmt, va_list apSrc); /* 11 */ + int (*nsfPrintError) (Tcl_Interp *interp, CONST char *fmt, ...); /* 12 */ + int (*nsfErrInProc) (Tcl_Interp *interp, Tcl_Obj *objName, Tcl_Obj *clName, CONST char *procName); /* 13 */ + int (*nsfObjErrType) (Tcl_Interp *interp, CONST char *context, Tcl_Obj *value, CONST char *type, Nsf_Param CONST *pPtr); /* 14 */ + void (*nsfStackDump) (Tcl_Interp *interp); /* 15 */ + void (*nsfSetObjClientData) (Tcl_Interp *interp, Nsf_Object *object, ClientData data); /* 16 */ + ClientData (*nsfGetObjClientData) (Tcl_Interp *interp, Nsf_Object *object); /* 17 */ + void (*nsfSetClassClientData) (Tcl_Interp *interp, Nsf_Class *cl, ClientData data); /* 18 */ + ClientData (*nsfGetClassClientData) (Tcl_Interp *interp, Nsf_Class *cl); /* 19 */ + void (*nsfRequireObjNamespace) (Tcl_Interp *interp, Nsf_Object *object); /* 20 */ + int (*nsfCallMethodWithArgs) (Tcl_Interp *interp, Nsf_Object *object, Tcl_Obj *method, Tcl_Obj *arg, int objc, Tcl_Obj *CONST objv[], unsigned int flags); /* 21 */ + int (*nsfAddObjectMethod) (Tcl_Interp *interp, struct Nsf_Object *object, CONST char *nm, Tcl_ObjCmdProc *proc, ClientData cd, Tcl_CmdDeleteProc *dp, unsigned int flags); /* 22 */ + int (*nsfAddClassMethod) (Tcl_Interp *interp, struct Nsf_Class *cl, CONST char *nm, Tcl_ObjCmdProc *proc, ClientData cd, Tcl_CmdDeleteProc *dp, unsigned int flags); /* 23 */ + int (*nsfCreate) (Tcl_Interp *in, Nsf_Class *class, Tcl_Obj *name, int objc, Tcl_Obj *CONST objv[]); /* 24 */ + int (*nsf_ArgumentParse) (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], Nsf_Object *object, Tcl_Obj *procNameObj, Nsf_Param CONST *paramPtr, int nrParams, int serial, unsigned int processFlags, Nsf_ParseContext *pcPtr); /* 25 */ + void (*nsfLog) (Tcl_Interp *interp, int requiredLevel, CONST char *fmt, ...); /* 26 */ + int (*nsf_PointerAdd) (Tcl_Interp *interp, char *buffer, CONST char *typeName, void *valuePtr); /* 27 */ + int (*nsf_PointerDelete) (CONST char *key, void *valuePtr, int free); /* 28 */ + int (*nsf_PointerTypeRegister) (Tcl_Interp *interp, CONST char*typeName, int *counterPtr); /* 29 */ + int (*nsf_ConvertToBoolean) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 30 */ + int (*nsf_ConvertToClass) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 31 */ + int (*nsf_ConvertToInt32) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 32 */ + int (*nsf_ConvertToInteger) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 33 */ + int (*nsf_ConvertToObject) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 34 */ + int (*nsf_ConvertToPointer) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 35 */ + int (*nsf_ConvertToString) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 36 */ + int (*nsf_ConvertToTclobj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr); /* 37 */ + int (*nsf_EnumerationTypeRegister) (Tcl_Interp *interp, Nsf_EnumeratorConverterEntry *typeRecords); /* 38 */ + int (*nsf_CmdDefinitionRegister) (Tcl_Interp *interp, Nsf_methodDefinition *definitionRecords); /* 39 */ +} NsfStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern const NsfStubs *nsfStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_NSF_STUBS) + +/* + * Inline function declarations: + */ + +#define Nsf_Init \ + (nsfStubsPtr->nsf_Init) /* 0 */ +/* Slot 1 is reserved */ +#define NsfIsClass \ + (nsfStubsPtr->nsfIsClass) /* 2 */ +#define NsfGetObject \ + (nsfStubsPtr->nsfGetObject) /* 3 */ +#define NsfGetClass \ + (nsfStubsPtr->nsfGetClass) /* 4 */ +#define NsfDeleteObject \ + (nsfStubsPtr->nsfDeleteObject) /* 5 */ +#define NsfRemoveObjectMethod \ + (nsfStubsPtr->nsfRemoveObjectMethod) /* 6 */ +#define NsfRemoveClassMethod \ + (nsfStubsPtr->nsfRemoveClassMethod) /* 7 */ +#define Nsf_ObjSetVar2 \ + (nsfStubsPtr->nsf_ObjSetVar2) /* 8 */ +#define Nsf_ObjGetVar2 \ + (nsfStubsPtr->nsf_ObjGetVar2) /* 9 */ +#define Nsf_UnsetVar2 \ + (nsfStubsPtr->nsf_UnsetVar2) /* 10 */ +#define NsfDStringPrintf \ + (nsfStubsPtr->nsfDStringPrintf) /* 11 */ +#define NsfPrintError \ + (nsfStubsPtr->nsfPrintError) /* 12 */ +#define NsfErrInProc \ + (nsfStubsPtr->nsfErrInProc) /* 13 */ +#define NsfObjErrType \ + (nsfStubsPtr->nsfObjErrType) /* 14 */ +#define NsfStackDump \ + (nsfStubsPtr->nsfStackDump) /* 15 */ +#define NsfSetObjClientData \ + (nsfStubsPtr->nsfSetObjClientData) /* 16 */ +#define NsfGetObjClientData \ + (nsfStubsPtr->nsfGetObjClientData) /* 17 */ +#define NsfSetClassClientData \ + (nsfStubsPtr->nsfSetClassClientData) /* 18 */ +#define NsfGetClassClientData \ + (nsfStubsPtr->nsfGetClassClientData) /* 19 */ +#define NsfRequireObjNamespace \ + (nsfStubsPtr->nsfRequireObjNamespace) /* 20 */ +#define NsfCallMethodWithArgs \ + (nsfStubsPtr->nsfCallMethodWithArgs) /* 21 */ +#define NsfAddObjectMethod \ + (nsfStubsPtr->nsfAddObjectMethod) /* 22 */ +#define NsfAddClassMethod \ + (nsfStubsPtr->nsfAddClassMethod) /* 23 */ +#define NsfCreate \ + (nsfStubsPtr->nsfCreate) /* 24 */ +#define Nsf_ArgumentParse \ + (nsfStubsPtr->nsf_ArgumentParse) /* 25 */ +#define NsfLog \ + (nsfStubsPtr->nsfLog) /* 26 */ +#define Nsf_PointerAdd \ + (nsfStubsPtr->nsf_PointerAdd) /* 27 */ +#define Nsf_PointerDelete \ + (nsfStubsPtr->nsf_PointerDelete) /* 28 */ +#define Nsf_PointerTypeRegister \ + (nsfStubsPtr->nsf_PointerTypeRegister) /* 29 */ +#define Nsf_ConvertToBoolean \ + (nsfStubsPtr->nsf_ConvertToBoolean) /* 30 */ +#define Nsf_ConvertToClass \ + (nsfStubsPtr->nsf_ConvertToClass) /* 31 */ +#define Nsf_ConvertToInt32 \ + (nsfStubsPtr->nsf_ConvertToInt32) /* 32 */ +#define Nsf_ConvertToInteger \ + (nsfStubsPtr->nsf_ConvertToInteger) /* 33 */ +#define Nsf_ConvertToObject \ + (nsfStubsPtr->nsf_ConvertToObject) /* 34 */ +#define Nsf_ConvertToPointer \ + (nsfStubsPtr->nsf_ConvertToPointer) /* 35 */ +#define Nsf_ConvertToString \ + (nsfStubsPtr->nsf_ConvertToString) /* 36 */ +#define Nsf_ConvertToTclobj \ + (nsfStubsPtr->nsf_ConvertToTclobj) /* 37 */ +#define Nsf_EnumerationTypeRegister \ + (nsfStubsPtr->nsf_EnumerationTypeRegister) /* 38 */ +#define Nsf_CmdDefinitionRegister \ + (nsfStubsPtr->nsf_CmdDefinitionRegister) /* 39 */ + +#endif /* defined(USE_NSF_STUBS) */ + +/* !END!: Do not edit above this line. */ + +#endif /* _NSFDECLS */ + Index: generic/stubs8.6/nsfIntDecls.h =================================================================== diff -u --- generic/stubs8.6/nsfIntDecls.h (revision 0) +++ generic/stubs8.6/nsfIntDecls.h (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,58 @@ +/* + * nsfIntDecls.h -- + * + * This file contains the declarations for all unsupported + * functions that are exported by the Tcl library. These + * interfaces are not guaranteed to remain the same between + * versions. Use at your own risk. + * + * Copyright (C) 1998-2008 Uwe Zdun + * Copyright (C) 1998-2014 Gustaf Neumann + * + * See the file "tcl-license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#ifndef _NSFINTDECLS +#define _NSFINTDECLS + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the nsfInt.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + + +typedef struct NsfIntStubs { + int magic; + void *hooks; + +} NsfIntStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern const NsfIntStubs *nsfIntStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_NSF_STUBS) + +/* + * Inline function declarations: + */ + + +#endif /* defined(USE_NSF_STUBS) */ + +/* !END!: Do not edit above this line. */ + +#endif /* _NSFINTDECLS */ Index: generic/stubs8.6/nsfStubInit.c =================================================================== diff -u --- generic/stubs8.6/nsfStubInit.c (revision 0) +++ generic/stubs8.6/nsfStubInit.c (revision 74d3e18a8ce3eedc4cbf6b8900d0f262d59ea708) @@ -0,0 +1,99 @@ +/* + * nxStubInit.c -- + * + * This file contains the initializers for the stub vectors of the Next + * Scripting Framework. + * + * Copyright (C) 1998-1999 by XXX + * + * See the file "tcl-license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#include "nsfInt.h" + +/* + * Remove macros that will interfere with the definitions below. + */ + +/* + * WARNING: The contents of this file is automatically generated by the + * tools/genStubs.tcl script. Any modifications to the function declarations + * below should be made in the generic/tcl.decls script. + */ + +#if defined(PRE86) +EXTERN NsfStubs nsfStubs; +# else +MODULE_SCOPE const NsfStubs nsfStubs; +#endif + + + + +/* !BEGIN!: Do not edit below this line. */ + +static const NsfIntStubs nsfIntStubs = { + TCL_STUB_MAGIC, + 0, +}; + +static const NsfStubHooks nsfStubHooks = { + &nsfIntStubs +}; + +const NsfStubs nsfStubs = { + TCL_STUB_MAGIC, + &nsfStubHooks, + Nsf_Init, /* 0 */ + 0, /* 1 */ + NsfIsClass, /* 2 */ + NsfGetObject, /* 3 */ + NsfGetClass, /* 4 */ + NsfDeleteObject, /* 5 */ + NsfRemoveObjectMethod, /* 6 */ + NsfRemoveClassMethod, /* 7 */ + Nsf_ObjSetVar2, /* 8 */ + Nsf_ObjGetVar2, /* 9 */ + Nsf_UnsetVar2, /* 10 */ + NsfDStringPrintf, /* 11 */ + NsfPrintError, /* 12 */ + NsfErrInProc, /* 13 */ + NsfObjErrType, /* 14 */ + NsfStackDump, /* 15 */ + NsfSetObjClientData, /* 16 */ + NsfGetObjClientData, /* 17 */ + NsfSetClassClientData, /* 18 */ + NsfGetClassClientData, /* 19 */ + NsfRequireObjNamespace, /* 20 */ + NsfCallMethodWithArgs, /* 21 */ + NsfAddObjectMethod, /* 22 */ + NsfAddClassMethod, /* 23 */ + NsfCreate, /* 24 */ + Nsf_ArgumentParse, /* 25 */ + NsfLog, /* 26 */ + Nsf_PointerAdd, /* 27 */ + Nsf_PointerDelete, /* 28 */ + Nsf_PointerTypeRegister, /* 29 */ + Nsf_ConvertToBoolean, /* 30 */ + Nsf_ConvertToClass, /* 31 */ + Nsf_ConvertToInt32, /* 32 */ + Nsf_ConvertToInteger, /* 33 */ + Nsf_ConvertToObject, /* 34 */ + Nsf_ConvertToPointer, /* 35 */ + Nsf_ConvertToString, /* 36 */ + Nsf_ConvertToTclobj, /* 37 */ + Nsf_EnumerationTypeRegister, /* 38 */ + Nsf_CmdDefinitionRegister, /* 39 */ +}; + +/* !END!: Do not edit above this line. */ + +/* + * Local Variables: + * mode: c + * c-basic-offset: 2 + * fill-column: 78 + * End: + */