summaryrefslogtreecommitdiffstats
path: root/generic/tcl.h
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2023-09-18 15:39:40 (GMT)
committerdgp <dgp@users.sourceforge.net>2023-09-18 15:39:40 (GMT)
commit7678739fb908cb8dc66d9b8cc41606b75858d18b (patch)
treee6a4d9d03e196d44aa0bc270dcb490aeef6b7ee0 /generic/tcl.h
parent3d42a051d4605045f76c12c27ee14e0002eabb95 (diff)
parentc6b286e4b7fe6f27fc1604509f8166003b533129 (diff)
downloadtcl-7678739fb908cb8dc66d9b8cc41606b75858d18b.zip
tcl-7678739fb908cb8dc66d9b8cc41606b75858d18b.tar.gz
tcl-7678739fb908cb8dc66d9b8cc41606b75858d18b.tar.bz2
merge trunk
Diffstat (limited to 'generic/tcl.h')
-rw-r--r--generic/tcl.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index 851ac00..c6c5313 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -558,9 +558,13 @@ typedef void (Tcl_CmdTraceProc) (void *clientData, Tcl_Interp *interp,
typedef int (Tcl_CmdObjTraceProc) (void *clientData, Tcl_Interp *interp,
int level, const char *command, Tcl_Command commandInfo, int objc,
struct Tcl_Obj *const *objv);
+#if TCL_MAJOR_VERSION > 8
typedef int (Tcl_CmdObjTraceProc2) (void *clientData, Tcl_Interp *interp,
Tcl_Size level, const char *command, Tcl_Command commandInfo, Tcl_Size objc,
struct Tcl_Obj *const *objv);
+#else
+#define Tcl_CmdObjTraceProc2 Tcl_CmdObjTraceProc
+#endif
typedef void (Tcl_CmdObjTraceDeleteProc) (void *clientData);
typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,
struct Tcl_Obj *dupPtr);
@@ -583,8 +587,12 @@ typedef void (Tcl_InterpDeleteProc) (void *clientData,
typedef void (Tcl_NamespaceDeleteProc) (void *clientData);
typedef int (Tcl_ObjCmdProc) (void *clientData, Tcl_Interp *interp,
int objc, struct Tcl_Obj *const *objv);
+#if TCL_MAJOR_VERSION > 8
typedef int (Tcl_ObjCmdProc2) (void *clientData, Tcl_Interp *interp,
Tcl_Size objc, struct Tcl_Obj *const *objv);
+#else
+#define Tcl_ObjCmdProc2 Tcl_ObjCmdProc
+#endif
typedef int (Tcl_LibraryInitProc) (Tcl_Interp *interp);
typedef int (Tcl_LibraryUnloadProc) (Tcl_Interp *interp, int flags);
typedef void (Tcl_PanicProc) (const char *format, ...);
@@ -2087,15 +2095,17 @@ typedef struct Tcl_EncodingType {
* reflected in regcustom.h.
*/
-#if TCL_UTF_MAX > 3
+#if TCL_UTF_MAX == 4
/*
* int isn't 100% accurate as it should be a strict 4-byte value
* (perhaps int32_t). ILP64/SILP64 systems may have troubles. The
* size of this value must be reflected correctly in regcustom.h.
*/
typedef int Tcl_UniChar;
-#else
+#elif TCL_UTF_MAX == 3 && !defined(BUILD_tcl)
typedef unsigned short Tcl_UniChar;
+#else
+# error "This TCL_UTF_MAX value is not supported"
#endif
/*
@@ -2503,7 +2513,7 @@ static inline void TclBounceRefCount(Tcl_Obj* objPtr, const char* fn, int line)
#else
# undef Tcl_IncrRefCount
# define Tcl_IncrRefCount(objPtr) \
- ++(objPtr)->refCount
+ ((void)++(objPtr)->refCount)
/*
* Use do/while0 idiom for optimum correctness without compiler warnings.
* https://wiki.c2.com/?TrivialDoWhileLoop