Tcl Source Code

Hex Artifact Content
Login

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..