Posted to tcl by mjanssen at Fri Nov 21 18:37:25 GMT 2008view raw
- proc test_args {procname args variadic_description vars} {
- # observe this proc will fail to work if #288 passes
- foreach var $vars {
- upvar $var $var
- }
- if {[llength $args] < [llength $vars]} {
- return -code error -level 2 "wrong #args: should be \"$procname ?$variadic_description? $vars"
- } else {
- return [lassign $args {*}$vars]
- }
- }
- proc test {args} {
- set args [test_args test $args "options" {x y}]
- puts x:$x
- puts y:$y
- puts args:$args
- }
- (mjanssen) 15 % test
- wrong #args: should be "test ?options? x y
- (mjanssen) 16 % test 1
- wrong #args: should be "test ?options? x y
- (mjanssen) 17 % test 1 2
- x:1
- y:2
- args:
- (mjanssen) 18 % test 1 2 3 4
- x:1
- y:2
- args:3 4