summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2003-04-05 01:25:08 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2003-04-05 01:25:08 (GMT)
commitfdae48118c13223e176a192699aad3cd2643d30e (patch)
treeebe2a533e59c1223387882653bd2ee98bf67da3f /generic
parent677e85edc90d09942a06fc0f7ee0885669caa5e0 (diff)
downloadtcl-fdae48118c13223e176a192699aad3cd2643d30e.zip
tcl-fdae48118c13223e176a192699aad3cd2643d30e.tar.gz
tcl-fdae48118c13223e176a192699aad3cd2643d30e.tar.bz2
Build support for dicts on Unix and Windows, plus public API (structure
declaration and stubs entries.)
Diffstat (limited to 'generic')
-rw-r--r--generic/tcl.decls45
-rw-r--r--generic/tcl.h15
2 files changed, 58 insertions, 2 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index 2dbc2c5..f77543f 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -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: tcl.decls,v 1.94 2002/08/31 06:09:45 das Exp $
+# RCS: @(#) $Id: tcl.decls,v 1.95 2003/04/05 01:25:10 dkf Exp $
library tcl
@@ -1754,6 +1754,49 @@ declare 493 generic {
Tcl_ChannelType *chanTypePtr)
}
+# DICTIONARIES - TIP#111
+declare 494 generic {
+ int Tcl_DictObjPut(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ Tcl_Obj *keyPtr, Tcl_Obj *valuePtr)
+}
+declare 495 generic {
+ int Tcl_DictObjGet(Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr,
+ Tcl_Obj **valuePtrPtr)
+}
+declare 496 generic {
+ int Tcl_DictObjRemove(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ Tcl_Obj *keyPtr)
+}
+declare 497 generic {
+ int Tcl_DictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, int *sizePtr)
+}
+declare 498 generic {
+ int Tcl_DictObjFirst(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ Tcl_DictSearch *searchPtr,
+ Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr)
+}
+declare 499 generic {
+ void Tcl_DictObjNext(Tcl_DictSearch *searchPtr,
+ Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr)
+}
+declare 500 generic {
+ void Tcl_DictObjDone(Tcl_DictSearch *searchPtr)
+}
+declare 501 generic {
+ int Tcl_DictObjPutKeyList(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ int keyc, Tcl_Obj *CONST *keyv, Tcl_Obj *valuePtr)
+}
+declare 502 generic {
+ int Tcl_DictObjRemoveKeyList(Tcl_Interp *interp, Tcl_Obj *dictPtr,
+ int keyc, Tcl_Obj *CONST *keyv)
+}
+declare 503 generic {
+ Tcl_Obj *Tcl_NewDictObj(void)
+}
+declare 504 generic {
+ Tcl_Obj *Tcl_DbNewDictObj(CONST char *file, int line)
+}
+
##############################################################################
# Define the platform specific public Tcl interface. These functions are
diff --git a/generic/tcl.h b/generic/tcl.h
index a7443b2..c34f84a 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -13,7 +13,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.h,v 1.155 2003/03/12 19:21:24 dgp Exp $
+ * RCS: @(#) $Id: tcl.h,v 1.156 2003/04/05 01:25:10 dkf Exp $
*/
#ifndef _TCL
@@ -488,6 +488,7 @@ typedef struct Tcl_Trace_ *Tcl_Trace;
typedef struct Tcl_Var_ *Tcl_Var;
typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle;
+typedef struct Tcl_Dict_ *Tcl_Dict;
/*
* Definition of the interface to procedures implementing threads.
@@ -1334,6 +1335,18 @@ typedef struct Tcl_HashSearch {
Tcl_InitHashTableEx(tablePtr, keyType, NULL)
#endif /* TCL_PRESERVE_BINARY_COMPATABILITY */
+/*
+ * Structure definition for information used to keep track of searches
+ * through dictionaries. These fields should not be accessed by code
+ * outside tclDictObj.c
+ */
+
+typedef struct {
+ Tcl_HashSearch search;
+ int epoch;
+ Tcl_Dict dictionaryPtr;
+} Tcl_DictSearch;
+
/*
* Flag values to pass to Tcl_DoOneEvent to disable searches