diff options
-rwxr-xr-x[-rw-r--r--] | compat/zlib/win32/zlib1.dll | bin | 107520 -> 107520 bytes | |||
-rwxr-xr-x[-rw-r--r--] | compat/zlib/win64/zlib1.dll | bin | 112640 -> 112640 bytes | |||
-rw-r--r--[-rwxr-xr-x] | doc/GetCwd.3 | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | doc/GetVersion.3 | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | doc/lset.n | 0 | ||||
-rw-r--r-- | generic/tclBinary.c | 74 | ||||
-rw-r--r-- | generic/tclCmdMZ.c | 45 | ||||
-rw-r--r-- | generic/tclCompCmdsSZ.c | 6 | ||||
-rw-r--r--[-rwxr-xr-x] | generic/tclStrToD.c | 0 | ||||
-rw-r--r-- | generic/tclStringObj.c | 42 | ||||
-rw-r--r-- | generic/tclStringTrim.h | 27 | ||||
-rw-r--r-- | generic/tclStubLibTbl.c | 58 | ||||
-rw-r--r--[-rwxr-xr-x] | library/encoding/tis-620.enc | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/af.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/af_za.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ar.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ar_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ar_jo.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ar_lb.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ar_sy.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/be.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/bg.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/bn.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/bn_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ca.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/cs.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/da.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/de.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/de_at.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/de_be.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/el.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_au.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_be.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_bw.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_ca.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_gb.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_hk.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_ie.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_nz.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_ph.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_sg.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_za.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/en_zw.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/eo.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_ar.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_bo.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_cl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_co.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_cr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_do.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_ec.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_gt.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_hn.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_mx.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_ni.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_pa.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_pe.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_pr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_py.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_sv.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_uy.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/es_ve.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/et.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/eu.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/eu_es.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fa.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fa_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fa_ir.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fi.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fo.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fo_fo.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fr_be.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fr_ca.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/fr_ch.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ga.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ga_ie.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/gl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/gl_es.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/gv.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/gv_gb.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/he.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/hi.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/hi_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/hr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/hu.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/id.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/id_id.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/is.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/it.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/it_ch.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ja.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/kl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/kl_gl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ko.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ko_kr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/kok.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/kok_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/kw.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/kw_gb.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/lt.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/lv.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/mk.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/mr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/mr_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ms.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ms_my.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/mt.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/nb.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/nl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/nl_be.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/nn.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/pl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/pt.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/pt_br.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ro.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ru.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ru_ua.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sh.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sk.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sl.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sq.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sv.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/sw.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ta.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/ta_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/te.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/te_in.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/th.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/tr.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/uk.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/vi.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/zh.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/zh_cn.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/zh_hk.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/zh_sg.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/msgs/zh_tw.msg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Africa/Asmara | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Atikokan | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Blanc-Sablon | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Indiana/Petersburg | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Indiana/Tell_City | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Indiana/Vincennes | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Indiana/Winamac | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Moncton | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/North_Dakota/New_Salem | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/America/Resolute | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Atlantic/Faroe | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Australia/Eucla | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Europe/Guernsey | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Europe/Isle_of_Man | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Europe/Jersey | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Europe/Podgorica | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | library/tzdata/Europe/Volgograd | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | tests/lsetComp.test | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | tests/notify.test | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | tests/tcltest.test | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | tools/encoding/ebcdic.txt | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | tools/encoding/tis-620.txt | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | win/buildall.vc.bat | 0 |
163 files changed, 165 insertions, 87 deletions
diff --git a/compat/zlib/win32/zlib1.dll b/compat/zlib/win32/zlib1.dll Binary files differindex 9ea38d5..9ea38d5 100644..100755 --- a/compat/zlib/win32/zlib1.dll +++ b/compat/zlib/win32/zlib1.dll diff --git a/compat/zlib/win64/zlib1.dll b/compat/zlib/win64/zlib1.dll Binary files differindex bd1dbc6..bd1dbc6 100644..100755 --- a/compat/zlib/win64/zlib1.dll +++ b/compat/zlib/win64/zlib1.dll diff --git a/doc/GetCwd.3 b/doc/GetCwd.3 index 58abcde..58abcde 100755..100644 --- a/doc/GetCwd.3 +++ b/doc/GetCwd.3 diff --git a/doc/GetVersion.3 b/doc/GetVersion.3 index 89f63d5..89f63d5 100755..100644 --- a/doc/GetVersion.3 +++ b/doc/GetVersion.3 diff --git a/doc/lset.n b/doc/lset.n index 954bd30..954bd30 100755..100644 --- a/doc/lset.n +++ b/doc/lset.n diff --git a/generic/tclBinary.c b/generic/tclBinary.c index 4e977f2..981f174 100644 --- a/generic/tclBinary.c +++ b/generic/tclBinary.c @@ -610,9 +610,7 @@ UpdateStringOfByteArray( * * This function appends an array of bytes to a byte array object. Note * that the object *must* be unshared, and the array of bytes *must not* - * refer to the object being appended to. Also the caller must have - * already checked that the final length of the bytearray after the - * append operations is complete will not overflow the int range. + * refer to the object being appended to. * * Results: * None. @@ -631,6 +629,7 @@ TclAppendBytesToByteArray( int len) { ByteArray *byteArrayPtr; + int needed; if (Tcl_IsShared(objPtr)) { Tcl_Panic("%s called with shared object","TclAppendBytesToByteArray"); @@ -639,64 +638,57 @@ TclAppendBytesToByteArray( Tcl_Panic("%s must be called with definite number of bytes to append", "TclAppendBytesToByteArray"); } + if (len == 0) { + /* Append zero bytes is a no-op. */ + return; + } if (objPtr->typePtr != &tclByteArrayType) { SetByteArrayFromAny(NULL, objPtr); } byteArrayPtr = GET_BYTEARRAY(objPtr); + if (len > INT_MAX - byteArrayPtr->used) { + Tcl_Panic("max size for a Tcl value (%d bytes) exceeded", INT_MAX); + } + + needed = byteArrayPtr->used + len; /* * If we need to, resize the allocated space in the byte array. */ - if (byteArrayPtr->used + len > byteArrayPtr->allocated) { - unsigned int attempt, used = byteArrayPtr->used; - ByteArray *tmpByteArrayPtr = NULL; + if (needed > byteArrayPtr->allocated) { + ByteArray *ptr = NULL; + int attempt; - attempt = byteArrayPtr->allocated; - if (attempt < 1) { - /* - * No allocated bytes, so must be none used too. We use this - * method to calculate how many bytes to allocate because we can - * end up with a zero-length buffer otherwise, when doubling can - * cause trouble. [Bug 3067036] - */ - - attempt = len + 1; - } else { - do { - attempt *= 2; - } while (attempt < used+len); + if (needed <= INT_MAX/2) { + /* Try to allocate double the total space that is needed. */ + attempt = 2 * needed; + ptr = attemptckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt)); } + if (ptr == NULL) { + /* Try to allocate double the increment that is needed (plus). */ + unsigned int limit = INT_MAX - needed; + unsigned int extra = len + TCL_MIN_GROWTH; + int growth = (int) ((extra > limit) ? limit : extra); - if (BYTEARRAY_SIZE(attempt) > BYTEARRAY_SIZE(used)) { - tmpByteArrayPtr = attemptckrealloc(byteArrayPtr, - BYTEARRAY_SIZE(attempt)); + attempt = needed + growth; + ptr = attemptckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt)); } - - if (tmpByteArrayPtr == NULL) { - attempt = used + len; - if (BYTEARRAY_SIZE(attempt) < BYTEARRAY_SIZE(used)) { - Tcl_Panic("attempt to allocate a bigger buffer than we can handle"); - } - tmpByteArrayPtr = ckrealloc(byteArrayPtr, - BYTEARRAY_SIZE(attempt)); + if (ptr == NULL) { + /* Last chance: Try to allocate exactly what is needed. */ + attempt = needed; + ptr = ckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt)); } - - byteArrayPtr = tmpByteArrayPtr; + byteArrayPtr = ptr; byteArrayPtr->allocated = attempt; - byteArrayPtr->used = used; SET_BYTEARRAY(objPtr, byteArrayPtr); } - /* - * Do the append if there's any point. - */ - - if (len > 0) { + if (bytes) { memcpy(byteArrayPtr->bytes + byteArrayPtr->used, bytes, len); - byteArrayPtr->used += len; - TclInvalidateStringRep(objPtr); } + byteArrayPtr->used += len; + TclInvalidateStringRep(objPtr); } /* diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index d477216..c02cd1a 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -32,6 +32,39 @@ static int TryPostHandler(ClientData data[], Tcl_Interp *interp, int result); static int UniCharIsAscii(int character); static int UniCharIsHexDigit(int character); + +/* + * Default set of characters to trim in [string trim] and friends. This is a + * UTF-8 literal string containing all Unicode space characters [TIP #413] + */ + +const char tclDefaultTrimSet[] = + "\x09\x0a\x0b\x0c\x0d " /* ASCII */ + "\xc0\x80" /* nul (U+0000) */ + "\xc2\x85" /* next line (U+0085) */ + "\xc2\xa0" /* non-breaking space (U+00a0) */ + "\xe1\x9a\x80" /* ogham space mark (U+1680) */ + "\xe1\xa0\x8e" /* mongolian vowel separator (U+180e) */ + "\xe2\x80\x80" /* en quad (U+2000) */ + "\xe2\x80\x81" /* em quad (U+2001) */ + "\xe2\x80\x82" /* en space (U+2002) */ + "\xe2\x80\x83" /* em space (U+2003) */ + "\xe2\x80\x84" /* three-per-em space (U+2004) */ + "\xe2\x80\x85" /* four-per-em space (U+2005) */ + "\xe2\x80\x86" /* six-per-em space (U+2006) */ + "\xe2\x80\x87" /* figure space (U+2007) */ + "\xe2\x80\x88" /* punctuation space (U+2008) */ + "\xe2\x80\x89" /* thin space (U+2009) */ + "\xe2\x80\x8a" /* hair space (U+200a) */ + "\xe2\x80\x8b" /* zero width space (U+200b) */ + "\xe2\x80\xa8" /* line separator (U+2028) */ + "\xe2\x80\xa9" /* paragraph separator (U+2029) */ + "\xe2\x80\xaf" /* narrow no-break space (U+202f) */ + "\xe2\x81\x9f" /* medium mathematical space (U+205f) */ + "\xe2\x81\xa0" /* word joiner (U+2060) */ + "\xe3\x80\x80" /* ideographic space (U+3000) */ + "\xef\xbb\xbf" /* zero width no-break space (U+feff) */ +; /* *---------------------------------------------------------------------- @@ -3158,8 +3191,8 @@ StringTrimCmd( if (objc == 3) { string2 = TclGetStringFromObj(objv[2], &length2); } else if (objc == 2) { - string2 = DEFAULT_TRIM_SET; - length2 = strlen(DEFAULT_TRIM_SET); + string2 = tclDefaultTrimSet; + length2 = strlen(tclDefaultTrimSet); } else { Tcl_WrongNumArgs(interp, 1, objv, "string ?chars?"); return TCL_ERROR; @@ -3206,8 +3239,8 @@ StringTrimLCmd( if (objc == 3) { string2 = TclGetStringFromObj(objv[2], &length2); } else if (objc == 2) { - string2 = DEFAULT_TRIM_SET; - length2 = strlen(DEFAULT_TRIM_SET); + string2 = tclDefaultTrimSet; + length2 = strlen(tclDefaultTrimSet); } else { Tcl_WrongNumArgs(interp, 1, objv, "string ?chars?"); return TCL_ERROR; @@ -3252,8 +3285,8 @@ StringTrimRCmd( if (objc == 3) { string2 = TclGetStringFromObj(objv[2], &length2); } else if (objc == 2) { - string2 = DEFAULT_TRIM_SET; - length2 = strlen(DEFAULT_TRIM_SET); + string2 = tclDefaultTrimSet; + length2 = strlen(tclDefaultTrimSet); } else { Tcl_WrongNumArgs(interp, 1, objv, "string ?chars?"); return TCL_ERROR; diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index 5c132b4..4b14f24 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -810,7 +810,7 @@ TclCompileStringTrimLCmd( tokenPtr = TokenAfter(tokenPtr); CompileWord(envPtr, tokenPtr, interp, 2); } else { - PushLiteral(envPtr, DEFAULT_TRIM_SET, strlen(DEFAULT_TRIM_SET)); + PushLiteral(envPtr, tclDefaultTrimSet, strlen(tclDefaultTrimSet)); } OP( STR_TRIM_LEFT); return TCL_OK; @@ -838,7 +838,7 @@ TclCompileStringTrimRCmd( tokenPtr = TokenAfter(tokenPtr); CompileWord(envPtr, tokenPtr, interp, 2); } else { - PushLiteral(envPtr, DEFAULT_TRIM_SET, strlen(DEFAULT_TRIM_SET)); + PushLiteral(envPtr, tclDefaultTrimSet, strlen(tclDefaultTrimSet)); } OP( STR_TRIM_RIGHT); return TCL_OK; @@ -866,7 +866,7 @@ TclCompileStringTrimCmd( tokenPtr = TokenAfter(tokenPtr); CompileWord(envPtr, tokenPtr, interp, 2); } else { - PushLiteral(envPtr, DEFAULT_TRIM_SET, strlen(DEFAULT_TRIM_SET)); + PushLiteral(envPtr, tclDefaultTrimSet, strlen(tclDefaultTrimSet)); } OP( STR_TRIM); return TCL_OK; diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c index 883e2ea..883e2ea 100755..100644 --- a/generic/tclStrToD.c +++ b/generic/tclStrToD.c diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index e495c2e..dffa38c 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -1281,23 +1281,43 @@ Tcl_AppendObjToObj( if ((TclIsPureByteArray(objPtr) || objPtr->bytes == tclEmptyStringRep) && TclIsPureByteArray(appendObjPtr)) { - unsigned char *bytesSrc; - int lengthSrc, lengthTotal; /* - * We do not assume that objPtr and appendObjPtr must be distinct! - * This makes this code a bit more complex than it otherwise would be, - * but in turn makes it much safer. + * You might expect the code here to be + * + * bytes = Tcl_GetByteArrayFromObj(appendObjPtr, &length); + * TclAppendBytesToByteArray(objPtr, bytes, length); + * + * and essentially all of the time that would be fine. However, + * it would run into trouble in the case where objPtr and + * appendObjPtr point to the same thing. That may never be a + * good idea. It seems to violate Copy On Write, and we don't + * have any tests for the situation, since making any Tcl commands + * that call Tcl_AppendObjToObj() do that appears impossible + * (They honor Copy On Write!). For the sake of extensions that + * go off into that realm, though, here's a more complex approach + * that can handle all the cases. */ + /* Get lengths */ + int lengthSrc; + (void) Tcl_GetByteArrayFromObj(objPtr, &length); (void) Tcl_GetByteArrayFromObj(appendObjPtr, &lengthSrc); - lengthTotal = length + lengthSrc; - if (((length > lengthSrc) ? length : lengthSrc) > lengthTotal) { - Tcl_Panic("max size for a Tcl value (%d bytes) exceeded", INT_MAX); - } - bytesSrc = Tcl_GetByteArrayFromObj(appendObjPtr, NULL); - TclAppendBytesToByteArray(objPtr, bytesSrc, lengthSrc); + + /* Grow buffer enough for the append */ + TclAppendBytesToByteArray(objPtr, NULL, lengthSrc); + + /* Reset objPtr back to the original value */ + Tcl_SetByteArrayLength(objPtr, length); + + /* + * Now do the append knowing that buffer growth cannot cause + * any trouble. + */ + + TclAppendBytesToByteArray(objPtr, + Tcl_GetByteArrayFromObj(appendObjPtr, NULL), lengthSrc); return; } diff --git a/generic/tclStringTrim.h b/generic/tclStringTrim.h index 669f10b..030e4ec 100644 --- a/generic/tclStringTrim.h +++ b/generic/tclStringTrim.h @@ -23,32 +23,7 @@ * UTF-8 literal string containing all Unicode space characters. [TIP #413] */ -#define DEFAULT_TRIM_SET \ - "\x09\x0a\x0b\x0c\x0d " /* ASCII */\ - "\xc0\x80" /* nul (U+0000) */\ - "\xc2\x85" /* next line (U+0085) */\ - "\xc2\xa0" /* non-breaking space (U+00a0) */\ - "\xe1\x9a\x80" /* ogham space mark (U+1680) */ \ - "\xe1\xa0\x8e" /* mongolian vowel separator (U+180e) */\ - "\xe2\x80\x80" /* en quad (U+2000) */\ - "\xe2\x80\x81" /* em quad (U+2001) */\ - "\xe2\x80\x82" /* en space (U+2002) */\ - "\xe2\x80\x83" /* em space (U+2003) */\ - "\xe2\x80\x84" /* three-per-em space (U+2004) */\ - "\xe2\x80\x85" /* four-per-em space (U+2005) */\ - "\xe2\x80\x86" /* six-per-em space (U+2006) */\ - "\xe2\x80\x87" /* figure space (U+2007) */\ - "\xe2\x80\x88" /* punctuation space (U+2008) */\ - "\xe2\x80\x89" /* thin space (U+2009) */\ - "\xe2\x80\x8a" /* hair space (U+200a) */\ - "\xe2\x80\x8b" /* zero width space (U+200b) */\ - "\xe2\x80\xa8" /* line separator (U+2028) */\ - "\xe2\x80\xa9" /* paragraph separator (U+2029) */\ - "\xe2\x80\xaf" /* narrow no-break space (U+202f) */\ - "\xe2\x81\x9f" /* medium mathematical space (U+205f) */\ - "\xe2\x81\xa0" /* word joiner (U+2060) */\ - "\xe3\x80\x80" /* ideographic space (U+3000) */\ - "\xef\xbb\xbf" /* zero width no-break space (U+feff) */ +MODULE_SCOPE const char tclDefaultTrimSet[]; /* * The whitespace trimming set used when [concat]enating. This is a subset of diff --git a/generic/tclStubLibTbl.c b/generic/tclStubLibTbl.c new file mode 100644 index 0000000..0391502 --- /dev/null +++ b/generic/tclStubLibTbl.c @@ -0,0 +1,58 @@ +/* + * tclStubLibTbl.c -- + * + * Stub object that will be statically linked into extensions that want + * to access Tcl. + * + * Copyright (c) 1998-1999 by Scriptics Corporation. + * Copyright (c) 1998 Paul Duffin. + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ + +#include "tclInt.h" + +/* + *---------------------------------------------------------------------- + * + * TclInitStubTable -- + * + * Initialize the stub table, using the structure pointed at + * by the "version" argument. + * + * Results: + * Outputs the value of the "version" argument. + * + * Side effects: + * Sets the stub table pointers. + * + *---------------------------------------------------------------------- + */ +MODULE_SCOPE const char * +TclInitStubTable( + const char *version) /* points to the version field of a + TclStubInfoType structure variable. */ +{ + tclStubsPtr = ((const TclStubInfoType *) version)->stubs; + + if (tclStubsPtr->hooks) { + tclPlatStubsPtr = tclStubsPtr->hooks->tclPlatStubs; + tclIntStubsPtr = tclStubsPtr->hooks->tclIntStubs; + tclIntPlatStubsPtr = tclStubsPtr->hooks->tclIntPlatStubs; + } else { + tclPlatStubsPtr = NULL; + tclIntStubsPtr = NULL; + tclIntPlatStubsPtr = NULL; + } + + return version; +} + +/* + * Local Variables: + * mode: c + * c-basic-offset: 4 + * fill-column: 78 + * End: + */ diff --git a/library/encoding/tis-620.enc b/library/encoding/tis-620.enc index c233be5..c233be5 100755..100644 --- a/library/encoding/tis-620.enc +++ b/library/encoding/tis-620.enc diff --git a/library/msgs/af.msg b/library/msgs/af.msg index 0892615..0892615 100755..100644 --- a/library/msgs/af.msg +++ b/library/msgs/af.msg diff --git a/library/msgs/af_za.msg b/library/msgs/af_za.msg index fef48ad..fef48ad 100755..100644 --- a/library/msgs/af_za.msg +++ b/library/msgs/af_za.msg diff --git a/library/msgs/ar.msg b/library/msgs/ar.msg index 257157f..257157f 100755..100644 --- a/library/msgs/ar.msg +++ b/library/msgs/ar.msg diff --git a/library/msgs/ar_in.msg b/library/msgs/ar_in.msg index 185e49c..185e49c 100755..100644 --- a/library/msgs/ar_in.msg +++ b/library/msgs/ar_in.msg diff --git a/library/msgs/ar_jo.msg b/library/msgs/ar_jo.msg index 0f5e269..0f5e269 100755..100644 --- a/library/msgs/ar_jo.msg +++ b/library/msgs/ar_jo.msg diff --git a/library/msgs/ar_lb.msg b/library/msgs/ar_lb.msg index e62acd3..e62acd3 100755..100644 --- a/library/msgs/ar_lb.msg +++ b/library/msgs/ar_lb.msg diff --git a/library/msgs/ar_sy.msg b/library/msgs/ar_sy.msg index d5e1c87..d5e1c87 100755..100644 --- a/library/msgs/ar_sy.msg +++ b/library/msgs/ar_sy.msg diff --git a/library/msgs/be.msg b/library/msgs/be.msg index 379a1d7..379a1d7 100755..100644 --- a/library/msgs/be.msg +++ b/library/msgs/be.msg diff --git a/library/msgs/bg.msg b/library/msgs/bg.msg index ff17759..ff17759 100755..100644 --- a/library/msgs/bg.msg +++ b/library/msgs/bg.msg diff --git a/library/msgs/bn.msg b/library/msgs/bn.msg index 664b9d8..664b9d8 100755..100644 --- a/library/msgs/bn.msg +++ b/library/msgs/bn.msg diff --git a/library/msgs/bn_in.msg b/library/msgs/bn_in.msg index 28c000f..28c000f 100755..100644 --- a/library/msgs/bn_in.msg +++ b/library/msgs/bn_in.msg diff --git a/library/msgs/ca.msg b/library/msgs/ca.msg index 36c9772..36c9772 100755..100644 --- a/library/msgs/ca.msg +++ b/library/msgs/ca.msg diff --git a/library/msgs/cs.msg b/library/msgs/cs.msg index 8db8bdd..8db8bdd 100755..100644 --- a/library/msgs/cs.msg +++ b/library/msgs/cs.msg diff --git a/library/msgs/da.msg b/library/msgs/da.msg index e4fec7f..e4fec7f 100755..100644 --- a/library/msgs/da.msg +++ b/library/msgs/da.msg diff --git a/library/msgs/de.msg b/library/msgs/de.msg index 9eb3145..9eb3145 100755..100644 --- a/library/msgs/de.msg +++ b/library/msgs/de.msg diff --git a/library/msgs/de_at.msg b/library/msgs/de_at.msg index 61bc266..61bc266 100755..100644 --- a/library/msgs/de_at.msg +++ b/library/msgs/de_at.msg diff --git a/library/msgs/de_be.msg b/library/msgs/de_be.msg index 3614763..3614763 100755..100644 --- a/library/msgs/de_be.msg +++ b/library/msgs/de_be.msg diff --git a/library/msgs/el.msg b/library/msgs/el.msg index ac19f62..ac19f62 100755..100644 --- a/library/msgs/el.msg +++ b/library/msgs/el.msg diff --git a/library/msgs/en_au.msg b/library/msgs/en_au.msg index 7f9870c..7f9870c 100755..100644 --- a/library/msgs/en_au.msg +++ b/library/msgs/en_au.msg diff --git a/library/msgs/en_be.msg b/library/msgs/en_be.msg index 5072986..5072986 100755..100644 --- a/library/msgs/en_be.msg +++ b/library/msgs/en_be.msg diff --git a/library/msgs/en_bw.msg b/library/msgs/en_bw.msg index 8fd20c7..8fd20c7 100755..100644 --- a/library/msgs/en_bw.msg +++ b/library/msgs/en_bw.msg diff --git a/library/msgs/en_ca.msg b/library/msgs/en_ca.msg index 278efe7..278efe7 100755..100644 --- a/library/msgs/en_ca.msg +++ b/library/msgs/en_ca.msg diff --git a/library/msgs/en_gb.msg b/library/msgs/en_gb.msg index 5c61c43..5c61c43 100755..100644 --- a/library/msgs/en_gb.msg +++ b/library/msgs/en_gb.msg diff --git a/library/msgs/en_hk.msg b/library/msgs/en_hk.msg index 8b33bc0..8b33bc0 100755..100644 --- a/library/msgs/en_hk.msg +++ b/library/msgs/en_hk.msg diff --git a/library/msgs/en_ie.msg b/library/msgs/en_ie.msg index ba621cf..ba621cf 100755..100644 --- a/library/msgs/en_ie.msg +++ b/library/msgs/en_ie.msg diff --git a/library/msgs/en_in.msg b/library/msgs/en_in.msg index a1f155d..a1f155d 100755..100644 --- a/library/msgs/en_in.msg +++ b/library/msgs/en_in.msg diff --git a/library/msgs/en_nz.msg b/library/msgs/en_nz.msg index b419017..b419017 100755..100644 --- a/library/msgs/en_nz.msg +++ b/library/msgs/en_nz.msg diff --git a/library/msgs/en_ph.msg b/library/msgs/en_ph.msg index 682666d..682666d 100755..100644 --- a/library/msgs/en_ph.msg +++ b/library/msgs/en_ph.msg diff --git a/library/msgs/en_sg.msg b/library/msgs/en_sg.msg index 4dc5b1d..4dc5b1d 100755..100644 --- a/library/msgs/en_sg.msg +++ b/library/msgs/en_sg.msg diff --git a/library/msgs/en_za.msg b/library/msgs/en_za.msg index fe43797..fe43797 100755..100644 --- a/library/msgs/en_za.msg +++ b/library/msgs/en_za.msg diff --git a/library/msgs/en_zw.msg b/library/msgs/en_zw.msg index 2a5804f..2a5804f 100755..100644 --- a/library/msgs/en_zw.msg +++ b/library/msgs/en_zw.msg diff --git a/library/msgs/eo.msg b/library/msgs/eo.msg index 1d2a24f..1d2a24f 100755..100644 --- a/library/msgs/eo.msg +++ b/library/msgs/eo.msg diff --git a/library/msgs/es.msg b/library/msgs/es.msg index a24f0a1..a24f0a1 100755..100644 --- a/library/msgs/es.msg +++ b/library/msgs/es.msg diff --git a/library/msgs/es_ar.msg b/library/msgs/es_ar.msg index 7d35027..7d35027 100755..100644 --- a/library/msgs/es_ar.msg +++ b/library/msgs/es_ar.msg diff --git a/library/msgs/es_bo.msg b/library/msgs/es_bo.msg index 498ad0d..498ad0d 100755..100644 --- a/library/msgs/es_bo.msg +++ b/library/msgs/es_bo.msg diff --git a/library/msgs/es_cl.msg b/library/msgs/es_cl.msg index 31d465c..31d465c 100755..100644 --- a/library/msgs/es_cl.msg +++ b/library/msgs/es_cl.msg diff --git a/library/msgs/es_co.msg b/library/msgs/es_co.msg index 77e57f0..77e57f0 100755..100644 --- a/library/msgs/es_co.msg +++ b/library/msgs/es_co.msg diff --git a/library/msgs/es_cr.msg b/library/msgs/es_cr.msg index 7a652fa..7a652fa 100755..100644 --- a/library/msgs/es_cr.msg +++ b/library/msgs/es_cr.msg diff --git a/library/msgs/es_do.msg b/library/msgs/es_do.msg index 0e283da..0e283da 100755..100644 --- a/library/msgs/es_do.msg +++ b/library/msgs/es_do.msg diff --git a/library/msgs/es_ec.msg b/library/msgs/es_ec.msg index 9e921e0..9e921e0 100755..100644 --- a/library/msgs/es_ec.msg +++ b/library/msgs/es_ec.msg diff --git a/library/msgs/es_gt.msg b/library/msgs/es_gt.msg index ecd6faf..ecd6faf 100755..100644 --- a/library/msgs/es_gt.msg +++ b/library/msgs/es_gt.msg diff --git a/library/msgs/es_hn.msg b/library/msgs/es_hn.msg index a758ca2..a758ca2 100755..100644 --- a/library/msgs/es_hn.msg +++ b/library/msgs/es_hn.msg diff --git a/library/msgs/es_mx.msg b/library/msgs/es_mx.msg index 7cfb545..7cfb545 100755..100644 --- a/library/msgs/es_mx.msg +++ b/library/msgs/es_mx.msg diff --git a/library/msgs/es_ni.msg b/library/msgs/es_ni.msg index 7c39495..7c39495 100755..100644 --- a/library/msgs/es_ni.msg +++ b/library/msgs/es_ni.msg diff --git a/library/msgs/es_pa.msg b/library/msgs/es_pa.msg index cecacdc..cecacdc 100755..100644 --- a/library/msgs/es_pa.msg +++ b/library/msgs/es_pa.msg diff --git a/library/msgs/es_pe.msg b/library/msgs/es_pe.msg index 9f90595..9f90595 100755..100644 --- a/library/msgs/es_pe.msg +++ b/library/msgs/es_pe.msg diff --git a/library/msgs/es_pr.msg b/library/msgs/es_pr.msg index 8511b12..8511b12 100755..100644 --- a/library/msgs/es_pr.msg +++ b/library/msgs/es_pr.msg diff --git a/library/msgs/es_py.msg b/library/msgs/es_py.msg index aa93d36..aa93d36 100755..100644 --- a/library/msgs/es_py.msg +++ b/library/msgs/es_py.msg diff --git a/library/msgs/es_sv.msg b/library/msgs/es_sv.msg index fc7954d..fc7954d 100755..100644 --- a/library/msgs/es_sv.msg +++ b/library/msgs/es_sv.msg diff --git a/library/msgs/es_uy.msg b/library/msgs/es_uy.msg index b33525c..b33525c 100755..100644 --- a/library/msgs/es_uy.msg +++ b/library/msgs/es_uy.msg diff --git a/library/msgs/es_ve.msg b/library/msgs/es_ve.msg index 7c2a7b0..7c2a7b0 100755..100644 --- a/library/msgs/es_ve.msg +++ b/library/msgs/es_ve.msg diff --git a/library/msgs/et.msg b/library/msgs/et.msg index 8d32e9e..8d32e9e 100755..100644 --- a/library/msgs/et.msg +++ b/library/msgs/et.msg diff --git a/library/msgs/eu.msg b/library/msgs/eu.msg index cf708b6..cf708b6 100755..100644 --- a/library/msgs/eu.msg +++ b/library/msgs/eu.msg diff --git a/library/msgs/eu_es.msg b/library/msgs/eu_es.msg index 2694418..2694418 100755..100644 --- a/library/msgs/eu_es.msg +++ b/library/msgs/eu_es.msg diff --git a/library/msgs/fa.msg b/library/msgs/fa.msg index 89b2f90..89b2f90 100755..100644 --- a/library/msgs/fa.msg +++ b/library/msgs/fa.msg diff --git a/library/msgs/fa_in.msg b/library/msgs/fa_in.msg index adc9e91..adc9e91 100755..100644 --- a/library/msgs/fa_in.msg +++ b/library/msgs/fa_in.msg diff --git a/library/msgs/fa_ir.msg b/library/msgs/fa_ir.msg index 597ce9d..597ce9d 100755..100644 --- a/library/msgs/fa_ir.msg +++ b/library/msgs/fa_ir.msg diff --git a/library/msgs/fi.msg b/library/msgs/fi.msg index acabba0..acabba0 100755..100644 --- a/library/msgs/fi.msg +++ b/library/msgs/fi.msg diff --git a/library/msgs/fo.msg b/library/msgs/fo.msg index 4696e62..4696e62 100755..100644 --- a/library/msgs/fo.msg +++ b/library/msgs/fo.msg diff --git a/library/msgs/fo_fo.msg b/library/msgs/fo_fo.msg index 2392b8e..2392b8e 100755..100644 --- a/library/msgs/fo_fo.msg +++ b/library/msgs/fo_fo.msg diff --git a/library/msgs/fr.msg b/library/msgs/fr.msg index 55b19bf..55b19bf 100755..100644 --- a/library/msgs/fr.msg +++ b/library/msgs/fr.msg diff --git a/library/msgs/fr_be.msg b/library/msgs/fr_be.msg index cdb13bd..cdb13bd 100755..100644 --- a/library/msgs/fr_be.msg +++ b/library/msgs/fr_be.msg diff --git a/library/msgs/fr_ca.msg b/library/msgs/fr_ca.msg index 00ccfff..00ccfff 100755..100644 --- a/library/msgs/fr_ca.msg +++ b/library/msgs/fr_ca.msg diff --git a/library/msgs/fr_ch.msg b/library/msgs/fr_ch.msg index 7e2bac7..7e2bac7 100755..100644 --- a/library/msgs/fr_ch.msg +++ b/library/msgs/fr_ch.msg diff --git a/library/msgs/ga.msg b/library/msgs/ga.msg index 6edf13a..6edf13a 100755..100644 --- a/library/msgs/ga.msg +++ b/library/msgs/ga.msg diff --git a/library/msgs/ga_ie.msg b/library/msgs/ga_ie.msg index b6acbbc..b6acbbc 100755..100644 --- a/library/msgs/ga_ie.msg +++ b/library/msgs/ga_ie.msg diff --git a/library/msgs/gl.msg b/library/msgs/gl.msg index 4b869e8..4b869e8 100755..100644 --- a/library/msgs/gl.msg +++ b/library/msgs/gl.msg diff --git a/library/msgs/gl_es.msg b/library/msgs/gl_es.msg index d4ed270..d4ed270 100755..100644 --- a/library/msgs/gl_es.msg +++ b/library/msgs/gl_es.msg diff --git a/library/msgs/gv.msg b/library/msgs/gv.msg index 7d332ad..7d332ad 100755..100644 --- a/library/msgs/gv.msg +++ b/library/msgs/gv.msg diff --git a/library/msgs/gv_gb.msg b/library/msgs/gv_gb.msg index 5e96e6f..5e96e6f 100755..100644 --- a/library/msgs/gv_gb.msg +++ b/library/msgs/gv_gb.msg diff --git a/library/msgs/he.msg b/library/msgs/he.msg index 4fd921d..4fd921d 100755..100644 --- a/library/msgs/he.msg +++ b/library/msgs/he.msg diff --git a/library/msgs/hi.msg b/library/msgs/hi.msg index 50c9fb8..50c9fb8 100755..100644 --- a/library/msgs/hi.msg +++ b/library/msgs/hi.msg diff --git a/library/msgs/hi_in.msg b/library/msgs/hi_in.msg index 239793f..239793f 100755..100644 --- a/library/msgs/hi_in.msg +++ b/library/msgs/hi_in.msg diff --git a/library/msgs/hr.msg b/library/msgs/hr.msg index cec145b..cec145b 100755..100644 --- a/library/msgs/hr.msg +++ b/library/msgs/hr.msg diff --git a/library/msgs/hu.msg b/library/msgs/hu.msg index e5e68d9..e5e68d9 100755..100644 --- a/library/msgs/hu.msg +++ b/library/msgs/hu.msg diff --git a/library/msgs/id.msg b/library/msgs/id.msg index 17c6bb5..17c6bb5 100755..100644 --- a/library/msgs/id.msg +++ b/library/msgs/id.msg diff --git a/library/msgs/id_id.msg b/library/msgs/id_id.msg index bb672c1..bb672c1 100755..100644 --- a/library/msgs/id_id.msg +++ b/library/msgs/id_id.msg diff --git a/library/msgs/is.msg b/library/msgs/is.msg index adc2d2a..adc2d2a 100755..100644 --- a/library/msgs/is.msg +++ b/library/msgs/is.msg diff --git a/library/msgs/it.msg b/library/msgs/it.msg index b641cde..b641cde 100755..100644 --- a/library/msgs/it.msg +++ b/library/msgs/it.msg diff --git a/library/msgs/it_ch.msg b/library/msgs/it_ch.msg index b36ed36..b36ed36 100755..100644 --- a/library/msgs/it_ch.msg +++ b/library/msgs/it_ch.msg diff --git a/library/msgs/ja.msg b/library/msgs/ja.msg index 2767665..2767665 100755..100644 --- a/library/msgs/ja.msg +++ b/library/msgs/ja.msg diff --git a/library/msgs/kl.msg b/library/msgs/kl.msg index d877bfe..d877bfe 100755..100644 --- a/library/msgs/kl.msg +++ b/library/msgs/kl.msg diff --git a/library/msgs/kl_gl.msg b/library/msgs/kl_gl.msg index 403aa10..403aa10 100755..100644 --- a/library/msgs/kl_gl.msg +++ b/library/msgs/kl_gl.msg diff --git a/library/msgs/ko.msg b/library/msgs/ko.msg index 0cd17a1..0cd17a1 100755..100644 --- a/library/msgs/ko.msg +++ b/library/msgs/ko.msg diff --git a/library/msgs/ko_kr.msg b/library/msgs/ko_kr.msg index ea5bbd7..ea5bbd7 100755..100644 --- a/library/msgs/ko_kr.msg +++ b/library/msgs/ko_kr.msg diff --git a/library/msgs/kok.msg b/library/msgs/kok.msg index 0869f20..0869f20 100755..100644 --- a/library/msgs/kok.msg +++ b/library/msgs/kok.msg diff --git a/library/msgs/kok_in.msg b/library/msgs/kok_in.msg index abcb1ff..abcb1ff 100755..100644 --- a/library/msgs/kok_in.msg +++ b/library/msgs/kok_in.msg diff --git a/library/msgs/kw.msg b/library/msgs/kw.msg index aaf79b3..aaf79b3 100755..100644 --- a/library/msgs/kw.msg +++ b/library/msgs/kw.msg diff --git a/library/msgs/kw_gb.msg b/library/msgs/kw_gb.msg index 2967680..2967680 100755..100644 --- a/library/msgs/kw_gb.msg +++ b/library/msgs/kw_gb.msg diff --git a/library/msgs/lt.msg b/library/msgs/lt.msg index 27b0985..27b0985 100755..100644 --- a/library/msgs/lt.msg +++ b/library/msgs/lt.msg diff --git a/library/msgs/lv.msg b/library/msgs/lv.msg index a037b15..a037b15 100755..100644 --- a/library/msgs/lv.msg +++ b/library/msgs/lv.msg diff --git a/library/msgs/mk.msg b/library/msgs/mk.msg index 41cf60d..41cf60d 100755..100644 --- a/library/msgs/mk.msg +++ b/library/msgs/mk.msg diff --git a/library/msgs/mr.msg b/library/msgs/mr.msg index cea427a..cea427a 100755..100644 --- a/library/msgs/mr.msg +++ b/library/msgs/mr.msg diff --git a/library/msgs/mr_in.msg b/library/msgs/mr_in.msg index 1889da5..1889da5 100755..100644 --- a/library/msgs/mr_in.msg +++ b/library/msgs/mr_in.msg diff --git a/library/msgs/ms.msg b/library/msgs/ms.msg index e954431..e954431 100755..100644 --- a/library/msgs/ms.msg +++ b/library/msgs/ms.msg diff --git a/library/msgs/ms_my.msg b/library/msgs/ms_my.msg index c1f93d4..c1f93d4 100755..100644 --- a/library/msgs/ms_my.msg +++ b/library/msgs/ms_my.msg diff --git a/library/msgs/mt.msg b/library/msgs/mt.msg index ddd5446..ddd5446 100755..100644 --- a/library/msgs/mt.msg +++ b/library/msgs/mt.msg diff --git a/library/msgs/nb.msg b/library/msgs/nb.msg index 90d49a3..90d49a3 100755..100644 --- a/library/msgs/nb.msg +++ b/library/msgs/nb.msg diff --git a/library/msgs/nl.msg b/library/msgs/nl.msg index 4c5c675..4c5c675 100755..100644 --- a/library/msgs/nl.msg +++ b/library/msgs/nl.msg diff --git a/library/msgs/nl_be.msg b/library/msgs/nl_be.msg index 4b19670..4b19670 100755..100644 --- a/library/msgs/nl_be.msg +++ b/library/msgs/nl_be.msg diff --git a/library/msgs/nn.msg b/library/msgs/nn.msg index bd61ac9..bd61ac9 100755..100644 --- a/library/msgs/nn.msg +++ b/library/msgs/nn.msg diff --git a/library/msgs/pl.msg b/library/msgs/pl.msg index d206f4b..d206f4b 100755..100644 --- a/library/msgs/pl.msg +++ b/library/msgs/pl.msg diff --git a/library/msgs/pt.msg b/library/msgs/pt.msg index 96fdb35..96fdb35 100755..100644 --- a/library/msgs/pt.msg +++ b/library/msgs/pt.msg diff --git a/library/msgs/pt_br.msg b/library/msgs/pt_br.msg index 8684327..8684327 100755..100644 --- a/library/msgs/pt_br.msg +++ b/library/msgs/pt_br.msg diff --git a/library/msgs/ro.msg b/library/msgs/ro.msg index bdd7c61..bdd7c61 100755..100644 --- a/library/msgs/ro.msg +++ b/library/msgs/ro.msg diff --git a/library/msgs/ru.msg b/library/msgs/ru.msg index 65b075d..65b075d 100755..100644 --- a/library/msgs/ru.msg +++ b/library/msgs/ru.msg diff --git a/library/msgs/ru_ua.msg b/library/msgs/ru_ua.msg index 6e1f8a8..6e1f8a8 100755..100644 --- a/library/msgs/ru_ua.msg +++ b/library/msgs/ru_ua.msg diff --git a/library/msgs/sh.msg b/library/msgs/sh.msg index 6ee0fc7..6ee0fc7 100755..100644 --- a/library/msgs/sh.msg +++ b/library/msgs/sh.msg diff --git a/library/msgs/sk.msg b/library/msgs/sk.msg index 9b2f0aa..9b2f0aa 100755..100644 --- a/library/msgs/sk.msg +++ b/library/msgs/sk.msg diff --git a/library/msgs/sl.msg b/library/msgs/sl.msg index 42bc509..42bc509 100755..100644 --- a/library/msgs/sl.msg +++ b/library/msgs/sl.msg diff --git a/library/msgs/sq.msg b/library/msgs/sq.msg index 8fb1fce..8fb1fce 100755..100644 --- a/library/msgs/sq.msg +++ b/library/msgs/sq.msg diff --git a/library/msgs/sr.msg b/library/msgs/sr.msg index 7576668..7576668 100755..100644 --- a/library/msgs/sr.msg +++ b/library/msgs/sr.msg diff --git a/library/msgs/sv.msg b/library/msgs/sv.msg index f7a67c6..f7a67c6 100755..100644 --- a/library/msgs/sv.msg +++ b/library/msgs/sv.msg diff --git a/library/msgs/sw.msg b/library/msgs/sw.msg index b888b43..b888b43 100755..100644 --- a/library/msgs/sw.msg +++ b/library/msgs/sw.msg diff --git a/library/msgs/ta.msg b/library/msgs/ta.msg index 4abb90c..4abb90c 100755..100644 --- a/library/msgs/ta.msg +++ b/library/msgs/ta.msg diff --git a/library/msgs/ta_in.msg b/library/msgs/ta_in.msg index 24590ac..24590ac 100755..100644 --- a/library/msgs/ta_in.msg +++ b/library/msgs/ta_in.msg diff --git a/library/msgs/te.msg b/library/msgs/te.msg index 6111473..6111473 100755..100644 --- a/library/msgs/te.msg +++ b/library/msgs/te.msg diff --git a/library/msgs/te_in.msg b/library/msgs/te_in.msg index 61638b5..61638b5 100755..100644 --- a/library/msgs/te_in.msg +++ b/library/msgs/te_in.msg diff --git a/library/msgs/th.msg b/library/msgs/th.msg index 7486c35..7486c35 100755..100644 --- a/library/msgs/th.msg +++ b/library/msgs/th.msg diff --git a/library/msgs/tr.msg b/library/msgs/tr.msg index 7b2ecf9..7b2ecf9 100755..100644 --- a/library/msgs/tr.msg +++ b/library/msgs/tr.msg diff --git a/library/msgs/uk.msg b/library/msgs/uk.msg index 7d4c64a..7d4c64a 100755..100644 --- a/library/msgs/uk.msg +++ b/library/msgs/uk.msg diff --git a/library/msgs/vi.msg b/library/msgs/vi.msg index c98b2a6..c98b2a6 100755..100644 --- a/library/msgs/vi.msg +++ b/library/msgs/vi.msg diff --git a/library/msgs/zh.msg b/library/msgs/zh.msg index b799a32..b799a32 100755..100644 --- a/library/msgs/zh.msg +++ b/library/msgs/zh.msg diff --git a/library/msgs/zh_cn.msg b/library/msgs/zh_cn.msg index d62ce77..d62ce77 100755..100644 --- a/library/msgs/zh_cn.msg +++ b/library/msgs/zh_cn.msg diff --git a/library/msgs/zh_hk.msg b/library/msgs/zh_hk.msg index badb1dd..badb1dd 100755..100644 --- a/library/msgs/zh_hk.msg +++ b/library/msgs/zh_hk.msg diff --git a/library/msgs/zh_sg.msg b/library/msgs/zh_sg.msg index a2f3e39..a2f3e39 100755..100644 --- a/library/msgs/zh_sg.msg +++ b/library/msgs/zh_sg.msg diff --git a/library/msgs/zh_tw.msg b/library/msgs/zh_tw.msg index e0796b1..e0796b1 100755..100644 --- a/library/msgs/zh_tw.msg +++ b/library/msgs/zh_tw.msg diff --git a/library/tzdata/Africa/Asmara b/library/tzdata/Africa/Asmara index 1f0f13e..1f0f13e 100755..100644 --- a/library/tzdata/Africa/Asmara +++ b/library/tzdata/Africa/Asmara diff --git a/library/tzdata/America/Atikokan b/library/tzdata/America/Atikokan index e72b04f..e72b04f 100755..100644 --- a/library/tzdata/America/Atikokan +++ b/library/tzdata/America/Atikokan diff --git a/library/tzdata/America/Blanc-Sablon b/library/tzdata/America/Blanc-Sablon index d5485e8..d5485e8 100755..100644 --- a/library/tzdata/America/Blanc-Sablon +++ b/library/tzdata/America/Blanc-Sablon diff --git a/library/tzdata/America/Indiana/Petersburg b/library/tzdata/America/Indiana/Petersburg index 6992bfc..6992bfc 100755..100644 --- a/library/tzdata/America/Indiana/Petersburg +++ b/library/tzdata/America/Indiana/Petersburg diff --git a/library/tzdata/America/Indiana/Tell_City b/library/tzdata/America/Indiana/Tell_City index 9eebcf7..9eebcf7 100755..100644 --- a/library/tzdata/America/Indiana/Tell_City +++ b/library/tzdata/America/Indiana/Tell_City diff --git a/library/tzdata/America/Indiana/Vincennes b/library/tzdata/America/Indiana/Vincennes index 1af7fc9..1af7fc9 100755..100644 --- a/library/tzdata/America/Indiana/Vincennes +++ b/library/tzdata/America/Indiana/Vincennes diff --git a/library/tzdata/America/Indiana/Winamac b/library/tzdata/America/Indiana/Winamac index fb6cd37..fb6cd37 100755..100644 --- a/library/tzdata/America/Indiana/Winamac +++ b/library/tzdata/America/Indiana/Winamac diff --git a/library/tzdata/America/Moncton b/library/tzdata/America/Moncton index d286c88..d286c88 100755..100644 --- a/library/tzdata/America/Moncton +++ b/library/tzdata/America/Moncton diff --git a/library/tzdata/America/North_Dakota/New_Salem b/library/tzdata/America/North_Dakota/New_Salem index 5a9d229..5a9d229 100755..100644 --- a/library/tzdata/America/North_Dakota/New_Salem +++ b/library/tzdata/America/North_Dakota/New_Salem diff --git a/library/tzdata/America/Resolute b/library/tzdata/America/Resolute index b4c0bab..b4c0bab 100755..100644 --- a/library/tzdata/America/Resolute +++ b/library/tzdata/America/Resolute diff --git a/library/tzdata/Atlantic/Faroe b/library/tzdata/Atlantic/Faroe index d2c314a..d2c314a 100755..100644 --- a/library/tzdata/Atlantic/Faroe +++ b/library/tzdata/Atlantic/Faroe diff --git a/library/tzdata/Australia/Eucla b/library/tzdata/Australia/Eucla index 0f8ed4d..0f8ed4d 100755..100644 --- a/library/tzdata/Australia/Eucla +++ b/library/tzdata/Australia/Eucla diff --git a/library/tzdata/Europe/Guernsey b/library/tzdata/Europe/Guernsey index 4372c64..4372c64 100755..100644 --- a/library/tzdata/Europe/Guernsey +++ b/library/tzdata/Europe/Guernsey diff --git a/library/tzdata/Europe/Isle_of_Man b/library/tzdata/Europe/Isle_of_Man index 870ac45..870ac45 100755..100644 --- a/library/tzdata/Europe/Isle_of_Man +++ b/library/tzdata/Europe/Isle_of_Man diff --git a/library/tzdata/Europe/Jersey b/library/tzdata/Europe/Jersey index e4da512..e4da512 100755..100644 --- a/library/tzdata/Europe/Jersey +++ b/library/tzdata/Europe/Jersey diff --git a/library/tzdata/Europe/Podgorica b/library/tzdata/Europe/Podgorica index f4f9066..f4f9066 100755..100644 --- a/library/tzdata/Europe/Podgorica +++ b/library/tzdata/Europe/Podgorica diff --git a/library/tzdata/Europe/Volgograd b/library/tzdata/Europe/Volgograd index c3f148f..c3f148f 100755..100644 --- a/library/tzdata/Europe/Volgograd +++ b/library/tzdata/Europe/Volgograd diff --git a/tests/lsetComp.test b/tests/lsetComp.test index 6846cbf..6846cbf 100755..100644 --- a/tests/lsetComp.test +++ b/tests/lsetComp.test diff --git a/tests/notify.test b/tests/notify.test index d2b9123..d2b9123 100755..100644 --- a/tests/notify.test +++ b/tests/notify.test diff --git a/tests/tcltest.test b/tests/tcltest.test index ce8d617..ce8d617 100755..100644 --- a/tests/tcltest.test +++ b/tests/tcltest.test diff --git a/tools/encoding/ebcdic.txt b/tools/encoding/ebcdic.txt index d9fa42e..d9fa42e 100755..100644 --- a/tools/encoding/ebcdic.txt +++ b/tools/encoding/ebcdic.txt diff --git a/tools/encoding/tis-620.txt b/tools/encoding/tis-620.txt index d3656c5..d3656c5 100755..100644 --- a/tools/encoding/tis-620.txt +++ b/tools/encoding/tis-620.txt diff --git a/win/buildall.vc.bat b/win/buildall.vc.bat index e4f0a30..e4f0a30 100755..100644 --- a/win/buildall.vc.bat +++ b/win/buildall.vc.bat |