"Fossies" - the Fresh Open Source Software Archive

Member "SAOImageDS9/tcl8.6/doc/prefix.n" (13 Nov 2019, 3336 Bytes) of package /linux/misc/ds9.8.1.tar.gz:

Caution: As a special service "Fossies" has tried to format the requested manual source page into HTML format but links to other man pages may be missing or even erroneous. Alternatively you can here view or download the uninterpreted manual source code. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.




tcl::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 begin with the prefix 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.)

Accept only exact matches.

−message string

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

−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 Example: If is used, an error would be generated as:

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


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 { } }


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


prefix, table lookup