|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit |
1c1d7e |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit |
1c1d7e |
* granted. No representations are made about the suitability of this software
|
|
Packit |
1c1d7e |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit |
1c1d7e |
* See the GNU General Public License for more details.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit |
1c1d7e |
* input used in their production; they are not affected by this license.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* http://www.cubic.org/source/archive/fileform/txt/man/ has some
|
|
Packit |
1c1d7e |
nice introductions to groff and man pages. */
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <stdlib.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <qdir.h>
|
|
Packit |
1c1d7e |
#include "message.h"
|
|
Packit |
1c1d7e |
#include "mangen.h"
|
|
Packit |
1c1d7e |
#include "config.h"
|
|
Packit |
1c1d7e |
#include "util.h"
|
|
Packit |
1c1d7e |
#include "doxygen.h"
|
|
Packit |
1c1d7e |
#include <string.h>
|
|
Packit |
1c1d7e |
#include "docparser.h"
|
|
Packit |
1c1d7e |
#include "mandocvisitor.h"
|
|
Packit |
1c1d7e |
#include "language.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static QCString getExtension()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
/*
|
|
Packit |
1c1d7e |
* [.][nuber][rest]
|
|
Packit |
1c1d7e |
* in case of . missing, just ignore it
|
|
Packit |
1c1d7e |
* in case number missing, just place a 3 in front of it
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
QCString ext = Config_getString(MAN_EXTENSION);
|
|
Packit |
1c1d7e |
if (ext.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
ext = "3";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (ext.at(0)=='.')
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (ext.length()==1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
ext = "3";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else // strip .
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
ext = ext.mid(1);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (ext.at(0)<'0' || ext.at(0)>'9')
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
ext.prepend("3");
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return ext;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static QCString getSubdir()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString dir = Config_getString(MAN_SUBDIR);
|
|
Packit |
1c1d7e |
if (dir.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
dir = "man" + getExtension();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return dir;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ManGenerator::ManGenerator() : OutputGenerator()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
dir=Config_getString(MAN_OUTPUT) + "/" + getSubdir();
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
upperCase=FALSE;
|
|
Packit |
1c1d7e |
insideTabbing=FALSE;
|
|
Packit |
1c1d7e |
inHeader=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ManGenerator::~ManGenerator()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//void ManGenerator::append(const OutputGenerator *g)
|
|
Packit |
1c1d7e |
//{
|
|
Packit |
1c1d7e |
// QCString r=g->getContents();
|
|
Packit |
1c1d7e |
// if (upperCase)
|
|
Packit |
1c1d7e |
// t << r.upper();
|
|
Packit |
1c1d7e |
// else
|
|
Packit |
1c1d7e |
// t << r;
|
|
Packit |
1c1d7e |
// if (!r.isEmpty())
|
|
Packit |
1c1d7e |
// firstCol = r.at(r.length()-1)=='\n';
|
|
Packit |
1c1d7e |
// else
|
|
Packit |
1c1d7e |
// firstCol = ((ManGenerator *)g)->firstCol;
|
|
Packit |
1c1d7e |
// col+=((ManGenerator *)g)->col;
|
|
Packit |
1c1d7e |
// inHeader=((ManGenerator *)g)->inHeader;
|
|
Packit |
1c1d7e |
// paragraph=FALSE;
|
|
Packit |
1c1d7e |
//}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString &manOutput = Config_getString(MAN_OUTPUT);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QDir d(manOutput);
|
|
Packit |
1c1d7e |
if (!d.exists() && !d.mkdir(manOutput))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("Could not create output directory %s\n",manOutput.data());
|
|
Packit |
1c1d7e |
exit(1);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
d.setPath(manOutput + "/" + getSubdir());
|
|
Packit |
1c1d7e |
if (!d.exists() && !d.mkdir(manOutput + "/" + getSubdir()))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("Could not create output directory %s/%s\n",manOutput.data(), getSubdir().data());
|
|
Packit |
1c1d7e |
exit(1);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
createSubDirs(d);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static QCString buildFileName(const char *name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString fileName;
|
|
Packit |
1c1d7e |
if (name==0) return "noname";
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
const char *p=name;
|
|
Packit |
1c1d7e |
char c;
|
|
Packit |
1c1d7e |
while ((c=*p++))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
switch (c)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case ':':
|
|
Packit |
1c1d7e |
fileName+="_";
|
|
Packit |
1c1d7e |
if (*p==':') p++;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case '<':
|
|
Packit |
1c1d7e |
case '>':
|
|
Packit |
1c1d7e |
case '&':
|
|
Packit |
1c1d7e |
case '*':
|
|
Packit |
1c1d7e |
case '!':
|
|
Packit |
1c1d7e |
case '^':
|
|
Packit |
1c1d7e |
case '~':
|
|
Packit |
1c1d7e |
case '%':
|
|
Packit |
1c1d7e |
case '+':
|
|
Packit |
1c1d7e |
case '/':
|
|
Packit |
1c1d7e |
fileName+="_";
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
default:
|
|
Packit |
1c1d7e |
fileName+=c;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QCString manExtension = "." + getExtension();
|
|
Packit |
1c1d7e |
if (fileName.right(manExtension.length())!=manExtension)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
fileName+=manExtension;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
return fileName;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startFile(const char *,const char *manName,const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
startPlainFile( buildFileName( manName ) );
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endFile()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << endl;
|
|
Packit |
1c1d7e |
endPlainFile();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endTitleHead(const char *,const char *name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << ".TH \"" << name << "\" " << getExtension() << " \""
|
|
Packit |
1c1d7e |
<< dateToString(FALSE) << "\" \"";
|
|
Packit |
1c1d7e |
if (!Config_getString(PROJECT_NUMBER).isEmpty())
|
|
Packit |
1c1d7e |
t << "Version " << Config_getString(PROJECT_NUMBER) << "\" \"";
|
|
Packit |
1c1d7e |
if (Config_getString(PROJECT_NAME).isEmpty())
|
|
Packit |
1c1d7e |
t << "Doxygen";
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
t << Config_getString(PROJECT_NAME);
|
|
Packit |
1c1d7e |
t << "\" \\\" -*- nroff -*-" << endl;
|
|
Packit |
1c1d7e |
t << ".ad l" << endl;
|
|
Packit |
1c1d7e |
t << ".nh" << endl;
|
|
Packit |
1c1d7e |
t << ".SH NAME" << endl;
|
|
Packit |
1c1d7e |
t << name;
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
inHeader=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::newParagraph()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!paragraph)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startParagraph(const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!paragraph)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endParagraph()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeString(const char *text)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
docify(text);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startIndexItem(const char *,const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endIndexItem(const char *,const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeStartAnnoItem(const char *,const char *,
|
|
Packit |
1c1d7e |
const char *,const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeObjectLink(const char *,const char *,
|
|
Packit |
1c1d7e |
const char *, const char *name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
startBold(); docify(name); endBold();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeCodeLink(const char *,const char *,
|
|
Packit |
1c1d7e |
const char *, const char *name,
|
|
Packit |
1c1d7e |
const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
docify(name);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startHtmlLink(const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endHtmlLink()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//void ManGenerator::writeMailLink(const char *url)
|
|
Packit |
1c1d7e |
//{
|
|
Packit |
1c1d7e |
// docify(url);
|
|
Packit |
1c1d7e |
//}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startGroupHeader(int)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".SH \"";
|
|
Packit |
1c1d7e |
upperCase=TRUE;
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endGroupHeader(int)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"\n.PP " << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
upperCase=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberHeader(const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".SS \"";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberHeader()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"\n";
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::docify(const char *str)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (str)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
const char *p=str;
|
|
Packit |
1c1d7e |
char c=0;
|
|
Packit |
1c1d7e |
while ((c=*p++))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
switch(c)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case '-': t << "\\-"; break; // see bug747780
|
|
Packit |
1c1d7e |
case '.': t << "\\&.;; break; // see bug652277
|
|
Packit |
1c1d7e |
case '\\': t << "\\\\"; col++; break;
|
|
Packit |
1c1d7e |
case '\n': t << "\n"; col=0; break;
|
|
Packit |
1c1d7e |
case '\"': c = '\''; // no break!
|
|
Packit |
1c1d7e |
default: t << c; col++; break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
firstCol=(c=='\n');
|
|
Packit |
1c1d7e |
//printf("%s",str);fflush(stdout);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::codify(const char *str)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
//static char spaces[]=" ";
|
|
Packit |
1c1d7e |
if (str)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
const char *p=str;
|
|
Packit |
1c1d7e |
char c;
|
|
Packit |
1c1d7e |
int spacesToNextTabStop;
|
|
Packit |
1c1d7e |
while (*p)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
c=*p++;
|
|
Packit |
1c1d7e |
switch(c)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case '.': t << "\\&.;; break; // see bug652277
|
|
Packit |
1c1d7e |
case '\t': spacesToNextTabStop =
|
|
Packit |
1c1d7e |
Config_getInt(TAB_SIZE) - (col%Config_getInt(TAB_SIZE));
|
|
Packit |
1c1d7e |
t << Doxygen::spaces.left(spacesToNextTabStop);
|
|
Packit |
1c1d7e |
col+=spacesToNextTabStop;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case '\n': t << "\n"; firstCol=TRUE; col=0; break;
|
|
Packit |
1c1d7e |
case '\\': t << "\\"; col++; break;
|
|
Packit |
1c1d7e |
case '\"': // no break!
|
|
Packit |
1c1d7e |
default: p=writeUtf8Char(t,p-1); firstCol=FALSE; col++; break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
//printf("%s",str);fflush(stdout);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeChar(char c)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
firstCol=(c=='\n');
|
|
Packit |
1c1d7e |
if (firstCol) col=0; else col++;
|
|
Packit |
1c1d7e |
switch (c)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case '\\': t << "\\\\"; break;
|
|
Packit |
1c1d7e |
case '\"': c = '\''; // no break!
|
|
Packit |
1c1d7e |
default: t << c; break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
//printf("%c",c);fflush(stdout);
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startDescList(SectionTypes)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol)
|
|
Packit |
1c1d7e |
{ t << endl << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE; paragraph=TRUE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
startBold();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startTitle()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".SH \"";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endTitle()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startItemListItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".TP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endItemListItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startCodeFragment()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
newParagraph();
|
|
Packit |
1c1d7e |
t << ".nf" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endCodeFragment()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".fi" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberDoc(const char *,const char *,const char *,const char *,int,int,bool)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".SS \"";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startDoxyAnchor(const char *,const char *manName,
|
|
Packit |
1c1d7e |
const char *, const char *name,
|
|
Packit |
1c1d7e |
const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
// something to be done?
|
|
Packit |
1c1d7e |
if( !Config_getBool(MAN_LINKS) )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return; // no
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// the name of the link file is derived from the name of the anchor:
|
|
Packit |
1c1d7e |
// - truncate after an (optional) ::
|
|
Packit |
1c1d7e |
QCString baseName = name;
|
|
Packit |
1c1d7e |
int i=baseName.findRev("::");
|
|
Packit |
1c1d7e |
if (i!=-1) baseName=baseName.right(baseName.length()-i-2);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//printf("Converting man link '%s'->'%s'->'%s'\n",
|
|
Packit |
1c1d7e |
// name,baseName.data(),buildFileName(baseName).data());
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// - remove dangerous characters and append suffix, then add dir prefix
|
|
Packit |
1c1d7e |
QCString fileName=dir+"/"+buildFileName( baseName );
|
|
Packit |
1c1d7e |
QFile linkfile( fileName );
|
|
Packit |
1c1d7e |
// - only create file if it doesn't exist already
|
|
Packit |
1c1d7e |
if ( !linkfile.open( IO_ReadOnly ) )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if ( linkfile.open( IO_WriteOnly ) )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
FTextStream linkstream;
|
|
Packit |
1c1d7e |
linkstream.setDevice(&linkfile);
|
|
Packit |
1c1d7e |
//linkstream.setEncoding(QTextStream::UnicodeUTF8);
|
|
Packit |
1c1d7e |
linkstream << ".so " << getSubdir() << "/" << buildFileName( manName ) << endl;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
linkfile.close();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberDoc(bool)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"\n";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startSubsection()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".SS \"";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endSubsection()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startSubsubsection()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << "\n.SS \"";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endSubsubsection()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeSynopsis()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".SH SYNOPSIS\n.br\n.PP\n";
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startDescItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".IP \"";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//void ManGenerator::endDescTitle()
|
|
Packit |
1c1d7e |
//{
|
|
Packit |
1c1d7e |
// endBold();
|
|
Packit |
1c1d7e |
// paragraph=TRUE;
|
|
Packit |
1c1d7e |
//}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startDescForItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
if (!paragraph) t << ".in -1c" << endl;
|
|
Packit |
1c1d7e |
t << ".in +1c" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endDescForItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endDescItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\" 1c" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startAnonTypeScope(int indentLevel)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (indentLevel==0)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
insideTabbing=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endAnonTypeScope(int indentLevel)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (indentLevel==0)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
insideTabbing=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberItem(const char *,int,const char *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (firstCol && !insideTabbing) t << ".in +1c\n";
|
|
Packit |
1c1d7e |
t << "\n.ti -1c\n.RI \"";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberItem()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\"\n.br";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberList()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!insideTabbing)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n.in +1c"; firstCol=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberList()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!insideTabbing)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n.in -1c"; firstCol=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberGroupHeader(bool)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n.PP\n.RI \"\\fB";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberGroupHeader()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\\fP\"\n.br\n";
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberGroupDocs()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberGroupDocs()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n.PP";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberGroup()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n.in +1c";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberGroup(bool)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n.in -1c";
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startSection(const char *,const char *,SectionInfo::SectionType type)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if( !inHeader )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
switch(type)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case SectionInfo::Page: startGroupHeader(FALSE); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Section: startGroupHeader(FALSE); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Subsection: startMemberHeader(0); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Subsubsection: startMemberHeader(0); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Paragraph: startMemberHeader(0); break;
|
|
Packit |
1c1d7e |
default: ASSERT(0); break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endSection(const char *,SectionInfo::SectionType type)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if( !inHeader )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
switch(type)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case SectionInfo::Page: endGroupHeader(0); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Section: endGroupHeader(0); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Subsection: endMemberHeader(); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Subsubsection: endMemberHeader(); break;
|
|
Packit |
1c1d7e |
case SectionInfo::Paragraph: endMemberHeader(); break;
|
|
Packit |
1c1d7e |
default: ASSERT(0); break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\n";
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
inHeader=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startSimpleSect(SectionTypes,const char *,
|
|
Packit |
1c1d7e |
const char *,const char *title)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol)
|
|
Packit |
1c1d7e |
{ t << endl << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE; paragraph=TRUE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
startBold();
|
|
Packit |
1c1d7e |
docify(title);
|
|
Packit |
1c1d7e |
endBold();
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endSimpleSect()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startParamList(ParamListTypes,const char *title)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol)
|
|
Packit |
1c1d7e |
{ t << endl << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE; paragraph=TRUE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
startBold();
|
|
Packit |
1c1d7e |
docify(title);
|
|
Packit |
1c1d7e |
endBold();
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endParamList()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeDoc(DocNode *n,Definition *ctx,MemberDef *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
ManDocVisitor *visitor = new ManDocVisitor(t,*this,ctx?ctx->getDefFileExtension():QCString(""));
|
|
Packit |
1c1d7e |
n->accept(visitor);
|
|
Packit |
1c1d7e |
delete visitor;
|
|
Packit |
1c1d7e |
firstCol=FALSE;
|
|
Packit |
1c1d7e |
paragraph = FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startConstraintList(const char *header)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol)
|
|
Packit |
1c1d7e |
{ t << endl << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE; paragraph=TRUE;
|
|
Packit |
1c1d7e |
col=0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
paragraph=FALSE;
|
|
Packit |
1c1d7e |
startBold();
|
|
Packit |
1c1d7e |
docify(header);
|
|
Packit |
1c1d7e |
endBold();
|
|
Packit |
1c1d7e |
paragraph=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startConstraintParam()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
startItemListItem();
|
|
Packit |
1c1d7e |
startEmphasis();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endConstraintParam()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
endEmphasis();
|
|
Packit |
1c1d7e |
endItemListItem();
|
|
Packit |
1c1d7e |
t << " : ";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startConstraintType()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
startEmphasis();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endConstraintType()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
endEmphasis();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startConstraintDocs()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endConstraintDocs()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << endl; firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endConstraintList()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startInlineHeader()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << endl << ".PP" << endl << ".in -1c" << endl;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
t << ".RI \"\\fB";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endInlineHeader()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\\fP\"" << endl << ".in +1c" << endl;
|
|
Packit |
1c1d7e |
firstCol = FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startMemberDocSimple(bool isEnum)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << endl << ".PP" << endl;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
t << "\\fB";
|
|
Packit |
1c1d7e |
if (isEnum)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
docify(theTranslator->trEnumerationValues());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
docify(theTranslator->trCompoundMembers());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
t << ":\\fP" << endl;
|
|
Packit |
1c1d7e |
t << ".RS 4" << endl;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endMemberDocSimple(bool)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".RE" << endl;
|
|
Packit |
1c1d7e |
t << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startInlineMemberType()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endInlineMemberType()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << " ";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startInlineMemberName()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\\fI";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endInlineMemberName()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\\fP ";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startInlineMemberDoc()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endInlineMemberDoc()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!firstCol) t << endl;
|
|
Packit |
1c1d7e |
t << ".br" << endl;
|
|
Packit |
1c1d7e |
t << ".PP" << endl;
|
|
Packit |
1c1d7e |
firstCol=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::startLabels()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::writeLabel(const char *l,bool isLast)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
t << "\\fC [" << l << "]\\fP";
|
|
Packit |
1c1d7e |
if (!isLast) t << ", ";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endLabels()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ManGenerator::endHeaderSection()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|