Version 28 of Tcl/Tk 8.5: New public C routines

Updated 2008-01-05 18:31:33 by lars_h

The following public C routines are new in release 8.5 of the Tcl/Tk libraries:

Dictionary API

[L1 ]

  • int Tcl_DictObjPut(Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj *valuePtr)
  • int Tcl_DictObjGet(Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr)
  • int Tcl_DictObjRemove(Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr)
  • int Tcl_DictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, int *sizePtr)
  • int Tcl_DictObjFirst(Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr)
  • void Tcl_DictObjNext(Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr)
  • void Tcl_DictObjDone(Tcl_DictSearch *searchPtr)
  • int Tcl_DictObjPutKeyList(Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv, Tcl_Obj *valuePtr)
  • int Tcl_DictObjRemoveKeyList(Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv)
  • Tcl_Obj *Tcl_NewDictObj()
  • Tcl_Obj *Tcl_DbNewDictObj(const char *file, int line)

Configuration Descriptor API

[L2 ]

  • void Tcl_RegisterConfig(Tcl_Interp *interp, const char *pkgName, Tcl_Config *configuration, const char *valEncoding)

Namespace API

[L3 ]

  • Tcl_Namespace *Tcl_CreateNamespace(Tcl_Interp *interp, const char *name, ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc)
  • void Tcl_DeleteNamespace(Tcl_Namespace *nsPtr)
  • int Tcl_AppendExportList(Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr)
  • int Tcl_Export(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int resetListFirst)
  • int Tcl_Import(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int allowOverwrite)
  • int Tcl_ForgetImport(Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern)
  • Tcl_Namespace *Tcl_GetCurrentNamespace(Tcl_Interp *interp)
  • Tcl_Namespace *Tcl_GetGlobalNamespace(Tcl_Interp *interp)
  • Tcl_Namespace *Tcl_FindNamespace(Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags)
  • Tcl_Command Tcl_FindCommand(Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags)
  • Tcl_Command Tcl_GetCommandFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr)
  • void Tcl_GetCommandFullName(Tcl_Interp *interp, Tcl_Command command, Tcl_Obj *objPtr)

Extended Source Command Core

[L4 ]

  • int Tcl_FSEvalFileEx(Tcl_Interp *interp, Tcl_Obj *fileName, const char *encodingName)

Exit Handler API

[L5 ]

  • Tcl_ExitProc *Tcl_SetExitProc(Tcl_ExitProc *proc)

Resource Limiting API

[L6 ]

  • void Tcl_LimitAddHandler(Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc *deleteProc)
  • void Tcl_LimitRemoveHandler(Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData)
  • int Tcl_LimitReady(Tcl_Interp *interp)
  • int Tcl_LimitCheck(Tcl_Interp *interp)
  • int Tcl_LimitExceeded(Tcl_Interp *interp)
  • void Tcl_LimitSetCommands(Tcl_Interp *interp, int commandLimit)
  • void Tcl_LimitSetTime(Tcl_Interp *interp, Tcl_Time *timeLimitPtr)
  • void Tcl_LimitSetGranularity(Tcl_Interp *interp, int type, int granularity)
  • int Tcl_LimitTypeEnabled(Tcl_Interp *interp, int type)
  • int Tcl_LimitTypeExceeded(Tcl_Interp *interp, int type)
  • void Tcl_LimitTypeSet(Tcl_Interp *interp, int type)
  • void Tcl_LimitTypeReset(Tcl_Interp *interp, int type)
  • int Tcl_LimitGetCommands(Tcl_Interp *interp)
  • void Tcl_LimitGetTime(Tcl_Interp *interp, Tcl_Time *timeLimitPtr)
  • int Tcl_LimitGetGranularity(Tcl_Interp *interp, int type)

Result State Management API

[L7 ]

  • Tcl_InterpState Tcl_SaveInterpState(Tcl_Interp *interp, int status)
  • int Tcl_RestoreInterpState(Tcl_Interp *interp, Tcl_InterpState state)
  • void Tcl_DiscardInterpState(Tcl_InterpState state)

Return Options API

[L8 ]

  • int Tcl_SetReturnOptions(Tcl_Interp *interp, Tcl_Obj *options)
  • Tcl_Obj *Tcl_GetReturnOptions(Tcl_Interp *interp, int result)

Ensemble API

