| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_StringObjCmd): changed the case for
choosing the Tcl_UniCharNcmp compare to when both objs are of
StringType, as benchmarks show that is the optimal check (both
bigendian and littleendian systems).
|
|
|
|
|
| |
probably optimized far in excess of anything we could do! Little-endian
just use the old code...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclUtf.c: added TclpUtfNcmp2 private command that
mirrors Tcl_UtfNcmp, but takes n in bytes, not utf-8 chars. This
provides a faster alternative for comparing utf strings internally.
(Tcl_UniCharNcmp, Tcl_UniCharNcasecmp): removed the explicit end
of string check as it wasn't correct for the function (by doc and
logic).
* generic/tclCmdMZ.c (Tcl_StringObjCmd): reworked the string equal
comparison code to use TclpUtfNcmp2 as well as short-circuit for
equal objects or unequal length strings in the equal case.
Removed the use of goto and streamlined the other parts.
* generic/tclExecute.c (TclExecuteByteCode): added check for
object equality in the comparison instructions. Added
short-circuit for != length strings in INST_EQ, INST_NEQ and
INST_STR_CMP. Reworked INST_STR_CMP to use TclpUtfNcmp2 where
appropriate, and only use Tcl_UniCharNcmp when at least one of the
objects is a Unicode obj with no utf bytes.
|
| |
|
|
|
|
|
|
| |
TCL_BREAK and TCL_CONTINUE returned by variable substitution
have the same effect as when those codes are returned by command
substitution. [Bug 536879]
|
|
|
|
|
|
|
|
|
| |
(TraceCommandProc, TclTraceCommandObjCmd): corrected
potential double-free of traces on variables by flagging in
Trace*Proc that it will free the var in case the eval wants to
delete the var trace as well. [Bug #536937]
Also converted Tcl_UntraceVar -> Tcl_UntraceVar2 and Tcl_Eval to
Tcl_EvalEx in Trace*Proc for slight efficiency improvement.
|
|
|
|
| |
to TIP 27. In particular, the "part2" arguments were CONSTified.
|
|
|
|
|
| |
structure was also deleted when a command was deleted to prevent a
mem leak.
|
| |
|
| |
|
|
|
|
|
| |
This version builds clean on Solaris/SPARC, with GCC and CC, both with and
without threads and both in 32-bit and 64-bit mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
restored to return (char *): Tcl_DStringAppend,
Tcl_DStringAppendElement, Tcl_JoinPath, Tcl_TranslateFileName,
Tcl_ExternalToUtfDString, Tcl_UtfToExternalDString,
Tcl_UniCharToUtfDString, Tcl_GetCwd, Tcl_WinTCharToUtf. Also
restored Tcl_WinUtfToTChar to return (TCHAR *) and
Tcl_UtfToUniCharDString to return (Tcl_UniChar *). Modified
some callers. This change recognizes that Tcl_DStrings are
de-facto white-box objects.
* generic/tclCmdMZ.c: corrected use of C++-style comment.
|
|
|
|
|
|
|
|
| |
search for simple 'string map' style regsub calls.
Delayed creation of resultPtr object until an initial match is
made, as the input string object can then be reused for no matches.
(Tcl_StringObjCmd): optimization improvements to the STR_MAP
algorithm for zero-length and nocase cases.
|
|
|
|
| |
earlier to avoid shimmering problem.
|
|
|
|
| |
of TIP 27.
|
|
|
|
|
|
|
| |
overlooked before. Updated callers.
***POTENTIAL INCOMPATIBILITY***
Includes a source incompatibility in the tablePtr arguments of
the Tcl_GetIndexFromObj* routines.
|
|
|
|
| |
to the guidelines of TIP 27. Updated callers.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ>c (Tcl_UntraceCommand): Added Tcl_Preserve and
Tcl_Release calls to prevent deletion of CommandTrace structures
until all callers are done using them, preventing memory corruption.
[Bug 453805]
|
|
|
|
| |
This deprecates TclpGetTime in favor of new Tcl_GetTime.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
2001-08-06 to actually duplicate the objects in certain cases.
This is really a place where feather would have been essential.
[Bug #461322]
|
|
|
|
| |
of Tcl_EvalTokens, replaced by the new Tcl_EvalTokensStandard.
|
|
|
|
|
| |
reordered the retrieval of arguments to avoid shimmering bug when
the pattern and string referenced the same object.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following files were impacted.
* doc/Access.3:
* doc/FileSystem.3:
* doc/OpenFileChnl.3:
* doc/file.n:
* doc/glob.n:
* generic/tcl.decls:
* generic/tcl.h:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclDate.c:
* generic/tclDecls.h:
* generic/tclEncoding.c:
* generic/tclFCmd.c:
* generic/tclFileName.c:
* generic/tclGetDate.y:
* generic/tclIO.c:
* generic/tclIOCmd.c:
* generic/tclIOUtil.c:
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclLoad.c:
* generic/tclStubInit.c:
* generic/tclTest.c:
* generic/tclUtil.c:
* library/init.tcl:
* mac/tclMacFCmd.c:
* mac/tclMacFile.c:
* mac/tclMacInit.c:
* mac/tclMacPort.h:
* mac/tclMacResource.c:
* mac/tclMacTime.c:
* tests/cmdAH.test:
* tests/event.test:
* tests/fCmd.test:
* tests/fileName.test:
* tests/io.test:
* tests/ioCmd.test:
* tests/proc-old.test:
* tests/registry.test:
* tests/unixFCmd.test:
* tests/winDde.test:
* tests/winFCmd.test:
* unix/mkLinks:
* unix/tclUnixFCmd.c:
* unix/tclUnixFile.c:
* unix/tclUnixInit.c:
* unix/tclUnixPipe.c:
* win/tclWinFCmd.c:
* win/tclWinFile.c:
* win/tclWinInit.c:
* win/tclWinPipe.c
|
|
|
|
| |
#defined in generic/tclScan.c. (porter) [Bug 441230]
|
|
|
|
|
| |
handling and improved documentation for the subst command (in my
capacity as maintainer of the Commands M-Z functional area.)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
time adding CONST to the API's exported from tclBasic.c.
[Patch #415179]
***POTENTIAL INCOMPATIBILITY*** from 8.4a2, in which Vince
Darley's changes to command tracing were added. A const has been
added to the type signature of one of the parameters to
Tcl_CommandTraceProc.
|
|
|
|
|
| |
command up in a few cases too (notably byte arrays and UNICODE
objects.) [Bug #219201]
|
| |
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_RegsubObjCmd): fixed handling of nulls
in subspec value.
|
| |
|
|
|
|
|
| |
giving better performance for smallish strings, and *much* better
performance for large (especially multi-megabyte) ones.
|
|
|
|
|
|
|
| |
attempts after the first to match the regexp against the string
should include the TCL_REG_NOTBOL flag, to avoid erroneously
matching ^ in the middle of the string. Added code to set this
flag after the first pass through the matching loop. [Bug: 6284].
|
|
|
|
|
| |
preallocate the full space of the final string, avoided repeated
appends.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
syntax as deprecated; added documentation for command
rename/delete traces and variable array traces.
* tests/trace.test: Updated tests for new trace syntax; new tests
for command rename/delete traces; new tests for array traces.
* generic/tclVar.c: Support for new trace syntax; support for
TCL_TRACE_ARRAY.
* generic/tclStubInit.c:
* generic/tclDecls.h:
* generic/tcl.decls: Stub functions for command rename/delete traces.
* generic/tcl.h:
* generic/tclInt.h:
* generic/tclBasic.c: Support for command traces.
* generic/tclCmdMZ.c (TclTraceVariableObjCmd): Patched to support
new [trace] syntax:
trace {add|remove|list} {variable|command} name ops command
Added support for command traces (rename, delete operations).
Added support for TCL_TRACE_ARRAY at Tcl level (array operation
for variable traces).
|
|
|
|
|
|
|
|
|
|
| |
Unicode, tweaked for performance.
(Tcl_StringObjCmd) changed STR_FIRST/STR_LAST error message to
something more understandable, reworked STR_FIRST, STR_LAST,
STR_MAP, STR_MATCH, STR_RANGE, STR_REPLACE to operate in Unicode.
Removed inneffectual STR_RANGE "special" ByteArray support.
Optimized STR_MAP algorithm, especially optimized for one-pair case.
Fixed possible mem overrun in STR_INDEX bytearray case.
|
|
|
|
|
|
|
|
| |
contents string from UTF to native encoding [Bug: 4030].
* tests/regexp.test: Added tests for infinite looping in [regexp -all].
* generic/tclCmdMZ.c: Fixed infinite loop bug with [regexp -all] [Bug: 4981].
|
| |
|
|
|
|
|
|
| |
* doc/regexp.n: added docs for -all and -inline switches
* generic/tclCmdMZ.c (Tcl_RegexpObjCmd): added extra comments for
new -all and -inline switches to regexp command
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.c: fixed problem where setting to {} array
would intermittently not work. (Fontaine) [Bug: 3339]
* generic/tclCmdMZ.c:
* generic/tclExecute.c: optimized INST_TRY_CVT_TO_NUMERIC to
recognize boolean objects. (Spjuth) [Bug: 2815]
* tests/info.test:
* tests/parseOld.test:
* generic/tclCmdAH.c:
* generic/tclProc.c: changed Tcl_UplevelObjCmd (uplevel) and
Tcl_EvalObjCmd (eval) to use TCL_EVAL_DIRECT in the single arg
case as well, to take advantage of potential pure list input
optimization. This means that it won't get byte compiled though,
which should be acceptable.
* generic/tclBasic.c: made Tcl_EvalObjEx pure list object aware in
the TCL_EVAL_DIRECT case for efficiency.
* generic/tclUtil.c: made Tcl_ConcatObj pure list object aware,
and return a list object in that case [Bug: 2098 2257]
* generic/tclMain.c: changed Tcl_Main to not constantly reuse the
commandPtr object (interactive case) as it could be shared. (Fellows)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
iterates once over the va_list (avoiding a memcpy of it,
which is not portable).
* generic/tclEnv.c: fixed possible ABR error in environ array
* tests/scan.test:
* generic/tclScan.c: added support for use of inline scan,
XPG3 currently not included
* tests/incr.test:
* tests/set.test:
* generic/tclCompCmds.c: fixed improper bytecode handling of
'eval {set array($unknownvar) 5}' (also for incr)
* win/tclWinTest.c: added testvolumetype command, as atime is
completely ignored for Windows FAT file systems
* win/tclWinPort.h: added sys/utime.h to includes
* unix/tclUnixPort.h: added utime.h to includes
* doc/file.n:
* tests/cmdAH.test:
* generic/tclCmdAH.c: added time arguments to atime and mtime
file command methods (support 'touch' functionality)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
making triggerPipe non-blocking
* library/tcltest1.0/tcltest.tcl:
* generic/tclThreadTest.c: fixed mem leaks in threads
* generic/tclResult.c: fixed Tcl_AppendResultVA so it only
iterates once over the va_list (avoiding a memcpy of it,
which is not portable).
* generic/regc_color.c: fixed mem leak and assertion, from HS
* generic/tclCompile.c: removed savedChar trick that appeared to
be causing a segv when the literal table was released
* tests/string.test:
* generic/tclCmdMZ.c: fixed [string index] to return ByteArrayObj
when indexing into one (test case string-5.16) [Bug: 2871]
|