Provided by: tcl8.6-doc_8.6.12+dfsg-1build1_all bug

NAME

       auto_execok,    auto_import,    auto_load,    auto_mkindex,    auto_qualify,   auto_reset,
       tcl_findLibrary,  parray,  tcl_endOfWord,  tcl_startOfNextWord,   tcl_startOfPreviousWord,
       tcl_wordBreakAfter, tcl_wordBreakBefore - standard library of Tcl procedures

SYNOPSIS

       auto_execok cmd
       auto_import pattern
       auto_load cmd
       auto_mkindex dir pattern pattern ...
       auto_qualify command namespace
       auto_reset
       tcl_findLibrary basename version patch initScript enVarName varName
       parray arrayName ?pattern?
       tcl_endOfWord str start
       tcl_startOfNextWord str start
       tcl_startOfPreviousWord str start
       tcl_wordBreakAfter str start
       tcl_wordBreakBefore str start
_________________________________________________________________________________________________

INTRODUCTION

       Tcl  includes  a  library of Tcl procedures for commonly-needed functions.  The procedures
       defined in  the  Tcl  library  are  generic  ones  suitable  for  use  by  many  different
       applications.   The  location  of the Tcl library is returned by the info library command.
       In addition to the Tcl library, each application will normally have  its  own  library  of
       support  procedures  as well;  the location of this library is normally given by the value
       of the $app_library global variable, where app  is  the  name  of  the  application.   For
       example, the location of the Tk library is kept in the variable tk_library.

       To  access  the  procedures  in  the  Tcl  library,  an application should source the file
       init.tcl in the library, for example with the Tcl command

              source [file join [info library] init.tcl]

       If the library procedure Tcl_Init is invoked from an application's Tcl_AppInit  procedure,
       this  happens  automatically.   The code in init.tcl will define the unknown procedure and
       arrange for the other procedures to be loaded  on-demand  using  the  auto-load  mechanism
       defined below.

