Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

tcl_prefix (1t)

Name

tcl_prefix - facilities for prefix matching

Synopsis

::tcl::prefix all table string
::tcl::prefix longest table string
::tcl::prefix match ?option ...? table string

Description

prefix(1t)                   Tcl Built-In Commands                  prefix(1t)



______________________________________________________________________________

NAME
       tcl::prefix - facilities for prefix matching

SYNOPSIS
       ::tcl::prefix all table string
       ::tcl::prefix longest table string
       ::tcl::prefix match ?option ...? table string
______________________________________________________________________________

DESCRIPTION
       This  document  describes  commands  looking  up  a prefix in a list of
       strings.  The following commands are supported:

       ::tcl::prefix all table string
              Returns a list of all elements in table that begin with the pre-
              fix string.

       ::tcl::prefix longest table string
              Returns  the longest common prefix of all elements in table that
              begin with the prefix string.

       ::tcl::prefix match ?options? table string
              If string equals one element in table or is a prefix to  exactly
              one element, the matched element is returned. If not, the result
              depends on the -error option. (It is recommended that the  table
              be  sorted  before use with this subcommand, so that the list of
              matches presented in the  error  message  also  becomes  sorted,
              though  this is not strictly necessary for the operation of this
              subcommand itself.)

              -exact
                     Accept only exact matches.

              -message string
                     Use string in the error message at a mismatch. Default is
                     "option".

              -error options
                     The  options  are used when no match is found. If options
                     is empty, no error is generated and an  empty  string  is
                     returned.  Otherwise  the  options  are  used  as  return
                     options when generating the error  message.  The  default
                     corresponds  to  setting "-level 0".  Example: If "-error
                     {-errorcode MyError -level 1}" is used, an error would be
                     generated as:

                            return -errorcode MyError -level 1 -code error \
                                   "ambiguous option ..."

EXAMPLES
       Basic use:

              namespace import ::tcl::prefix
              prefix match {apa bepa cepa} apa
                   -> apa
              prefix match {apa bepa cepa} a
                   -> apa
              prefix match -exact {apa bepa cepa} a
                   -> bad option "a": must be apa, bepa, or cepa
              prefix match -message "switch" {apa ada bepa cepa} a
                   -> ambiguous switch "a": must be apa, ada, bepa, or cepa
              prefix longest {fblocked fconfigure fcopy file fileevent flush} fc
                   -> fco
              prefix all {fblocked fconfigure fcopy file fileevent flush} fc
                   -> fconfigure fcopy

       Simplifying option matching:

              array set opts {-apa 1 -bepa "" -cepa 0}
              foreach {arg val} $args {
                  set opts([prefix match {-apa -bepa -cepa} $arg]) $val
              }

       Creating a switch that supports prefixes:

              switch [prefix match {apa bepa cepa} $arg] {
                  apa  { }
                  bepa { }
                  cepa { }
              }


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


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

SEE ALSO
       lsearch(n), namespace(n), string(n), Tcl_GetIndexFromObj(3)

KEYWORDS
       prefix, table lookup



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.6                           prefix(1t)