From d979bd019aca7a87ce8bb62692fb3ebb66ff0117 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 24 Sep 2009 17:19:17 +0000 Subject: TIP #356 IMPLEMENTATION * generic/tcl.decls: Promote internal routine TclNRSubstObj() * generic/tclCmdMZ.c: to public Tcl_NRSubstObj(). Still needs docs. * generic/tclCompile.c: * generic/tclInt.h: * generic/tclDecls.h: make genstubs * generic/tclStubInit.c: --- ChangeLog | 12 ++++++++++++ generic/tcl.decls | 7 ++++++- generic/tclCmdMZ.c | 4 ++-- generic/tclCompile.c | 8 ++++---- generic/tclDecls.h | 13 ++++++++++++- generic/tclInt.h | 4 +--- generic/tclStubInit.c | 3 ++- 7 files changed, 39 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index aeb1218..bb2d572 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2009-09-24 Don Porter + + TIP #356 IMPLEMENTATION + + * generic/tcl.decls: Promote internal routine TclNRSubstObj() + * generic/tclCmdMZ.c: to public Tcl_NRSubstObj(). Still needs docs. + * generic/tclCompile.c: + * generic/tclInt.h: + + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: + 2009-09-23 Miguel Sofer * doc/namespace.n: the description of [namespace unknown] failed diff --git a/generic/tcl.decls b/generic/tcl.decls index 26f3a83..b0644ae 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: tcl.decls,v 1.170 2009/08/12 16:06:39 dgp Exp $ +# RCS: @(#) $Id: tcl.decls,v 1.171 2009/09/24 17:19:17 dgp Exp $ library tcl @@ -2300,6 +2300,11 @@ declare 625 generic { int Tcl_NRExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr) } +# TIP #356 (NR-enabled substitution) dgp +declare 626 generic { + int Tcl_NRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags) +} + # ----- BASELINE -- FOR -- 8.6.0 ----- # ############################################################################## diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index 72b46af..8824c48 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -15,7 +15,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.193 2009/09/11 20:13:27 dgp Exp $ + * RCS: @(#) $Id: tclCmdMZ.c,v 1.194 2009/09/24 17:19:18 dgp Exp $ */ #include "tclInt.h" @@ -3440,7 +3440,7 @@ TclNRSubstObjCmd( if (TclSubstOptions(interp, objc-2, objv+1, &flags) != TCL_OK) { return TCL_ERROR; } - return TclNRSubstObj(interp, objv[objc-1], flags); + return Tcl_NRSubstObj(interp, objv[objc-1], flags); } /* diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 7104f94..ed4e8f0 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCompile.c,v 1.177 2009/09/21 16:16:05 dgp Exp $ + * RCS: @(#) $Id: tclCompile.c,v 1.178 2009/09/24 17:19:18 dgp Exp $ */ #include "tclInt.h" @@ -898,7 +898,7 @@ Tcl_SubstObj( { TEOV_callback *rootPtr = TOP_CB(interp); - if (TclNRRunCallbacks(interp, TclNRSubstObj(interp, objPtr, flags), + if (TclNRRunCallbacks(interp, Tcl_NRSubstObj(interp, objPtr, flags), rootPtr, 0) != TCL_OK) { return NULL; } @@ -908,7 +908,7 @@ Tcl_SubstObj( /* *---------------------------------------------------------------------- * - * TclNRSubstObj -- + * Tcl_NRSubstObj -- * * Request substitution of a Tcl value by the NR stack. * @@ -924,7 +924,7 @@ Tcl_SubstObj( */ int -TclNRSubstObj( +Tcl_NRSubstObj( Tcl_Interp *interp, Tcl_Obj *objPtr, int flags) diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 032fb75..23061a6 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclDecls.h,v 1.171 2009/08/12 16:06:43 dgp Exp $ + * RCS: @(#) $Id: tclDecls.h,v 1.172 2009/09/24 17:19:18 dgp Exp $ */ #ifndef _TCLDECLS @@ -3731,6 +3731,12 @@ EXTERN int Tcl_CloseEx (Tcl_Interp * interp, Tcl_Channel chan, EXTERN int Tcl_NRExprObj (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj * resultPtr); #endif +#ifndef Tcl_NRSubstObj_TCL_DECLARED +#define Tcl_NRSubstObj_TCL_DECLARED +/* 626 */ +EXTERN int Tcl_NRSubstObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, int flags); +#endif typedef struct TclStubHooks { const struct TclPlatStubs *tclPlatStubs; @@ -4392,6 +4398,7 @@ typedef struct TclStubs { Tcl_Obj * (*tcl_GetStartupScript) (const char ** encodingPtr); /* 623 */ int (*tcl_CloseEx) (Tcl_Interp * interp, Tcl_Channel chan, int flags); /* 624 */ int (*tcl_NRExprObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj * resultPtr); /* 625 */ + int (*tcl_NRSubstObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags); /* 626 */ } TclStubs; #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) @@ -6926,6 +6933,10 @@ extern const TclStubs *tclStubsPtr; #define Tcl_NRExprObj \ (tclStubsPtr->tcl_NRExprObj) /* 625 */ #endif +#ifndef Tcl_NRSubstObj +#define Tcl_NRSubstObj \ + (tclStubsPtr->tcl_NRSubstObj) /* 626 */ +#endif #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ diff --git a/generic/tclInt.h b/generic/tclInt.h index 6f7972f..d34be28 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -15,7 +15,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclInt.h,v 1.442 2009/09/11 20:13:27 dgp Exp $ + * RCS: @(#) $Id: tclInt.h,v 1.443 2009/09/24 17:19:18 dgp Exp $ */ #ifndef _TCLINT @@ -2847,8 +2847,6 @@ MODULE_SCOPE int TclMarkList(Tcl_Interp *interp, const char *list, MODULE_SCOPE int TclMergeReturnOptions(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], Tcl_Obj **optionsPtrPtr, int *codePtr, int *levelPtr); -MODULE_SCOPE int TclNRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr, - int flags); MODULE_SCOPE int TclNokia770Doubles(); MODULE_SCOPE void TclObjVarErrMsg(Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, const char *operation, diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index c71b944..40b5e89 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclStubInit.c,v 1.184 2009/08/12 16:06:44 dgp Exp $ + * RCS: @(#) $Id: tclStubInit.c,v 1.185 2009/09/24 17:19:18 dgp Exp $ */ #include "tclInt.h" @@ -1110,6 +1110,7 @@ static const TclStubs tclStubs = { Tcl_GetStartupScript, /* 623 */ Tcl_CloseEx, /* 624 */ Tcl_NRExprObj, /* 625 */ + Tcl_NRSubstObj, /* 626 */ }; /* !END!: Do not edit above this line. */ -- cgit v0.12