COMMAND PROCEDURES

       The following procedures are provided in the Tcl library:

       auto_execok cmd
              Determines  whether  there  is an executable file or shell builtin by the name cmd.
              If so, it returns a list  of  arguments  to  be  passed  to  exec  to  execute  the
              executable file or shell builtin named by cmd.  If not, it returns an empty string.
              This command examines the directories in the current search path (given by the PATH
              environment  variable)  in its search for an executable file named cmd.  On Windows
              platforms, the search is expanded with the same directories and file extensions  as
              used by exec. Auto_execok remembers information about previous searches in an array
              named auto_execs;  this avoids the path search in future calls for  the  same  cmd.
              The  command  auto_reset  may  be  used  to  force auto_execok to forget its cached
              information.

       auto_import pattern
              Auto_import is invoked during namespace import to  see  if  the  imported  commands
              specified  by  pattern  reside  in  an autoloaded library.  If so, the commands are
              loaded so that they will be available to the interpreter for  creating  the  import
              links.   If  the  commands do not reside in an autoloaded library, auto_import does
              nothing.  The pattern matching is performed according  to  the  matching  rules  of
              namespace import.

       auto_load cmd
              This  command  attempts  to load the definition for a Tcl command named cmd.  To do
              this, it searches an auto-load path, which is a list of one  or  more  directories.
              The  auto-load  path  is  given  by the global variable auto_path if it exists.  If
              there is no auto_path variable, then the TCLLIBPATH environment variable  is  used,
              if  it  exists.   Otherwise  the  auto-load  path  consists of just the Tcl library
              directory.  Within each directory in the  auto-load  path  there  must  be  a  file
              tclIndex that describes one or more commands defined in that directory and a script
              to evaluate to load each of the commands.  The tclIndex file  should  be  generated
              with  the  auto_mkindex  command.   If  cmd  is  found  in  an index file, then the
              appropriate script is evaluated to  create  the  command.   The  auto_load  command
              returns  1  if cmd was successfully created.  The command returns 0 if there was no
              index entry for cmd or if the script did not  actually  define  cmd  (e.g.  because
              index information is out of date).  If an error occurs while processing the script,
              then that error is returned.  Auto_load only reads the index information  once  and
              saves  it  in the array auto_index;  future calls to auto_load check for cmd in the
              array rather than re-reading the index files.  The cached index information may  be
              deleted with the command auto_reset.  This will force the next auto_load command to
              reload the index database from disk.

       auto_mkindex dir pattern pattern ...
              Generates an index suitable for use by auto_load.  The command searches dir for all
              files  whose  names  match  any of the pattern arguments (matching is done with the
              glob command), generates an index of all the Tcl command procedures defined in  all
              the  matching  files,  and stores the index information in a file named tclIndex in
              dir. If no pattern is given a pattern of *.tcl will be assumed.  For  example,  the
              command

                     auto_mkindex foo *.tcl

              will  read  all  the  .tcl  files in subdirectory foo and generate a new index file
              foo/tclIndex.

              Auto_mkindex parses the Tcl scripts by sourcing them into a child  interpreter  and
              monitoring  the  proc and namespace commands that are executed.  Extensions can use
              the (undocumented) auto_mkindex_parser package to register other commands that  can
              contribute  to  the  auto_load index. You will have to read through auto.tcl to see
              how this works.

              Auto_mkindex_old (which has the same syntax as auto_mkindex) parses the Tcl scripts
              in  a  relatively unsophisticated way:  if any line contains the word “proc” as its
              first characters then it is assumed to be a procedure definition and the next  word
              of  the  line  is taken as the procedure's name.  Procedure definitions that do not
              appear in this way (e.g. they have spaces before the proc) will not be indexed.  If
              your  script  contains  “dangerous”  code,  such  as  global initialization code or
              procedure names with special characters like $, *, [ or  ],  you  are  safer  using
              auto_mkindex_old.

       auto_reset
              Destroys all the information cached by auto_execok and auto_load.  This information
              will be re-read from disk the next time it is needed.  Auto_reset also deletes  any
              procedures  listed  in  the  auto-load  index, so that fresh copies of them will be
              loaded the next time that they are used.

       auto_qualify command namespace
              Computes a list of fully qualified names for command.  This list mirrors the path a
              standard  Tcl  interpreter  follows  for  command  lookups:  first it looks for the
              command in the current namespace, and then in the global  namespace.   Accordingly,
              if command is relative and namespace is not ::, the list returned has two elements:
              command scoped by namespace, as if it were a command in  the  namespace  namespace;
              and  command as if it were a command in the global namespace.  Otherwise, if either
              command is absolute (it begins with ::), or namespace is ::, the list contains only
              command as if it were a command in the global namespace.

              Auto_qualify  is  used  by  the  auto-loading facilities in Tcl, both for producing
              auto-loading indexes such as pkgIndex.tcl, and  for  performing  the  actual  auto-
              loading of functions at runtime.

       tcl_findLibrary basename version patch initScript enVarName varName
              This   is   a  standard  search  procedure  for  use  by  extensions  during  their
              initialization.  They call this procedure to  look  for  their  script  library  in
              several  standard  directories.   The  last  component  of  the name of the library
              directory is normally basenameversion (e.g., tk8.0), but it might be “library” when
              in the build hierarchies.  The initScript file will be sourced into the interpreter
              once it is found.  The directory in which this file is found  is  stored  into  the
              global  variable  varName.   If  this  variable is already defined (e.g., by C code
              during application initialization) then no searching is done.  Otherwise the search
              looks  in  these  directories:  the  directory  named  by  the environment variable
              enVarName; relative to the Tcl library directory; relative to the  executable  file
              in  the standard installation bin or bin/arch directory; relative to the executable
              file in the current build tree; relative to the executable file in a parallel build
              tree.

       parray arrayName ?pattern?
              Prints  on  standard  output  the names and values of all the elements in the array
              arrayName, or just the names that match pattern (using the matching rules of string
              match) and their values if pattern is given.  ArrayName must be an array accessible
              to the caller of parray.  It may be either local or global.

       tcl_endOfWord str start
              Returns the index of the first end-of-word location that occurs  after  a  starting
              index  start in the string str.  An end-of-word location is defined to be the first
              non-word character following the first word character  after  the  starting  point.
              Returns  -1  if  there  are no more end-of-word locations after the starting point.
              See the description of tcl_wordchars and tcl_nonwordchars below for more details on
              how Tcl determines which characters are word characters.

       tcl_startOfNextWord str start
              Returns  the index of the first start-of-word location that occurs after a starting
              index start in the string str.  A start-of-word location is defined to be the first
              word  character  following  a  non-word character.  Returns -1 if there are no more
              start-of-word locations after the starting point.

       tcl_startOfPreviousWord str start
              Returns the index of the first start-of-word location that occurs before a starting
              index  start  in  the  string  str.   Returns -1 if there are no more start-of-word
              locations before the starting point.

       tcl_wordBreakAfter str start
              Returns the index of the first word boundary after the starting index start in  the
              string str.  Returns -1 if there are no more boundaries after the starting point in
              the given string.  The index returned refers to the second character  of  the  pair
              that comprises a boundary.

       tcl_wordBreakBefore str start
              Returns the index of the first word boundary before the starting index start in the
              string str.  Returns -1 if there are no more boundaries before the  starting  point
              in the given string.  The index returned refers to the second character of the pair
              that comprises a boundary.

