summaryrefslogtreecommitdiffstats
path: root/src/extension/implementation/script.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension/implementation/script.h')
-rw-r--r--src/extension/implementation/script.h10
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;
};