summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdMZ.c
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclExecute.c (TclExecuteByteCode INST_STR_CMP):hobbs2002-05-301-9/+7
| | | | | | | * 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).
* Made Tcl_UniCharNcmp faster on big-endian machines; the system memcmp()isdkf2002-05-291-2/+2
| | | | | probably optimized far in excess of anything we could do! Little-endian just use the old code...
* * generic/tclInt.decls:hobbs2002-05-291-106/+62
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* Partial resolution of Bug #536831; the comment is a bit clearer!dkf2002-04-181-2/+10
|
* * Corrected [subst] so that return codesdgp2002-04-051-3/+9
| | | | | | TCL_BREAK and TCL_CONTINUE returned by variable substitution have the same effect as when those codes are returned by command substitution. [Bug 536879]
* * generic/tclCmdMZ.c (Tcl_TraceObjCmd, TraceVarProc)hobbs2002-03-291-13/+23
| | | | | | | | | (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.
* * Updated interfaces of generic/tclVar.c accordingdgp2002-03-201-3/+3
| | | | to TIP 27. In particular, the "part2" arguments were CONSTified.
* * generic/tclCmdMZ.c (TraceCommandProc): ensure that TraceCommandInfohobbs2002-03-011-2/+6
| | | | | structure was also deleted when a command was deleted to prevent a mem leak.
* generic/tclCmdMZ.chobbs2002-02-271-9/+10
|
* Added TIP#76 implementation, docs + tests.dkf2002-02-221-11/+19
|
* TIP#72 implementation. See ChangeLog for details.dkf2002-02-151-2/+10
| | | | | 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.
* * Partial TIP 27 rollback. Following routinesdgp2002-02-081-2/+2
| | | | | | | | | | | | | 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.
* * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): added special case tohobbs2002-02-071-42/+137
| | | | | | | | 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.
* * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): handle quirky about casehobbs2002-02-021-8/+12
| | | | earlier to avoid shimmering problem.
* * Updated APIs in generic/tclCmdMZ.c according to the guidelinesdgp2002-01-211-4/+4
| | | | of TIP 27.
* * More TIP 27 updates in tclIOUtil.c and tclIndexObj.c that weredgp2002-01-171-11/+11
| | | | | | | overlooked before. Updated callers. ***POTENTIAL INCOMPATIBILITY*** Includes a source incompatibility in the tablePtr arguments of the Tcl_GetIndexFromObj* routines.
* * Updated APIs in generic/tclUtf.c and generic/tclRegexp.c accordingdgp2002-01-171-5/+5
| | | | to the guidelines of TIP 27. Updated callers.
* * typo corrections in commentsdgp2001-12-201-3/+3
|
* Tightened up the argument passing for [switch] to promote robuster scripts.dkf2001-11-271-31/+59
|
* * generic/tclBasic.c (Tcl_DeleteCommandFromToken,CallCommandTraces):dgp2001-11-211-2/+2
| | | | | | | * 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]
* added TIP#73 patch #483500 from Kevin Kenny.hobbs2001-11-211-5/+5
| | | | This deprecates TclpGetTime in favor of new Tcl_GetTime.
* Changes due to TIP#68; memory handling in variable traces is now correct!dkf2001-11-191-40/+15
|
* Undo of mistaken commit. Sorry!dgp2001-10-161-5/+5
|
* * Added test to demonstrate memory corruption problems. [Bug 219393].dgp2001-10-161-5/+5
|
* removed unnecessary inclusions of tclCompile.h [Patch 466823]Miguel Sofer2001-10-011-2/+1
|
* * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): had to adjust fix fromhobbs2001-09-131-15/+27
| | | | | | 2001-08-06 to actually duplicate the objects in certain cases. This is really a place where feather would have been essential. [Bug #461322]
* Patch for [TIP 56], [Bug: 219384] and [Bug: 455151]: deprecate the useMiguel Sofer2001-09-131-7/+7
| | | | of Tcl_EvalTokens, replaced by the new Tcl_EvalTokensStandard.
* * generic/tclCmdMZ.c (Tcl_RegexpObjCmd, Tcl_RegsubObjCmd):hobbs2001-08-071-12/+18
| | | | | reordered the retrieval of arguments to avoid shimmering bug when the pattern and string referenced the same object.
* Changes from TIP#17 "Redo Tcl's filesystem"vincentdarley2001-07-311-10/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* * generic/tclCmdMZ.c: Removed extra copy of the SCAN_* macroshobbs2001-07-161-17/+1
| | | | #defined in generic/tclScan.c. (porter) [Bug 441230]
* TIP#36 implementation. Also includes cleanup for subst optiondkf2001-07-121-71/+142
| | | | | handling and improved documentation for the subst command (in my capacity as maintainer of the Commands M-Z functional area.)
* Fix for bug #219232 (submatch errors with regexp -all -inline -indices)dkf2001-06-121-2/+6
|
* generic/tclCmdMZ.c: made use of new Tcl_GetUnicodeFromObjhobbs2001-05-171-62/+60
|
* Negative start index to [string first] caused offset return value (Bug 423581)dkf2001-05-141-1/+7
|
* (TIP #27) Another round of CONST changes, thisKevin B Kenny2001-04-241-5/+5
| | | | | | | | | 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.
* Fixed problem with [string compare \x00 \x01] and hopefully sped thedkf2001-04-061-28/+104
| | | | | command up in a few cases too (notably byte arrays and UNICODE objects.) [Bug #219201]
* Fixed so tclCmdMZ.c will compile with K&R compilers [Patch #413844]dkf2001-04-051-3/+3
|
* * tests/regexp.test (regexp-19.1):hobbs2001-03-281-3/+4
| | | | | * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): fixed handling of nulls in subspec value.
* A missing return was causing memory corruption in [string map].dkf2001-03-131-1/+2
|
* [split $string ""] now shares character strings in the resulting list,dkf2001-02-161-2/+21
| | | | | giving better performance for smallish strings, and *much* better performance for large (especially multi-megabyte) ones.
* * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): When using -all, allericm2000-09-201-1/+2
| | | | | | | 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].
* * generic/tclCmdMZ.c (Tcl_StringObjCmd): changed STR_REPEAT tohobbs2000-09-061-5/+30
| | | | | preallocate the full space of the final string, avoided repeated appends.
* * doc/trace.n: Updated documentation for new syntax; flagged oldericm2000-08-251-149/+870
| | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): reworked to operate inhobbs2000-05-261-282/+253
| | | | | | | | | | 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.
* * win/tclWinPipe.c (TclpCreateTempFile): Added conversion ofericm2000-04-101-3/+27
| | | | | | | | 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].
* *** empty log message ***hobbs2000-02-051-2/+1
|
* * tests/regexp.test: added tests for -all and -inline switcheshobbs2000-02-021-74/+150
| | | | | | * 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
* * tests/var.test:hobbs1999-12-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * 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)
* * generic/tclStringObj.c: fixed Tcl_AppendResultVA so it onlyhobbs1999-10-291-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | 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)
* * unix/tclUnixNotfy.c: fixed event/io threading problems byhobbs1999-10-211-2/+2
| | | | | | | | | | | | | | | | | | | | 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]