summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2006-10-27 12:53:43 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2006-10-27 12:53:43 (GMT)
commitfbdb724057c9545201d0a4cc2d8eb2edc4743392 (patch)
tree50136581fc2b5ee9f2975158db7cad06268d8473
parent73b2f1e5b9472dc390528dbc1ca45a09fc11c297 (diff)
downloadtcl-fbdb724057c9545201d0a4cc2d8eb2edc4743392.zip
tcl-fbdb724057c9545201d0a4cc2d8eb2edc4743392.tar.gz
tcl-fbdb724057c9545201d0a4cc2d8eb2edc4743392.tar.bz2
Allow extensions that use the internal stubs to set a namespace path.
-rw-r--r--ChangeLog3
-rw-r--r--generic/tclInt.decls6
-rw-r--r--generic/tclNamesp.c13
3 files changed, 13 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index bb8cfe3..f9b3dc6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2006-10-27 Donal K. Fellows <dkf@users.sf.net>
+ * generic/tclNamesp.c (TclSetNsPath): Expose SetNsPath through
+ internal stubs table with semi-external name.
+
* generic/tclInt.h (CallFrame): Add a field for handling context data
for extensions (like object systems) that should be tied to a call
frame (and not a command or interpreter).
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index 121402a..d2fbb20 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.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: tclInt.decls,v 1.101 2006/10/27 12:33:18 dkf Exp $
+# RCS: @(#) $Id: tclInt.decls,v 1.102 2006/10/27 12:53:43 dkf Exp $
library tcl
@@ -894,6 +894,10 @@ declare 225 generic {
declare 226 generic {
int TclObjBeingDeleted(Tcl_Obj *objPtr)
}
+declare 227 generic {
+ void TclSetNsPath(Namespace *nsPtr, int pathLength,
+ Tcl_Namespace *pathAry[])
+}
##############################################################################
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index f0c5ff8..6e239db 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -22,7 +22,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclNamesp.c,v 1.106 2006/10/26 17:22:17 msofer Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.107 2006/10/27 12:53:44 dkf Exp $
*/
#include "tclInt.h"
@@ -251,8 +251,6 @@ static void FreeEnsembleCmdRep(Tcl_Obj *objPtr);
static void DupEnsembleCmdRep(Tcl_Obj *objPtr, Tcl_Obj *copyPtr);
static void StringOfEnsembleCmdRep(Tcl_Obj *objPtr);
static void UnlinkNsPath(Namespace *nsPtr);
-static void SetNsPath(Namespace *nsPtr, int pathLength,
- Tcl_Namespace *pathAry[]);
/*
* This structure defines a Tcl object type that contains a namespace
@@ -4102,7 +4100,7 @@ NamespacePathCmd(
* Now we have the list of valid namespaces, install it as the path.
*/
- SetNsPath(nsPtr, nsObjc, namespaceList);
+ TclSetNsPath(nsPtr, nsObjc, namespaceList);
result = TCL_OK;
badNamespace:
@@ -4115,7 +4113,7 @@ NamespacePathCmd(
/*
*----------------------------------------------------------------------
*
- * SetNsPath --
+ * TclSetNsPath --
*
* Sets the namespace command name resolution path to the given list of
* namespaces. If the list is empty (of zero length) the path is set to
@@ -4132,9 +4130,8 @@ NamespacePathCmd(
*----------------------------------------------------------------------
*/
-/* EXPOSE ME? */
-static void
-SetNsPath(
+void
+TclSetNsPath(
Namespace *nsPtr, /* Namespace whose path is to be set. */
int pathLength, /* Length of pathAry */
Tcl_Namespace *pathAry[]) /* Array of namespaces that are the path. */