Lines Matching refs:pattern
11 # Usage: glob ?-nocomplain? pattern ...
13 # Patterns use 'string match' (glob) pattern matching for each
19 # of the pattern starts with .
23 # it contains which match $pattern
25 local proc glob.readdir_pattern {dir pattern} {
29 if {$pattern in {. ..}} {
30 return $pattern
33 # If the pattern isn't actually a pattern...
34 if {[string match {*[*?]*} $pattern]} {
37 } elseif {[file isdir $dir] && [file exists $dir/$pattern]} {
38 set files [list $pattern]
44 if {[string match $pattern $name]} {
45 # Only include entries starting with . if the pattern starts with .
46 if {[string index $name 0] eq "." && [string index $pattern 0] ne "."} {
56 # If the pattern contains a braced expression, return a list of
58 # Otherwise just return the pattern
60 proc glob.expandbraces {pattern} {
63 if {[set fb [string first "\{" $pattern]] < 0} {
64 return $pattern
66 if {[set nb [string first "\}" $pattern $fb]] < 0} {
67 return $pattern
69 set before [string range $pattern 0 $fb-1]
70 set braced [string range $pattern $fb+1 $nb-1]
71 set after [string range $pattern $nb+1 end]
78 # Core glob implementation. Returns a list of files/directories matching the pattern
79 proc glob.glob {pattern} {
80 set dir [file dirname $pattern]
81 if {$dir eq $pattern} {
88 set pattern [file tail $pattern]
102 foreach pat [glob.expandbraces $pattern] {
120 foreach pattern $args {
121 lappend result {*}[glob.glob $pattern]