summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-10-13 13:27:40 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-10-13 13:27:40 (GMT)
commitd9534890046440144f5b06de2e748c8993b461bc (patch)
treeb0ae4da6b1f51c8b7bed4fc844da86844108e93d /generic/tclInt.h
parente6a868c242fb7ad99bf71d9d57597761e1fec9ab (diff)
downloadtcl-d9534890046440144f5b06de2e748c8993b461bc.zip
tcl-d9534890046440144f5b06de2e748c8993b461bc.tar.gz
tcl-d9534890046440144f5b06de2e748c8993b461bc.tar.bz2
Proposed fix for [abd489a1c]: TclStringCmp() calls functions through pointer to incorrect type. Modified, swapping the wrapping-order
Diffstat (limited to 'generic/tclInt.h')
-rw-r--r--generic/tclInt.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 103827f..18edac4 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -3143,9 +3143,14 @@ MODULE_SCOPE void * TclStackRealloc(Tcl_Interp *interp, void *ptr,
int numBytes);
typedef int (*memCmpFn_t)(const void*, const void*, size_t);
-MODULE_SCOPE int TclStringCmp (Tcl_Obj *value1Ptr, Tcl_Obj *value2Ptr,
+MODULE_SCOPE int TclStringCmp(Tcl_Obj *value1Ptr, Tcl_Obj *value2Ptr,
int checkEq, int nocase, int reqlength);
-MODULE_SCOPE int TclStringCmpOpts (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[],
+MODULE_SCOPE int TclUniCharNcasecmp(const void*, const void*, size_t);
+MODULE_SCOPE int TclUtfNcasecmp(const void*, const void*, size_t);
+MODULE_SCOPE int TclUtfNcmp(const void*, const void*, size_t);
+MODULE_SCOPE int TclUniCharNcmp(const void*, const void*, size_t);
+MODULE_SCOPE int TclUtfNcmp2(const void*, const void*, size_t);
+MODULE_SCOPE int TclStringCmpOpts(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[],
int *nocase, int *reqlength);
MODULE_SCOPE int TclStringMatch(const char *str, int strLen,
const char *pattern, int ptnLen, int flags);
@@ -4052,15 +4057,13 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
* lexically correct on little-endian systems. The ANSI C "prototype" for
* this macro is:
*
- * MODULE_SCOPE int TclUniCharNcmp(const Tcl_UniChar *cs,
- * const Tcl_UniChar *ct, unsigned long n);
+ * MODULE_SCOPE int TclUniCharNcmp(const void *cs,
+ * const void *ct, size_t n);
*----------------------------------------------------------------
*/
#if defined(WORDS_BIGENDIAN) && (TCL_UTF_MAX != 4)
# define TclUniCharNcmp(cs,ct,n) memcmp((cs),(ct),(n)*sizeof(Tcl_UniChar))
-#else /* !WORDS_BIGENDIAN */
-# define TclUniCharNcmp Tcl_UniCharNcmp
#endif /* WORDS_BIGENDIAN */
/*