aboutsummaryrefslogtreecommitdiffhomepage
path: root/reader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'reader.cpp')
-rw-r--r--reader.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/reader.cpp b/reader.cpp
index ecf78d84..77750293 100644
--- a/reader.cpp
+++ b/reader.cpp
@@ -940,7 +940,7 @@ static void run_pager( const wcstring &prefix, int is_quoted, const std::vector<
wcstring msg;
wcstring prefix_esc;
char *foo;
- io_data_t *in;
+
wchar_t *escaped_separator;
int has_case_sensitive=0;
@@ -958,7 +958,7 @@ static void run_pager( const wcstring &prefix, int is_quoted, const std::vector<
is_quoted?L"-q":L"",
prefix_esc.c_str() );
- in= io_buffer_create( 1 );
+ io_data_t *in = io_buffer_create(true);
in->fd = 3;
escaped_separator = escape( COMPLETE_SEP_STR, 1);
@@ -1040,12 +1040,14 @@ static void run_pager( const wcstring &prefix, int is_quoted, const std::vector<
term_donate();
- io_data_t *out = io_buffer_create( 0 );
- out->next = in;
+ io_data_t *out = io_buffer_create( false );
out->fd = 4;
parser_t &parser = parser_t::principal_parser();
- parser.eval( cmd, out, TOP);
+ io_chain_t io_chain;
+ io_chain.push_back(out);
+ io_chain.push_back(in);
+ parser.eval( cmd, io_chain, TOP);
term_steal();
io_buffer_read( out );
@@ -2062,7 +2064,7 @@ void reader_run_command( parser_t &parser, const wchar_t *cmd )
gettimeofday(&time_before, NULL);
- parser.eval( cmd, 0, TOP );
+ parser.eval( cmd, io_chain_t(), TOP );
job_reap( 1 );
gettimeofday(&time_after, NULL);
@@ -3199,7 +3201,7 @@ int reader_search_mode()
the prompt, using syntax highlighting. This is used for reading
scripts and init files.
*/
-static int read_ni( int fd, io_data_t *io )
+static int read_ni( int fd, const io_chain_t &io )
{
parser_t &parser = parser_t::principal_parser();
FILE *in_stream;
@@ -3296,7 +3298,7 @@ static int read_ni( int fd, io_data_t *io )
return res;
}
-int reader_read( int fd, io_data_t *io )
+int reader_read( int fd, const io_chain_t &io )
{
int res;