Posted to tcl by schelte at Sat May 28 20:46:00 GMT 2011view raw
- set file [lindex $argv 0]
 -  
 - proc Exec {command callback} {
 -     set f [open |[linsert $command end 2>@1]]
 -     fconfigure $f -blocking 0
 -     fileevent $f readable [linsert $callback end $f]
 - }
 -  
 - proc WaitForExit {done fd} {
 -     if {[catch {gets $fd line} fail]} {
 -         return -code error $fail
 -     } elseif {[eof $fd]} {
 -         if {[catch {close $fd} fail]} {
 -             return -code error $fail
 -         } else {
 -             set ::forever $done
 -             return 0
 -         }
 -     } {
 -         return 1
 -     }
 - }
 -  
 - Exec [list avisplit -i $file -o base -s 5] [list WaitForExit Done]
 -  
 - vwait forever
 - puts $forever