aboutsummaryrefslogtreecommitdiff
path: root/pdlib.tcl
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2009-09-03 17:15:10 +0000
committermescalinum <mescalinum@users.sourceforge.net>2009-09-03 17:15:10 +0000
commitdfee02038903ae696be4ad55dc87a2f59461e097 (patch)
treef8009d9c68fa1fc969fb81b5070b95bb8f6d7957 /pdlib.tcl
parent129cfacb39fba0644bf5f56a67c73cee6999f0b5 (diff)
add more getters/setters (row,col,cell)
svn path=/trunk/externals/tclpd/; revision=12229
Diffstat (limited to 'pdlib.tcl')
-rw-r--r--pdlib.tcl10
1 files changed, 9 insertions, 1 deletions
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}