On 03/07/11 23:38, Pádraig Brady wrote: > On 03/07/11 18:50, Bruno Haible wrote: >> I wrote: >>> Likewise for "-o0". >> >> Oops, please forget the statement about -o0. With the modified GNU libiconv >> 'iconv' program, -o0 does make a difference: >> $ (echo -n abc; sleep 1; echo def) | iconv >> vs. >> $ (echo -n abc; sleep 1; echo def) | stdbuf -o0 iconv >> In the first case, output is line buffered. In the second case, "abc" >> occurs immediately. >> >> Bruno > > Also "-i0" is useful if a command doesn't consume all of input, > and needs a subsequent command to process the rest, like: > > producer | (stdbuf -i0 cmd1; cmd2) > > I'll expand the info to make this function apparent. Hmm, this especially useful with sed, where one can [Qq]uit early depending on the input. But I notice that sed no longer supports `setbuf -i0`. This is because of 3a8e165a which discards the original stdin and instead fdopens() a new one to support reading in binary mode on windos. http://git.sv.gnu.org/gitweb/?p=sed.git;a=commit;h=3a8e165a Note in sed 4.2.2 the -u option was enhanced to support this internally (the documentation had already said that -u did this), so only sed 4.2 and 4.2.1 have no way to control this. In any case there is no point I think opening a new stream for stdin on non windos platforms as it adds a bit of overhead, and precludes the use of setbuf -i... So how about the attached patch? cheers, Pádraig.