diff options
| author | kjnash <k.j.nash@usa.net> | 2022-10-26 12:35:18 (GMT) |
|---|---|---|
| committer | kjnash <k.j.nash@usa.net> | 2022-10-26 12:35:18 (GMT) |
| commit | 1e0a98c9aa064a2472cb7a62b51b86252528782b (patch) | |
| tree | e8abd26b5fc9a3e83614c3d3a01290eb551939f4 /generic/tclTest.c | |
| parent | 2ecf92f50b4fad000f8cf4b368ce47c6035bdf4c (diff) | |
| parent | 42b1c587058185cf982966c733806b5d6dd8625d (diff) | |
| download | tcl-1e0a98c9aa064a2472cb7a62b51b86252528782b.zip tcl-1e0a98c9aa064a2472cb7a62b51b86252528782b.tar.gz tcl-1e0a98c9aa064a2472cb7a62b51b86252528782b.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'generic/tclTest.c')
| -rw-r--r-- | generic/tclTest.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c index 539c90f..c9bad56 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -552,7 +552,7 @@ Tcltest_Init( { Tcl_CmdInfo info; Tcl_Obj **objv, *objPtr; - size_t objc; + Tcl_Size objc; int index; static const char *const specialOptions[] = { "-appinitprocerror", "-appinitprocdeleteinterp", @@ -1996,12 +1996,17 @@ TestencodingObjCmd( const char *string; TclEncoding *encodingPtr; static const char *const optionStrings[] = { - "create", "delete", NULL + "create", "delete", "nullength", NULL }; enum options { - ENC_CREATE, ENC_DELETE + ENC_CREATE, ENC_DELETE, ENC_NULLENGTH }; + if (objc < 2) { + Tcl_WrongNumArgs(interp, 1, objv, "command ?args?"); + return TCL_ERROR; + } + if (Tcl_GetIndexFromObj(interp, objv[1], optionStrings, "option", 0, &index) != TCL_OK) { return TCL_ERROR; @@ -2012,6 +2017,7 @@ TestencodingObjCmd( Tcl_EncodingType type; if (objc != 5) { + Tcl_WrongNumArgs(interp, 2, objv, "name toutfcmd fromutfcmd"); return TCL_ERROR; } encodingPtr = (TclEncoding*)ckalloc(sizeof(TclEncoding)); @@ -2048,6 +2054,20 @@ TestencodingObjCmd( Tcl_FreeEncoding(encoding); /* Free to match CREATE */ TclFreeInternalRep(objv[2]); /* Free the cached ref */ break; + + case ENC_NULLENGTH: + if (objc > 3) { + Tcl_WrongNumArgs(interp, 2, objv, "?encoding?"); + return TCL_ERROR; + } + encoding = + Tcl_GetEncoding(interp, objc == 2 ? NULL : Tcl_GetString(objv[2])); + if (encoding == NULL) { + return TCL_ERROR; + } + Tcl_SetObjResult(interp, + Tcl_NewIntObj(Tcl_GetEncodingNulLength(encoding))); + Tcl_FreeEncoding(encoding); } return TCL_OK; } @@ -3539,7 +3559,7 @@ TestlistrepCmd( return TCL_ERROR; } else { Tcl_Obj **objs; - ListSizeT nobjs; + Tcl_Size nobjs; ListRep listRep; Tcl_Obj *listRepObjs[4]; |
