Artifact
f7da1e518da3440890992cfdf83305e71586937f9148eb3dae39a23d528f125c:
Attachment "tcl-string-compare.patch" to
ticket [8f7fdea2df]
added by
max
2023-01-12 13:49:35.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
0010: 63 6c 43 6d 64 4d 5a 2e 63 0a 3d 3d 3d 3d 3d 3d clCmdMZ.c.======
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 2d 2d 2d ============.---
0060: 20 67 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 4d generic/tclCmdM
0070: 5a 2e 63 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f Z.c.+++ generic/
0080: 74 63 6c 43 6d 64 4d 5a 2e 63 0a 40 40 20 2d 32 tclCmdMZ.c.@@ -2
0090: 37 35 32 2c 32 33 20 2b 32 37 35 32 2c 31 31 20 752,23 +2752,11
00a0: 40 40 0a 20 09 09 73 32 20 3d 20 76 61 6c 75 65 @@. ..s2 = value
00b0: 32 50 74 72 2d 3e 62 79 74 65 73 3b 0a 20 09 09 2Ptr->bytes;. ..
00c0: 6d 65 6d 43 6d 70 46 6e 20 3d 20 6d 65 6d 63 6d memCmpFn = memcm
00d0: 70 3b 0a 20 09 20 20 20 20 7d 20 65 6c 73 65 20 p;. . } else
00e0: 7b 0a 20 09 09 73 31 20 3d 20 28 63 68 61 72 20 {. ..s1 = (char
00f0: 2a 29 20 54 63 6c 5f 47 65 74 55 6e 69 63 6f 64 *) Tcl_GetUnicod
0100: 65 28 76 61 6c 75 65 31 50 74 72 29 3b 0a 20 09 e(value1Ptr);. .
0110: 09 73 32 20 3d 20 28 63 68 61 72 20 2a 29 20 54 .s2 = (char *) T
0120: 63 6c 5f 47 65 74 55 6e 69 63 6f 64 65 28 76 61 cl_GetUnicode(va
0130: 6c 75 65 32 50 74 72 29 3b 0a 2d 09 09 69 66 20 lue2Ptr);.-..if
0140: 28 0a 2d 23 69 66 20 64 65 66 69 6e 65 64 28 57 (.-#if defined(W
0150: 4f 52 44 53 5f 42 49 47 45 4e 44 49 41 4e 29 20 ORDS_BIGENDIAN)
0160: 26 26 20 28 54 43 4c 5f 55 54 46 5f 4d 41 58 20 && (TCL_UTF_MAX
0170: 21 3d 20 34 29 0a 2d 09 09 09 31 0a 2d 23 65 6c != 4).-...1.-#el
0180: 73 65 0a 2d 09 09 09 63 68 65 63 6b 45 71 0a 2d se.-...checkEq.-
0190: 23 65 6e 64 69 66 20 2f 2a 20 57 4f 52 44 53 5f #endif /* WORDS_
01a0: 42 49 47 45 4e 44 49 41 4e 20 2a 2f 0a 2d 09 09 BIGENDIAN */.-..
01b0: 20 20 20 20 20 20 20 20 29 20 7b 0a 2d 09 09 20 ) {.-..
01c0: 20 20 20 6d 65 6d 43 6d 70 46 6e 20 3d 20 6d 65 memCmpFn = me
01d0: 6d 63 6d 70 3b 0a 2d 09 09 20 20 20 20 73 31 6c mcmp;.-.. s1l
01e0: 65 6e 20 2a 3d 20 73 69 7a 65 6f 66 28 54 63 6c en *= sizeof(Tcl
01f0: 5f 55 6e 69 43 68 61 72 29 3b 0a 2d 09 09 20 20 _UniChar);.-..
0200: 20 20 73 32 6c 65 6e 20 2a 3d 20 73 69 7a 65 6f s2len *= sizeo
0210: 66 28 54 63 6c 5f 55 6e 69 43 68 61 72 29 3b 0a f(Tcl_UniChar);.
0220: 2d 09 09 7d 20 65 6c 73 65 20 7b 0a 2d 09 09 20 -..} else {.-..
0230: 20 20 20 6d 65 6d 43 6d 70 46 6e 20 3d 20 28 6d memCmpFn = (m
0240: 65 6d 43 6d 70 46 6e 5f 74 29 20 54 63 6c 5f 55 emCmpFn_t) Tcl_U
0250: 6e 69 43 68 61 72 4e 63 6d 70 3b 0a 2d 09 09 7d niCharNcmp;.-..}
0260: 0a 2b 09 09 6d 65 6d 43 6d 70 46 6e 20 3d 20 28 .+..memCmpFn = (
0270: 6d 65 6d 43 6d 70 46 6e 5f 74 29 20 54 63 6c 5f memCmpFn_t) Tcl_
0280: 55 6e 69 43 68 61 72 4e 63 6d 70 3b 0a 20 09 20 UniCharNcmp;. .
0290: 20 20 20 7d 0a 20 09 7d 0a 20 20 20 20 20 7d 20 }. .}. }
02a0: 65 6c 73 65 20 7b 0a 20 09 2f 2a 0a 20 09 20 2a else {. ./*. . *
02b0: 20 47 65 74 20 74 68 65 20 73 74 72 69 6e 67 20 Get the string
02c0: 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 2c representations,
02d0: 20 62 65 69 6e 67 20 63 61 72 65 66 75 6c 20 69 being careful i
02e0: 6e 20 63 61 73 65 20 77 65 20 68 61 76 65 0a 0a n case we have..