On Apr 1 16:21, Michal Sojka wrote: > On Thu, 01 Apr 2010, nstraz@redhat.com wrote: > > I ran into this while looking at the vim plugin. Vim's system() call > > redirects output to a file and it was missing many of the part{ lines. > > > > If stream_stdout is setup too early, it will overwrite the part start > > when notmuch is redirected to a file. > > thanks for the patch. After some investigation, it seems that you are > right. What I missed in your commit message is the reason for such > behaviour i.e. GMimeStream fseek()s in its write method to the position > recorded when the stream was created, so that in case there is somebody > else writing to the stream, the writes may overlap. Right, and in the case of writing to a pipe, the seek fails and the file position doesn't change. I found it comparing strace output of `notmuch show ... > file` and `notmuch show ... | cat > file.` Nate