diff options
| author | David Bremner <david@tethera.net> | 2017-05-27 13:51:11 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-05-30 09:01:46 -0300 |
| commit | 1e7dbf7abcf58407a5171e9030056f2ff9bec15a (patch) | |
| tree | 120a91335e0c505a80daeb56ee218d43af9c3b21 /util/gmime-extra.c | |
| parent | 427fa5e6e66eb238783f6cace56cbdcafc9c648d (diff) | |
util: convenience function to create gmime stream for stdout
It turns out that our use of GMimeStreamPipe has only succeeded
because gmime has been ignoring some seek failures; this will no
longer be the case in gmime 3.0, so we use a GMimeStreamPipe, which
does not assume seekability, wrapped in a buffering stream.
Diffstat (limited to 'util/gmime-extra.c')
| -rw-r--r-- | util/gmime-extra.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/util/gmime-extra.c b/util/gmime-extra.c new file mode 100644 index 00000000..f1538587 --- /dev/null +++ b/util/gmime-extra.c @@ -0,0 +1,20 @@ +#include "gmime-extra.h" + +GMimeStream * +g_mime_stream_stdout_new() +{ + GMimeStream *stream_stdout = NULL; + GMimeStream *stream_buffered = NULL; + + stream_stdout = g_mime_stream_pipe_new (STDOUT_FILENO); + if (!stream_stdout) + return NULL; + + g_mime_stream_pipe_set_owner (GMIME_STREAM_PIPE (stream_stdout), FALSE); + + stream_buffered = g_mime_stream_buffer_new (stream_stdout, GMIME_STREAM_BUFFER_BLOCK_WRITE); + + g_object_unref (stream_stdout); + + return stream_buffered; +} |
