mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-13 13:39:02 +00:00
Convert io_buffer_read to io_buffer_t::read
This commit is contained in:
parent
df0c1eb32c
commit
e020ad0c06
4 changed files with 17 additions and 17 deletions
4
exec.cpp
4
exec.cpp
|
@ -1008,7 +1008,7 @@ void exec(parser_t &parser, job_t *j)
|
||||||
|
|
||||||
io_remove(j->io, io_buffer);
|
io_remove(j->io, io_buffer);
|
||||||
|
|
||||||
io_buffer_read(io_buffer.get());
|
io_buffer->read();
|
||||||
|
|
||||||
const char *buffer = io_buffer->out_buffer_ptr();
|
const char *buffer = io_buffer->out_buffer_ptr();
|
||||||
size_t count = io_buffer->out_buffer_size();
|
size_t count = io_buffer->out_buffer_size();
|
||||||
|
@ -1423,7 +1423,7 @@ static int exec_subshell_internal(const wcstring &cmd, wcstring_list_t *lst)
|
||||||
status = proc_get_last_status();
|
status = proc_get_last_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
io_buffer_read(io_buffer.get());
|
io_buffer->read();
|
||||||
|
|
||||||
proc_set_last_status(prev_status);
|
proc_set_last_status(prev_status);
|
||||||
|
|
||||||
|
|
18
io.cpp
18
io.cpp
|
@ -81,23 +81,23 @@ void io_buffer_t::print() const
|
||||||
fprintf(stderr, "buffer %p (size %lu)\n", out_buffer_ptr(), out_buffer_size());
|
fprintf(stderr, "buffer %p (size %lu)\n", out_buffer_ptr(), out_buffer_size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void io_buffer_read(io_buffer_t *d)
|
void io_buffer_t::read()
|
||||||
{
|
{
|
||||||
exec_close(d->param1.pipe_fd[1]);
|
exec_close(param1.pipe_fd[1]);
|
||||||
|
|
||||||
if (d->io_mode == IO_BUFFER)
|
if (io_mode == IO_BUFFER)
|
||||||
{
|
{
|
||||||
/* if( fcntl( d->param1.pipe_fd[0], F_SETFL, 0 ) )
|
/* if( fcntl( param1.pipe_fd[0], F_SETFL, 0 ) )
|
||||||
{
|
{
|
||||||
wperror( L"fcntl" );
|
wperror( L"fcntl" );
|
||||||
return;
|
return;
|
||||||
} */
|
} */
|
||||||
debug(4, L"io_buffer_read: blocking read on fd %d", d->param1.pipe_fd[0]);
|
debug(4, L"io_buffer_t::read: blocking read on fd %d", param1.pipe_fd[0]);
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
char b[4096];
|
char b[4096];
|
||||||
long l;
|
long l;
|
||||||
l=read_blocked(d->param1.pipe_fd[0], b, 4096);
|
l=read_blocked(param1.pipe_fd[0], b, 4096);
|
||||||
if (l==0)
|
if (l==0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
@ -115,15 +115,15 @@ void io_buffer_read(io_buffer_t *d)
|
||||||
{
|
{
|
||||||
debug(1,
|
debug(1,
|
||||||
_(L"An error occured while reading output from code block on file descriptor %d"),
|
_(L"An error occured while reading output from code block on file descriptor %d"),
|
||||||
d->param1.pipe_fd[0]);
|
param1.pipe_fd[0]);
|
||||||
wperror(L"io_buffer_read");
|
wperror(L"io_buffer_t::read");
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
d->out_buffer_append(b, l);
|
out_buffer_append(b, l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
10
io.h
10
io.h
|
@ -163,6 +163,11 @@ public:
|
||||||
return out_buffer->size();
|
return out_buffer->size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Close output pipe, and read from input pipe until eof.
|
||||||
|
*/
|
||||||
|
void read();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Create a IO_BUFFER type io redirection, complete with a pipe and a
|
Create a IO_BUFFER type io redirection, complete with a pipe and a
|
||||||
vector<char> for output. The default file descriptor used is 1 for
|
vector<char> for output. The default file descriptor used is 1 for
|
||||||
|
@ -212,11 +217,6 @@ shared_ptr<const io_data_t> io_chain_get(const io_chain_t &src, int fd);
|
||||||
shared_ptr<io_data_t> io_chain_get(io_chain_t &src, int fd);
|
shared_ptr<io_data_t> io_chain_get(io_chain_t &src, int fd);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Close output pipe, and read from input pipe until eof.
|
|
||||||
*/
|
|
||||||
void io_buffer_read(io_buffer_t *d);
|
|
||||||
|
|
||||||
/** Print debug information about the specified IO redirection chain to stderr. */
|
/** Print debug information about the specified IO redirection chain to stderr. */
|
||||||
void io_print(const io_chain_t &chain);
|
void io_print(const io_chain_t &chain);
|
||||||
|
|
||||||
|
|
|
@ -1143,7 +1143,7 @@ static void run_pager(const wcstring &prefix, int is_quoted, const std::vector<c
|
||||||
parser.eval(cmd, io_chain, TOP);
|
parser.eval(cmd, io_chain, TOP);
|
||||||
term_steal();
|
term_steal();
|
||||||
|
|
||||||
io_buffer_read(out.get());
|
out->read();
|
||||||
|
|
||||||
int nil=0;
|
int nil=0;
|
||||||
out->out_buffer_append((char *)&nil, 1);
|
out->out_buffer_append((char *)&nil, 1);
|
||||||
|
|
Loading…
Reference in a new issue