diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2003-04-05 01:25:08 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2003-04-05 01:25:08 (GMT) |
commit | fdae48118c13223e176a192699aad3cd2643d30e (patch) | |
tree | ebe2a533e59c1223387882653bd2ee98bf67da3f /generic | |
parent | 677e85edc90d09942a06fc0f7ee0885669caa5e0 (diff) | |
download | tcl-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.decls | 45 | ||||
-rw-r--r-- | generic/tcl.h | 15 |
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 |