From: Jameson Graef Rollins Date: Sat, 28 May 2011 21:52:00 +0000 (-0700) Subject: show: Avoid inadvertently closing stdout X-Git-Tag: debian/0.6_254~46 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=d5b4d950245605b84c56ce991fa3c59a073a70e5;hp=d5b4d950245605b84c56ce991fa3c59a073a70e5 show: Avoid inadvertently closing stdout GMime has a nasty habit of taking ownership by default of any FILE* handed to it va g_mime_stream_file_new. Specifically it will close the FILE* when the stream is destroyed---even though GMime didn't open the file itself. To avoid this bad behavior, we have to carefully set_owner(FALSE) after calling g_mime_stream_file_new. In the format_part_content_text function, since commit d92146d3a6809f8ad940302af49cd99a0820665e we've been calling g_mime_stream_file_new unconditionally, but only calling g_mime_stream_file_set_owner(FALSE) conditionally. This led to the FILE* being closed early when notmuch show output was redirected to a file. Fixing this fixes the test-suite cases that broke with the previous commit, (which added redirected "notmuch show" calls to the test suite to expose this bug). Edited-by: Carl Worth with a new commit message to explain the bug and fix. ---