Posted to tcl by msiism at Wed Jan 27 13:05:38 GMT 2021view pretty
#!/usr/bin/env tclsh set find_done 0 set find_path $env(HOME) proc _pipe_chunk {ichan} { global find_done set chunk {} # Read a single character from $ichan. # See whether it's NUL. # If not, append it to $chunk. # Return $chunk when it's complete (NUL encountered). # Handle occurrence of EOF while doing this. while {true} { set char [read $ichan 1] if {[eof $ichan]} { close $ichan set find_done 1 break } elseif {$char == "\0"} { puts $chunk break } else { set chunk ${chunk}${char} } } } set find_out [open "| find $find_path -type f -print0" r] chan event $find_out readable [list _pipe_chunk $find_out] #chan configure $find_out -buffering line vwait $find_done
Comments
Posted by msiism at Wed Jan 27 13:36:26 GMT 2021 [text] [code]
s/vwait $find_done/vwait find_done