diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-12-05 10:41:22 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-12-05 10:41:22 (GMT) |
| commit | f306b32b6c6df6ac6b9ba0853e3aa130e61c70d0 (patch) | |
| tree | 06a36887c094fbe0def7d6e08304122f52257370 /generic/tclTest.c | |
| parent | ec111e454d8d0c27ae09daa327636732a5c35164 (diff) | |
| download | tcl-f306b32b6c6df6ac6b9ba0853e3aa130e61c70d0.zip tcl-f306b32b6c6df6ac6b9ba0853e3aa130e61c70d0.tar.gz tcl-f306b32b6c6df6ac6b9ba0853e3aa130e61c70d0.tar.bz2 | |
Add (back) testcases for the compabitiliby macro's (which need TCL_8_API now)
Diffstat (limited to 'generic/tclTest.c')
| -rw-r--r-- | generic/tclTest.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c index 968556b..6db99c9 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -15,6 +15,7 @@ * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ +#define TCL_8_API #undef BUILD_tcl #undef STATIC_BUILD #ifndef USE_TCL_STUBS @@ -5762,7 +5763,14 @@ TestbytestringObjCmd( int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* The argument objects. */ { - Tcl_Size n; + struct { +#if !defined(TCL_NO_DEPRECATED) + int n; /* On purpose, not Tcl_Size, in order to demonstrate what happens */ +#else + Tcl_Size n; +#endif + int m; /* This variable should not be overwritten */ + } x = {0, 1}; const char *p; if (objc != 2) { @@ -5770,11 +5778,16 @@ TestbytestringObjCmd( return TCL_ERROR; } - p = (const char *)Tcl_GetBytesFromObj(interp, objv[1], &n); + p = (const char *)Tcl_GetBytesFromObj(interp, objv[1], &x.n); if (p == NULL) { return TCL_ERROR; } - Tcl_SetObjResult(interp, Tcl_NewStringObj(p, n)); + + if (x.m != 1) { + Tcl_AppendResult(interp, "Tcl_GetBytesFromObj() overwrites variable", (void *)NULL); + return TCL_ERROR; + } + Tcl_SetObjResult(interp, Tcl_NewStringObj(p, x.n)); return TCL_OK; } |
