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

Updated 2012-09-24 12:31:51 by LkpPo

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

Dictionary API

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

TIP #59 [L2 ]

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

Namespace API

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

TIP #137 [L4 ]

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

Exit Handler API

TIP #121 [L5 ]

  • Tcl_ExitProc *Tcl_SetExitProc(Tcl_ExitProc *proc)

Resource Limiting API

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

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

TIP #227 [L8 ]

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

Ensemble API

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

TIP #233 [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 [L11 ] TIP #218 [L12 ] TIP #219 [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

TIP #237 [L14 ] TIP #298 [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

TIP #181 [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

TIP #258 [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

TIP #268 [L18 ]

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

Formatted String/Result Management API

TIP #270 [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

TIP #116 [L20 ]

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

User Inactivity API

TIP #245 [L21 ]

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

Window/Interp Introspection API

TIP #264 [L22 ]

  • Tcl_Interp *Tk_Interp(Tk_Window tkwin)