diff options
Diffstat (limited to 'src/extension/implementation/script.h')
| -rw-r--r-- | src/extension/implementation/script.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/extension/implementation/script.h b/src/extension/implementation/script.h index d8970cf15..417b42a89 100644 --- a/src/extension/implementation/script.h +++ b/src/extension/implementation/script.h @@ -148,13 +148,16 @@ private: sigc::connection _conn; Glib::RefPtr<Glib::IOChannel> _channel; Glib::RefPtr<Glib::MainLoop> _main_loop; + bool _dead; public: - file_listener () { }; + file_listener () : _dead(false) { }; ~file_listener () { _conn.disconnect(); }; + bool isDead () { return _dead; } + void init (int fd, Glib::RefPtr<Glib::MainLoop> main) { _channel = Glib::IOChannel::create_from_fd(fd); _channel->set_encoding(); @@ -172,14 +175,15 @@ private: Glib::IOStatus status; Glib::ustring out; - status = _channel->read_to_end(out); + status = _channel->read_line(out); + _string += out; if (status != Glib::IO_STATUS_NORMAL) { _main_loop->quit(); + _dead = true; return false; } - _string += out; return true; }; |
