You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/redhat/tdebase/kdebase-3.5.12-kio_man_utf8...

41 lines
1.5 KiB

--- 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
}