From 1aa3608a1c3ecda44c952d36c2f2bbd4f23cedc4 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 25 Nov 2020 09:16:11 +0000 Subject: Remove the Tcl_GetValue() functionality. This can always be developed separately --- doc/DoubleObj.3 | 6 +++--- doc/IntObj.3 | 16 +++----------- generic/tcl.decls | 4 ---- generic/tcl.h | 8 ------- generic/tclDecls.h | 31 +++------------------------ generic/tclObj.c | 57 +------------------------------------------------ generic/tclStubInit.c | 2 +- generic/tclTest.c | 26 +++++++++++----------- generic/tclTestObj.c | 5 ++--- generic/tclThreadTest.c | 6 +++--- 10 files changed, 28 insertions(+), 133 deletions(-) diff --git a/doc/DoubleObj.3 b/doc/DoubleObj.3 index b05d0bd..85e4de5 100644 --- a/doc/DoubleObj.3 +++ b/doc/DoubleObj.3 @@ -19,7 +19,7 @@ Tcl_Obj * \fBTcl_SetDoubleObj\fR(\fIobjPtr, doubleValue\fR) .sp int -\fBTcl_GetDoubleFromObj\fR(\fIinterp, objPtr, ptr\fR) +\fBTcl_GetDoubleFromObj\fR(\fIinterp, objPtr, doublePtr\fR) .SH ARGUMENTS .AS Tcl_Interp doubleValue in/out .AP double doubleValue in @@ -31,8 +31,8 @@ For \fBTcl_GetDoubleFromObj\fR, this refers to the value from which to retrieve a double value. .AP Tcl_Interp *interp in/out When non-NULL, an error message is left here when double value retrieval fails. -.AP float|double *ptr out -Points to place to store the float or double value obtained from \fIobjPtr\fR. +.AP double *doublePtr out +Points to place to store the double value obtained from \fIobjPtr\fR. .BE .SH DESCRIPTION diff --git a/doc/IntObj.3 b/doc/IntObj.3 index b0abf0c..6d5ee69 100644 --- a/doc/IntObj.3 +++ b/doc/IntObj.3 @@ -8,7 +8,7 @@ .so man.macros .BS .SH NAME -Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, Tcl_GetIntFromObj, Tcl_GetUIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj, Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj \- manipulate Tcl values as integers +Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj, Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj \- manipulate Tcl values as integers .SH SYNOPSIS .nf \fB#include \fR @@ -32,15 +32,9 @@ int \fBTcl_GetIntFromObj\fR(\fIinterp, objPtr, intPtr\fR) .sp int -\fBTcl_GetUIntFromObj\fR(\fIinterp, objPtr, uintPtr\fR) -.sp -int \fBTcl_GetLongFromObj\fR(\fIinterp, objPtr, longPtr\fR) .sp int -\fBTcl_GetValue\fR(\fIinterp, objPtr, ptr, flags\fR) -.sp -int \fBTcl_GetWideIntFromObj\fR(\fIinterp, objPtr, widePtr\fR) .sp .sp @@ -77,16 +71,12 @@ to retrieve an integral value. .AP Tcl_Interp *interp in/out When non-NULL, an error message is left here when integral value retrieval fails. -.AP short|int|long|Tcl_WideInt *intPtr out +.AP int *intPtr out Points to place to store the integer value retrieved from \fIobjPtr\fR. -.AP unsigned short|int|long|Tcl_WideInt *uintPtr out -Points to place to store the unsigned integer value retrieved from \fIobjPtr\fR. .AP long *longPtr out Points to place to store the long integer value retrieved from \fIobjPtr\fR. .AP Tcl_WideInt *widePtr out Points to place to store the wide integer value retrieved from \fIobjPtr\fR. -.AP short|int|long|Tcl_WideInt|float|double *ptr out -Points to place to store the integer or float value retrieved from \fIobjPtr\fR. .AP mp_int *bigValue in/out Points to a multi-precision integer structure declared by the LibTomMath library. @@ -125,7 +115,7 @@ violates Tcl's copy-on-write policy. Any existing string representation or internal representation in the unshared Tcl value will be freed as a consequence of setting the new value. .PP -The \fBTcl_GetIntFromObj\fR, \fBTcl_GetUIntFromObj\fR, \fBTcl_GetLongFromObj\fR, +The \fBTcl_GetIntFromObj\fR, \fBTcl_GetLongFromObj\fR, \fBTcl_GetWideIntFromObj\fR, \fBTcl_GetBignumFromObj\fR, and \fBTcl_TakeBignumFromObj\fR routines attempt to retrieve an integral value of the appropriate type from the Tcl value \fIobjPtr\fR. If the diff --git a/generic/tcl.decls b/generic/tcl.decls index c8d15e2..c1b7ae1 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2347,10 +2347,6 @@ declare 635 { } # TIP #481 -declare 636 { - int Tcl_GetValue(Tcl_Interp *interp, Tcl_Obj *objPtr, - void *valuePtr, int flags) -} declare 637 { char *Tcl_GetStringFromObj2(Tcl_Obj *objPtr, size_t *lengthPtr) } diff --git a/generic/tcl.h b/generic/tcl.h index 7cb45b1..f1e4590 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -1108,14 +1108,6 @@ typedef struct Tcl_DString { #define TCL_LINK_READ_ONLY 0x80 /* - * Types for Tcl_GetValue(): - */ - -#define TCL_TYPE_D(type) (0x100 | (int)sizeof(type)) /* float/double/long double */ -#define TCL_TYPE_I(type) (0x200 | (int)sizeof(type)) /* signed integer */ -#define TCL_TYPE_U(type) (0x300 | (int)sizeof(type)) /* unsigned integer */ - -/* *---------------------------------------------------------------------------- * Forward declarations of Tcl_HashTable and related types. */ diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 01f01df..e4c11b4 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1875,9 +1875,7 @@ EXTERN Tcl_Obj * TclZipfs_TclLibrary(void); EXTERN int TclZipfs_MountBuffer(Tcl_Interp *interp, const char *mountPoint, unsigned char *data, size_t datalen, int copy); -/* 636 */ -EXTERN int Tcl_GetValue(Tcl_Interp *interp, Tcl_Obj *objPtr, - void *valuePtr, int flags); +/* Slot 636 is reserved */ /* 637 */ EXTERN char * Tcl_GetStringFromObj2(Tcl_Obj *objPtr, size_t *lengthPtr); @@ -2558,7 +2556,7 @@ typedef struct TclStubs { int (*tclZipfs_Unmount) (Tcl_Interp *interp, const char *mountPoint); /* 633 */ Tcl_Obj * (*tclZipfs_TclLibrary) (void); /* 634 */ int (*tclZipfs_MountBuffer) (Tcl_Interp *interp, const char *mountPoint, unsigned char *data, size_t datalen, int copy); /* 635 */ - int (*tcl_GetValue) (Tcl_Interp *interp, Tcl_Obj *objPtr, void *valuePtr, int flags); /* 636 */ + void (*reserved636)(void); char * (*tcl_GetStringFromObj2) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 637 */ Tcl_UniChar * (*tcl_GetUnicodeFromObj2) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 638 */ unsigned char * (*tcl_GetByteArrayFromObj2) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 639 */ @@ -3864,8 +3862,7 @@ extern const TclStubs *tclStubsPtr; (tclStubsPtr->tclZipfs_TclLibrary) /* 634 */ #define TclZipfs_MountBuffer \ (tclStubsPtr->tclZipfs_MountBuffer) /* 635 */ -#define Tcl_GetValue \ - (tclStubsPtr->tcl_GetValue) /* 636 */ +/* Slot 636 is reserved */ #define Tcl_GetStringFromObj2 \ (tclStubsPtr->tcl_GetStringFromObj2) /* 637 */ #define Tcl_GetUnicodeFromObj2 \ @@ -4038,24 +4035,11 @@ extern const TclStubs *tclStubsPtr; # endif #endif -#undef Tcl_GetDoubleFromObj -#undef Tcl_GetIntFromObj #undef Tcl_GetStringFromObj #undef Tcl_GetUnicodeFromObj #undef Tcl_GetByteArrayFromObj #undef Tcl_GetUnicode #if defined(USE_TCL_STUBS) -#define Tcl_GetDoubleFromObj(interp, objPtr, dblPtr) \ - (sizeof(*dblPtr) == sizeof(double) ? tclStubsPtr->tcl_GetDoubleFromObj(interp, objPtr, (double *)dblPtr) : tclStubsPtr->tcl_GetValue(interp, objPtr, dblPtr, TCL_TYPE_D(*dblPtr))) -#if ((TCL_MAJOR_VERSION > 8) || defined(TCL_NO_DEPRECATED)) && !defined(BUILD_tcl) -#define Tcl_GetIntFromObj(interp, objPtr, intPtr) \ - (tclStubsPtr->tcl_GetValue(interp, objPtr, intPtr, TCL_TYPE_I(*intPtr))) -#else -#define Tcl_GetIntFromObj(interp, objPtr, intPtr) \ - (sizeof(*intPtr) == sizeof(int) ? tclStubsPtr->tcl_GetIntFromObj(interp, objPtr, (int *)intPtr) : tclStubsPtr->tcl_GetValue(interp, objPtr, intPtr, TCL_TYPE_I(*intPtr))) -#endif -#define Tcl_GetUIntFromObj(interp, objPtr, intPtr) \ - (tclStubsPtr->tcl_GetValue(interp, objPtr, intPtr, TCL_TYPE_U(*intPtr))) #define Tcl_GetStringFromObj(objPtr, sizePtr) \ (sizeof(*sizePtr) <= sizeof(int) ? tclStubsPtr->tcl_GetStringFromObj(objPtr, (int *)sizePtr) : tclStubsPtr->tcl_GetStringFromObj2(objPtr, (size_t *)sizePtr)) #define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \ @@ -4065,15 +4049,6 @@ extern const TclStubs *tclStubsPtr; #define Tcl_GetUnicode(objPtr) \ tclStubsPtr->tcl_GetUnicodeFromObj(objPtr, NULL) #else -#define Tcl_GetDoubleFromObj(interp, objPtr, dblPtr) \ - (sizeof(*dblPtr) == sizeof(double) ? (Tcl_GetDoubleFromObj)(interp, objPtr, (double *)dblPtr) : Tcl_GetValue(interp, objPtr, dblPtr, TCL_TYPE_D(*dblPtr))) -#if ((TCL_MAJOR_VERSION > 8) || defined(TCL_NO_DEPRECATED)) && !defined(BUILD_tcl) -#define Tcl_GetIntFromObj(interp, objPtr, intPtr) \ - Tcl_GetValue(interp, objPtr, intPtr, TCL_TYPE_I(*intPtr)) -#else -#define Tcl_GetIntFromObj(interp, objPtr, intPtr) \ - (sizeof(*intPtr) == sizeof(int) ? (Tcl_GetIntFromObj)(interp, objPtr, (int *)intPtr) : Tcl_GetValue(interp, objPtr, intPtr, TCL_TYPE_I(*intPtr))) -#endif #define Tcl_GetStringFromObj(objPtr, sizePtr) \ (sizeof(*sizePtr) <= sizeof(int) ? (Tcl_GetStringFromObj)(objPtr, (int *)sizePtr) : Tcl_GetStringFromObj2(objPtr, (size_t *)sizePtr)) #define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \ diff --git a/generic/tclObj.c b/generic/tclObj.c index 3e51abe..13aab7b 100644 --- a/generic/tclObj.c +++ b/generic/tclObj.c @@ -2525,7 +2525,7 @@ Tcl_SetIntObj( /* *---------------------------------------------------------------------- * - * Tcl_GetIntFromObj/Tcl_GetValue -- + * Tcl_GetIntFromObj -- * * Attempt to return an int from the Tcl object "objPtr". If the object * is not already an int, an attempt will be made to convert it to one. @@ -2548,7 +2548,6 @@ Tcl_SetIntObj( *---------------------------------------------------------------------- */ -#undef Tcl_GetIntFromObj int Tcl_GetIntFromObj( Tcl_Interp *interp, /* Used for error reporting if not NULL. */ @@ -2577,60 +2576,6 @@ Tcl_GetIntFromObj( #endif } -int -Tcl_GetValue( - Tcl_Interp *interp, /* Used for error reporting if not NULL. */ - Tcl_Obj *objPtr, /* The object from which to get a int. */ - void *ptr, /* Place to store resulting int/double. */ - int flags) -{ - double value; - int result; - if (flags == TCL_TYPE_I(int)) { - result = Tcl_GetIntFromObj(interp, objPtr, ptr); - if ((result == TCL_OK) && (objPtr->typePtr != &tclIntType)) { - goto toolarge; - } - return result; - } - if (flags == TCL_TYPE_U(int)) { - result = Tcl_GetIntFromObj(interp, objPtr, ptr); - if ((result == TCL_OK) && (objPtr->typePtr == &tclIntType) - && (objPtr->internalRep.wideValue < 0)) { - goto toolarge; - } - return result; - } - if (flags == TCL_TYPE_I(Tcl_WideInt)) { - return Tcl_GetIntFromObj(interp, objPtr, ptr); - } - if (flags == TCL_TYPE_U(Tcl_WideInt)) { - result = Tcl_GetIntFromObj(interp, objPtr, ptr); - if ((result == TCL_OK) && (objPtr->internalRep.wideValue < 0)) { - toolarge: - if (interp != NULL) { - const char *s = "integer value too large to represent"; - Tcl_SetObjResult(interp, Tcl_NewStringObj(s, -1)); - Tcl_SetErrorCode(interp, "ARITH", "IOVERFLOW", s, NULL); - } - return TCL_ERROR; - } - return result; - } - result = Tcl_GetDoubleFromObj(interp, objPtr, &value); - if (flags == TCL_TYPE_D(double)) { - *(double *)ptr = value; - } else if (flags == TCL_TYPE_D(float)) { - *(float *)ptr = (float) value; - } else if (flags == TCL_TYPE_D(long double)) { - *(long double *)ptr = (long double) value; - } else { - Tcl_Panic("%s: invalid flags value: 0x%x", "Tcl_GetValue", flags); - return TCL_ERROR; - } - return result; -} - /* *---------------------------------------------------------------------- diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 1cbe11a..38d2841 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -1581,7 +1581,7 @@ const TclStubs tclStubs = { TclZipfs_Unmount, /* 633 */ TclZipfs_TclLibrary, /* 634 */ TclZipfs_MountBuffer, /* 635 */ - Tcl_GetValue, /* 636 */ + 0, /* 636 */ Tcl_GetStringFromObj2, /* 637 */ Tcl_GetUnicodeFromObj2, /* 638 */ Tcl_GetByteArrayFromObj2, /* 639 */ diff --git a/generic/tclTest.c b/generic/tclTest.c index 09c74cd..2cdd356 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -1728,9 +1728,9 @@ TestdoubledigitsObjCmd(ClientData unused, }; const Tcl_ObjType* doubleType; - long double d; + double d; int status; - size_t ndigits; + int ndigits; int type; int decpt; int signum; @@ -1747,18 +1747,16 @@ TestdoubledigitsObjCmd(ClientData unused, if (status != TCL_OK) { doubleType = Tcl_GetObjType("double"); if (objv[1]->typePtr == doubleType - && TclIsNaN(objv[1]->internalRep.doubleValue)) { - double d1; + || TclIsNaN(objv[1]->internalRep.doubleValue)) { status = TCL_OK; - memcpy(&d1, &(objv[1]->internalRep.doubleValue), sizeof(double)); - d = d1; + memcpy(&d, &(objv[1]->internalRep.doubleValue), sizeof(double)); } } if (status != TCL_OK || Tcl_GetIntFromObj(interp, objv[2], &ndigits) != TCL_OK || Tcl_GetIndexFromObj(interp, objv[3], options, "conversion type", TCL_EXACT, &type) != TCL_OK) { - fprintf(stderr, "bad value? %g\n", (double)d); + fprintf(stderr, "bad value? %g\n", d); return TCL_ERROR; } type = types[type]; @@ -3084,7 +3082,7 @@ TestlinkCmd( } if (argv[6][0] != 0) { tmp = Tcl_NewStringObj(argv[6], -1); - if (Tcl_GetIntFromObj(interp, tmp, &wideVar) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, tmp, &wideVar) != TCL_OK) { Tcl_DecrRefCount(tmp); return TCL_ERROR; } @@ -3142,7 +3140,7 @@ TestlinkCmd( if (argv[15][0]) { Tcl_WideInt w; tmp = Tcl_NewStringObj(argv[15], -1); - if (Tcl_GetIntFromObj(interp, tmp, &w) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, tmp, &w) != TCL_OK) { Tcl_DecrRefCount(tmp); return TCL_ERROR; } @@ -3192,7 +3190,7 @@ TestlinkCmd( } if (argv[6][0] != 0) { tmp = Tcl_NewStringObj(argv[6], -1); - if (Tcl_GetIntFromObj(interp, tmp, &wideVar) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, tmp, &wideVar) != TCL_OK) { Tcl_DecrRefCount(tmp); return TCL_ERROR; } @@ -3259,7 +3257,7 @@ TestlinkCmd( if (argv[15][0]) { Tcl_WideInt w; tmp = Tcl_NewStringObj(argv[15], -1); - if (Tcl_GetIntFromObj(interp, tmp, &w) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, tmp, &w) != TCL_OK) { Tcl_DecrRefCount(tmp); return TCL_ERROR; } @@ -3387,7 +3385,7 @@ TestparserObjCmd( Tcl_Obj *const objv[]) /* The argument objects. */ { const char *script; - size_t length, dummy; + int length, dummy; Tcl_Parse parse; if (objc != 3) { @@ -3443,7 +3441,7 @@ TestexprparserObjCmd( Tcl_Obj *const objv[]) /* The argument objects. */ { const char *script; - size_t length, dummy; + int length, dummy; Tcl_Parse parse; if (objc != 3) { @@ -3730,7 +3728,7 @@ TestprintObjCmd( } if (objc > 1) { - Tcl_GetIntFromObj(interp, objv[2], &argv1); + Tcl_GetWideIntFromObj(interp, objv[2], &argv1); } argv2 = (size_t)argv1; Tcl_SetObjResult(interp, Tcl_ObjPrintf(Tcl_GetString(objv[1]), argv1, argv2, argv2)); diff --git a/generic/tclTestObj.c b/generic/tclTestObj.c index e8ebe10..547792a 100644 --- a/generic/tclTestObj.c +++ b/generic/tclTestObj.c @@ -1171,8 +1171,7 @@ TeststringobjCmd( Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_UniChar *unicode; - int varIndex, option; - size_t length, i; + int varIndex, option, i, length; #define MAX_STRINGS 11 const char *index, *string, *strings[MAX_STRINGS+1]; String *strPtr; @@ -1239,7 +1238,7 @@ TeststringobjCmd( if (Tcl_IsShared(varPtr[varIndex])) { SetVarToObj(varPtr, varIndex, Tcl_DuplicateObj(varPtr[varIndex])); } - for (i = 3; i < (size_t)objc; i++) { + for (i = 3; i < objc; i++) { strings[i-3] = Tcl_GetString(objv[i]); } for ( ; i < 12 + 3; i++) { diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c index eec75bd..1742eb7 100644 --- a/generic/tclThreadTest.c +++ b/generic/tclThreadTest.c @@ -263,7 +263,7 @@ ThreadObjCmd( arg++; } } - if (Tcl_GetIntFromObj(interp, objv[arg], &id) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, objv[arg], &id) != TCL_OK) { return TCL_ERROR; } arg++; @@ -361,7 +361,7 @@ ThreadObjCmd( Tcl_WrongNumArgs(interp, 2, objv, "id"); return TCL_ERROR; } - if (Tcl_GetIntFromObj(interp, objv[2], &id) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, objv[2], &id) != TCL_OK) { return TCL_ERROR; } @@ -402,7 +402,7 @@ ThreadObjCmd( wait = 1; arg = 2; } - if (Tcl_GetIntFromObj(interp, objv[arg], &id) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, objv[arg], &id) != TCL_OK) { return TCL_ERROR; } arg++; -- cgit v0.12 From b61dbff448d4ccad302a205fa518de3af09fa7ea Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 11 Jan 2021 08:23:48 +0000 Subject: Make Tcl independent from exact definition of TCL_LL_MODIFIER. In tclStrToD.c we need an _exact_ 64-bit type, _at least_ 64-bit is not good enough here. --- generic/tcl.h | 4 ---- generic/tclStrToD.c | 10 +++++----- generic/tclZipfs.c | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/generic/tcl.h b/generic/tcl.h index 08e656d..3044e16 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -354,10 +354,6 @@ typedef long LONG; * * The following invariant should hold for any long value 'longVal': * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal)) - * - * Note on converting between Tcl_WideInt and strings. This implementation (in - * tclObj.c) depends on the function - * sprintf(...,"%" TCL_LL_MODIFIER "d",...). */ #if !defined(TCL_WIDE_INT_TYPE) && !defined(TCL_WIDE_INT_IS_LONG) && !defined(_WIN32) && !defined(__GNUC__) diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c index 7c1d779..7aee804 100644 --- a/generic/tclStrToD.c +++ b/generic/tclStrToD.c @@ -5251,23 +5251,23 @@ TclFormatNaN( #else union { double dv; - unsigned long long iv; + uint64_t iv; } bitwhack; bitwhack.dv = value; if (n770_fp) { bitwhack.iv = Nokia770Twiddle(bitwhack.iv); } - if (bitwhack.iv & (1ULL << 63)) { - bitwhack.iv &= ~ (1ULL << 63); + if (bitwhack.iv & (UINT64_C(1) << 63)) { + bitwhack.iv &= ~ (UINT64_C(1) << 63); *buffer++ = '-'; } *buffer++ = 'N'; *buffer++ = 'a'; *buffer++ = 'N'; - bitwhack.iv &= ((1ULL) << 51) - 1; + bitwhack.iv &= ((UINT64_C(1)) << 51) - 1; if (bitwhack.iv != 0) { - sprintf(buffer, "(%" TCL_LL_MODIFIER "x)", bitwhack.iv); + sprintf(buffer, "(%" PRIx64 ")", bitwhack.iv); } else { *buffer = '\0'; } diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c index 572fcd5..fc7be6f 100644 --- a/generic/tclZipfs.c +++ b/generic/tclZipfs.c @@ -228,7 +228,7 @@ typedef struct ZipFile { typedef struct ZipEntry { char *name; /* The full pathname of the virtual file */ ZipFile *zipFilePtr; /* The ZIP file holding this virtual file */ - long long offset; /* Data offset into memory mapped ZIP file */ + size_t offset; /* Data offset into memory mapped ZIP file */ int numBytes; /* Uncompressed size of the virtual file */ int numCompressedBytes; /* Compressed size of the virtual file */ int compressMethod; /* Compress method */ @@ -3910,7 +3910,7 @@ ZipChannelOpen( } wrapchan: - sprintf(cname, "zipfs_%" TCL_LL_MODIFIER "x_%d", z->offset, + sprintf(cname, "zipfs_%" TCL_Z_MODIFIER "x_%d", z->offset, ZipFS.idCount++); z->zipFilePtr->numOpen++; Unlock(); -- cgit v0.12