summaryrefslogtreecommitdiffstats
path: root/generic/tclStringObj.c
Commit message (Collapse)AuthorAgeFilesLines
* merge trunkdgp2017-09-051-1/+1
|\
| * Merge core-8-6-branchjan.nijtmans2017-09-011-1/+1
| |\
| | * Handle Unicode surrogates correctly in Tcl_AppendFormatToObj() and ↵jan.nijtmans2017-09-011-1/+1
| | | | | | | | | | | | BuildCharSet(). Only makes a difference for TCL_UTF_MAX=4, when surrogates are used in the format string ... highly unlikely corner-case.
* | | merge trunkdgp2017-09-011-2/+2
|\ \ \ | |/ /
| * | merge core-8-6-branchjan.nijtmans2017-08-181-2/+2
| |\ \ | | |/
| | * merge core-8-6-branchjan.nijtmans2017-07-031-10/+9
| | |\
| | * | Better UTF-8 surrogate handling, only functional when TCL_UTF_MAX>3jan.nijtmans2017-06-081-2/+2
| | | |
* | | | merge trunkdgp2017-06-291-10/+9
|\ \ \ \ | |/ / /
| * | | merge core-8-6-branchjan.nijtmans2017-06-281-10/+9
| |\ \ \ | | | |/ | | |/|
| | * | Eliminate use of (expensive) Tcl_UtfToUpper() from "format": Just generate ↵jan.nijtmans2017-06-281-10/+9
| | |/ | | | | | | | | | the expected uppercase characters right away from the start. No change in functionality, just code optimization.
* | | merge trunkdgp2017-06-261-0/+4
|\ \ \ | |/ /
| * | TIP #472 implementation: Add Support for 0d Radix Prefix to Integer Literalsjan.nijtmans2017-06-231-0/+4
| |\ \
| | * \ Rebase to core-8-6-branch (who told that fossil doesn't know how to rebase ....)jan.nijtmans2017-06-141-0/+4
| | |\ \ | | | |/ | | |/|
| | | * Add support of 0d in the format %# conversion flag. Add tests for same.griffin2017-06-121-0/+4
| | | |
* | | | merge trunkdgp2017-06-161-21/+88
|\ \ \ \ | |/ / /
| * | | Another reworking, now with comments.dgp2017-06-161-36/+43
| | | |
| * | | Simplify the final loop when we know we're generating strings for all.dgp2017-06-161-33/+7
| | | |
| * | | Split loop into two cases for further simplification.dgp2017-06-161-2/+43
| | | |
| * | | Factor out and simplify loop scanning leading known empty values.dgp2017-06-161-0/+21
| | | |
| * | | Use local variables.dgp2017-06-161-5/+5
| | | |
| * | | Rework the logic. Equivalent function.dgp2017-06-161-19/+9
| | | |
| * | | Extend cases where string rep generation can be prevented.dgp2017-06-161-0/+16
| | | |
| * | | Better define the meaning of "first" and "last".dgp2017-06-161-3/+5
| | | |
| * | | Don't test the impossible.dgp_stringcat_delaystringrepdgp2017-06-081-5/+3
| | | |
| * | | Modernize overflow checks.dgp2017-06-081-6/+6
| | | |
| * | | More streamliningdgp2017-06-081-14/+14
| | | |
| * | | More streamlining.dgp2017-06-081-12/+5
| | | |
| * | | pendingPtr == NULL implies (last == first) implies early outdgp2017-06-081-14/+3
| | | |
| * | | When possible delay string rep generation until necessary.dgp2017-06-081-10/+46
| | | |
* | | | merge trunkdgp2017-06-061-45/+68
|\ \ \ \ | |/ / /
| * | | A few more tweaks to streamline and clarify.bug_716b427f76dgp2017-06-061-13/+17
| | | |
| * | | makes TclStringCatObjv safe accepting objc = 0 (or 1), then fast exits with ↵sebres2017-06-061-12/+16
| | | | | | | | | | | | | | | | new object / first; check-cycles rewritten to be still more faster.
| * | | amend to [eac4656f1e8cf793] (moved to scope where numChars != 0 in Unicode case)sebres2017-06-061-3/+3
| | | |
| * | | small code review: don't need to check length if unchanged + the same case ↵sebres2017-06-061-17/+18
| | | | | | | | | | | | | | | | if 0 length
| * | | Optimize TclStringCatObjv() for case when only one argument is non-empty.dgp2017-06-051-8/+22
| | | |
| * | | merge core-8-6-branchjan.nijtmans2017-05-291-13/+13
| |\ \ \ | | |/ / | | | / | | |/ | |/|
| | * Tcl_UtfToUniChar() -> TclUtfToUniChar() in various places: No change in ↵jan.nijtmans2017-05-291-13/+13
| | | | | | | | | | | | functionality, just faster if ASCII only strings are involved.
* | | merge trunkdgp2017-04-171-3/+3
|\ \ \ | |/ /
| * | If %llu is considered invalid, it means that "%" TCL_LL_MODIFIER "u" cannot ↵jan.nijtmans2017-04-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be used Tcl_ObjPrintf(), but only in sprintf(). That's unfortunate, clearly an oversight in TIP #237. Conclusion: new TIP must be written to correct this. I'll read a TIP and see what case you have, but TCL_LL_MODIFIER was never meant to play any role in [format] or in Tcl_ObjPrintf(). TCL_LL_MODIFIER exists to help deal with platform differences in sprintf() calls. Tcl_ObjPrintf() in contrast ought to be consistent in its behavior across platforms and should not need such things. If that's false, then fixes to Tcl_ObjPrintf() are in order.
* | | merge trunkdgp2017-04-121-9/+5
|\ \ \ | |/ /
| * | Revert recent commit. TIP 237 is clear that %llu is invalid.dgp2017-04-121-9/+5
| |\ \ | | |/
| | * Revert recent commit [80252e0aed]. TIP 237 is clear that %llu is invalid.dgp2017-04-121-9/+5
| | |
* | | merge trunkdgp2017-04-061-11/+36
|\ \ \ | |/ /
| * | Fix [4b12ccb3363e81b132e8dbe12aeec596102be1a8|4b12ccb336]: format/scan %llu ↵jan.nijtmans2017-04-051-5/+9
| |\ \ | | |/ | | | | | | doesn't work. Also added new test-cases showing the expected behavior.
| | * Fix [4b12ccb3363e81b132e8dbe12aeec596102be1a8|4b12ccb336]: format/scan %llu ↵jan.nijtmans2017-04-051-5/+9
| | | | | | | | | | | | doesn't work. Also added new test-cases showing the expected behavior.
| * | Merge core-8-6-branch.jan.nijtmans2017-04-031-6/+27
| |\ \ | | |/ | | | Add test-cases showing that the (undocumented) %p format (and also %zd/%td) are harmless, since they are equivalent to other already existing formats.
| | * Code optimization/reduction: If TCL_WIDE_INT_IS_LONG is defined, the ↵jan.nijtmans2017-04-031-5/+12
| | | | | | | | | | | | variable useWide is always 0, so related code can be eliminated without loss of functionality.
* | | merge trunkdgp2017-03-291-6/+33
|\ \ \ | |/ /
| * | Supply more C99-compatible (and MSVC) format options: '%p' for pointers, ↵jan.nijtmans2017-03-241-6/+33
| | | | | | | | | | | | | | | 'z'/'j'/'I' for size_t/intptr_diff, 'j'/'q' for long long. Also add "I32" froom MSVC. Remove TCL_LL_MODIFIER specified as "L" for Borland: This must be wrong as "L" is meant for long double. Just assume that later Borland compilers are MSVC-compatible.
* | | merge trunkdgp2017-02-031-5/+5
|\ \ \ | |/ /