--- kdebase/kioslave/man/kio_man.cpp.ORI 2011-12-03 00:22:28.400423296 +0100 +++ kdebase/kioslave/man/kio_man.cpp 2011-12-03 00:25:59.127173102 +0100 @@ -569,20 +569,24 @@ } lastdir = filename.left(filename.findRev('/')); - myStdStream = TQString::null; - KProcess proc; - /* TODO: detect availability of 'man --recode' so that this can go - * upstream */ - proc << "man" << "--recode" << "UTF-8" << filename; - - TQApplication::connect(&proc, TQT_SIGNAL(receivedStdout (KProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutputUtf8(KProcess *, char *, int))); - proc.start(KProcess::Block, KProcess::All); - - const TQCString cstr=myStdStream.utf8(); - const int len = cstr.size()-1; + TQIODevice *fd= KFilterDev::deviceForFile(filename); + + if ( !fd || !fd->open(IO_ReadOnly)) + { + delete fd; + return 0; + } + TQByteArray array(fd->readAll()); + kdDebug(7107) << "read " << array.size() << endl; + fd->close(); + delete fd; + + if (array.isEmpty()) + return 0; + + const int len = array.size(); buf = new char[len + 4]; - tqmemmove(buf + 1, cstr.data(), len); + tqmemmove(buf + 1, array.data(), len); buf[0]=buf[len]='\n'; // Start and end with a end of line buf[len+1]=buf[len+2]='\0'; // Two NUL characters at end }