Posted to tcl by egavilan at Fri Jan 27 20:40:35 GMT 2012view pretty

proc cproc {name arglist body} {
    set nbody [format {
        if {[catch {%s} res opt]} {
            chan puts stderr "Error in %s: $res"
            exit 99
        }
        return -options $opt $res
    } $body $name]
    uplevel 1 [list proc $name $arglist $nbody]
}