30 #include <tqtextcodec.h>
32 class KProcIOPrivate {
39 : codec(_codec), d(new KProcIOPrivate)
42 readsignalon=writeready=
true;
43 outbuffer.setAutoDelete(
true);
47 codec = TQTextCodec::codecForName(
"ISO 8859-1");
50 kdError(174) <<
"Can't create ISO 8859-1 codec!" <<
endl;
68 readsignalon=writeready=
true;
71 this, TQT_SLOT (received (
TDEProcess *,
char *,
int)));
74 this, TQT_SLOT (received (
TDEProcess *,
char *,
int)));
91 this, TQT_SLOT (received (
TDEProcess *,
char *,
int)));
96 this, TQT_SLOT (received (
TDEProcess *,
char *,
int)));
107 return writeStdin(TQCString(codec->fromUnicode(line)), appendnewline);
112 TQCString *qs =
new TQCString(line);
119 int l = qs->length();
126 TQByteArray *b = (TQByteArray *) qs;
143 TQByteArray *b =
new TQByteArray(data);
168 outbuffer.removeFirst();
170 if (outbuffer.count()==0)
176 TQByteArray *b = outbuffer.first();
189 void KProcIO::received (
TDEProcess *,
char *buffer,
int buflen)
191 recvbuffer += TQCString(buffer, buflen+1);
193 controlledEmission();
199 if (needreadsignal || recvbuffer.length()!=0)
200 controlledEmission();
203 void KProcIO::controlledEmission ()
207 needreadsignal=
false;
221 if (enable && needreadsignal)
234 len=recvbuffer.find (
'\n',rbi)-rbi;
240 ((
unsigned int)rbi<recvbuffer.length()))
242 recvbuffer=recvbuffer.mid (rbi);
246 len = recvbuffer.length();
257 line = codec->toUnicode(recvbuffer.mid(rbi,len), len);
272 void KProcIO::virtual_hook(
int id,
void* data )
273 { TDEProcess::virtual_hook(
id, data ); }
275 #include "kprocio.moc"