VARIABLES

       The following global variables are defined or used by the procedures in the  Tcl  library.
       They  fall into two broad classes, handling unknown commands and packages, and determining
       what are words.

   AUTOLOADING AND PACKAGE MANAGEMENT VARIABLES
       auto_execs
              Used by auto_execok to record information about whether particular  commands  exist
              as executable files.

       auto_index
              Used by auto_load to save the index information read from disk.

       auto_noexec
              If set to any value, then unknown will not attempt to auto-exec any commands.

       auto_noload
              If set to any value, then unknown will not attempt to auto-load any commands.

       auto_path
              If  set,  then it must contain a valid Tcl list giving directories to search during
              auto-load operations (including for package index  files  when  using  the  default
              package  unknown handler).  This variable is initialized during startup to contain,
              in order: the directories  listed  in  the  TCLLIBPATH  environment  variable,  the
              directory  named  by  the  tcl_library  global  variable,  the  parent directory of
              tcl_library, the  directories  listed  in  the  tcl_pkgPath  variable.   Additional
              locations  to  look  for files and package indices should normally be added to this
              variable using lappend.

       env(TCL_LIBRARY)
              If set, then it specifies the location of the directory containing library  scripts
              (the  value  of  this  variable  will  be  assigned to the tcl_library variable and
              therefore returned by the command info library).  If this variable is not set  then
              a default value is used.

       env(TCLLIBPATH)
              If  set,  then it must contain a valid Tcl list giving directories to search during
              auto-load operations.  Directories must be specified in Tcl format,  using  “/”  as
              the  path  separator,  regardless  of  platform.   This  variable is only used when
              initializing the auto_path variable.

   WORD BOUNDARY DETERMINATION VARIABLES
       These   variables   are   only   used   in   the    tcl_endOfWord,    tcl_startOfNextWord,
       tcl_startOfPreviousWord, tcl_wordBreakAfter, and tcl_wordBreakBefore commands.

       tcl_nonwordchars
              This  variable  contains  a  regular  expression  that  is  used  by  routines like
              tcl_endOfWord to identify whether a character is part of a word  or  not.   If  the
              pattern  matches  a  character,  the  character  is  considered  to  be  a non-word
              character.  On Windows platforms, spaces, tabs, and newlines  are  considered  non-
              word  characters.   Under Unix, everything but numbers, letters and underscores are
              considered non-word characters.

       tcl_wordchars
              This variable  contains  a  regular  expression  that  is  used  by  routines  like
              tcl_endOfWord  to  identify  whether  a character is part of a word or not.  If the
              pattern matches a character, the character is considered to be  a  word  character.
              On  Windows  platforms,  words  are comprised of any character that is not a space,
              tab,  or  newline.   Under  Unix,  words  are  comprised  of  numbers,  letters  or
              underscores.

SEE ALSO

       env(3tcl), info(3tcl), re_syntax(3tcl)

KEYWORDS

       auto-exec, auto-load, library, unknown, word, whitespace