All pastes #1844900 Raw Edit

clueless

public text v1 · immutable
#1844900 ·published 2010-03-18 19:10 UTC
rendered paste body
ad_proc set_vars_from_list {__args {level ""}} {set out ""  if {$level eq ""} {      # absolute level just outside this proc, aka calling frame      set level [expr [info level] - 1]append out "level defaults to $level\n"  }  foreach {__key __value} $__args {    if {[string match "&*" $__key]} {   # "&" triggers call by referenceappend out "$__key call by reference\n"	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)      upvar \#$level $__key key      set key $__value    }  }set out}