diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-09-12 19:54:46 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-09-12 19:54:46 +0200 |
| commit | f6d2533caed435f407f034cf0ffcdf3c4f0999aa (patch) | |
| tree | 57bffdd8bad9af5a0ec8f2f97e354c9b7df52850 /src/commands.cc | |
| parent | a467d7311593dc4a7f6ffe4a4db9254e5ade3b8c (diff) | |
rework fifo handling, use real fifos in {make,grep}.kak, update README
Diffstat (limited to 'src/commands.cc')
| -rw-r--r-- | src/commands.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/commands.cc b/src/commands.cc index 2ef70a17..90dfa394 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -247,11 +247,15 @@ Buffer* open_fifo(const String& name , const String& filename, Context& context) EventManager::instance().watch(fd, [buffer, &context](int fd) { char data[512]; ssize_t count = read(fd, data, 512); - if (count > 0) + buffer->insert(buffer->end()-1, + count > 0 ? String(data, data+count) + : "*** kak: fifo closed ***\n"); + buffer->reset_undo_data(); + context.draw_ifn(); + if (count <= 0) { - buffer->insert(buffer->end()-1, String(data, data + count)); - buffer->reset_undo_data(); - context.draw_ifn(); + close(fd); + EventManager::instance().unwatch(fd); } }); |
