Provided by: tcl8.4-doc_8.4.20-8_all bug

NAME

       Tcl_PkgRequire,   Tcl_PkgRequireEx,   Tcl_PkgPresent,   Tcl_PkgPresentEx,  Tcl_PkgProvide,
       Tcl_PkgProvideEx - package version control

SYNOPSIS

       #include <tcl.h>

       CONST char *
       Tcl_PkgRequire(interp, name, version, exact)

       CONST char *
       Tcl_PkgRequireEx(interp, name, version, exact, clientDataPtr)

       CONST char *
       Tcl_PkgPresent(interp, name, version, exact)

       CONST char *
       Tcl_PkgPresentEx(interp, name, version, exact, clientDataPtr)

       int
       Tcl_PkgProvide(interp, name, version)

       int
       Tcl_PkgProvideEx(interp, name, version, clientData)

ARGUMENTS

       Tcl_Interp   *interp         (in)      Interpreter where package is needed or available.

       CONST char   *name           (in)      Name of package.

       CONST char   *version        (in)      A version string consisting of one or more  decimal
                                              numbers separated by dots.

       int          exact           (in)      Non-zero  means  that  only  the particular version
                                              specified by version  is  acceptable.   Zero  means
                                              that   newer   versions   than   version  are  also
                                              acceptable as long as  they  have  the  same  major
                                              version number as version.

       ClientData   clientData      (in)      Arbitrary value to be associated with the package.

       ClientData   *clientDataPtr  (out)     Pointer to place to store the value associated with
                                              the matching package. It is  only  changed  if  the
                                              pointer  is  not  NULL  and  the function completed
                                              successfully.
_________________________________________________________________

DESCRIPTION

       These procedures provide C-level  interfaces  to  Tcl's  package  and  version  management
       facilities.

       Tcl_PkgRequire  is equivalent to the package require command, Tcl_PkgPresent is equivalent
       to the package present command, and Tcl_PkgProvide is equivalent to  the  package  provide
       command.

       See the documentation for the Tcl commands for details on what these procedures do.

       If  Tcl_PkgPresent  or  Tcl_PkgRequire  complete successfully they return a pointer to the
       version string for the version of the package that is provided in the  interpreter  (which
       may  be  different  than  version); if an error occurs they return NULL and leave an error
       message in the interpreter's result.

       Tcl_PkgProvide returns TCL_OK if it completes successfully; if an error occurs it  returns
       TCL_ERROR and leaves an error message in the interpreter's result.

       Tcl_PkgProvideEx,  Tcl_PkgPresentEx  and Tcl_PkgRequireEx allow the setting and retrieving
       of the client data associated with the package. In all other respects they are  equivalent
       to the matching functions.

KEYWORDS

       package, present, provide, require, version