summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--redhat/kdebase/kdebase-3.5.13-kio_man_utf8.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/redhat/kdebase/kdebase-3.5.13-kio_man_utf8.patch b/redhat/kdebase/kdebase-3.5.13-kio_man_utf8.patch
new file mode 100644
index 000000000..0d0a873d9
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-kio_man_utf8.patch
@@ -0,0 +1,40 @@
+--- 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;
++ 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];
+- 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
+ }