--- kdebase/kioslave/man/kio_man.cpp.orig 2010-08-13 00:37:38.000000000 +0200 +++ kdebase/kioslave/man/kio_man.cpp 2011-12-08 21:10:25.720324499 +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; + QIODevice *fd= KFilterDev::deviceForFile(filename); + + if ( !fd || !fd->open(IO_ReadOnly)) + { + delete fd; + return 0; + } + QByteArray 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]; - qmemmove(buf + 1, cstr.data(), len); + qmemmove(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 }