From 9406010cf076dbda0f595314e11735df07014217 Mon Sep 17 00:00:00 2001 From: Coke Date: Sun, 27 Jun 2010 19:09:04 -0400 Subject: [PATCH] [array get] returns '' if called on a non-array. --- src/Partcl/commands/array.pm | 5 ++++- t/cmd_array.t | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Partcl/commands/array.pm b/src/Partcl/commands/array.pm index 684cc65..3ccf3a4 100644 --- a/src/Partcl/commands/array.pm +++ b/src/Partcl/commands/array.pm @@ -103,8 +103,11 @@ my sub exists($arrayName, $array) { } my sub get($arrayName, $array, $pattern = '*') { - my $result := pir::new__ps('TclList'); + if !exists($arrayName, $array) || +$array == 0 { + return ''; + } my $globber := StringGlob::Compiler.compile($pattern); + my $result := pir::new__ps('TclList'); for $array -> $key { if (?Regex::Cursor.parse($key, :rule($globber), :c(0))) { $result.push($key); diff --git a/t/cmd_array.t b/t/cmd_array.t index ed210cd..aa3a2fa 100755 --- a/t/cmd_array.t +++ b/t/cmd_array.t @@ -153,7 +153,7 @@ eval_is { catch {unset a} set a 2 array get a -} {} {array get, non array} {TODO NQPRX} +} {} {array get, non array} eval_is { catch {unset a}