[L9 ]

  • int Tcl_IsEnsemble(Tcl_Command token)
  • Tcl_Command Tcl_CreateEnsemble(Tcl_Interp *interp, const char *name, Tcl_Namespace *namespacePtr, int flags)
  • Tcl_Command Tcl_FindEnsemble(Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags)
  • int Tcl_SetEnsembleSubcommandList(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList)
  • int Tcl_SetEnsembleMappingDict(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict)
  • int Tcl_SetEnsembleUnknownHandler(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList)
  • int Tcl_SetEnsembleFlags(Tcl_Interp *interp, Tcl_Command token, int flags)
  • int Tcl_GetEnsembleSubcommandList(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr)
  • int Tcl_GetEnsembleMappingDict(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr)
  • int Tcl_GetEnsembleUnknownHandler(Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr)
  • int Tcl_GetEnsembleFlags(Tcl_Interp *interp, Tcl_Command token, int *flagsPtr)
  • int Tcl_GetEnsembleNamespace(Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr)

Virtualized Time API

[L10 ]

  • void Tcl_SetTimeProc(Tcl_GetTimeProc *getProc, Tcl_ScaleTimeProc *scaleProc, ClientData clientData)
  • void Tcl_QueryTimeProc(Tcl_GetTimeProc **getProc, Tcl_ScaleTimeProc **scaleProc, ClientData *clientData)

Extensions to Channel API

[L11 ] [L12 ] [L13 ]

  • Tcl_DriverThreadActionProc *Tcl_ChannelThreadActionProc(const Tcl_ChannelType *chanTypePtr)
  • int Tcl_TruncateChannel(Tcl_Channel chan, Tcl_WideInt length)
  • Tcl_DriverTruncateProc *Tcl_ChannelTruncateProc(const Tcl_ChannelType *chanTypePtr)
  • void Tcl_SetChannelErrorInterp(Tcl_Interp *interp, Tcl_Obj *msg)
  • void Tcl_GetChannelErrorInterp(Tcl_Interp *interp, Tcl_Obj **msg)
  • void Tcl_SetChannelError(Tcl_Channel chan, Tcl_Obj *msg)
  • void Tcl_GetChannelError(Tcl_Channel chan, Tcl_Obj **msg)

Arbitrary Precision Arithmetic API

[L14 ] [L15 ]

  • Tcl_Obj *Tcl_NewBignumObj(mp_int *value)
  • Tcl_Obj *Tcl_DbNewBignumObj(mp_int *value, const char *file, int line)
  • void Tcl_SetBignumObj(Tcl_Obj *obj, mp_int *value)
  • int Tcl_GetBignumFromObj(Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value)
  • int Tcl_TakeBignumFromObj(Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value)
  • int Tcl_InitBignumFromDouble(Tcl_Interp *interp, double initval, mp_int *toInit)

Namespace-Specific Unknown Handler API

[L16 ]

  • Tcl_Obj *Tcl_GetNamespaceUnknownHandler(Tcl_Interp *interp, Tcl_Namespace *nsPtr)
  • int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr)

Extended Encoding API

[L17 ]

  • int Tcl_GetEncodingFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr)
  • Tcl_Obj *Tcl_GetEncodingSearchPath(void)
  • int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath)
  • const char *Tcl_GetEncodingNameFromEnvironment(Tcl_DString *bufPtr)

Package API

[L18 ]

  • int Tcl_PkgRequireProc(Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *const objv[], ClientData *clientDataPtr)

Formatted String/Result Management API

[L19 ]

  • void Tcl_AppendObjToErrorInfo(Tcl_Interp *interp, Tcl_Obj *objPtr)
  • void Tcl_AppendLimitedToObj(Tcl_Obj *objPtr, const char *bytes, int length, int limit, const char *ellipsis)
  • Tcl_Obj *Tcl_Format(Tcl_Interp *interp, const char *format, int objc, Tcl_Obj *const objv[])
  • int Tcl_AppendFormatToObj(Tcl_Interp *interp, Tcl_Obj *objPtr, const char *format, int objc, Tcl_Obj *const objv[])
  • Tcl_Obj *Tcl_ObjPrintf(const char *format, ...)
  • void Tcl_AppendPrintfToObj(Tcl_Obj *objPtr, const char *format, ...)

Improved Photo API

[L20 ]

  • int Tk_PhotoExpand(Tcl_Interp *interp, Tk_PhotoHandle handle, int width, int height)
  • int k_PhotoPutBlock(Tcl_Interp *interp, Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int compRule)
  • int Tk_PhotoPutZoomedBlock(Tcl_Interp *interp, Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule)
  • int Tk_PhotoSetSize(Tcl_Interp *interp, Tk_PhotoHandle handle, int width, int height)

User Inactivity API

[L21 ]

  • long Tk_GetUserInactiveTime(Display *dpy)
  • void Tk_ResetUserInactiveTime(Display *dpy)

Window/Interp Introspection API

[L22 ]

  • Tcl_Interp *Tk_Interp(Tk_Window tkwin)