From 2b6bc47289c47d4c5322ac25b688d0b3027a31d0 Mon Sep 17 00:00:00 2001 From: Francois Andriot Date: Sun, 5 May 2013 04:50:18 +0200 Subject: Added support for makewhatis in tdeio-man This resolves Bug 714 --- tdeioslave/man/tdeio_man.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tdeioslave/man/tdeio_man.cpp') diff --git a/tdeioslave/man/tdeio_man.cpp b/tdeioslave/man/tdeio_man.cpp index d48fd9746..07636c0a3 100644 --- a/tdeioslave/man/tdeio_man.cpp +++ b/tdeioslave/man/tdeio_man.cpp @@ -46,6 +46,8 @@ #include #include +#include "config.h" + using namespace TDEIO; MANProtocol *MANProtocol::_self = 0; @@ -569,6 +571,26 @@ char *MANProtocol::readManPage(const char *_filename) } lastdir = filename.left(filename.findRev('/')); +#ifdef WITH_MAKEWHATIS + TQIODevice *fd= KFilterDev::deviceForFile(filename); + + if ( !fd || !fd->open(IO_ReadOnly)) + { + delete fd; + return 0; + } + TQByteArray 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, array.data(), len); +#else myStdStream = TQString::null; TDEProcess proc; /* TODO: detect availability of 'man --recode' so that this can go @@ -583,6 +605,7 @@ char *MANProtocol::readManPage(const char *_filename) const int len = cstr.size()-1; buf = new char[len + 4]; tqmemmove(buf + 1, cstr.data(), len); +#endif 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 } -- cgit v1.2.1