proc is_admin { user_id } { switch $user_id { 1 - 3 - 5 { return true } default { return false } } } rename if if_old proc if { condition block } { if_old {$condition == {[is_admin $user_id]}} { upvar user_id user_id if_old {$user_id == 22157} { uplevel 1 $block } } else { set result [uplevel 1 expr $condition] if_old {$result} { uplevel 1 $block } } } set user_id 22157 if {[is_admin $user_id]} { puts "$user_id is an admin and can do admin things" }