summaryrefslogtreecommitdiffstats
path: root/redhat/kdebase/kdebase-3.5.12-kio_man_utf8.patch
blob: a85f0286d0fb52b175dfc81cc4971bc0a7c30245 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--- 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
     }