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