summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdMZ.c
Commit message (Collapse)AuthorAgeFilesLines
* Eliminate all Tcl_ConvertToType calls and all direct calls to ↵jan.nijtmans2013-02-041-1/+2
| | | | typePtr->setFromAnyProc (except the call from inside the Tcl_ConvertToType function) from the Tcl core.
* Add super-simple compiler to many ensemble subcommands to allow better codedkf2013-01-041-11/+11
| | | | | generation where we can detect that we're not in the WrongNumArgs case. The compiler just checks that the argument count is in the right range and issues a standard dispatch; that's enough to do an efficient job.
* Added bytecode compilation of many Tcl commands, merged from development branch.dkf2012-11-051-4/+4
|\
| * Added compilation of [string last] and improved the compilation of [string ↵dkf2012-11-031-1/+1
| | | | | | | | range]. This in turn enables compilation of [namespace qualifiers] and [namespace tail] (also done).
| * Compilation of [string first] and [string range] (with constant indices).dkf2012-10-301-2/+2
| |
| * Added compilation of simplest practical case of [string map].dkf2012-10-291-1/+1
| |
* | Remove two characters, zero width non-joiner (U+200c) and zero width joiner ↵jan.nijtmans2012-10-161-3/+1
| | | | | | | | | | (U+200d), which were finally left out of TIP #413
* | and remove the two characters from string trim as welljan.nijtmans2012-10-091-2/+0
| |
* | tip 318 updatejan.nijtmans2012-09-231-4/+31
|/
* more result generation conversiondkf2012-08-031-43/+51
|
* * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): [Bug 3106532]: Correcteddkf2012-05-171-2/+6
|\ | | | | | | | | | | | | | | | | resulting indexes from -indexvar option to be usable with [string range]; this was always the intention (and is consistent with [regexp -indices] too). ***POTENTIAL INCOMPATIBILITY*** Uses of [switch -regexp -indexvar] that previously compensated for the wrong offsets (by subtracting 1 from the end indices) now do not need to do so as the value is correct.
| * * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): [Bug 3106532]: Correcteddkf2012-05-171-2/+6
| | | | | | | | | | | | | | | | | | resulting indexes from -indexvar option to be usable with [string range]; this was always the intention (and is consistent with [regexp -indices] too). ***POTENTIAL INCOMPATIBILITY*** Uses of [switch -regexp -indexvar] that previously compensated for the wrong offsets (by subtracting 1 from the end indices) now do not need to do so as the value is correct.
| * make some more internal tables constjan.nijtmans2012-04-181-22/+22
| |\ | | | | | | a few CONST -> const changes
| * \ some formatting (*.decls)jan.nijtmans2012-04-041-1/+1
| |\ \ | | |/ | | | | | | | | | move up #undef, for macro which is conflicting with later stuff. remove some unused cygwin-related code some minor gcc warnings
| | * 3484621 Invalidate bytecode when exec traces are added/removed from compiled ↵dgp2012-02-061-1/+20
| | | | | | | | | | | | cmd.
* | | faster memleak-free implementation of [string is entier]jan.nijtmans2012-03-291-4/+42
|\ \ \
| * | | alternative TIP 395 implementation:tip_395_with_alt_namejan.nijtmans2012-01-261-2/+47
| | | | | | | | | | | | | | | | | | | | - more efficient, will not generate bignum - uses "string is integer" in stead of "string is entier" - original "string is integer" renamed to "string is int"
* | | | Implementation of TIP #395dkf2012-03-271-10/+18
|/ / /
* | | Simplify the logic of setting the TCL_REG_NOTBOL flag.dgp2012-01-231-2/+5
|\ \ \ | |/ /
| * | Simplify the logic of setting the TCL_REG_NOTBOL flag.dgp2012-01-231-2/+5
| | |
* | | Prevent buffer read overflow. Thanks to "sebres" for the report and fixjan.nijtmans2012-01-211-1/+1
|\ \ \ | |/ /
| * | Prevent buffer read overflow. Thanks to "sebres" for the report and fix.jan.nijtmans2012-01-211-1/+1
| |\ \ | | |/
| | * 3475667 Prevent buffer read overflow. Thanks to "sebres" for the report and fix.dgp2012-01-191-1/+1
| | |
| | * * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() callsdgp2011-03-061-1/+1
| | | | | | | | | | | | | | | | | | * generic/tclCmdMZ.c: with TclParseBackslash() where possible. * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclUtil.c:
* | | Revised TclFindElement() interface.dgp2011-05-021-2/+2
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The final argument had been bracePtr, the address of a boolean var, where the caller can be told whether or not the parsed list element was enclosed in braces. In practice, no callers really care about that. What the callers really want to know is whether the list element value exists as a literal substring of the string being parsed, or whether a call to TclCopyAndCollpase() is needed to produce the list element value. Now the final argument is changed to do what callers actually need. This is a better fit for the calls in tclParse.c, where now a good deal of post-processing checking for "naked backslashes" is no longer necessary. ***POTENTIAL INCOMPATIBILITY*** For any callers calling in via the internal stubs table who really do use the final argument explicitly to check for the enclosing brace scenario. Simply looking for the braces where they must be is the revision available to those callers, and it will backport cleanly. Tests for expanded literals quoting detection.
| * | Revised TclFindElement() interface.dgp2011-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The final argument had been bracePtr, the address of a boolean var, where the caller can be told whether or not the parsed list element was enclosed in braces. In practice, no callers really care about that. What the callers really want to know is whether the list element value exists as a literal substring of the string being parsed, or whether a call to TclCopyAndCollpase() is needed to produce the list element value. Now the final argument is changed to do what callers actually need. This is a better fit for the calls in tclParse.c, where now a good deal of post-processing checking for "naked backslashes" is no longer necessary. ***POTENTIAL INCOMPATIBILITY*** For any callers calling in via the internal stubs table who really do use the final argument explicitly to check for the enclosing brace scenario. Simply looking for the braces where they must be is the revision available to those callers, and it will backport cleanly.
* | | New utility routines: TclIsSpaceProc() and TclCountSpaceRuns()dgp2011-04-281-1/+1
|\ \ \ | |/ / | | | Use to replace calls to isspace() and their /* INTL */ risk.
| * | New utility routines: TclIsSpaceProc() and TclCountSpaceRuns()dgp2011-04-281-1/+1
| | | | | | | | | Use to replace calls to isspace() and their /* INTL */ risk.
* | | TclFreeIntRep() cleanup.dgp2011-04-271-2/+0
| | |
* | | [Bug 3285375]: Rewrite Tcl_Concat*() and [string trim*].dgp2011-04-131-113/+14
|\ \ \ | |/ /
| * | [Bug 3285375]: Rewrite Tcl_Concat*() and [string trim*].dgp2011-04-131-113/+14
| | |
* | | More generation of errorCode information, notably when lists are mis-parsed.dkf2011-03-291-0/+42
| | |
* | | Use the error messages generated by the variable management code rather thandkf2011-03-281-9/+4
| | | | | | | | | creating our own in [regexp] and [regsub].
* | | Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-3/+3
| | | | | | | | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* | | MINOR: Formatting fixes, mainly to comments, so code better fits the style indkf2011-03-101-1/+2
| | | | | | | | | the Engineering Manual.
* | | Now that we're no longer using SCM based on RCS, the RCS Keyword linesdgp2011-03-021-2/+0
|\ \ \ | |/ / | | | cause more harm than good. Purged them (except in zlib files).
| * | Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
| |\ \ | | |/ | | | more harm than good. Purged them.
| | * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-011-2/+0
| | | | | | | | | more harm than good. Purged them.
| | * [Bug 3127687] Triggers FORTIFY_SOURCE buffer overflow detectionnijtmans2010-12-051-4/+4
| | |
| | * Fixed object leakvasiljevic2010-04-061-3/+2
| | |
| | * * generic/tclCmdMZ.c (Tcl_SubstObj): Pass 'length' values todgp2009-09-181-3/+3
| | | | | | | | | | | | | | | recursive parsing calls to convert O(N^2) operations of [subst] to O(N).
| | * * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): * generic/tclCompCmds.c (*): * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, TclFreeCompileEnv, TclCompileScript): * generic/tclCompile.h (CompileEnv): * generic/tclInt.h (ContLineLoc, Interp): * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter, TclContinuationsEnterDerived, TclContinuationsCopy, TclContinuationsGet, TclFreeObj): * generic/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-22): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script's, to properly account for them while counting lines for #280, during direct and compiled execution.
| | * * generic/tclCmdMZ.c: Corrected broken trace reversal logic indgp2007-06-271-4/+4
| | | | | | | | | | | | | | | | | | * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop * tests/basic.test: when multiple Tcl_CreateTrace traces were set and one of them did not fire due to level restrictions. [Bug 1743931].
| | * [Tcl Bug 1706140]dgp2007-05-101-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdMZ.c (Trace*Proc): Update Tcl_VarTraceProcs so * generic/tclLink.c (LinkTraceProc): that they call * generic/tclUtil.c (TclPrecTraceProc): Tcl_InterpDeleted() for themselves, and do not rely on (frequently buggy) setting of the TCL_INTERP_DESTROYED flag by the trace core. * generic/tclVar.c: Update callers of CallVarTraces to not pass in the TCL_INTERP_DESTROYED flag. Also apply filters so that public routines only pass documented flag values down to lower level routines. * generic/tclVar.c (CallVarTraces): The setting of the TCL_INTERP_DESTROYED flag is now done entirely within the CallVarTraces routine, the only place it can be done right.
| | * * generic/tclBasic.c: TIP #280 implementation, conditional on the define ↵andreas_kupries2006-11-281-2/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TCL_TIP280. * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCmdMZ.c: * generic/tclCompCmds.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclCompile.h: * generic/tclExecute.c: * generic/tclIOUtil.c: * generic/tclInt.h: * generic/tclInterp.c: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclProc.c: * tests/compile.test: * tests/info.test: * tests/platform.test: * tests/safe.test:
| | * * generic/tclCmdMZ.c: Stop some interference between enter tracesdgp2006-04-111-5/+10
| | | | | | | | | | | | * tests/trace.test: and enterstep traces. [Bug 1458266]
| | * * generic/tclBasic.c (Tcl_DeleteCommandFromToken):Miguel Sofer2005-11-181-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdMZ.c (TraceCommandProc): * generic/tclInt.h (NS_KILLED): * generic/tclNamesp.c (Tcl_DeleteNamespace * tests/namespace.test (namespace-7.3-6): * tests/trace.test (trace-20.13-16): fix [Bugs 1355942/1355342].
| | * Fix [Bug 1348775] using Miguel's patchdkf2005-11-081-17/+44
| | |
| | * * generic/tclCmdMZ.c (TclCheckExecutionTraces): Corrected mistakendgp2005-11-011-14/+16
| | | | | | | | | | | | | | | assumption that all command traces are set at the script level. Report/fix from Jacques H. de Villiers. [Bug 1337941]
| | * * generic/tclCmdMZ.c (TraceVarProc): [Bug 1337229], partialMiguel Sofer2005-10-291-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | fix. Insure that a second call with TCL_TRACE_DESTROYED does not lead to a second call to Tcl_EventuallyFree(). It is still true that that second call should not happen, so the bug is not completely fixed. * tests/trace.test (test-18.3-4): added tests for bugs #1337229 and 1338280.