Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tcl_Namespace(3)	     Tcl Library Procedures		Tcl_Namespace(3)

________________________________________________________________________________

NAME
     Tcl_AppendExportList, Tcl_CreateNamespace, Tcl_DeleteNamespace, Tcl_Export,
     Tcl_FindCommand,  Tcl_FindNamespace,  Tcl_ForgetImport, Tcl_GetCurrentName-
     space, Tcl_GetGlobalNamespace, Tcl_GetNamespaceUnknownHandler,  Tcl_Import,
     Tcl_SetNamespaceUnknownHandler - manipulate namespaces

SYNOPSIS
     #include <tcl.h>

     Tcl_Namespace *
     Tcl_CreateNamespace(interp, name, clientData, deleteProc)

     Tcl_DeleteNamespace(nsPtr)

     int
     Tcl_AppendExportList(interp, nsPtr, objPtr)

     int
     Tcl_Export(interp, nsPtr, pattern, resetListFirst)

     int
     Tcl_Import(interp, nsPtr, pattern, allowOverwrite)

     int
     Tcl_ForgetImport(interp, nsPtr, pattern)

     Tcl_Namespace *
     Tcl_GetCurrentNamespace(interp)

     Tcl_Namespace *
     Tcl_GetGlobalNamespace(interp)

     Tcl_Namespace *
     Tcl_FindNamespace(interp, name, contextNsPtr, flags)

     Tcl_Command
     Tcl_FindCommand(interp, name, contextNsPtr, flags)

     Tcl_Obj *
     Tcl_GetNamespaceUnknownHandler(interp, nsPtr)

     int
     Tcl_SetNamespaceUnknownHandler(interp, nsPtr, handlerPtr)

ARGUMENTS
     Tcl_Interp *interp (in/out)			  The	interpreter   in
							  which  the   namespace
							  exists  and where name
							  lookups are performed.
							  Also where  error  re-
							  sult	  messages   are
							  written.

     const char *name (in)				  The name of the  name-
							  space or command to be
							  created or accessed.

     ClientData clientData (in) 			  A  context  pointer by
							  the  creator	of   the
							  namespace.  Not inter-
							  preted by Tcl at all.

     Tcl_NamespaceDeleteProc *deleteProc (in)		  A  pointer to function
							  to call when the name-
							  space is  deleted,  or
							  NULL	if no such call-
							  back	is  to	be  per-
							  formed.

     Tcl_Namespace *nsPtr (in)				  The  namespace  to  be
							  manipulated,	or  NULL
							  (for	   other    than
							  Tcl_DeleteNamespace)
							  to manipulate the cur-
							  rent namespace.

     Tcl_Obj *objPtr (out)				  A reference to an  un-
							  shared  value to which
							  the  function   output
							  will be written.

     const char *pattern (in)				  The glob-style pattern
							  (see	Tcl_StringMatch)
							  that	 describes   the
							  commands   to  be  im-
							  ported or exported.

     int resetListFirst (in)				  Whether  the	list  of
							  export patterns should
							  be reset before adding
							  the current pattern to
							  it.

     int allowOverwrite (in)				  Whether  new	commands
							  created by this import
							  action  can  overwrite
							  existing commands.

     Tcl_Namespace *contextNsPtr (in)			  The  location  in  the
							  namespace    hierarchy
							  where the search for a
							  namespace  or  command
							  should  be   conducted
							  relative  to	when the
							  search  term	is   not
							  rooted  at  the global
							  namespace.  NULL indi-
							  cates   the	 current
							  namespace.

     int flags (in)					  OR-ed  combination  of
							  bits	controlling  how
							  the  search  is  to be
							  performed.   The  fol-
							  lowing  flags are sup-
							  ported:
							  TCL_GLOBAL_ONLY (indi-
							  cates that the  search
							  is  always  to be con-
							  ducted relative to the
							  global     namespace),
							  TCL_NAMESPACE_ONLY
							  (just for Tcl_FindCom-
							  mand;  indicates  that
							  the search  is  always
							  to  be conducted rela-
							  tive	to  the  context
							  namespace),	     and
							  TCL_LEAVE_ERR_MSG (in-
							  dicates that an  error
							  message should be left
							  in  the interpreter if
							  the search fails.)

     Tcl_Obj *handlerPtr (in)				  A script  fragment  to
							  be  installed  as  the
							  unknown  command  han-
							  dler	 for  the  name-
							  space, or NULL to  re-
							  set the handler to its
							  default.
________________________________________________________________________________

DESCRIPTION
     Namespaces  are  hierarchic  naming  contexts that can contain commands and
     variables.  They also maintain a list of patterns that describes what  com-
     mands  are  exported,  and  can  import commands that have been exported by
     other namespaces.	Namespaces can also be manipulated through the Tcl  com-
     mand namespace.

     The  Tcl_Namespace structure encapsulates a namespace, and is guaranteed to
     have the following fields in it: name (the local  name  of  the  namespace,
     with  no  namespace  separator  characters  in  it, with empty denoting the
     global namespace), fullName (the fully specified name  of	the  namespace),
     clientData, deleteProc (the values specified in the call to Tcl_CreateName-
     space),  and  parentPtr (a pointer to the containing namespace, or NULL for
     the global namespace.)

     Tcl_CreateNamespace creates a new namespace.  The deleteProc will have  the
     following type signature:

	    typedef void Tcl_NamespaceDeleteProc(
		    ClientData clientData);

     Tcl_DeleteNamespace deletes a namespace, calling the deleteProc defined for
     the namespace (if any).

     Tcl_AppendExportList  retrieves  the  export patterns for a namespace given
     namespace and appends them (as list items) to objPtr.

     Tcl_Export sets and appends to the export patterns for a  namespace.   Pat-
     terns are appended unless the resetListFirst flag is true.

     Tcl_Import imports commands matching a pattern into a namespace.  Note that
     the  pattern  must  include the name of the namespace to import from.  This
     function returns TCL_ERROR if an attempt to import a command over an exist-
     ing command is made, unless the allowOverwrite flag has been set.

     Tcl_ForgetImport removes imports matching a pattern.

     Tcl_GetCurrentNamespace returns the current namespace for an interpreter.

     Tcl_GetGlobalNamespace returns the global namespace for an interpreter.

     Tcl_FindNamespace searches for a namespace named name within the context of
     the namespace contextNsPtr.  If the namespace cannot be found, NULL is  re-
     turned.

     Tcl_FindCommand searches for a command named name within the context of the
     namespace contextNsPtr.  If the command cannot be found, NULL is returned.

     Tcl_GetNamespaceUnknownHandler  returns the unknown command handler for the
     namespace, or NULL if none is set.

     Tcl_SetNamespaceUnknownHandler sets the unknown  command  handler	for  the
     namespace. If handlerPtr is NULL, then the handler is reset to its default.

SEE ALSO
     Tcl_CreateCommand(3), Tcl_ListObjAppendList(3), Tcl_SetVar(3)

KEYWORDS
     namespace, command

Tcl				       8.5			Tcl_Namespace(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tcl_FindNamespace.tcl86&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help