summaryrefslogtreecommitdiffstats
path: root/generic/tclStubInit.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclStubInit.c')
-rw-r--r--generic/tclStubInit.c84
1 files changed, 77 insertions, 7 deletions
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index d34aff4..6b78e6f 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -135,6 +135,71 @@ static const char *TclUtfPrev(const char *src, const char *start) {
return Tcl_UtfPrev(src, start);
}
+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) {
+ *objcPtr = n;
+ }
+ return result;
+}
+int TclListObjLength(Tcl_Interp *interp, Tcl_Obj *listPtr,
+ size_t *lengthPtr) {
+ int n;
+ int result = Tcl_ListObjLength(interp, listPtr, &n);
+ if ((result == TCL_OK) && lengthPtr) {
+ *lengthPtr = n;
+ }
+ return result;
+}
+int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ size_t *sizePtr) {
+ int n, result = Tcl_DictObjSize(interp, dictPtr, &n);
+ if ((result == TCL_OK) && sizePtr) {
+ *sizePtr = n;
+ }
+ return result;
+}
+int TclSplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr,
+ const char ***argvPtr) {
+ int n;
+ int result = Tcl_SplitList(interp, listStr, &n, argvPtr);
+ if ((result == TCL_OK) && argcPtr) {
+ *argcPtr = n;
+ }
+ return result;
+}
+void TclSplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) {
+ int n;
+ Tcl_SplitPath(path, &n, argvPtr);
+ if (argcPtr) {
+ *argcPtr = n;
+ }
+}
+Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) {
+ int n;
+ Tcl_Obj *result = Tcl_FSSplitPath(pathPtr, &n);
+ if (result && lenPtr) {
+ *lenPtr = n;
+ }
+ return result;
+}
+int TclParseArgsObjv(Tcl_Interp *interp,
+ const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv,
+ Tcl_Obj ***remObjv) {
+ 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;
+}
+
#define TclBN_mp_add mp_add
#define TclBN_mp_and mp_and
#define TclBN_mp_clamp mp_clamp
@@ -1955,19 +2020,24 @@ const TclStubs tclStubs = {
Tcl_ExternalToUtfDStringEx, /* 658 */
Tcl_UtfToExternalDStringEx, /* 659 */
Tcl_AsyncMarkFromSignal, /* 660 */
- 0, /* 661 */
- 0, /* 662 */
- 0, /* 663 */
- 0, /* 664 */
- 0, /* 665 */
- 0, /* 666 */
- 0, /* 667 */
+ TclListObjGetElements, /* 661 */
+ TclListObjLength, /* 662 */
+ TclDictObjSize, /* 663 */
+ TclSplitList, /* 664 */
+ TclSplitPath, /* 665 */
+ TclFSSplitPath, /* 666 */
+ TclParseArgsObjv, /* 667 */
Tcl_UniCharLen, /* 668 */
TclNumUtfChars, /* 669 */
TclGetCharLength, /* 670 */
TclUtfAtIndex, /* 671 */
TclGetRange, /* 672 */
TclGetUniChar, /* 673 */
+ 0, /* 674 */
+ 0, /* 675 */
+ 0, /* 676 */
+ 0, /* 677 */
+ Tcl_ProcObjCmd2, /* 678 */
};
/* !END!: Do not edit above this line. */