aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--lib/utils.exp10
2 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b3b6391..a7a59cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2018-12-10 Ben Elliston <bje@gnu.org>
+ * lib/utils.exp (grep): Use a proper Tcl list for options.
+
+2018-12-10 Ben Elliston <bje@gnu.org>
+
* testsuite/runtest.all/utils.test: ${srcdir} -> $srcdir.
* lib/utils.exp (getdirs): Use glob -nocomplain rather than glob
diff --git a/lib/utils.exp b/lib/utils.exp
index 6acfa7c..3a01e7e 100644
--- a/lib/utils.exp
+++ b/lib/utils.exp
@@ -201,9 +201,9 @@ proc which { file } {
# line - synonum for -n
proc grep { args } {
- set options ""
+ set options [list]
if { [lindex $args 0] eq "-n" } {
- append options "line "
+ lappend options "line"
set args [lrange $args 1 end]
}
@@ -213,16 +213,16 @@ proc grep { args } {
verbose "Grepping $file for the pattern \"$pattern\"" 3
if { [llength $args] > 2 } {
- append options [join [lrange $args 2 end]]
+ set options [concat $options [lrange $args 2 end]]
}
set options [lsort -unique $options]
set i 0
set fd [open $file r]
- while { [gets $fd cur_line]>=0 } {
+ while { [gets $fd cur_line] >= 0 } {
incr i
if {[regexp -- $pattern $cur_line match]} {
- if {$options ne ""} {
+ if {[llength $options] > 0} {
foreach opt $options {
switch -- $opt {
"line" {