Index: generic/gentclAPI.tcl =================================================================== diff -u -N -r44ab715c53a4151f2bcd844fd6f3a1eb2fc0bbe6 -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 44ab715c53a4151f2bcd844fd6f3a1eb2fc0bbe6) +++ generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -486,7 +486,8 @@ puts "enum {\n $enumString\n} NsfMethods;\n" puts $fns set definitionString [join $ifds ",\n"] - puts "static Nsf_methodDefinition method_definitions\[$nrIfds\] = \{\n$definitionString,\{NULL\}\n\};\n" + set terminator {NULL, NULL, 0, {{NULL, 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}} + puts "static Nsf_methodDefinition method_definitions\[$nrIfds\] = \{\n$definitionString,\n{$terminator}\n\};\n" } proc methodDefinition {methodName methodType implementation parameterDefinitions options} { Index: generic/nsf.h =================================================================== diff -u -N -rfccf09e0f22cd91e00f937625d6510dcf35dbcd4 -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/nsf.h (.../nsf.h) (revision fccf09e0f22cd91e00f937625d6510dcf35dbcd4) +++ generic/nsf.h (.../nsf.h) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -307,7 +307,7 @@ Nsf_ConvertToTclobj, Nsf_ConvertToPointer; typedef struct Nsf_Param { - char *name; + const char *name; unsigned int flags; int nrArgs; Nsf_TypeConverter *converter; @@ -462,7 +462,7 @@ */ typedef struct Nsf_methodDefinition { - CONST char *methodName; + const char *methodName; Tcl_ObjCmdProc *proc; int nrParameters; Nsf_Param paramDefs[12]; Index: generic/nsfAPI.h =================================================================== diff -u -N -r4b207001b05300e9c4bbe28da106abadfb7ca1fc -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/nsfAPI.h (.../nsfAPI.h) (revision 4b207001b05300e9c4bbe28da106abadfb7ca1fc) +++ generic/nsfAPI.h (.../nsfAPI.h) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -3972,6 +3972,7 @@ }, {"::nsf::methods::object::info::vars", NsfObjInfoVarsMethodStub, 1, { {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} -},{NULL} +}, +{NULL, NULL, 0, {{NULL, 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}} }; Index: generic/nsfError.c =================================================================== diff -u -N -re0da9e0032a357fe5c6bfdd37a2d234e00780460 -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/nsfError.c (.../nsfError.c) (revision e0da9e0032a357fe5c6bfdd37a2d234e00780460) +++ generic/nsfError.c (.../nsfError.c) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -331,7 +331,7 @@ */ int NsfObjWrongArgs(Tcl_Interp *interp, const char *msg, Tcl_Obj *cmdNameObj, - Tcl_Obj *methodPathObj, char *arglist) { + Tcl_Obj *methodPathObj, const char *arglist) { int need_space = 0; Tcl_DString ds; Index: generic/nsfInt.h =================================================================== diff -u -N -rb089be700bb58579a48e77619512a47eb3c5562d -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/nsfInt.h (.../nsfInt.h) (revision b089be700bb58579a48e77619512a47eb3c5562d) +++ generic/nsfInt.h (.../nsfInt.h) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -179,8 +179,7 @@ # define MEM_COUNT_RELEASE() #endif -# define STRING_NEW(target, p, l) (target) = ckalloc((unsigned)(l)+1u); strncpy((target), (p), (l)); *((target)+(l)) = '\0'; \ - MEM_COUNT_ALLOC(#target, (target)) +# define STRING_NEW(target, p, l) (target) = strndup(p,l); MEM_COUNT_ALLOC(#target, (target)) # define STRING_FREE(key, p) MEM_COUNT_FREE((key), (p)); ckfree((p)) #define DSTRING_INIT(dsPtr) Tcl_DStringInit(dsPtr); MEM_COUNT_ALLOC("DString",(dsPtr)) @@ -714,9 +713,9 @@ NSF_RENAME } NsfGlobalNames; #if !defined(NSF_C) -EXTERN char *NsfGlobalStrings[]; +EXTERN const char *NsfGlobalStrings[]; #else -char *NsfGlobalStrings[] = { +const char *NsfGlobalStrings[] = { "", "0", "1", /* methods called internally */ "configure", "initialize", "getParameterSpec", @@ -1125,7 +1124,7 @@ EXTERN int NsfObjWrongArgs(Tcl_Interp *interp, CONST char *msg, Tcl_Obj *cmdName, Tcl_Obj *methodName, - char *arglist) + const char *arglist) nonnull(1) nonnull(2); EXTERN CONST char *NsfMethodName(Tcl_Obj *methodObj) Index: generic/nsfStubLib.c =================================================================== diff -u -N -r8e079b542dd68c7975117266efba2b4701909ce9 -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/nsfStubLib.c (.../nsfStubLib.c) (revision 8e079b542dd68c7975117266efba2b4701909ce9) +++ generic/nsfStubLib.c (.../nsfStubLib.c) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -121,7 +121,7 @@ } if (intStubsPtr == NULL) { - static char *errMsg = "missing stubInt table pointer"; + static const char *errMsg = "missing stubInt table pointer"; Tcl_ResetResult(interp); NsfPrintError(interp, "Error loading package %s: " Index: generic/nsfUtil.c =================================================================== diff -u -N -rbdfa0fc0d417405db109b2099da713dc4a0daa6f -r878a74b68b15d4ee5c33d345e670f50ce7473ebc --- generic/nsfUtil.c (.../nsfUtil.c) (revision bdfa0fc0d417405db109b2099da713dc4a0daa6f) +++ generic/nsfUtil.c (.../nsfUtil.c) (revision 878a74b68b15d4ee5c33d345e670f50ce7473ebc) @@ -148,7 +148,7 @@ *---------------------------------------------------------------------- */ -static char *alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; +static const char *alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; static size_t blockIncrement = 8u; /* static char *alphabet = "ab"; @@ -222,7 +222,7 @@ void NsfStringIncrInit(NsfStringIncrStruct *iss) { - char *p; + const char *p; int i = 0; const size_t bufSize = (blockIncrement > 2) ? blockIncrement : 2;