From 85e2515f134ae9dee84eaab360465cc92116796f Mon Sep 17 00:00:00 2001 From: dkf Date: Thu, 18 Apr 2002 13:49:30 +0000 Subject: Partial resolution of Bug #536831; the comment is a bit clearer! --- ChangeLog | 9 ++++++++- generic/tclCmdMZ.c | 12 ++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f0f32fb..b8d8616 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-04-18 Donal K. Fellows + + * generic/tclCmdMZ.c (Tcl_SubstObj): More clarification for + comment on behaviour when substitutions are not well-formed, + prompted by [Bug #536831]; alas, removing the ill-defined + behaviour is a lot of work. + 2002-04-18 Miguel Sofer * generic/tclExecute.c: @@ -296,7 +303,7 @@ 2002-03-21 Donal K. Fellows - * doc/expr.n: Improved documentation for ceil and floor [Bug 350535] + * doc/expr.n: Improved documentation for ceil and floor [Bug 530535] 2002-03-20 Don Porter diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index 63da4d3..0f39ecb 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdMZ.c,v 1.66 2002/04/05 19:26:35 dgp Exp $ + * RCS: @(#) $Id: tclCmdMZ.c,v 1.67 2002/04/18 13:49:30 dkf Exp $ */ #include "tclInt.h" @@ -2445,7 +2445,15 @@ Tcl_SubstObjCmd(dummy, interp, objc, objv) * implementation by Andrew Payne. Note that if a command * substitution returns TCL_CONTINUE or TCL_RETURN from its * evaluation and is not completely well-formed, the results are - * not defined. + * not defined (or at least hard to characterise.) This fault + * will be fixed at some point, but the cost of the only sane + * fix (well-formedness check first) is such that you need to + * "precompile and cache" to stop everyone from being hit with + * the consequences every time through. Note that the current + * behaviour is not a security hole; it just restarts parsing + * the string following the substitution in a mildly surprising + * place, and it is a very bad idea to count on this remaining + * the same in future... * * Results: * A Tcl_Obj* containing the substituted string, or NULL to -- cgit v0.12