All pastes #1844751 Raw Edit

clueless

public text v1 · immutable
#1844751 ·published 2010-03-18 16:33 UTC
rendered paste body
ad_proc set_vars_from_list {__args {level ""}} {  if {$level eq ""} {      # absolute level just outside this proc, aka calling frame      set level [expr [info level] - 1]  }  foreach {__key __value} $__args {    if {[string match "&*" $__key]} {   # "&" triggers call by reference	if {"&" ne $__key } {	    set __name [string range $__key 1 end]	} else {            set __name $__value	}	upvar "\#$level" $__value $__name \          $__value:rowcount $__name:rowcount \          $__value:columns  $__name:columns        # upvar :rowcount and :columns just in case it is a multirow	if { [info exists $__name:rowcount] } {	    for { set __i 0 } { $__i <= [set $__name:rowcount] } { incr __i } {		upvar "\#$level" $__value:$__i $__name:$__i	    }	}    } else {                            # not "&" => normal arg (no reference)      set $__key $__value    }  }}