Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
prefix(n)		     Tcl Built-In Commands		     prefix(n)


       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 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.)

		     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 op-
		     tions when	generating the error message. The default cor-
		     responds  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 ..."

       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

Tcl				      8.6			     prefix(n)


Want to link to this manual page? Use this URL:

home | help