- NAME
- prefix - Facilities for prefix matching
- SYNOPSIS
- DESCRIPTION
- ::tcl::prefix all table string
- ::tcl::prefix longest table string
- ::tcl::prefix match ?options? table string
- -exact
- -message string
- -error options
- EXAMPLES
- SEE ALSO
- KEYWORDS
prefix - Facilities for prefix matching
::tcl::prefix all table string
::tcl::prefix longest table string
::tcl::prefix match ?option ...? table string
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 begins with
the prefix string.
- ::tcl::prefix longest table string
-
Returns the longest common prefix among all elements in table that
begins 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.
- -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 "ErrMsg"
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
}
Switch supporting prefixes:
switch [prefix match {apa bepa cepa} $arg] {
apa { }
bepa { }
cepa { }
}
lsearch
prefix
Copyright © 1995-1997 Roger E. Critchlow Jr.
Copyright © 2008 Peter Spjuth <pspjuth(at)users.sourceforge.net>