113
114
gobject.IO_IN | gobject.IO_HUP,
117
118
if self.input_text is not None:
118
119
# Write async, in chunks of something
119
120
self.write_buffer = str(self.input_text)
153
155
def on_output(self, source, condition):
158
line = unicode(line, 'utf-8')
161
locale.getdefaultlocale()[1],
164
self.read_buffer += line
165
lines = self.read_buffer.splitlines(True)
167
if not lines[-1].endswith("\n"):
168
self.read_buffer = lines[-1]
171
self.read_buffer = ''
174
if not self.pipe or source == self.pipe.stdout:
175
self.emit('stdout-line', line)
156
if condition & (glib.IO_IN | glib.IO_PRI):
161
line = unicode(line, 'utf-8')
164
locale.getdefaultlocale()[1],
167
self.read_buffer += line
168
lines = self.read_buffer.splitlines(True)
170
if not lines[-1].endswith("\n"):
171
self.read_buffer = lines[-1]
177
self.emit('stderr-line', line)
174
self.read_buffer = ''
177
if not self.pipe or source == self.pipe.stdout:
178
self.emit('stdout-line', line)
180
self.emit('stderr-line', line)
182
if condition & ~(glib.IO_IN | glib.IO_PRI):
181
183
if self.read_buffer:
182
184
if source == self.pipe.stdout:
183
185
self.emit('stdout-line', self.read_buffer)
185
187
self.emit('stderr-line', self.read_buffer)
187
189
self.read_buffer = ''
193
197
def stop(self, error_code = -1):
194
198
if self.pipe is not None: