Tcl/Tk 8.5: New public C routines

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

TIP #111 - 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)

TIP #59 - Configuration Descriptor API [L2 ]

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

TIP #139 - 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)

TIP #137 - Extended Source Command Core [L4 ]

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

TIP #121 - Exit Handler API [L5 ]

  • Tcl_ExitProc *Tcl_SetExitProc(Tcl_ExitProc *proc)

TIP #143 - 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)

TIP #226 - 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)

TIP #227 - Return Options API [L8 ]

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

TIP #235 - 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)

TIP #233 - 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

TIP #208 - Add a 'chan' Command, TIP #218 - Tcl Channel Driver Thread State Actions, TIP #219 - Tcl Channel Reflection API

  • 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)

TIP #237 Arbitrary Precision Arithmetic API [L11 ]

  • 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_InitBignumFromDouble(Tcl_Interp *interp, double initval, mp_int *toInit)

TIP #298 - Revise Shared Value Rules for Tcl_GetBignumAndClearObj [L12 ]

  • int Tcl_TakeBignumFromObj(Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value)

TIP #181 - Namespace-Specific Unknown Handler API [L13 ]

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

TIP #258 - Extended Encoding API [L14 ]

  • 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)

TIP #268 - Package API [L15 ]

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

TIP #270 - Formatted String/Result Management API [L16 ]

  • 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, ...)

TIP #116 - Improved Photo API [L17 ]

  • int Tk_PhotoExpand(Tcl_Interp *interp, Tk_PhotoHandle handle, int width, int height)
  • int Tk_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)

TIP #245 - User Inactivity API [L18 ]

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

TIP #264 - Window/Interp Introspection API [L19 ]

  • Tcl_Interp *Tk_Interp(Tk_Window tkwin)