From ffb2eeb8d171ebccdb0ed6364f34a415afd2c98a Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sun, 23 Jan 2022 21:56:09 +0000 Subject: Extend for Tcl lists > 2^31 elements (API only) --- generic/tcl.decls | 10 ++++++++++ generic/tclDecls.h | 23 +++++++++++++++++++++++ generic/tclStubInit.c | 23 +++++++++++++++++++++++ 3 files changed, 56 insertions(+) diff --git a/generic/tcl.decls b/generic/tcl.decls index bd9800a..249a361 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2442,6 +2442,16 @@ declare 660 { int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async, int sigNumber) } +# TIP #??? +declare 661 { + int TclListObjGetElements_(Tcl_Interp *interp, Tcl_Obj *listPtr, + size_t *objcPtr, Tcl_Obj ***objvPtr) +} +declare 662 { + int TclListObjLength_(Tcl_Interp *interp, Tcl_Obj *listPtr, + size_t *lengthPtr) +} + # ----- BASELINE -- FOR -- 8.7.0 ----- # ############################################################################## diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 6ca7633..18f9ed7 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1948,6 +1948,13 @@ EXTERN int Tcl_UniCharIsUnicode(int ch); /* 660 */ EXTERN int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async, int sigNumber); +/* 661 */ +EXTERN int TclListObjGetElements_(Tcl_Interp *interp, + Tcl_Obj *listPtr, size_t *objcPtr, + Tcl_Obj ***objvPtr); +/* 662 */ +EXTERN int TclListObjLength_(Tcl_Interp *interp, + Tcl_Obj *listPtr, size_t *lengthPtr); typedef struct { const struct TclPlatStubs *tclPlatStubs; @@ -2644,6 +2651,8 @@ typedef struct TclStubs { void (*reserved658)(void); void (*reserved659)(void); int (*tcl_AsyncMarkFromSignal) (Tcl_AsyncHandler async, int sigNumber); /* 660 */ + int (*tclListObjGetElements_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr); /* 661 */ + int (*tclListObjLength_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); /* 662 */ } TclStubs; extern const TclStubs *tclStubsPtr; @@ -3994,6 +4003,10 @@ extern const TclStubs *tclStubsPtr; /* Slot 659 is reserved */ #define Tcl_AsyncMarkFromSignal \ (tclStubsPtr->tcl_AsyncMarkFromSignal) /* 660 */ +#define TclListObjGetElements_ \ + (tclStubsPtr->tclListObjGetElements_) /* 661 */ +#define TclListObjLength_ \ + (tclStubsPtr->tclListObjLength_) /* 662 */ #endif /* defined(USE_TCL_STUBS) */ @@ -4271,6 +4284,16 @@ extern const TclStubs *tclStubsPtr; # define Tcl_UtfToWChar (sizeof(wchar_t) != sizeof(short) \ ? (int (*)(const char *, wchar_t *))tclStubsPtr->tcl_UtfToChar16 \ : (int (*)(const char *, wchar_t *))Tcl_UtfToUniChar) +# undef Tcl_ListObjGetElements +#ifndef TCL_NO_DEPRECATED +# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*objcPtr) == sizeof(int) \ + ? tclStubsPtr->tcl_ListObjGetElements((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \ + : tclStubsPtr->tclListObjGetElements_((interp), (listPtr), (size_t *)(void *)(objcPtr), (objvPtr))) +# undef Tcl_ListObjLength +# define Tcl_ListObjLength(interp, listPtr, lengthPtr) (sizeof(*lengthPtr) == sizeof(int) \ + ? tclStubsPtr->tcl_ListObjLength((interp), (listPtr), (int *)(void *)(lengthPtr)) \ + : tclStubsPtr->tclListObjLength_((interp), (listPtr), (size_t *)(void *)(lengthPtr))) +#endif /* TCL_NO_DEPRECATED */ #else # define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \ ? (char *(*)(const wchar_t *, int, Tcl_DString *))Tcl_UniCharToUtfDString \ diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index a1878c1..836eddc 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -123,6 +123,27 @@ static const char *TclUtfPrev(const char *src, const char *start) { return Tcl_UtfPrev(src, start); } +#define TclListObjGetElements_ LOGetElements +#define TclListObjLength_ LOLength +static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, + size_t *objcPtr, Tcl_Obj ***objvPtr) { + int n; + int result = Tcl_ListObjGetElements(interp, listPtr, &n, objvPtr); + if (objcPtr) { + *objcPtr = n; + } + return result; +} +static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, + size_t *lengthPtr) { + int n; + int result = Tcl_ListObjLength(interp, listPtr, &n); + if (lengthPtr) { + *lengthPtr = n; + } + return result; +} + #define TclBN_mp_add mp_add #define TclBN_mp_and mp_and #define TclBN_mp_clamp mp_clamp @@ -1944,6 +1965,8 @@ const TclStubs tclStubs = { 0, /* 658 */ 0, /* 659 */ Tcl_AsyncMarkFromSignal, /* 660 */ + TclListObjGetElements_, /* 661 */ + TclListObjLength_, /* 662 */ }; /* !END!: Do not edit above this line. */ -- cgit v0.12 From 16e6b20816194ac97a6a8adb11ab9ca050ee51d7 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 24 Jan 2022 10:00:06 +0000 Subject: Extend for Tcl dicts too (API only) --- doc/DictObj.3 | 2 +- doc/ListObj.3 | 6 +++--- generic/tcl.decls | 5 ++++- generic/tclDecls.h | 12 +++++++++++- generic/tclStubInit.c | 11 +++++++++++ 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/doc/DictObj.3 b/doc/DictObj.3 index 0b4c1ca..73b0da8 100644 --- a/doc/DictObj.3 +++ b/doc/DictObj.3 @@ -70,7 +70,7 @@ Points to a variable that will have the value from a key/value pair placed within it. For \fBTcl_DictObjFirst\fR and \fBTcl_DictObjNext\fR, this may be NULL to indicate that the caller is not interested in the value. -.AP int *sizePtr out +.AP size_t | int *sizePtr out Points to a variable that will have the number of key/value pairs contained within the dictionary placed within it. .AP Tcl_DictSearch *searchPtr in/out diff --git a/doc/ListObj.3 b/doc/ListObj.3 index 67721c9..403789d 100644 --- a/doc/ListObj.3 +++ b/doc/ListObj.3 @@ -28,7 +28,7 @@ int \fBTcl_ListObjGetElements\fR(\fIinterp, listPtr, objcPtr, objvPtr\fR) .sp int -\fBTcl_ListObjLength\fR(\fIinterp, listPtr, intPtr\fR) +\fBTcl_ListObjLength\fR(\fIinterp, listPtr, lengthPtr\fR) .sp int \fBTcl_ListObjIndex\fR(\fIinterp, listPtr, index, objPtrPtr\fR) @@ -76,7 +76,7 @@ An array of pointers to values. \fBTcl_NewListObj\fR will insert these values into a new list value and \fBTcl_ListObjReplace\fR will insert them into an existing \fIlistPtr\fR. Each value will become a separate list element. -.AP int *intPtr out +.AP size_t | int *lengthPtr out Points to location where \fBTcl_ListObjLength\fR stores the length of the list. .AP int index in @@ -162,7 +162,7 @@ Otherwise it returns \fBTCL_OK\fR after storing the count and array pointer. .PP \fBTcl_ListObjLength\fR returns the number of elements in the list value referenced by \fIlistPtr\fR. -It returns this count by storing an integer in the address \fIintPtr\fR. +It returns this count by storing a value in the address \fIlengthPtr\fR. If the value is not already a list value, \fBTcl_ListObjLength\fR will attempt to convert it to one; if the conversion fails, it returns \fBTCL_ERROR\fR diff --git a/generic/tcl.decls b/generic/tcl.decls index 249a361..b0d2dd4 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2442,7 +2442,7 @@ declare 660 { int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async, int sigNumber) } -# TIP #??? +# TIP #616 declare 661 { int TclListObjGetElements_(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr) @@ -2451,6 +2451,9 @@ declare 662 { int TclListObjLength_(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr) } +declare 663 { + int TclDictObjSize_(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) +} # ----- BASELINE -- FOR -- 8.7.0 ----- # diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 18f9ed7..d19881d 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1955,6 +1955,9 @@ EXTERN int TclListObjGetElements_(Tcl_Interp *interp, /* 662 */ EXTERN int TclListObjLength_(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); +/* 663 */ +EXTERN int TclDictObjSize_(Tcl_Interp *interp, Tcl_Obj *dictPtr, + size_t *sizePtr); typedef struct { const struct TclPlatStubs *tclPlatStubs; @@ -2653,6 +2656,7 @@ typedef struct TclStubs { int (*tcl_AsyncMarkFromSignal) (Tcl_AsyncHandler async, int sigNumber); /* 660 */ int (*tclListObjGetElements_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr); /* 661 */ int (*tclListObjLength_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); /* 662 */ + int (*tclDictObjSize_) (Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); /* 663 */ } TclStubs; extern const TclStubs *tclStubsPtr; @@ -4007,6 +4011,8 @@ extern const TclStubs *tclStubsPtr; (tclStubsPtr->tclListObjGetElements_) /* 661 */ #define TclListObjLength_ \ (tclStubsPtr->tclListObjLength_) /* 662 */ +#define TclDictObjSize_ \ + (tclStubsPtr->tclDictObjSize_) /* 663 */ #endif /* defined(USE_TCL_STUBS) */ @@ -4285,7 +4291,7 @@ extern const TclStubs *tclStubsPtr; ? (int (*)(const char *, wchar_t *))tclStubsPtr->tcl_UtfToChar16 \ : (int (*)(const char *, wchar_t *))Tcl_UtfToUniChar) # undef Tcl_ListObjGetElements -#ifndef TCL_NO_DEPRECATED +#ifdef TCL_NO_DEPRECATED # define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*objcPtr) == sizeof(int) \ ? tclStubsPtr->tcl_ListObjGetElements((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \ : tclStubsPtr->tclListObjGetElements_((interp), (listPtr), (size_t *)(void *)(objcPtr), (objvPtr))) @@ -4293,6 +4299,10 @@ extern const TclStubs *tclStubsPtr; # define Tcl_ListObjLength(interp, listPtr, lengthPtr) (sizeof(*lengthPtr) == sizeof(int) \ ? tclStubsPtr->tcl_ListObjLength((interp), (listPtr), (int *)(void *)(lengthPtr)) \ : tclStubsPtr->tclListObjLength_((interp), (listPtr), (size_t *)(void *)(lengthPtr))) +# undef Tcl_DictObjSize +# define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*sizePtr) == sizeof(int) \ + ? tclStubsPtr->tcl_DictObjSize((interp), (dictPtr), (int *)(void *)(sizePtr)) \ + : tclStubsPtr->tclDictObjSize_((interp), (dictPtr), (size_t *)(void *)(sizePtr))) #endif /* TCL_NO_DEPRECATED */ #else # define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \ diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 836eddc..234805c 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -125,6 +125,7 @@ static const char *TclUtfPrev(const char *src, const char *start) { #define TclListObjGetElements_ LOGetElements #define TclListObjLength_ LOLength +#define TclDictObjSize_ DOSize static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr) { int n; @@ -143,6 +144,15 @@ static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, } return result; } +static int DOSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, + size_t *sizePtr) { + int n; + int result = Tcl_DictObjSize(interp, dictPtr, &n); + if (sizePtr) { + *sizePtr = n; + } + return result; +} #define TclBN_mp_add mp_add #define TclBN_mp_and mp_and @@ -1967,6 +1977,7 @@ const TclStubs tclStubs = { Tcl_AsyncMarkFromSignal, /* 660 */ TclListObjGetElements_, /* 661 */ TclListObjLength_, /* 662 */ + TclDictObjSize_, /* 663 */ }; /* !END!: Do not edit above this line. */ -- cgit v0.12 From 364d37365b43f2cb17f975257f2280788348cdb1 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 24 Jan 2022 21:24:02 +0000 Subject: 3 more stub-entries --- generic/tcl.decls | 10 ++++++++++ generic/tclDecls.h | 30 ++++++++++++++++++++++++++++++ generic/tclStubInit.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) diff --git a/generic/tcl.decls b/generic/tcl.decls index b0d2dd4..e59f841 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2454,6 +2454,16 @@ declare 662 { declare 663 { int TclDictObjSize_(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) } +declare 664 { + int TclSplitList_(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, + const char ***argvPtr) +} +declare 665 { + void TclSplitPath_(const char *path, size_t *argcPtr, const char ***argvPtr) +} +declare 666 { + Tcl_Obj *TclFSSplitPath_(Tcl_Obj *pathPtr, size_t *lenPtr) +} # ----- BASELINE -- FOR -- 8.7.0 ----- # diff --git a/generic/tclDecls.h b/generic/tclDecls.h index d19881d..94cfddd 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1958,6 +1958,15 @@ EXTERN int TclListObjLength_(Tcl_Interp *interp, /* 663 */ EXTERN int TclDictObjSize_(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); +/* 664 */ +EXTERN int TclSplitList_(Tcl_Interp *interp, + const char *listStr, size_t *argcPtr, + const char ***argvPtr); +/* 665 */ +EXTERN void TclSplitPath_(const char *path, size_t *argcPtr, + const char ***argvPtr); +/* 666 */ +EXTERN Tcl_Obj * TclFSSplitPath_(Tcl_Obj *pathPtr, size_t *lenPtr); typedef struct { const struct TclPlatStubs *tclPlatStubs; @@ -2657,6 +2666,9 @@ typedef struct TclStubs { int (*tclListObjGetElements_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr); /* 661 */ int (*tclListObjLength_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); /* 662 */ int (*tclDictObjSize_) (Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); /* 663 */ + int (*tclSplitList_) (Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr); /* 664 */ + void (*tclSplitPath_) (const char *path, size_t *argcPtr, const char ***argvPtr); /* 665 */ + Tcl_Obj * (*tclFSSplitPath_) (Tcl_Obj *pathPtr, size_t *lenPtr); /* 666 */ } TclStubs; extern const TclStubs *tclStubsPtr; @@ -4013,6 +4025,12 @@ extern const TclStubs *tclStubsPtr; (tclStubsPtr->tclListObjLength_) /* 662 */ #define TclDictObjSize_ \ (tclStubsPtr->tclDictObjSize_) /* 663 */ +#define TclSplitList_ \ + (tclStubsPtr->tclSplitList_) /* 664 */ +#define TclSplitPath_ \ + (tclStubsPtr->tclSplitPath_) /* 665 */ +#define TclFSSplitPath_ \ + (tclStubsPtr->tclFSSplitPath_) /* 666 */ #endif /* defined(USE_TCL_STUBS) */ @@ -4303,6 +4321,18 @@ extern const TclStubs *tclStubsPtr; # define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*sizePtr) == sizeof(int) \ ? tclStubsPtr->tcl_DictObjSize((interp), (dictPtr), (int *)(void *)(sizePtr)) \ : tclStubsPtr->tclDictObjSize_((interp), (dictPtr), (size_t *)(void *)(sizePtr))) +# undef Tcl_SplitList +# define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*argcPtr) == sizeof(int) \ + ? tclStubsPtr->tcl_SplitList((interp), (listStr), (int *)(void *)(argcPtr), (argvPtr)) \ + : tclStubsPtr->tclSplitList_((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr))) +# undef Tcl_SplitPath +# define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*argcPtr) == sizeof(int) \ + ? tclStubsPtr->tcl_SplitPath((path), (int *)(void *)(argcPtr), (argvPtr)) \ + : tclStubsPtr->tclSplitPath_((path), (size_t *)(void *)(argcPtr), (argvPtr))) +# undef Tcl_FSSplitPath +# define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*lenPtr) == sizeof(int) \ + ? tclStubsPtr->tcl_FSSplitPath((pathPtr), (int *)(void *)(lenPtr)) \ + : tclStubsPtr->tclFSSplitPath_((pathPtr), (size_t *)(void *)(lenPtr))) #endif /* TCL_NO_DEPRECATED */ #else # define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \ diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 234805c..62d2fce 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -126,6 +126,9 @@ static const char *TclUtfPrev(const char *src, const char *start) { #define TclListObjGetElements_ LOGetElements #define TclListObjLength_ LOLength #define TclDictObjSize_ DOSize +#define TclSplitList_ SplitList +#define TclSplitPath_ SplitPath +#define TclFSSplitPath_ FSSplitPath static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr) { int n; @@ -153,6 +156,30 @@ static int DOSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, } return result; } +static int SplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, + const char ***argvPtr) { + int n; + int result = Tcl_SplitList(interp, listStr, &n, argvPtr); + if (argcPtr) { + *argcPtr = n; + } + return result; +} +static void SplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) { + int n; + Tcl_SplitPath(path, &n, argvPtr); + if (argcPtr) { + *argcPtr = n; + } +} +static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { + int n; + Tcl_Obj *result = Tcl_FSSplitPath(pathPtr, &n); + if (lenPtr) { + *lenPtr = n; + } + return result; +} #define TclBN_mp_add mp_add #define TclBN_mp_and mp_and @@ -1978,6 +2005,9 @@ const TclStubs tclStubs = { TclListObjGetElements_, /* 661 */ TclListObjLength_, /* 662 */ TclDictObjSize_, /* 663 */ + TclSplitList_, /* 664 */ + TclSplitPath_, /* 665 */ + TclFSSplitPath_, /* 666 */ }; /* !END!: Do not edit above this line. */ -- cgit v0.12 From bd3452ab58ddcb280f56576e2404a728e7e69816 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 25 Jan 2022 15:19:52 +0000 Subject: unbreak (windows) build --- generic/tclDecls.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 94cfddd..d3728d2 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -4308,8 +4308,8 @@ extern const TclStubs *tclStubsPtr; # define Tcl_UtfToWChar (sizeof(wchar_t) != sizeof(short) \ ? (int (*)(const char *, wchar_t *))tclStubsPtr->tcl_UtfToChar16 \ : (int (*)(const char *, wchar_t *))Tcl_UtfToUniChar) -# undef Tcl_ListObjGetElements #ifdef TCL_NO_DEPRECATED +# undef Tcl_ListObjGetElements # define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*objcPtr) == sizeof(int) \ ? tclStubsPtr->tcl_ListObjGetElements((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \ : tclStubsPtr->tclListObjGetElements_((interp), (listPtr), (size_t *)(void *)(objcPtr), (objvPtr))) -- cgit v0.12 From b323b6696d5340e0202d6fc888c404cd232dceec Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 26 Jan 2022 13:33:49 +0000 Subject: Add TclParseArgsObjv_ --- generic/tcl.decls | 4 ++++ generic/tclDecls.h | 12 ++++++++++++ generic/tclStubInit.c | 17 +++++++++++++---- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/generic/tcl.decls b/generic/tcl.decls index e59f841..ebdbac1 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2464,6 +2464,10 @@ declare 665 { declare 666 { Tcl_Obj *TclFSSplitPath_(Tcl_Obj *pathPtr, size_t *lenPtr) } +declare 667 { + int TclParseArgsObjv_(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, + size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv) +} # ----- BASELINE -- FOR -- 8.7.0 ----- # diff --git a/generic/tclDecls.h b/generic/tclDecls.h index d3728d2..909cb6e 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1967,6 +1967,11 @@ EXTERN void TclSplitPath_(const char *path, size_t *argcPtr, const char ***argvPtr); /* 666 */ EXTERN Tcl_Obj * TclFSSplitPath_(Tcl_Obj *pathPtr, size_t *lenPtr); +/* 667 */ +EXTERN int TclParseArgsObjv_(Tcl_Interp *interp, + const Tcl_ArgvInfo *argTable, + size_t *objcPtr, Tcl_Obj *const *objv, + Tcl_Obj ***remObjv); typedef struct { const struct TclPlatStubs *tclPlatStubs; @@ -2669,6 +2674,7 @@ typedef struct TclStubs { int (*tclSplitList_) (Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr); /* 664 */ void (*tclSplitPath_) (const char *path, size_t *argcPtr, const char ***argvPtr); /* 665 */ Tcl_Obj * (*tclFSSplitPath_) (Tcl_Obj *pathPtr, size_t *lenPtr); /* 666 */ + int (*tclParseArgsObjv_) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 667 */ } TclStubs; extern const TclStubs *tclStubsPtr; @@ -4031,6 +4037,8 @@ extern const TclStubs *tclStubsPtr; (tclStubsPtr->tclSplitPath_) /* 665 */ #define TclFSSplitPath_ \ (tclStubsPtr->tclFSSplitPath_) /* 666 */ +#define TclParseArgsObjv_ \ + (tclStubsPtr->tclParseArgsObjv_) /* 667 */ #endif /* defined(USE_TCL_STUBS) */ @@ -4333,6 +4341,10 @@ extern const TclStubs *tclStubsPtr; # define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*lenPtr) == sizeof(int) \ ? tclStubsPtr->tcl_FSSplitPath((pathPtr), (int *)(void *)(lenPtr)) \ : tclStubsPtr->tclFSSplitPath_((pathPtr), (size_t *)(void *)(lenPtr))) +# undef Tcl_ParseArgsObjv +# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*objcPtr) == sizeof(int) \ + ? tclStubsPtr->tcl_ParseArgsObjv((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \ + : tclStubsPtr->tclParseArgsObjv_((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv))) #endif /* TCL_NO_DEPRECATED */ #else # define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \ diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 62d2fce..f9987cf 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -129,10 +129,10 @@ static const char *TclUtfPrev(const char *src, const char *start) { #define TclSplitList_ SplitList #define TclSplitPath_ SplitPath #define TclFSSplitPath_ FSSplitPath +#define TclParseArgsObjv_ ParseArgsObjv static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr) { - int n; - int result = Tcl_ListObjGetElements(interp, listPtr, &n, objvPtr); + int n, result = Tcl_ListObjGetElements(interp, listPtr, &n, objvPtr); if (objcPtr) { *objcPtr = n; } @@ -149,8 +149,7 @@ static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, } static int DOSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) { - int n; - int result = Tcl_DictObjSize(interp, dictPtr, &n); + int n, result = Tcl_DictObjSize(interp, dictPtr, &n); if (sizePtr) { *sizePtr = n; } @@ -180,6 +179,15 @@ static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { } return result; } +static int ParseArgsObjv(Tcl_Interp *interp, + const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, + Tcl_Obj ***remObjv) { + int n, result = Tcl_ParseArgsObjv(interp, argTable, &n, objv, remObjv); + if (objcPtr) { + *objcPtr = n; + } + return result; +} #define TclBN_mp_add mp_add #define TclBN_mp_and mp_and @@ -2008,6 +2016,7 @@ const TclStubs tclStubs = { TclSplitList_, /* 664 */ TclSplitPath_, /* 665 */ TclFSSplitPath_, /* 666 */ + TclParseArgsObjv_, /* 667 */ }; /* !END!: Do not edit above this line. */ -- cgit v0.12 From bf64a365e9f1d014beba0694f2dce3718eb64036 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 28 Jan 2022 10:52:40 +0000 Subject: Use more size_t in tclTest.c, for testing the new wrapper functions --- generic/tclTest.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/generic/tclTest.c b/generic/tclTest.c index 5e6ca8c..7c820df 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -443,7 +443,8 @@ Tcltest_Init( Tcl_Interp *interp) /* Interpreter for application. */ { Tcl_Obj **objv, *objPtr; - int objc, index; + size_t objc; + int index; static const char *const specialOptions[] = { "-appinitprocerror", "-appinitprocdeleteinterp", "-appinitprocclosestderr", "-appinitprocsetrcfile", NULL @@ -6790,7 +6791,7 @@ SimpleMatchInDirectory( origPtr = SimpleRedirect(dirPtr); res = Tcl_FSMatchInDirectory(interp, resPtr, origPtr, pattern, types); if (res == TCL_OK) { - int gLength, j; + size_t gLength, j; Tcl_ListObjLength(NULL, resPtr, &gLength); for (j = 0; j < gLength; j++) { Tcl_Obj *gElt, *nElt; @@ -7353,7 +7354,8 @@ TestconcatobjCmd( TCL_UNUSED(const char **) /*argv*/) { Tcl_Obj *list1Ptr, *list2Ptr, *emptyPtr, *concatPtr, *tmpPtr; - int result = TCL_OK, len; + int result = TCL_OK; + size_t len; Tcl_Obj *objv[3]; /* -- cgit v0.12 From 8a77ee4ce9cbc4b3b5f858eaf986deff8f654fcd Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 28 Jan 2022 13:25:51 +0000 Subject: Fix ParseArgsObjv() wrapper, and adapt testcase to prove that it works --- generic/tclStubInit.c | 22 ++++++++++++++-------- generic/tclTest.c | 4 ++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index f9987cf..5fd6da7 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -133,7 +133,7 @@ static const char *TclUtfPrev(const char *src, const char *start) { static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr) { int n, result = Tcl_ListObjGetElements(interp, listPtr, &n, objvPtr); - if (objcPtr) { + if ((result == TCL_OK) && objcPtr) { *objcPtr = n; } return result; @@ -142,7 +142,7 @@ static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr) { int n; int result = Tcl_ListObjLength(interp, listPtr, &n); - if (lengthPtr) { + if ((result == TCL_OK) && lengthPtr) { *lengthPtr = n; } return result; @@ -150,7 +150,7 @@ static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, static int DOSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) { int n, result = Tcl_DictObjSize(interp, dictPtr, &n); - if (sizePtr) { + if ((result == TCL_OK) && sizePtr) { *sizePtr = n; } return result; @@ -159,7 +159,7 @@ static int SplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr) { int n; int result = Tcl_SplitList(interp, listStr, &n, argvPtr); - if (argcPtr) { + if ((result == TCL_OK) && argcPtr) { *argcPtr = n; } return result; @@ -174,7 +174,7 @@ static void SplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { int n; Tcl_Obj *result = Tcl_FSSplitPath(pathPtr, &n); - if (lenPtr) { + if (result && lenPtr) { *lenPtr = n; } return result; @@ -182,10 +182,16 @@ static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { static int ParseArgsObjv(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv) { - int n, result = Tcl_ParseArgsObjv(interp, argTable, &n, objv, remObjv); - if (objcPtr) { - *objcPtr = n; + int n, result; + if (*objcPtr > INT_MAX) { + if (interp) { + Tcl_AppendResult(interp, "Tcl_ParseArgsObjv cannot handle *objcPtr > INT_MAX", NULL); + } + return TCL_ERROR; } + n = (int)*objcPtr; + result = Tcl_ParseArgsObjv(interp, argTable, &n, objv, remObjv); + *objcPtr = n; return result; } diff --git a/generic/tclTest.c b/generic/tclTest.c index 7c820df..b523a96 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -7712,7 +7712,7 @@ TestparseargsCmd( Tcl_Obj *const objv[]) /* Arguments. */ { static int foo = 0; - int count = objc; + size_t count = objc; Tcl_Obj **remObjv, *result[3]; Tcl_ArgvInfo argTable[] = { {TCL_ARGV_CONSTANT, "-bool", INT2PTR(1), &foo, "booltest", NULL}, @@ -7724,7 +7724,7 @@ TestparseargsCmd( return TCL_ERROR; } result[0] = Tcl_NewIntObj(foo); - result[1] = Tcl_NewIntObj(count); + result[1] = Tcl_NewWideIntObj(count); result[2] = Tcl_NewListObj(count, remObjv); Tcl_SetObjResult(interp, Tcl_NewListObj(3, result)); ckfree(remObjv); -- cgit v0.12 From 2c603a6a0f21a7c2eadaad5c05dde221d46699c0 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 17 May 2022 08:49:40 +0000 Subject: some less underscores in exported functions --- generic/tcl.decls | 10 ++++---- generic/tclDecls.h | 70 +++++++++++++++++++++++---------------------------- generic/tclStubInit.c | 31 +++++++++-------------- 3 files changed, 48 insertions(+), 63 deletions(-) diff --git a/generic/tcl.decls b/generic/tcl.decls index 46b68f5..68bad77 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2460,20 +2460,20 @@ declare 662 { size_t *lengthPtr) } declare 663 { - int TclDictObjSize_(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) + int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) } declare 664 { - int TclSplitList_(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, + int TclSplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr) } declare 665 { - void TclSplitPath_(const char *path, size_t *argcPtr, const char ***argvPtr) + void TclSplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) } declare 666 { - Tcl_Obj *TclFSSplitPath_(Tcl_Obj *pathPtr, size_t *lenPtr) + Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) } declare 667 { - int TclParseArgsObjv_(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, + int TclParseArgsObjv(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv) } diff --git a/generic/tclDecls.h b/generic/tclDecls.h index e10f25a..77ec110 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1963,19 +1963,18 @@ EXTERN int TclListObjGetElements_(Tcl_Interp *interp, EXTERN int TclListObjLength_(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); /* 663 */ -EXTERN int TclDictObjSize_(Tcl_Interp *interp, Tcl_Obj *dictPtr, +EXTERN int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); /* 664 */ -EXTERN int TclSplitList_(Tcl_Interp *interp, - const char *listStr, size_t *argcPtr, - const char ***argvPtr); +EXTERN int TclSplitList(Tcl_Interp *interp, const char *listStr, + size_t *argcPtr, const char ***argvPtr); /* 665 */ -EXTERN void TclSplitPath_(const char *path, size_t *argcPtr, +EXTERN void TclSplitPath(const char *path, size_t *argcPtr, const char ***argvPtr); /* 666 */ -EXTERN Tcl_Obj * TclFSSplitPath_(Tcl_Obj *pathPtr, size_t *lenPtr); +EXTERN Tcl_Obj * TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr); /* 667 */ -EXTERN int TclParseArgsObjv_(Tcl_Interp *interp, +EXTERN int TclParseArgsObjv(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); @@ -2689,11 +2688,11 @@ typedef struct TclStubs { int (*tcl_AsyncMarkFromSignal) (Tcl_AsyncHandler async, int sigNumber); /* 660 */ int (*tclListObjGetElements_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr); /* 661 */ int (*tclListObjLength_) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); /* 662 */ - int (*tclDictObjSize_) (Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); /* 663 */ - int (*tclSplitList_) (Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr); /* 664 */ - void (*tclSplitPath_) (const char *path, size_t *argcPtr, const char ***argvPtr); /* 665 */ - Tcl_Obj * (*tclFSSplitPath_) (Tcl_Obj *pathPtr, size_t *lenPtr); /* 666 */ - int (*tclParseArgsObjv_) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 667 */ + int (*tclDictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); /* 663 */ + int (*tclSplitList) (Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr); /* 664 */ + void (*tclSplitPath) (const char *path, size_t *argcPtr, const char ***argvPtr); /* 665 */ + Tcl_Obj * (*tclFSSplitPath) (Tcl_Obj *pathPtr, size_t *lenPtr); /* 666 */ + int (*tclParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 667 */ int (*tcl_UniCharLen) (const int *uniStr); /* 668 */ int (*tclNumUtfChars) (const char *src, int length); /* 669 */ int (*tclGetCharLength) (Tcl_Obj *objPtr); /* 670 */ @@ -4056,16 +4055,16 @@ extern const TclStubs *tclStubsPtr; (tclStubsPtr->tclListObjGetElements_) /* 661 */ #define TclListObjLength_ \ (tclStubsPtr->tclListObjLength_) /* 662 */ -#define TclDictObjSize_ \ - (tclStubsPtr->tclDictObjSize_) /* 663 */ -#define TclSplitList_ \ - (tclStubsPtr->tclSplitList_) /* 664 */ -#define TclSplitPath_ \ - (tclStubsPtr->tclSplitPath_) /* 665 */ -#define TclFSSplitPath_ \ - (tclStubsPtr->tclFSSplitPath_) /* 666 */ -#define TclParseArgsObjv_ \ - (tclStubsPtr->tclParseArgsObjv_) /* 667 */ +#define TclDictObjSize \ + (tclStubsPtr->tclDictObjSize) /* 663 */ +#define TclSplitList \ + (tclStubsPtr->tclSplitList) /* 664 */ +#define TclSplitPath \ + (tclStubsPtr->tclSplitPath) /* 665 */ +#define TclFSSplitPath \ + (tclStubsPtr->tclFSSplitPath) /* 666 */ +#define TclParseArgsObjv \ + (tclStubsPtr->tclParseArgsObjv) /* 667 */ #define Tcl_UniCharLen \ (tclStubsPtr->tcl_UniCharLen) /* 668 */ #define TclNumUtfChars \ @@ -4376,23 +4375,23 @@ extern const TclStubs *tclStubsPtr; # undef Tcl_DictObjSize # define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*(sizePtr)) == sizeof(int) \ ? tclStubsPtr->tcl_DictObjSize((interp), (dictPtr), (int *)(void *)(sizePtr)) \ - : tclStubsPtr->tclDictObjSize_((interp), (dictPtr), (size_t *)(void *)(sizePtr))) + : tclStubsPtr->tclDictObjSize((interp), (dictPtr), (size_t *)(void *)(sizePtr))) # undef Tcl_SplitList # define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \ ? tclStubsPtr->tcl_SplitList((interp), (listStr), (int *)(void *)(argcPtr), (argvPtr)) \ - : tclStubsPtr->tclSplitList_((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr))) + : tclStubsPtr->tclSplitList((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr))) # undef Tcl_SplitPath # define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \ ? tclStubsPtr->tcl_SplitPath((path), (int *)(void *)(argcPtr), (argvPtr)) \ - : tclStubsPtr->tclSplitPath_((path), (size_t *)(void *)(argcPtr), (argvPtr))) + : tclStubsPtr->tclSplitPath((path), (size_t *)(void *)(argcPtr), (argvPtr))) # undef Tcl_FSSplitPath # define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*(lenPtr)) == sizeof(int) \ ? tclStubsPtr->tcl_FSSplitPath((pathPtr), (int *)(void *)(lenPtr)) \ - : tclStubsPtr->tclFSSplitPath_((pathPtr), (size_t *)(void *)(lenPtr))) + : tclStubsPtr->tclFSSplitPath((pathPtr), (size_t *)(void *)(lenPtr))) # undef Tcl_ParseArgsObjv # define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) == sizeof(int) \ ? tclStubsPtr->tcl_ParseArgsObjv((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \ - : tclStubsPtr->tclParseArgsObjv_((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv))) + : tclStubsPtr->tclParseArgsObjv((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv))) #endif /* TCL_NO_DEPRECATED */ #else # define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \ @@ -4416,19 +4415,19 @@ extern const TclStubs *tclStubsPtr; : TclListObjLength_((interp), (listPtr), (size_t *)(void *)(lengthPtr))) # define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*(sizePtr)) == sizeof(int) \ ? (Tcl_DictObjSize)((interp), (dictPtr), (int *)(void *)(sizePtr)) \ - : TclDictObjSize_((interp), (dictPtr), (size_t *)(void *)(sizePtr))) + : TclDictObjSize((interp), (dictPtr), (size_t *)(void *)(sizePtr))) # define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \ ? (Tcl_SplitList)((interp), (listStr), (int *)(void *)(argcPtr), (argvPtr)) \ - : TclSplitList_((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr))) + : TclSplitList((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr))) # define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \ ? (Tcl_SplitPath)((path), (int *)(void *)(argcPtr), (argvPtr)) \ - : TclSplitPath_((path), (size_t *)(void *)(argcPtr), (argvPtr))) + : TclSplitPath((path), (size_t *)(void *)(argcPtr), (argvPtr))) # define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*(lenPtr)) == sizeof(int) \ ? (Tcl_FSSplitPath)((pathPtr), (int *)(void *)(lenPtr)) \ - : TclFSSplitPath_((pathPtr), (size_t *)(void *)(lenPtr))) + : TclFSSplitPath((pathPtr), (size_t *)(void *)(lenPtr))) # define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) == sizeof(int) \ ? (Tcl_ParseArgsObjv)((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \ - : TclParseArgsObjv_((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv))) + : TclParseArgsObjv((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv))) #endif /* TCL_NO_DEPRECATED */ #endif @@ -4451,13 +4450,6 @@ extern const TclStubs *tclStubsPtr; #undef TclUtfCharComplete #undef TclUtfNext #undef TclUtfPrev -#undef TclListObjGetElements_ -#undef TclListObjLength_ -#undef TclDictObjSize_ -#undef TclSplitList_ -#undef TclSplitPath_ -#undef TclFSSplitPath_ -#undef TclParseArgsObjv_ #if defined(USE_TCL_STUBS) && (TCL_UTF_MAX < 4) && !defined(TCL_NO_DEPRECATED) # undef Tcl_UtfCharComplete # undef Tcl_UtfNext diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 18a8bff..ba74f8e 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -131,14 +131,7 @@ static const char *TclUtfPrev(const char *src, const char *start) { return Tcl_UtfPrev(src, start); } -#define TclListObjGetElements_ LOGetElements -#define TclListObjLength_ LOLength -#define TclDictObjSize_ DOSize -#define TclSplitList_ SplitList -#define TclSplitPath_ SplitPath -#define TclFSSplitPath_ FSSplitPath -#define TclParseArgsObjv_ ParseArgsObjv -static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, +int TclListObjGetElements_(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr) { int n, result = Tcl_ListObjGetElements(interp, listPtr, &n, objvPtr); if ((result == TCL_OK) && objcPtr) { @@ -146,7 +139,7 @@ static int LOGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, } return result; } -static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, +int TclListObjLength_(Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr) { int n; int result = Tcl_ListObjLength(interp, listPtr, &n); @@ -155,7 +148,7 @@ static int LOLength(Tcl_Interp *interp, Tcl_Obj *listPtr, } return result; } -static int DOSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, +int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr) { int n, result = Tcl_DictObjSize(interp, dictPtr, &n); if ((result == TCL_OK) && sizePtr) { @@ -163,7 +156,7 @@ static int DOSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, } return result; } -static int SplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, +int TclSplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr) { int n; int result = Tcl_SplitList(interp, listStr, &n, argvPtr); @@ -172,14 +165,14 @@ static int SplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr, } return result; } -static void SplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) { +void TclSplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) { int n; Tcl_SplitPath(path, &n, argvPtr); if (argcPtr) { *argcPtr = n; } } -static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { +Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { int n; Tcl_Obj *result = Tcl_FSSplitPath(pathPtr, &n); if (result && lenPtr) { @@ -187,7 +180,7 @@ static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) { } return result; } -static int ParseArgsObjv(Tcl_Interp *interp, +int TclParseArgsObjv(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv) { int n, result; @@ -2025,11 +2018,11 @@ const TclStubs tclStubs = { Tcl_AsyncMarkFromSignal, /* 660 */ TclListObjGetElements_, /* 661 */ TclListObjLength_, /* 662 */ - TclDictObjSize_, /* 663 */ - TclSplitList_, /* 664 */ - TclSplitPath_, /* 665 */ - TclFSSplitPath_, /* 666 */ - TclParseArgsObjv_, /* 667 */ + TclDictObjSize, /* 663 */ + TclSplitList, /* 664 */ + TclSplitPath, /* 665 */ + TclFSSplitPath, /* 666 */ + TclParseArgsObjv, /* 667 */ Tcl_UniCharLen, /* 668 */ TclNumUtfChars, /* 669 */ TclGetCharLength, /* 670 */ -- cgit v0.12