From 47df1ae40adecd0a02fc7dd06ab0745cb18c3fe0 Mon Sep 17 00:00:00 2001 From: Ɓukasz Niemier Date: Sun, 18 Nov 2012 11:23:22 +0100 Subject: Remove trailing whitespaces and change tabs to spaces --- io.cpp | 172 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 86 insertions(+), 86 deletions(-) (limited to 'io.cpp') diff --git a/io.cpp b/io.cpp index a956bbbc..525f438b 100644 --- a/io.cpp +++ b/io.cpp @@ -1,7 +1,7 @@ /** \file io.c Utilities for io redirection. - + */ #include "config.h" @@ -53,105 +53,105 @@ Utilities for io redirection. void io_buffer_read( io_data_t *d ) { - exec_close(d->param1.pipe_fd[1] ); - - if( d->io_mode == IO_BUFFER ) - { -/* if( fcntl( d->param1.pipe_fd[0], F_SETFL, 0 ) ) - { - wperror( L"fcntl" ); - return; - } */ - debug( 4, L"io_buffer_read: blocking read on fd %d", d->param1.pipe_fd[0] ); - while(1) - { - char b[4096]; - long l; - l=read_blocked( d->param1.pipe_fd[0], b, 4096 ); - if( l==0 ) - { - break; - } - else if( l<0 ) - { - /* - exec_read_io_buffer is only called on jobs that have - exited, and will therefore never block. But a broken - pipe seems to cause some flags to reset, causing the - EOF flag to not be set. Therefore, EAGAIN is ignored - and we exit anyway. - */ - if( errno != EAGAIN ) - { - debug( 1, - _(L"An error occured while reading output from code block on file descriptor %d"), - d->param1.pipe_fd[0] ); - wperror( L"io_buffer_read" ); - } - - break; - } - else - { - d->out_buffer_append( b, l ); - } - } - } + exec_close(d->param1.pipe_fd[1] ); + + if( d->io_mode == IO_BUFFER ) + { +/* if( fcntl( d->param1.pipe_fd[0], F_SETFL, 0 ) ) + { + wperror( L"fcntl" ); + return; + } */ + debug( 4, L"io_buffer_read: blocking read on fd %d", d->param1.pipe_fd[0] ); + while(1) + { + char b[4096]; + long l; + l=read_blocked( d->param1.pipe_fd[0], b, 4096 ); + if( l==0 ) + { + break; + } + else if( l<0 ) + { + /* + exec_read_io_buffer is only called on jobs that have + exited, and will therefore never block. But a broken + pipe seems to cause some flags to reset, causing the + EOF flag to not be set. Therefore, EAGAIN is ignored + and we exit anyway. + */ + if( errno != EAGAIN ) + { + debug( 1, + _(L"An error occured while reading output from code block on file descriptor %d"), + d->param1.pipe_fd[0] ); + wperror( L"io_buffer_read" ); + } + + break; + } + else + { + d->out_buffer_append( b, l ); + } + } + } } io_data_t *io_buffer_create( bool is_input ) { bool success = true; - io_data_t *buffer_redirect = new io_data_t; - buffer_redirect->out_buffer_create(); - buffer_redirect->io_mode = IO_BUFFER; - buffer_redirect->is_input = is_input ? true : false; - buffer_redirect->fd=is_input?0:1; - - if( exec_pipe( buffer_redirect->param1.pipe_fd ) == -1 ) - { - debug( 1, PIPE_ERROR ); - wperror (L"pipe"); - success = false; - } - else if( fcntl( buffer_redirect->param1.pipe_fd[0], - F_SETFL, - O_NONBLOCK ) ) - { - debug( 1, PIPE_ERROR ); - wperror( L"fcntl" ); - success = false; - } - + io_data_t *buffer_redirect = new io_data_t; + buffer_redirect->out_buffer_create(); + buffer_redirect->io_mode = IO_BUFFER; + buffer_redirect->is_input = is_input ? true : false; + buffer_redirect->fd=is_input?0:1; + + if( exec_pipe( buffer_redirect->param1.pipe_fd ) == -1 ) + { + debug( 1, PIPE_ERROR ); + wperror (L"pipe"); + success = false; + } + else if( fcntl( buffer_redirect->param1.pipe_fd[0], + F_SETFL, + O_NONBLOCK ) ) + { + debug( 1, PIPE_ERROR ); + wperror( L"fcntl" ); + success = false; + } + if (! success) { delete buffer_redirect; buffer_redirect = NULL; } - - return buffer_redirect; + + return buffer_redirect; } void io_buffer_destroy( io_data_t *io_buffer ) { - /** - If this is an input buffer, then io_read_buffer will not have - been called, and we need to close the output fd as well. - */ - if( io_buffer->is_input ) - { - exec_close(io_buffer->param1.pipe_fd[1] ); - } - - exec_close( io_buffer->param1.pipe_fd[0] ); - - /* - Dont free fd for writing. This should already be free'd before - calling exec_read_io_buffer on the buffer - */ - delete io_buffer; + /** + If this is an input buffer, then io_read_buffer will not have + been called, and we need to close the output fd as well. + */ + if( io_buffer->is_input ) + { + exec_close(io_buffer->param1.pipe_fd[1] ); + } + + exec_close( io_buffer->param1.pipe_fd[0] ); + + /* + Dont free fd for writing. This should already be free'd before + calling exec_read_io_buffer on the buffer + */ + delete io_buffer; } void io_chain_t::remove(const io_data_t *element) @@ -216,7 +216,7 @@ void io_print(const io_chain_t &chain) fprintf(stderr, "Empty chain %p\n", &chain); return; } - + fprintf(stderr, "Chain %p (%ld items):\n", &chain, (long)chain.size()); for (size_t i=0; i < chain.size(); i++) { const io_data_t *io = chain.at(i); @@ -247,7 +247,7 @@ void io_duplicate_prepend( const io_chain_t &src, io_chain_t &dst ) return dst.duplicate_prepend(src); } -void io_chain_destroy(io_chain_t &chain) +void io_chain_destroy(io_chain_t &chain) { chain.destroy(); } -- cgit v1.2.3