Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tcl_AppendExportList (3tcl)

Name

Tcl_AppendExportList - Tcl_AppendExportList, Tcl_CreateNamespace, Tcl_DeleteNamespace, Tcl_Export, Tcl_FindCommand, Tcl_FindNamespace, Tcl_ForgetImport, knownHandler, 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)

Description

Tcl_Namespace(3tcl)         Tcl Library Procedures         Tcl_Namespace(3tcl)



______________________________________________________________________________

NAME
       Tcl_AppendExportList,     Tcl_CreateNamespace,     Tcl_DeleteNamespace,
       Tcl_Export,   Tcl_FindCommand,   Tcl_FindNamespace,   Tcl_ForgetImport,
       Tcl_GetCurrentNamespace,   Tcl_GetGlobalNamespace,  Tcl_GetNamespaceUn-
       knownHandler, 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  names-
                                                            pace   exists  and
                                                            where name lookups
                                                            are     performed.
                                                            Also  where  error
                                                            result    messages
                                                            are written.

       const char *name (in)                                The  name  of  the
                                                            namespace  or com-
                                                            mand to be created
                                                            or accessed.

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

       Tcl_NamespaceDeleteProc *deleteProc (in)             A pointer to func-
                                                            tion to call  when
                                                            the  namespace  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_Delete-
                                                            Namespace)      to
                                                            manipulate     the
                                                            current namespace.

       Tcl_Obj *objPtr (out)                                A  reference to an
                                                            unshared 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
                                                            imported        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  com-
                                                            mands  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  com-
                                                            mand   should   be
                                                            conducted relative
                                                            to when the search
                                                            term is not rooted
                                                            at    the   global
                                                            namespace.    NULL
                                                            indicates the cur-
                                                            rent namespace.

       int flags (in)                                       OR-ed  combination
                                                            of  bits  control-
                                                            ling    how    the
                                                            search  is  to  be
                                                            performed.     The
                                                            following    flags
                                                            are     supported:
                                                            TCL_GLOBAL_ONLY
                                                            (indicates    that
                                                            the    search   is
                                                            always to be  con-
                                                            ducted relative to
                                                            the global  names-
                                                            pace),  TCL_NAMES-
                                                            PACE_ONLY    (just
                                                            for   Tcl_FindCom-
                                                            mand;    indicates
                                                            that the search is
                                                            always to be  con-
                                                            ducted relative to
                                                            the context names-
                                                            pace),         and
                                                            TCL_LEAVE_ERR_MSG
                                                            (indicates 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  com-
                                                            mand  handler  for
                                                            the  namespace, or
                                                            NULL to reset  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
       commands are exported, and can import commands that have been  exported
       by  other  namespaces.   Namespaces can also be manipulated through the
       Tcl command namespace.

       The Tcl_Namespace structure encapsulates a namespace, and is guaranteed
       to  have the following fields in it: name (the local name of the names-
       pace, with no namespace separator characters in it, with empty denoting
       the global namespace), fullName (the fully specified name of the names-
       pace), clientData, deleteProc (the values  specified  in  the  call  to
       Tcl_CreateNamespace), and parentPtr (a pointer to the containing names-
       pace, 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.
       Patterns 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 an error if an attempt to import a  command  over
       an  existing  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  inter-
       preter.

       Tcl_GetGlobalNamespace returns the global namespace for an interpreter.

       Tcl_FindNamespace  searches  for a namespace named name within the con-
       text of the namespace contextNsPtr.  If the namespace cannot be  found,
       NULL is returned.

       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.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tcl-8    |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

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

KEYWORDS
       namespace, command



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-
       core8.6.7-src.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tcl                                   8.5                  Tcl_Namespace(3tcl)