From dfee02038903ae696be4ad55dc87a2f59461e097 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Thu, 3 Sep 2009 17:15:10 +0000 Subject: add more getters/setters (row,col,cell) svn path=/trunk/externals/tclpd/; revision=12229 --- pdlib.tcl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'pdlib.tcl') diff --git a/pdlib.tcl b/pdlib.tcl index 2f97b03..a854e04 100644 --- a/pdlib.tcl +++ b/pdlib.tcl @@ -152,8 +152,16 @@ namespace eval ::pd { } proc arg {n {assertion any}} { - set v [uplevel 1 "lindex \$args $n"] + upvar 1 args up_args + set up_args_len [llength $up_args] + if {$n < 0 || $n >= $up_args_len} { + return -code error "fatal: argument $n out of range" + } + set v [lindex $up_args $n] set i 0 + if {[llength $v] != 2} { + return -code error "fatal: malformed atom: $v (full args: $up_args)" + } foreach {selector value} $v {break} if {$assertion == {int}} { set assertion {float} -- cgit v1.2.1