summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge 8.7jan.nijtmans2020-10-141-47/+70
|\
| * Merge 8.6jan.nijtmans2020-09-201-6/+10
| |\
| | * Improve TclInvalidateStringRep() macro such that (objPtr) is only evaluated ↵jan.nijtmans2020-09-201-6/+9
| | | | | | | | | | | | once. Addation brackets in TclHasStringRep() macro
| | * Silence compiler warning -- fix safety of macro.dgp2020-09-201-1/+1
| | |
| | * Make the check to avoid generating a string representation in [uplevel] a ↵pooryorick2020-09-201-0/+3
| | | | | | | | | | | | little less intrusive.
| | * Eliminate many "register" keywords (which do nothing with modern compilers)jan.nijtmans2020-09-141-2/+2
| | | | | | | | | Eliminate many unnecessary type-casts to (unsigned)
| * | Merge implementation of TIP #585 (Promote the INDEX_TEMP_TABLE flag of ↵fvogel2020-09-131-9/+0
| |\ \ | | | | | | | | | | | | Tcl_GetIndexFromObj*() to the public interface) after positive vote from the TCT.
| | * | Implementation of TIP #585 - Promote the INDEX_TEMP_TABLE flag of ↵fvogel2020-09-021-9/+0
| | | | | | | | | | | | | | | | Tcl_GetIndexFromObj*() to the public interface
| * | | Merge 8.6jan.nijtmans2020-09-111-2/+2
| |\ \ \ | | | |/ | | |/|
| | * | Folow-up to previous commit: ExecStack is a FLEXARRAY toojan.nijtmans2020-09-111-1/+1
| | | |
| * | | Merge 8.6. Remove tests/safe-stock86.test for win builds too (GIT, what are ↵jan.nijtmans2020-09-111-2/+8
| |\ \ \ | | |/ / | | | | | | | | you doing ...!)
| | * | Fix [https://core.tcl-lang.org/tk/tktview?name=3bc0f44ef3|3bc0f44ef3]: UBSan ↵jan.nijtmans2020-09-111-2/+8
| | | | | | | | | | | | | | | | | | | | complains about body.chars[] usage. (Yes, I know, this one is for Tk, but Tcl was using the same construct too ....)
| * | | Merge 8.6jan.nijtmans2020-09-101-1/+1
| |\ \ \ | | |/ / | | | / | | |/ | |/|
| * | Fix windows debug build, broken by previous commitjan.nijtmans2020-09-021-1/+1
| | |
| * | Fix for [c1a376375e0e6488], imported namespace ensemble command name distortedpooryorick2020-09-011-9/+29
| | | | | | | | | during deletion trace on the import
| * | Merge 8.6jan.nijtmans2020-09-011-1/+1
| |\ \ | | |/
| * | Merge 8.6. Better solution for [e87000d842]jan.nijtmans2020-08-121-1/+1
| |\ \ | | |/
| | * Fix value of CMD_DEAD flagjan.nijtmans2020-08-121-1/+1
| | |
| * | merge 8.6pooryorick2020-08-101-0/+1
| |\ \ | | |/
| | * Fix for [29e8848eb976], imported alias in a deletion trace.pooryorick2020-08-101-0/+1
| | |
| * | Merge 8.6jan.nijtmans2020-07-201-14/+14
| |\ \ | | |/
| | * Use "Global" in stead of "Master" internally, where "Master" is not used in ↵jan.nijtmans2020-07-201-14/+14
| | | | | | | | | | | | the Master-Slave paradigm and where this makes sense.
| * | Merge 8.7jan.nijtmans2020-05-311-0/+2
| |\ \
| | * \ tip-551 implementation.griffin2020-05-301-0/+2
| | |\ \
| | | * | Update for TIP-551: griffin2020-05-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add documentation for this feature to the expr man page. The keyword "integer value" has been added to the string and expr man page. Added TCL_PARSE_NO_UNDERSCORE flag so that the digit separator can be disabled when need when calling TclParseNumber. Disabled digit separator in the "scan" command when scanning integers and floating-point numbers. This is the one place where existing code may rely on number parsing to stop at an underscore. Disallow underscore between the leading 0 and the radix specifiers 'x', 'o', 'b', and 'd'. Added tests for disallowed underscore use and scan with underscores between digits in the source string.
| * | | | Merge 8.7jan.nijtmans2020-05-271-0/+2
| |\ \ \ \ | | |/ / /
| | * | | Fix compiled "string is <class>" for characters > U+FFFF. Add testcase ↵jan.nijtmans2020-05-251-0/+2
| | |\ \ \ | | | | |/ | | | |/| | | | | | exposing this bug.
| | | * | Fix compiled "string is <class>" for TCL_UTF_MAX=4 build, for characters > ↵jan.nijtmans2020-05-251-1/+3
| | | | | | | | | | | | | | | | | | | | U+FFFF.
| * | | | Merge 8.7jan.nijtmans2020-05-241-4/+24
| |\ \ \ \ | | |/ / /
| | * | | Merge 8.6jan.nijtmans2020-05-141-3/+0
| | |\ \ \ | | | |/ /
| | | * | In some places, Tcl_UtfPrev()/Tcl_UtfNext() is used traversing the ↵jan.nijtmans2020-05-141-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | individual bytes of a string searching for '(', ')', '::' or other single bytes. It is overkill to use Tcl_UtfPrev/Tcl_UtfNext for that, since those characters can only appear as their ASCII byte, not as any other sequence. This effectively removes the last Tcl_UtfNext() call from the core, the only ones left are in tclTest.c for test commands. So the TclUtfNext() macro doesn't make sense any more. Remove "register" keyword from many files.
| * | | | Merge 8.7jan.nijtmans2020-04-081-2/+5
| |\ \ \ \
| * \ \ \ \ Merge 8.7jan.nijtmans2020-03-311-1/+1
| |\ \ \ \ \
| * \ \ \ \ \ Merge 8.7jan.nijtmans2020-03-301-4/+4
| |\ \ \ \ \ \
| * \ \ \ \ \ \ Merge 8.7jan.nijtmans2020-03-291-2/+2
| |\ \ \ \ \ \ \
| * \ \ \ \ \ \ \ Merge 8.7jan.nijtmans2020-03-201-2/+2
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| * | | | | | | | Simplify TclIndexEncode(). Range checks not 100% correct yet. More WIP.jan.nijtmans2020-03-151-4/+3
| | | | | | | | |
* | | | | | | | | Finish implementation of "string nextchar|nextword|prevchar|prevword". Not ↵jan.nijtmans2020-05-251-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thourougly test yet, but seems OK at first sight.
* | | | | | | | | Split more "string" functions. New helper function TclUniCharToUCS4(), not ↵jan.nijtmans2020-05-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | used yet but that's the next step.
* | | | | | | | | First, experimental implementation of TIP #575. Barely tested, will fail. WIPjan.nijtmans2020-05-121-14/+0
| |_|_|_|_|/ / / |/| | | | | | |
* | | | | | | | Merge 8.6jan.nijtmans2020-05-071-0/+3
|\ \ \ \ \ \ \ \ | | |_|_|_|_|/ / | |/| | | | | |
| * | | | | | | More usage of TclUtfToUCS4(), so we can use the whole Unicode range better ↵jan.nijtmans2020-05-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in TCL_UTF_MAX>3 builds.
| * | | | | | | New internal function TclGetUCS4() only available when TCL_UTF_MAX=4. This ↵jan.nijtmans2020-05-041-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes all "knownBug" testcases related to tip389.
| * | | | | | | Re-join utf-6.93.0 and utf-6.93.1 (please disregard comment in previous ↵jan.nijtmans2020-05-031-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit, it was not correct). Perfectionalize TclUtfToUCS4()/TclUCS4Complete() and new (internal) function TclUCS4ToUtf(). They can help preventing bugs regarding splitting/joining surrogates. Used them in a few more places.
* | | | | | | | Fix first part of [ed29806baf]: Tcl_UtfToUniChar reads more than TCL_UTF_MAX ↵jan.nijtmans2020-05-011-3/+6
|\ \ \ \ \ \ \ \ | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bytes. Tcl_UtfToUniChar() now never reads more than TCL_UTF_MAX bytes any more. Since the UtfToUtf encoder/decoder now uses TclUtfToUCS4() it doesn't join 2 surrogates as 2 x 3-byte sequences any more. Actually, it shouldn't, because such sequences are invalid UTF-8. Therefore, added the ucs2 constraint to testcase encoding-15.4. Let's see how TIP #573 goes, this TIP should make this change official. Other callers of Tcl_UtfToUniChar() needs to be revised for the same problem. Most callers will need to change Tcl_UtfToUniChar() -> TclUtfToUCS4() and Tcl_UtfCharComplete() -> TclUCS4Complete(), but that's not done yet.
| * | | | | | | Fix first part of [ed29806baf]: Tcl_UtfToUniChar reads more than TCL_UTF_MAX ↵jan.nijtmans2020-05-011-4/+6
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bytes. Tcl_UtfToUniChar() now never reads more than TCL_UTF_MAX bytes any more. The UtfToUtf encoder/decoder is adapted to do attitional checks (more tricky than in Tcl 8.7, since we want compatibility with earlier 8.6 releases). Other callers of Tcl_UtfToUniChar() needs to be revised for the same problem. Most callers will need to change Tcl_UtfToUniChar() -> TclUtfToUCS4() and Tcl_UtfCharComplete() -> TclUCS4Complete(), but that's not done yet.
| | * | | | | | | Fix [ed29806baf] by introducing TclUCS4Complete(). All other calls of ↵jan.nijtmans2020-05-011-1/+4
| |/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tcl_UtfToUniChar() are suspicious, because those cannot handle 4-byte UTF-8 sequences reliable. So, there's more work to do, but this part can already be backported to Tcl 8.6 and see where we get.
| * | | | | | | Merge from 8.5. Failing tests encoding-12.6, reg-13.3[34] appear to be realdgp2020-04-241-2/+0
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | failures reporting first contact with tests and code.
| | * | | | | | | Add protections against overflow in Unicode values. Backported from 8.6. ↵jan.nijtmans2020-04-241-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also remove some out-of-date comments.
* | | | | | | | | Merge 8.6. This mainly introduces the overlong check into Tcl_UtfPrev(). 10 ↵jan.nijtmans2020-04-241-0/+8
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / | | | | | | | | | | | | | | | | | | testcase changed results, all of them due to the Tcl_UtfPrev() improvement. Tcl_UtfNext() is not affected: Previous implementation was based on Tcl_UtfToUniChar(), which already did this check.