summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2002-04-21 17:27:45 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2002-04-21 17:27:45 (GMT)
commitff31b2f109848ea3e08fb17d5821beb7af879193 (patch)
tree4859bfed167f695f5ce9e9c0f2f6f02313de2ed3 /src
parentbc629c9003d59b736cc996a05b95bac8ab50123a (diff)
downloadDoxygen-ff31b2f109848ea3e08fb17d5821beb7af879193.zip
Doxygen-ff31b2f109848ea3e08fb17d5821beb7af879193.tar.gz
Doxygen-ff31b2f109848ea3e08fb17d5821beb7af879193.tar.bz2
Release-1.2.15-20020421
Diffstat (limited to 'src')
-rw-r--r--src/classdef.cpp2
-rw-r--r--src/config.l18
-rw-r--r--src/definition.cpp4
-rw-r--r--src/doc.l10
-rw-r--r--src/dot.cpp27
-rw-r--r--src/dot.h2
-rw-r--r--src/doxygen.cpp544
-rw-r--r--src/htmlgen.h2
-rw-r--r--src/index.cpp180
-rw-r--r--src/latexgen.h2
-rw-r--r--src/mangen.h6
-rw-r--r--src/outputgen.h14
-rw-r--r--src/outputlist.h4
-rw-r--r--src/pre.l12
-rw-r--r--src/rtfgen.cpp472
-rw-r--r--src/rtfgen.h7
-rw-r--r--src/scanner.l6
-rw-r--r--src/translator_jp.h589
-rw-r--r--src/translator_si.h22
-rw-r--r--src/xmlgen.cpp26
20 files changed, 1061 insertions, 888 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 8632c03..822cc3d 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -923,7 +923,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
ol.startDotGraph();
- parseText(ol,theTranslator->trClassDiagram(name()));
+ parseText(ol,theTranslator->trClassDiagram(displayName()));
ol.endDotGraph(inheritanceGraph);
if (Config_getBool("GENERATE_LEGEND"))
{
diff --git a/src/config.l b/src/config.l
index 4c81fca..05b9b19 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1103,7 +1103,8 @@ void Config::check()
exit(1);
}
else if (cgiURL.left(7)!="http://" &&
- cgiURL.left(8)!="https://"
+ cgiURL.left(8)!="https://" &&
+ cgiURL.left(4)!="cgi:"
)
{
config_err("Error: tag CGI_URL: URL to cgi directory is invalid (must "
@@ -2225,6 +2226,13 @@ void Config::create()
TRUE
);
cb = addBool(
+ "HIDE_UNDOC_RELATIONS",
+ "If set to YES, the inheritance and collaboration graphs will hide \n"
+ "inheritance and usage relations if the target is undocumented \n"
+ "or is not a class. \n",
+ TRUE
+ );
+ cb = addBool(
"HAVE_DOT",
"If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is \n"
"available from the path. This tool is part of Graphviz, a graph visualization \n"
@@ -2258,14 +2266,6 @@ void Config::create()
);
cb->addDependency("HAVE_DOT");
cb = addBool(
- "HIDE_UNDOC_RELATIONS",
- "If set to YES, the inheritance and collaboration graphs will hide \n"
- "inheritance and usage relations if the target is undocumented \n"
- "or is not a class. \n",
- TRUE
- );
- cb->addDependency("HAVE_DOT");
- cb = addBool(
"INCLUDE_GRAPH",
"If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT \n"
"tags are set to YES then doxygen will generate a graph for each documented \n"
diff --git a/src/definition.cpp b/src/definition.cpp
index 08ddf6f..e21778e 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -123,7 +123,9 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
switch(m_brief.at(bl-1))
{
case '.': case '!': case '?': break;
- default: m_brief+='.'; break;
+ default:
+ if (isupper(m_brief.at(0))) m_brief+='.';
+ break;
}
}
m_briefFile = briefFile;
diff --git a/src/doc.l b/src/doc.l
index 982f273..3863d4b 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -1161,12 +1161,12 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
BEGIN( DocScan );
}
<DocScan>{CMD}"verbatim"/[^a-z_A-Z0-9] {
- outDoc->startCodeFragment();
+ outDoc->startVerbatimFragment();
insideVerbatim=TRUE;
BEGIN(DocVerbatim);
}
<DocVerbatim>{CMD}"endverbatim"/[^a-z_A-Z0-9] {
- outDoc->endCodeFragment();
+ outDoc->endVerbatimFragment();
insideVerbatim=FALSE;
BEGIN(DocScan);
}
@@ -1225,7 +1225,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
BEGIN( DocLinkText );
}
<DocJavaLink>([a-z_A-Z0-9]+".")+ { /* Skip scope prefix (TODO: fix) */ }
-<DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\[\]]*")")?({B}*("const"|"volatile"))? { // TODO: support operators as well!
+<DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\ \[\]]*")")?({B}*("const"|"volatile"))? { // TODO: support operators as well!
linkRef = yytext;
linkText = "";
BEGIN( DocJavaLinkText );
@@ -1272,6 +1272,10 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
BEGIN(DocScan);
}
<DocScan>{CMD}("arg"|"li")/{BN} {
+ if (insideItemList)
+ {
+ forceEndItemList();
+ }
if (insideArgumentList)
{
outDoc->writeListItem();
diff --git a/src/dot.cpp b/src/dot.cpp
index 77faf6e..6ed5daa 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -468,7 +468,7 @@ void DotNode::write(QTextStream &t,
}
}
-void DotNode::writeXML(QTextStream &t)
+void DotNode::writeXML(QTextStream &t,bool isClassGraph)
{
t << " <node id=\"" << m_number << "\">" << endl;
t << " <label>" << convertToXML(m_label) << "</label>" << endl;
@@ -498,14 +498,21 @@ void DotNode::writeXML(QTextStream &t)
{
edgeInfo=eli.current();
t << " <childnode id=\"" << childNode->m_number << "\" relation=\"";
- switch(edgeInfo->m_color)
+ if (isClassGraph)
{
- case EdgeInfo::Blue: t << "public-inheritance"; break;
- case EdgeInfo::Green: t << "protected-inheritance"; break;
- case EdgeInfo::Red: t << "private-inheritance"; break;
- case EdgeInfo::Purple: t << "usage"; break;
- case EdgeInfo::Orange: t << "template-instance"; break;
- case EdgeInfo::Grey: ASSERT(0); break;
+ switch(edgeInfo->m_color)
+ {
+ case EdgeInfo::Blue: t << "public-inheritance"; break;
+ case EdgeInfo::Green: t << "protected-inheritance"; break;
+ case EdgeInfo::Red: t << "private-inheritance"; break;
+ case EdgeInfo::Purple: t << "usage"; break;
+ case EdgeInfo::Orange: t << "template-instance"; break;
+ case EdgeInfo::Grey: ASSERT(0); break;
+ }
+ }
+ else // include graph
+ {
+ t << "include";
}
t << "\">" << endl;
if (!edgeInfo->m_label.isEmpty())
@@ -1430,7 +1437,7 @@ void DotClassGraph::writeXML(QTextStream &t)
DotNode *node;
for (;(node=dni.current());++dni)
{
- node->writeXML(t);
+ node->writeXML(t,TRUE);
}
}
@@ -1661,7 +1668,7 @@ void DotInclDepGraph::writeXML(QTextStream &t)
DotNode *node;
for (;(node=dni.current());++dni)
{
- node->writeXML(t);
+ node->writeXML(t,FALSE);
}
}
diff --git a/src/dot.h b/src/dot.h
index 9096584..220b8e9 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -76,7 +76,7 @@ class DotNode
int maxDistance=1000,bool backArrows=TRUE);
int m_subgraphId;
void clearWriteFlag();
- void writeXML(QTextStream &t);
+ void writeXML(QTextStream &t,bool isClassGraph);
void writeDEF(QTextStream &t);
QCString label() const { return m_label; }
int number() const { return m_number; }
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 1e5f361..499564e 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * $Id$
+ *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
@@ -541,232 +541,232 @@ ArgumentList *getTemplateArgumentsFromName(
return ali.current();
}
-
-//----------------------------------------------------------------------
-// build a list of all classes mentioned in the documentation
-// and all classes that have a documentation block before their definition.
-static void buildClassList(Entry *root)
+static void addClassToContext(Entry *root)
{
- if (
- ((root->section & Entry::COMPOUNDDOC_MASK) ||
- ((root->section & Entry::COMPOUND_MASK))
- ) &&
- !root->name.isEmpty()
- )
+ QCString fullName=removeRedundantWhiteSpace(root->name);
+ if (fullName.isEmpty())
{
- QCString fullName=removeRedundantWhiteSpace(root->name);
- if (fullName.isEmpty())
- {
- // this should not be called
- warn(root->fileName,root->startLine,
- "Warning: invalid class name found!"
- );
- goto error;
- }
- Debug::print(Debug::Classes,0," Found class with raw name %s\n",fullName.data());
+ // this should not be called
+ warn(root->fileName,root->startLine,
+ "Warning: invalid class name found!"
+ );
+ return;
+ }
+ Debug::print(Debug::Classes,0," Found class with raw name %s\n",fullName.data());
- fullName=stripAnonymousNamespaceScope(fullName);
- fullName=stripTemplateSpecifiersFromScope(fullName);
+ fullName=stripAnonymousNamespaceScope(fullName);
+ fullName=stripTemplateSpecifiersFromScope(fullName);
- Debug::print(Debug::Classes,0," Found class with name %s\n",fullName.data());
+ Debug::print(Debug::Classes,0," Found class with name %s\n",fullName.data());
- bool ambig;
- ClassDef *cd;
- //printf("findFileDef(%s)\n",root->fileName.data());
- FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
+ bool ambig;
+ ClassDef *cd;
+ //printf("findFileDef(%s)\n",root->fileName.data());
+ FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
- if ((cd=getClass(fullName)))
- {
- Debug::print(Debug::Classes,0," Existing class!\n",fullName.data());
- //if (cd->templateArguments()==0)
- //{
- // //printf("existing ClassDef tempArgList=%p specScope=%s\n",root->tArgList,root->scopeSpec.data());
- // cd->setTemplateArguments(tArgList);
- //}
- if (!root->doc.isEmpty() || !root->brief.isEmpty() ||
- (root->bodyLine!=-1 && Config_getBool("SOURCE_BROWSER"))
- )
- // block contains something that ends up in the docs
- {
- if (!root->doc.isEmpty() && !cd->documentation().isEmpty())
- {
- warn(
- root->fileName,root->startLine,
- "Warning: class %s already has a detailed description. "
- "Skipping the one found here.",
- fullName.data()
- );
- }
- else if (!root->doc.isEmpty())
- {
- cd->setDocumentation(root->doc,root->docFile,root->docLine);
- }
- if (!root->brief.isEmpty() && !cd->briefDescription().isEmpty())
- {
- warn(
- root->fileName,root->startLine,
- "Warning: class %s already has a brief description\n"
- " skipping the one found here.",
- fullName.data()
- );
- }
- else if (!root->brief.isEmpty())
- {
- cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
- }
- if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1)
- {
- cd->setBodySegment(root->bodyLine,root->endBodyLine);
- cd->setBodyDef(findFileDef(Doxygen::inputNameDict,root->fileName,ambig));
- }
- cd->addSectionsToDefinition(root->anchors);
- cd->setName(fullName); // change name to match docs
- }
- cd->setFileDef(fd);
- if (cd->hasDocumentation())
+ if ((cd=getClass(fullName)))
+ {
+ Debug::print(Debug::Classes,0," Existing class!\n",fullName.data());
+ //if (cd->templateArguments()==0)
+ //{
+ // //printf("existing ClassDef tempArgList=%p specScope=%s\n",root->tArgList,root->scopeSpec.data());
+ // cd->setTemplateArguments(tArgList);
+ //}
+ if (!root->doc.isEmpty() || !root->brief.isEmpty() ||
+ (root->bodyLine!=-1 && Config_getBool("SOURCE_BROWSER"))
+ )
+ // block contains something that ends up in the docs
+ {
+ if (!root->doc.isEmpty() && !cd->documentation().isEmpty())
{
- addIncludeFile(cd,fd,root);
+ warn(
+ root->fileName,root->startLine,
+ "Warning: class %s already has a detailed description. "
+ "Skipping the one found here.",
+ fullName.data()
+ );
}
- addNamespace(root,cd);
- if (fd && (root->section & Entry::COMPOUND_MASK))
+ else if (!root->doc.isEmpty())
{
- //printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
- // cd->name().data(),
- // fd->name().data(),
- // root->fileName.data()
- // );
- fd->insertClass(cd);
+ cd->setDocumentation(root->doc,root->docFile,root->docLine);
}
- addClassToGroups(root,cd);
- cd->setRefItems(root->todoId,root->testId,root->bugId);
- if (!root->subGrouping) cd->setSubGrouping(FALSE);
-
- if (cd->templateArguments()==0)
+ if (!root->brief.isEmpty() && !cd->briefDescription().isEmpty())
{
- // this happens if a template class declared with @class is found
- // before the actual definition.
- ArgumentList *tArgList =
- getTemplateArgumentsFromName(fullName,root->tArgLists);
- cd->setTemplateArguments(tArgList);
+ warn(
+ root->fileName,root->startLine,
+ "Warning: class %s already has a brief description\n"
+ " skipping the one found here.",
+ fullName.data()
+ );
}
- }
- else // new class
- {
-
- ClassDef::CompoundType sec=ClassDef::Class;
- switch(root->section)
+ else if (!root->brief.isEmpty())
{
- case Entry::UNION_SEC:
- case Entry::UNIONDOC_SEC:
- sec=ClassDef::Union; break;
- case Entry::STRUCT_SEC:
- case Entry::STRUCTDOC_SEC:
- sec=ClassDef::Struct; break;
- case Entry::INTERFACE_SEC:
- case Entry::INTERFACEDOC_SEC:
- sec=ClassDef::Interface; break;
- case Entry::EXCEPTION_SEC:
- case Entry::EXCEPTIONDOC_SEC:
- sec=ClassDef::Exception; break;
+ cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
}
- Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d\n",
- fullName.data(),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1);
- QCString className;
- QCString namespaceName;
- extractNamespaceName(fullName,className,namespaceName);
-
- //printf("New class: namespace `%s' name=`%s'\n",className.data(),namespaceName.data());
-
- QCString tagName;
- QCString refFileName;
- if (root->tagInfo)
+ if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1)
{
- tagName = root->tagInfo->tagName;
- refFileName = root->tagInfo->fileName;
+ cd->setBodySegment(root->bodyLine,root->endBodyLine);
+ cd->setBodyDef(findFileDef(Doxygen::inputNameDict,root->fileName,ambig));
}
- ClassDef *cd=new ClassDef(root->fileName,root->startLine,fullName,sec,
- tagName,refFileName);
- cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
- cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
- //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data());
-
+ cd->addSectionsToDefinition(root->anchors);
+ cd->setName(fullName); // change name to match docs
+ }
+ cd->setFileDef(fd);
+ if (cd->hasDocumentation())
+ {
+ addIncludeFile(cd,fd,root);
+ }
+ addNamespace(root,cd);
+ if (fd && (root->section & Entry::COMPOUND_MASK))
+ {
+ //printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
+ // cd->name().data(),
+ // fd->name().data(),
+ // root->fileName.data()
+ // );
+ fd->insertClass(cd);
+ }
+ addClassToGroups(root,cd);
+ cd->setRefItems(root->todoId,root->testId,root->bugId);
+ if (!root->subGrouping) cd->setSubGrouping(FALSE);
+ if (cd->templateArguments()==0)
+ {
+ // this happens if a template class declared with @class is found
+ // before the actual definition.
ArgumentList *tArgList =
getTemplateArgumentsFromName(fullName,root->tArgLists);
- //printf("class %s template args=%s\n",fullName.data(),
- // tArgList ? tempArgListToString(tArgList).data() : "<none>");
cd->setTemplateArguments(tArgList);
- cd->setProtection(root->protection);
- cd->addSectionsToDefinition(root->anchors);
- cd->setIsStatic(root->stat);
+ }
+ }
+ else // new class
+ {
+
+ ClassDef::CompoundType sec=ClassDef::Class;
+ switch(root->section)
+ {
+ case Entry::UNION_SEC:
+ case Entry::UNIONDOC_SEC:
+ sec=ClassDef::Union; break;
+ case Entry::STRUCT_SEC:
+ case Entry::STRUCTDOC_SEC:
+ sec=ClassDef::Struct; break;
+ case Entry::INTERFACE_SEC:
+ case Entry::INTERFACEDOC_SEC:
+ sec=ClassDef::Interface; break;
+ case Entry::EXCEPTION_SEC:
+ case Entry::EXCEPTIONDOC_SEC:
+ sec=ClassDef::Exception; break;
+ }
+ Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d\n",
+ fullName.data(),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1);
+ QCString className;
+ QCString namespaceName;
+ extractNamespaceName(fullName,className,namespaceName);
- // file definition containing the class cd
- cd->setBodySegment(root->bodyLine,root->endBodyLine);
- cd->setBodyDef(fd);
- if (!root->subGrouping) cd->setSubGrouping(FALSE);
+ //printf("New class: namespace `%s' name=`%s'\n",className.data(),namespaceName.data());
- addClassToGroups(root,cd);
- cd->setRefItems(root->todoId,root->testId,root->bugId);
+ QCString tagName;
+ QCString refFileName;
+ if (root->tagInfo)
+ {
+ tagName = root->tagInfo->tagName;
+ refFileName = root->tagInfo->fileName;
+ }
+ ClassDef *cd=new ClassDef(root->fileName,root->startLine,fullName,sec,
+ tagName,refFileName);
+ cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
+ cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
+ //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data());
- // see if the class is found inside a namespace
- bool found=addNamespace(root,cd);
- cd->setFileDef(fd);
- if (cd->hasDocumentation())
- {
- addIncludeFile(cd,fd,root);
- }
+ ArgumentList *tArgList =
+ getTemplateArgumentsFromName(fullName,root->tArgLists);
+ //printf("class %s template args=%s\n",fullName.data(),
+ // tArgList ? tempArgListToString(tArgList).data() : "<none>");
+ cd->setTemplateArguments(tArgList);
+ cd->setProtection(root->protection);
+ cd->addSectionsToDefinition(root->anchors);
+ cd->setIsStatic(root->stat);
- // namespace is part of the class name
- if (!found && !namespaceName.isEmpty())
- {
- NamespaceDef *nd = getResolvedNamespace(namespaceName);
- if (nd)
- {
- cd->setNamespace(nd);
- nd->insertClass(cd);
- found=TRUE;
- }
- }
+ // file definition containing the class cd
+ cd->setBodySegment(root->bodyLine,root->endBodyLine);
+ cd->setBodyDef(fd);
+ if (!root->subGrouping) cd->setSubGrouping(FALSE);
- // if the class is not in a namespace then we insert
- // it in the file definition
- if (!found && fd && (root->section & Entry::COMPOUND_MASK))
- {
- //printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
- // cd->name().data(),
- // fd->name().data(),
- // root->fileName.data()
- // );
- fd->insertClass(cd);
- }
+ addClassToGroups(root,cd);
+ cd->setRefItems(root->todoId,root->testId,root->bugId);
- // the empty string test is needed for extract all case
- cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
- cd->insertUsedFile(root->fileName);
+ // see if the class is found inside a namespace
+ bool found=addNamespace(root,cd);
- // add class to the list
- //printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data());
- Doxygen::classSDict.append(fullName,cd);
+ cd->setFileDef(fd);
+ if (cd->hasDocumentation())
+ {
+ addIncludeFile(cd,fd,root);
+ }
- // also add class to the correct structural context
- Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName);
- if (d==0)
- {
- //warn(root->fileName,root->startLine,
- // "Warning: Internal inconsistency: scope for class %s not "
- // "found!\n",fullName.data()
- // );
- }
- else
+ // namespace is part of the class name
+ if (!found && !namespaceName.isEmpty())
+ {
+ NamespaceDef *nd = getResolvedNamespace(namespaceName);
+ if (nd)
{
- //printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data());
- d->addInnerCompound(cd);
- cd->setOuterScope(d);
+ cd->setNamespace(nd);
+ nd->insertClass(cd);
+ found=TRUE;
}
}
+
+ // if the class is not in a namespace then we insert
+ // it in the file definition
+ if (!found && fd && (root->section & Entry::COMPOUND_MASK))
+ {
+ //printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
+ // cd->name().data(),
+ // fd->name().data(),
+ // root->fileName.data()
+ // );
+ fd->insertClass(cd);
+ }
+
+ // the empty string test is needed for extract all case
+ cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
+ cd->insertUsedFile(root->fileName);
+
+ // add class to the list
+ //printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data());
+ Doxygen::classSDict.append(fullName,cd);
+
+ // also add class to the correct structural context
+ Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName);
+ if (d==0)
+ {
+ //warn(root->fileName,root->startLine,
+ // "Warning: Internal inconsistency: scope for class %s not "
+ // "found!\n",fullName.data()
+ // );
+ }
+ else
+ {
+ //printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data());
+ d->addInnerCompound(cd);
+ cd->setOuterScope(d);
+ }
+ }
+}
+
+//----------------------------------------------------------------------
+// build a list of all classes mentioned in the documentation
+// and all classes that have a documentation block before their definition.
+static void buildClassList(Entry *root)
+{
+ if (
+ (root->section & Entry::COMPOUND_MASK) && !root->name.isEmpty()
+ )
+ {
+ addClassToContext(root);
}
-error:
EntryListIterator eli(*root->sublist);
Entry *e;
for (;(e=eli.current());++eli)
@@ -775,18 +775,41 @@ error:
}
}
+static void buildClassDocList(Entry *root)
+{
+ if (
+ (root->section & Entry::COMPOUNDDOC_MASK) && !root->name.isEmpty()
+ )
+ {
+ addClassToContext(root);
+ }
+ EntryListIterator eli(*root->sublist);
+ Entry *e;
+ for (;(e=eli.current());++eli)
+ {
+ buildClassDocList(e);
+ }
+}
//----------------------------------------------------------------------
// build a list of all namespaces mentioned in the documentation
// and all namespaces that have a documentation block before their definition.
static void buildNamespaceList(Entry *root)
{
if (
- (root->section==Entry::NAMESPACE_SEC) ||
- (root->section==Entry::NAMESPACEDOC_SEC) &&
+ (root->section==Entry::NAMESPACE_SEC ||
+ root->section==Entry::NAMESPACEDOC_SEC ||
+ root->section==Entry::PACKAGEDOC_SEC
+ ) &&
!root->name.isEmpty()
)
{
- QCString fullName=stripAnonymousNamespaceScope(root->name.copy());
+ QCString fullName = root->name;
+ if (root->section==Entry::PACKAGEDOC_SEC)
+ {
+ fullName=substitute(fullName,".","::");
+ }
+
+ fullName = stripAnonymousNamespaceScope(fullName);
if (!fullName.isEmpty())
{
//printf("Found namespace %s in %s at line %d\n",root->name.data(),
@@ -5564,50 +5587,50 @@ static void findMainPage(Entry *root)
//----------------------------------------------------------------------------
-/*! Search for all Java package statements
- */
-static void buildPackageList(Entry *root)
-{
- if (root->section == Entry::PACKAGE_SEC || root->section == Entry::PACKAGEDOC_SEC && !root->name.isEmpty())
- {
- PackageDef *pd=0;
- if ((pd=Doxygen::packageDict.find(root->name))==0)
- {
- QCString tagName;
- if (root->tagInfo)
- {
- tagName=root->tagInfo->tagName;
- }
- pd = new PackageDef(root->fileName,root->startLine,root->name,tagName);
- Doxygen::packageDict.inSort(root->name,pd);
- pd->setDocumentation(root->doc,root->docFile,root->docLine);
- pd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
- }
- else
- {
- if (!pd->documentation() && !root->doc.isEmpty())
- {
- pd->setDocumentation(root->doc,root->docFile,root->docLine);
- }
- if (!pd->briefDescription() && !root->brief.isEmpty())
- {
- pd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
- }
- }
- bool ambig;
- FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
- if (fd)
- {
- fd->setPackageDef(pd);
- }
- }
- EntryListIterator eli(*root->sublist);
- Entry *e;
- for (;(e=eli.current());++eli)
- {
- buildPackageList(e);
- }
-}
+///*! Search for all Java package statements
+// */
+//static void buildPackageList(Entry *root)
+//{
+// if (root->section == Entry::PACKAGE_SEC || root->section == Entry::PACKAGEDOC_SEC && !root->name.isEmpty())
+// {
+// PackageDef *pd=0;
+// if ((pd=Doxygen::packageDict.find(root->name))==0)
+// {
+// QCString tagName;
+// if (root->tagInfo)
+// {
+// tagName=root->tagInfo->tagName;
+// }
+// pd = new PackageDef(root->fileName,root->startLine,root->name,tagName);
+// Doxygen::packageDict.inSort(root->name,pd);
+// pd->setDocumentation(root->doc,root->docFile,root->docLine);
+// pd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
+// }
+// else
+// {
+// if (!pd->documentation() && !root->doc.isEmpty())
+// {
+// pd->setDocumentation(root->doc,root->docFile,root->docLine);
+// }
+// if (!pd->briefDescription() && !root->brief.isEmpty())
+// {
+// pd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
+// }
+// }
+// bool ambig;
+// FileDef *fd=findFileDef(Doxygen::inputNameDict,root->fileName,ambig);
+// if (fd)
+// {
+// fd->setPackageDef(pd);
+// }
+// }
+// EntryListIterator eli(*root->sublist);
+// Entry *e;
+// for (;(e=eli.current());++eli)
+// {
+// buildPackageList(e);
+// }
+//}
//----------------------------------------------------------------------------
@@ -5814,20 +5837,20 @@ static void generateGroupDocs()
//----------------------------------------------------------------------------
-static void generatePackageDocs()
-{
- writePackageIndex(*outputList);
-
- if (Doxygen::packageDict.count()>0)
- {
- PackageSDict::Iterator pdi(Doxygen::packageDict);
- PackageDef *pd;
- for (pdi.toFirst();(pd=pdi.current());++pdi)
- {
- pd->writeDocumentation(*outputList);
- }
- }
-}
+//static void generatePackageDocs()
+//{
+// writePackageIndex(*outputList);
+//
+// if (Doxygen::packageDict.count()>0)
+// {
+// PackageSDict::Iterator pdi(Doxygen::packageDict);
+// PackageDef *pd;
+// for (pdi.toFirst();(pd=pdi.current());++pdi)
+// {
+// pd->writeDocumentation(*outputList);
+// }
+// }
+//}
//----------------------------------------------------------------------------
// generate module pages
@@ -7220,6 +7243,7 @@ void parseInput()
msg("Building class list...\n");
buildClassList(root);
+ buildClassDocList(root);
findUsingDeclarations(root);
msg("Building example list...\n");
@@ -7268,8 +7292,8 @@ void parseInput()
msg("Building page list...\n");
buildPageList(root);
- msg("Building package list...\n");
- buildPackageList(root);
+ //msg("Building package list...\n");
+ //buildPackageList(root);
msg("Search for main page...\n");
findMainPage(root);
@@ -7425,9 +7449,9 @@ void generateOutput()
msg("Generating group index...\n");
writeGroupIndex(*outputList);
-
- msg("Generating package index...\n");
- generatePackageDocs();
+
+ //msg("Generating package index...\n");
+ //generatePackageDocs();
msg("Generating example index...\n");
writeExampleIndex(*outputList);
diff --git a/src/htmlgen.h b/src/htmlgen.h
index 5e08a92..2ad8c2b 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -124,6 +124,8 @@ class HtmlGenerator : public OutputGenerator
void endCodeFragment() { t << "</pre></div>"; }
void startPreFragment() { t << "<pre>"; }
void endPreFragment() { t << "</pre>"; }
+ void startVerbatimFragment() { t << "<div class=\"fragment\"><pre>"; }
+ void endVerbatimFragment() { t << "</pre></div>"; }
void writeLineNumber(const char *,const char *,const char *,int);
void startCodeLine() { col=0; }
void endCodeLine() { codify("\n"); }
diff --git a/src/index.cpp b/src/index.cpp
index 2720545..534cd42 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -1230,48 +1230,48 @@ void writeAnnotatedClassList(OutputList &ol)
//----------------------------------------------------------------------------
// OBSOLETE
-void writePackageList(OutputList &ol)
-{
- bool &generateHtml = Config_getBool("GENERATE_HTML") ;
- bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
- bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
- ol.startIndexList();
- PackageSDict::Iterator pdi(Doxygen::packageDict);
- PackageDef *pd;
- for (;(pd=pdi.current());++pdi)
- {
- if (!pd->isReference())
- {
- //ol.writeStartAnnoItem("package",pd->getOutputFileBase(),0,pd->name());
- ol.startIndexKey();
- ol.writeObjectLink(0,pd->getOutputFileBase(),0,pd->name());
- ol.endIndexKey();
- bool hasBrief = !pd->briefDescription().isEmpty();
- ol.startIndexValue(hasBrief);
- if (hasBrief)
- {
- //ol.docify(" (");
- parseDoc(ol,
- pd->getDefFileName(),pd->getDefLine(),
- pd->name(),0,
- abbreviate(pd->briefDescription(),pd->name()));
- //ol.docify(")");
- }
- ol.endIndexValue(pd->getOutputFileBase(),hasBrief);
-
- //ol.writeEndAnnoItem(pd->getOutputFileBase());
- if (hasHtmlHelp)
- {
- HtmlHelp::getInstance()->addContentsItem(FALSE,pd->name(),pd->getOutputFileBase());
- }
- if (hasFtvHelp)
- {
- FTVHelp::getInstance()->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase(),0,pd->name());
- }
- }
- }
- ol.endIndexList();
-}
+//void writePackageList(OutputList &ol)
+//{
+// bool &generateHtml = Config_getBool("GENERATE_HTML") ;
+// bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
+// bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
+// ol.startIndexList();
+// PackageSDict::Iterator pdi(Doxygen::packageDict);
+// PackageDef *pd;
+// for (;(pd=pdi.current());++pdi)
+// {
+// if (!pd->isReference())
+// {
+// //ol.writeStartAnnoItem("package",pd->getOutputFileBase(),0,pd->name());
+// ol.startIndexKey();
+// ol.writeObjectLink(0,pd->getOutputFileBase(),0,pd->name());
+// ol.endIndexKey();
+// bool hasBrief = !pd->briefDescription().isEmpty();
+// ol.startIndexValue(hasBrief);
+// if (hasBrief)
+// {
+// //ol.docify(" (");
+// parseDoc(ol,
+// pd->getDefFileName(),pd->getDefLine(),
+// pd->name(),0,
+// abbreviate(pd->briefDescription(),pd->name()));
+// //ol.docify(")");
+// }
+// ol.endIndexValue(pd->getOutputFileBase(),hasBrief);
+//
+// //ol.writeEndAnnoItem(pd->getOutputFileBase());
+// if (hasHtmlHelp)
+// {
+// HtmlHelp::getInstance()->addContentsItem(FALSE,pd->name(),pd->getOutputFileBase());
+// }
+// if (hasFtvHelp)
+// {
+// FTVHelp::getInstance()->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase(),0,pd->name());
+// }
+// }
+// }
+// ol.endIndexList();
+//}
//----------------------------------------------------------------------------
@@ -1496,54 +1496,54 @@ void writeAnnotatedIndex(OutputList &ol)
//----------------------------------------------------------------------------
-void writePackageIndex(OutputList &ol)
-{
- bool &generateHtml = Config_getBool("GENERATE_HTML") ;
- bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
- bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
-
- if (documentedPackages==0) return;
-
- ol.pushGeneratorState();
- ol.disable(OutputGenerator::Man);
- startFile(ol,"packages",0,"Package Index");
- startTitle(ol,0);
- QCString title = theTranslator->trPackageList();
- QCString htmlHelpTitle = title;
- QCString ftvHelpTitle = title;
- if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
- parseText(ol,title);
- endTitle(ol,0,0);
- ol.startTextBlock();
- HtmlHelp *htmlHelp = 0;
- FTVHelp *ftvHelp = 0;
- if (hasHtmlHelp)
- {
- htmlHelp = HtmlHelp::getInstance();
- htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"packages");
- htmlHelp->incContentsDepth();
- }
- if (hasFtvHelp)
- {
- ftvHelp = FTVHelp::getInstance();
- ftvHelp->addContentsItem(TRUE,0,"packages",0,ftvHelpTitle);
- ftvHelp->incContentsDepth();
- }
- parseText(ol,theTranslator->trPackageListDescription());
- ol.endTextBlock();
- writePackageList(ol);
- if (hasHtmlHelp)
- {
- htmlHelp->decContentsDepth();
- }
- if (hasFtvHelp)
- {
- ftvHelp->decContentsDepth();
- }
-
- endFile(ol);
- ol.popGeneratorState();
-}
+//void writePackageIndex(OutputList &ol)
+//{
+// bool &generateHtml = Config_getBool("GENERATE_HTML") ;
+// bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
+// bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
+//
+// if (documentedPackages==0) return;
+//
+// ol.pushGeneratorState();
+// ol.disable(OutputGenerator::Man);
+// startFile(ol,"packages",0,"Package Index");
+// startTitle(ol,0);
+// QCString title = theTranslator->trPackageList();
+// QCString htmlHelpTitle = title;
+// QCString ftvHelpTitle = title;
+// if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
+// parseText(ol,title);
+// endTitle(ol,0,0);
+// ol.startTextBlock();
+// HtmlHelp *htmlHelp = 0;
+// FTVHelp *ftvHelp = 0;
+// if (hasHtmlHelp)
+// {
+// htmlHelp = HtmlHelp::getInstance();
+// htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"packages");
+// htmlHelp->incContentsDepth();
+// }
+// if (hasFtvHelp)
+// {
+// ftvHelp = FTVHelp::getInstance();
+// ftvHelp->addContentsItem(TRUE,0,"packages",0,ftvHelpTitle);
+// ftvHelp->incContentsDepth();
+// }
+// parseText(ol,theTranslator->trPackageListDescription());
+// ol.endTextBlock();
+// writePackageList(ol);
+// if (hasHtmlHelp)
+// {
+// htmlHelp->decContentsDepth();
+// }
+// if (hasFtvHelp)
+// {
+// ftvHelp->decContentsDepth();
+// }
+//
+// endFile(ol);
+// ol.popGeneratorState();
+//}
//----------------------------------------------------------------------------
diff --git a/src/latexgen.h b/src/latexgen.h
index 2f4313f..e96acb8 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -122,6 +122,8 @@ class LatexGenerator : public OutputGenerator
void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl;
insidePre=FALSE;
}
+ void startVerbatimFragment() { t << endl << endl << "\\footnotesize\\begin{verbatim}"; }
+ void endVerbatimFragment() { t << "\\end{verbatim}\\normalsize " << endl; }
void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
void startCodeLine() { col=0; }
void endCodeLine() { codify("\n"); }
diff --git a/src/mangen.h b/src/mangen.h
index a1b30a4..ffca2a5 100644
--- a/src/mangen.h
+++ b/src/mangen.h
@@ -112,8 +112,10 @@ class ManGenerator : public OutputGenerator
void writeAnchor(const char *,const char *) {}
void startCodeFragment();
void endCodeFragment();
- void startPreFragment() { startCodeFragment(); }
- void endPreFragment() { endCodeFragment(); }
+ void startPreFragment() { startCodeFragment(); }
+ void endPreFragment() { endCodeFragment(); }
+ void startVerbatimFragment() { startCodeFragment(); }
+ void endVerbatimFragment() { endCodeFragment(); }
void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
void startCodeLine() {}
void endCodeLine() { codify("\n"); col=0; }
diff --git a/src/outputgen.h b/src/outputgen.h
index 2b963a4..2eecb44 100644
--- a/src/outputgen.h
+++ b/src/outputgen.h
@@ -163,11 +163,19 @@ class BaseOutputDocInterface
/*! Starts a fragment of preformatted text. This means that
* spacing, tabs and newlines should be kept in the output
*/
-
virtual void startPreFragment() = 0;
- /*! Ens a preformatted text fragment. */
-
+
+ /*! Ends a preformatted text fragment. */
virtual void endPreFragment() = 0;
+
+ /*! Starts a fragment of verbatim test. This is preformatted text,
+ * without any special internal structure.
+ */
+ virtual void startVerbatimFragment() = 0;
+
+ /*! Ends a verbatim text fragment. */
+ virtual void endVerbatimFragment() = 0;
+
/*! Writes a horizontal ruler to the output */
virtual void writeRuler() = 0;
diff --git a/src/outputlist.h b/src/outputlist.h
index 79e511b..3a6b71a 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -210,6 +210,10 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startPreFragment); }
void endPreFragment()
{ forall(&OutputGenerator::endPreFragment); }
+ void startVerbatimFragment()
+ { forall(&OutputGenerator::startVerbatimFragment); }
+ void endVerbatimFragment()
+ { forall(&OutputGenerator::endVerbatimFragment); }
void startCodeLine()
{ forall(&OutputGenerator::startCodeLine); }
void endCodeLine()
diff --git a/src/pre.l b/src/pre.l
index 1878f14..19694f2 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -1518,7 +1518,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_defVarArgs = FALSE;
if ( g_defName!=g_lastGuardName )
{ // define may appear in the output
- QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr;
+ QCString tmp=(QCString)"#define "+g_defName;
outputArray(tmp.data(),tmp.length());
g_quoteArg=FALSE;
BEGIN(DefineText);
@@ -1527,10 +1527,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
{
//printf("Found a guard %s\n",yytext);
Define *def=0;
- //if (g_includeStack.isEmpty())
- //{
- // addDefine();
- //}
+ if (g_includeStack.isEmpty())
+ {
+ addDefine();
+ }
if ((def=g_fileDefineDict->find(g_defName))==0)
{
g_fileDefineDict->insert(g_defName,newDefine());
@@ -1551,6 +1551,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
//printf("Error: define %s is defined more than once!\n",g_defName.data());
}
}
+ QCString tmp=(QCString)"#define "+g_defName;
+ outputArray(tmp.data(),tmp.length());
//outputChar('\n');
g_lastGuardName.resize(0);
BEGIN(Start);
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index ac777d6..3d70b3a 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -7,8 +7,8 @@
* Style sheet additions by Alexander Bartolich
*
* Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby
- * granted. No representations are made about the suitability of this software
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
@@ -57,7 +57,7 @@ static QCString documentType;
static QCString documentId;
static QCString keywords;
-// it is undocumented as far as I know, but
+// it is undocumented as far as I know, but
// "."'s in a bookmarkname are converted to "_"'s
// when an RTF file is read in...
static QCString formatBmkStr(const char *name)
@@ -72,11 +72,11 @@ static QCString formatBmkStr(const char *name)
switch(c)
{
case '.':
- // fall through
- case ':':
- *p='_';
+ // fall through
+ case ':':
+ *p='_';
break;
- default:
+ default:
break;
}
p++;
@@ -95,7 +95,7 @@ static QCString dateToRTFDateString()
const QDateTime &d = QDateTime::currentDateTime();
QCString result;
result.sprintf("\\yr%d\\mo%d\\dy%d\\hr%d\\min%d\\sec%d",
- d.date().year(), d.date().month(), d.date().day(),
+ d.date().year(), d.date().month(), d.date().day(),
d.time().hour(),d.time().minute(),d.time().second());
return result;
}
@@ -147,159 +147,159 @@ static const struct Rtf_Style_Default Rtf_Style_Default[] =
{
{ "Heading1",
"\\s1\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs36\\kerning36\\cgrid ",
- "\\sbasedon0 \\snext0 heading 1"
+ "\\sbasedon0 \\snext0 heading 1"
},
{ "Heading2",
"\\s2\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs28\\kerning28\\cgrid ",
- "\\sbasedon0 \\snext0 heading 2"
+ "\\sbasedon0 \\snext0 heading 2"
},
{ "Heading3",
"\\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid ",
- "\\sbasedon0 \\snext0 heading 3"
+ "\\sbasedon0 \\snext0 heading 3"
},
{ "Heading4",
"\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
- "\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font"
+ "\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font"
},
{ "Title",
"\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid ",
- "\\sbasedon0 \\snext15 Title"
+ "\\sbasedon0 \\snext15 Title"
},
{ "SubTitle",
"\\s16\\qc\\sa60\\widctlpar\\outlinelevel1\\adjustright \\f1\\cgrid ",
- "\\sbasedon0 \\snext16 Subtitle"
+ "\\sbasedon0 \\snext16 Subtitle"
},
{ "BodyText",
"\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid ",
- "\\sbasedon0 \\snext17 BodyText"
+ "\\sbasedon0 \\snext17 BodyText"
},
{ "DenseText",
"\\s18\\widctlpar\\fs22\\cgrid ",
- "\\sbasedon0 \\snext18 DenseText"
+ "\\sbasedon0 \\snext18 DenseText"
},
{ "Header",
"\\s28\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext28 header"
+ "\\sbasedon0 \\snext28 header"
},
{ "Footer",
"\\s29\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\qr\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext29 footer"
+ "\\sbasedon0 \\snext29 footer"
},
{ "GroupHeader",
"\\s30\\li360\\sa60\\sb120\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
- "\\sbasedon0 \\snext30 GroupHeader"
+ "\\sbasedon0 \\snext30 GroupHeader"
},
- { "CodeExample0",
+ { "CodeExample0",
"\\s40\\li0\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext41 Code Example 0"
+ "\\sbasedon0 \\snext41 Code Example 0"
},
- { "CodeExample1",
+ { "CodeExample1",
"\\s41\\li360\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext42 Code Example 1"
+ "\\sbasedon0 \\snext42 Code Example 1"
},
- { "CodeExample2",
+ { "CodeExample2",
"\\s42\\li720\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext43 Code Example 2"
+ "\\sbasedon0 \\snext43 Code Example 2"
},
- { "CodeExample3",
+ { "CodeExample3",
"\\s43\\li1080\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext44 Code Example 3"
+ "\\sbasedon0 \\snext44 Code Example 3"
},
- { "CodeExample4",
+ { "CodeExample4",
"\\s44\\li1440\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext45 Code Example 4"
+ "\\sbasedon0 \\snext45 Code Example 4"
},
- { "CodeExample5",
+ { "CodeExample5",
"\\s45\\li1800\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext46 Code Example 5"
+ "\\sbasedon0 \\snext46 Code Example 5"
},
- { "CodeExample6",
+ { "CodeExample6",
"\\s46\\li2160\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext47 Code Example 6"
+ "\\sbasedon0 \\snext47 Code Example 6"
},
- { "CodeExample7",
+ { "CodeExample7",
"\\s47\\li2520\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext48 Code Example 7"
+ "\\sbasedon0 \\snext48 Code Example 7"
},
- { "CodeExample8",
+ { "CodeExample8",
"\\s48\\li2880\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext49 Code Example 8"
+ "\\sbasedon0 \\snext49 Code Example 8"
},
{ "CodeExample9",
"\\s49\\li3240\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid ",
- "\\sbasedon0 \\snext49 Code Example 9"
+ "\\sbasedon0 \\snext49 Code Example 9"
},
{ "ListContinue0",
"\\s50\\li0\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext51 List Continue 0"
+ "\\sbasedon0 \\snext51 List Continue 0"
},
- { "ListContinue1",
+ { "ListContinue1",
"\\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext52 List Continue 1"
+ "\\sbasedon0 \\snext52 List Continue 1"
},
- { "ListContinue2",
+ { "ListContinue2",
"\\s52\\li720\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext53 List Continue 2"
+ "\\sbasedon0 \\snext53 List Continue 2"
},
- { "ListContinue3",
+ { "ListContinue3",
"\\s53\\li1080\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext54 List Continue 3"
+ "\\sbasedon0 \\snext54 List Continue 3"
},
- { "ListContinue4",
+ { "ListContinue4",
"\\s54\\li1440\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext55 List Continue 4"
+ "\\sbasedon0 \\snext55 List Continue 4"
},
- { "ListContinue5",
+ { "ListContinue5",
"\\s55\\li1800\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext56 List Continue 5"
+ "\\sbasedon0 \\snext56 List Continue 5"
},
- { "ListContinue6",
+ { "ListContinue6",
"\\s56\\li2160\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext57 List Continue 6"
+ "\\sbasedon0 \\snext57 List Continue 6"
},
- { "ListContinue7",
+ { "ListContinue7",
"\\s57\\li2520\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext58 List Continue 7"
+ "\\sbasedon0 \\snext58 List Continue 7"
},
- { "ListContinue8",
+ { "ListContinue8",
"\\s58\\li2880\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext59 List Continue 8"
+ "\\sbasedon0 \\snext59 List Continue 8"
},
- { "ListContinue9",
+ { "ListContinue9",
"\\s59\\li3240\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext59 List Continue 9"
+ "\\sbasedon0 \\snext59 List Continue 9"
},
{ "DescContinue0",
"\\s60\\li0\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext61 DescContinue 0"
+ "\\sbasedon0 \\snext61 DescContinue 0"
},
- { "DescContinue1",
+ { "DescContinue1",
"\\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext62 DescContinue 1"
+ "\\sbasedon0 \\snext62 DescContinue 1"
},
{ "DescContinue2",
"\\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext63 DescContinue 2"
+ "\\sbasedon0 \\snext63 DescContinue 2"
},
{ "DescContinue3",
"\\s63\\li1080\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext64 DescContinue 3"
+ "\\sbasedon0 \\snext64 DescContinue 3"
},
{ "DescContinue4",
"\\s64\\li1440\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext65 DescContinue 4"
+ "\\sbasedon0 \\snext65 DescContinue 4"
},
{ "DescContinue5",
"\\s65\\li1800\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext66 DescContinue 5"
+ "\\sbasedon0 \\snext66 DescContinue 5"
},
{ "DescContinue6",
"\\s66\\li2160\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext67 DescContinue 6"
+ "\\sbasedon0 \\snext67 DescContinue 6"
},
{ "DescContinue7",
"\\s67\\li2520\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext68 DescContinue 7"
+ "\\sbasedon0 \\snext68 DescContinue 7"
},
{ "DescContinue8",
"\\s68\\li2880\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
@@ -307,127 +307,127 @@ static const struct Rtf_Style_Default Rtf_Style_Default[] =
},
{ "DescContinue9",
"\\s69\\li3240\\widctlpar\\ql\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext69 DescContinue 9"
+ "\\sbasedon0 \\snext69 DescContinue 9"
},
{ "LatexTOC0",
"\\s70\\li0\\sa30\\sb30\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext81 LatexTOC 0"
+ "\\sbasedon0 \\snext81 LatexTOC 0"
},
{ "LatexTOC1",
"\\s71\\li360\\sa27\\sb27\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext82 LatexTOC 1"
+ "\\sbasedon0 \\snext82 LatexTOC 1"
},
{ "LatexTOC2",
"\\s72\\li720\\sa24\\sb24\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext83 LatexTOC 2"
+ "\\sbasedon0 \\snext83 LatexTOC 2"
},
{ "LatexTOC3",
"\\s73\\li1080\\sa21\\sb21\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext84 LatexTOC 3"
+ "\\sbasedon0 \\snext84 LatexTOC 3"
},
{ "LatexTOC4",
"\\s74\\li1440\\sa18\\sb18\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext85 LatexTOC 4"
+ "\\sbasedon0 \\snext85 LatexTOC 4"
},
{ "LatexTOC5",
"\\s75\\li1800\\sa15\\sb15\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext86 LatexTOC 5"
+ "\\sbasedon0 \\snext86 LatexTOC 5"
},
{ "LatexTOC6",
"\\s76\\li2160\\sa12\\sb12\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext87 LatexTOC 6"
+ "\\sbasedon0 \\snext87 LatexTOC 6"
},
{ "LatexTOC7",
"\\s77\\li2520\\sa9\\sb9\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext88 LatexTOC 7"
+ "\\sbasedon0 \\snext88 LatexTOC 7"
},
{ "LatexTOC8",
"\\s78\\li2880\\sa6\\sb6\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext89 LatexTOC 8"
+ "\\sbasedon0 \\snext89 LatexTOC 8"
},
{ "LatexTOC9",
"\\s79\\li3240\\sa3\\sb3\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext89 LatexTOC 9"
+ "\\sbasedon0 \\snext89 LatexTOC 9"
},
{ "ListBullet0",
"\\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext81 \\sautoupd List Bullet 0"
+ "\\sbasedon0 \\snext81 \\sautoupd List Bullet 0"
},
- { "ListBullet1",
+ { "ListBullet1",
"\\s81\\fi-360\\li720\\widctlpar\\jclisttab\\tx720{\\*\\pn \\pnlvlbody\\ilvl0\\ls2\\pnrnot0\\pndec }\\ls2\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext82 \\sautoupd List Bullet 1"
+ "\\sbasedon0 \\snext82 \\sautoupd List Bullet 1"
},
{ "ListBullet2",
"\\s82\\fi-360\\li1080\\widctlpar\\jclisttab\\tx1080{\\*\\pn \\pnlvlbody\\ilvl0\\ls3\\pnrnot0\\pndec }\\ls3\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext83 \\sautoupd List Bullet 2"
+ "\\sbasedon0 \\snext83 \\sautoupd List Bullet 2"
},
{ "ListBullet3",
"\\s83\\fi-360\\li1440\\widctlpar\\jclisttab\\tx1440{\\*\\pn \\pnlvlbody\\ilvl0\\ls4\\pnrnot0\\pndec }\\ls4\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext84 \\sautoupd List Bullet 3"
+ "\\sbasedon0 \\snext84 \\sautoupd List Bullet 3"
},
{ "ListBullet4",
"\\s84\\fi-360\\li1800\\widctlpar\\jclisttab\\tx1800{\\*\\pn \\pnlvlbody\\ilvl0\\ls5\\pnrnot0\\pndec }\\ls5\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext85 \\sautoupd List Bullet 4"
+ "\\sbasedon0 \\snext85 \\sautoupd List Bullet 4"
},
{ "ListBullet5",
"\\s85\\fi-360\\li2160\\widctlpar\\jclisttab\\tx2160{\\*\\pn \\pnlvlbody\\ilvl0\\ls6\\pnrnot0\\pndec }\\ls6\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext86 \\sautoupd List Bullet 5"
+ "\\sbasedon0 \\snext86 \\sautoupd List Bullet 5"
},
{ "ListBullet6",
"\\s86\\fi-360\\li2520\\widctlpar\\jclisttab\\tx2520{\\*\\pn \\pnlvlbody\\ilvl0\\ls7\\pnrnot0\\pndec }\\ls7\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext87 \\sautoupd List Bullet 6"
+ "\\sbasedon0 \\snext87 \\sautoupd List Bullet 6"
},
{ "ListBullet7",
"\\s87\\fi-360\\li2880\\widctlpar\\jclisttab\\tx2880{\\*\\pn \\pnlvlbody\\ilvl0\\ls8\\pnrnot0\\pndec }\\ls8\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext88 \\sautoupd List Bullet 7"
+ "\\sbasedon0 \\snext88 \\sautoupd List Bullet 7"
},
{ "ListBullet8",
"\\s88\\fi-360\\li3240\\widctlpar\\jclisttab\\tx3240{\\*\\pn \\pnlvlbody\\ilvl0\\ls9\\pnrnot0\\pndec }\\ls9\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext89 \\sautoupd List Bullet 8"
+ "\\sbasedon0 \\snext89 \\sautoupd List Bullet 8"
},
{ "ListBullet9",
"\\s89\\fi-360\\li3600\\widctlpar\\jclisttab\\tx3600{\\*\\pn \\pnlvlbody\\ilvl0\\ls10\\pnrnot0\\pndec }\\ls10\\adjustright \\fs20\\cgrid ",
- "\\sbasedon0 \\snext89 \\sautoupd List Bullet 9"
+ "\\sbasedon0 \\snext89 \\sautoupd List Bullet 9"
},
{ "ListEnum0",
"\\s90\\fi-360\\li360\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext91 \\sautoupd List Enum 0"
+ "\\sbasedon0 \\snext91 \\sautoupd List Enum 0"
},
{ "ListEnum1",
"\\s91\\fi-360\\li720\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext92 \\sautoupd List Enum 1"
+ "\\sbasedon0 \\snext92 \\sautoupd List Enum 1"
},
{ "ListEnum2",
"\\s92\\fi-360\\li1080\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext93 \\sautoupd List Enum 2"
+ "\\sbasedon0 \\snext93 \\sautoupd List Enum 2"
},
{ "ListEnum3",
"\\s93\\fi-360\\li1440\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext94 \\sautoupd List Enum 3"
+ "\\sbasedon0 \\snext94 \\sautoupd List Enum 3"
},
{ "ListEnum4",
"\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext95 \\sautoupd List Enum 4"
+ "\\sbasedon0 \\snext95 \\sautoupd List Enum 4"
},
{ "ListEnum5",
"\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext96 \\sautoupd List Enum 5"
+ "\\sbasedon0 \\snext96 \\sautoupd List Enum 5"
},
{ "ListEnum6",
"\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext96 \\sautoupd List Enum 5"
+ "\\sbasedon0 \\snext96 \\sautoupd List Enum 5"
},
{ "ListEnum7",
"\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext98 \\sautoupd List Enum 7"
+ "\\sbasedon0 \\snext98 \\sautoupd List Enum 7"
},
{ "ListEnum8",
"\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext99 \\sautoupd List Enum 8"
+ "\\sbasedon0 \\snext99 \\sautoupd List Enum 8"
},
{ "ListEnum9",
"\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid ",
- "\\sbasedon0 \\snext99 \\sautoupd List Enum 9"
+ "\\sbasedon0 \\snext99 \\sautoupd List Enum 9"
},
{ 0,
0,
@@ -441,7 +441,7 @@ void RTFGenerator::writeStyleSheetFile(QFile &file)
t << "# Generated by doxygen " << versionString << "\n\n";
t << "# This file describes styles used for generating RTF output.\n";
t << "# All text after a hash (#) is considered a comment and will be ignored.\n";
- t << "# Remove a hash to activate a line.\n\n";
+ t << "# Remove a hash to activate a line.\n\n";
int i;
for (i=0;Rtf_Style_Default[i].reference!=0;i++)
@@ -497,7 +497,7 @@ bool StyleData::setStyle(const char* s, const char* styleName)
{
static const QRegExp subgroup("^{[^}]*}\\s*");
static const QRegExp any_clause("^\\\\[a-z][a-z0-9-]*\\s*");
-
+
int len;
int start = s_clause.match(s, 0, &len);
if (start < 0)
@@ -578,7 +578,7 @@ static void loadStylesheet(const char *name, QDict<StyleData>& dict)
int sepStart = separator.match(s,0,&sepLength);
if (sepStart<=0) // no valid assignment statement
{
- warn(name,lineNr,"Assignment of style sheet name expected!\n");
+ warn(name,lineNr,"Assignment of style sheet name expected!\n");
continue;
}
QCString key=s.left(sepStart);
@@ -608,7 +608,7 @@ void RTFGenerator::writeExtensionsFile(QFile &file)
t << "# Generated by doxygen " << versionString << "\n\n";
t << "# This file describes extensions used for generating RTF output.\n";
t << "# All text after a hash (#) is considered a comment and will be ignored.\n";
- t << "# Remove a hash to activate a line.\n\n";
+ t << "# Remove a hash to activate a line.\n\n";
t << "# Overrides the project title.\n";
@@ -686,7 +686,7 @@ static void loadExtensions(const char *name)
QCString key=s.left(sepStart);
QCString data=s.data() + sepStart + sepLength;
- if (key == "Title") title = data.data();
+ if (key == "Title") title = data.data();
if (key == "Subject") subject = data.data();
if (key == "Comments") comments = data.data();
if (key == "Company") company = data.data();
@@ -711,7 +711,7 @@ void RTFGenerator::init()
exit(1);
}
Rtf_Style.setAutoDelete(TRUE);
-
+
// first duplicate strings of Rtf_Style_Default
const struct Rtf_Style_Default* def = Rtf_Style_Default;
while(def->reference != 0)
@@ -794,20 +794,20 @@ void RTFGenerator::beginRTFDocument()
for(; (style = iter.current()); ++iter)
{
unsigned index = style->index;
- unsigned size = array.size();
+ unsigned size = array.size();
if (index >= size)
- {
+ {
// +1 to add at least one element, then align up to multiple of 8
array.resize((index + 1 + 7) & ~7);
array.fill(0, size);
ASSERT(index < array.size());
- }
+ }
if (array.at(index) != 0)
{
QCString key(convertToQCString(iter.currentKey()));
msg("Style '%s' redefines \\s%d.\n", key.data(), index);
}
- array.at(index) = style;
+ array.at(index) = style;
}
// write array elements
@@ -834,7 +834,7 @@ void RTFGenerator::beginRTFChapter()
// if we are compact, no extra page breaks...
if (Config_getBool("COMPACT_RTF"))
{
- // t <<"\\sect\\sectd\\sbknone\n";
+ // t <<"\\sect\\sectd\\sbknone\n";
t <<"\\sect\\sbknone\n";
RtfwriteRuler_thick();
}
@@ -854,7 +854,7 @@ void RTFGenerator::beginRTFSection()
// if we are compact, no extra page breaks...
if (Config_getBool("COMPACT_RTF"))
{
- // t <<"\\sect\\sectd\\sbknone\n";
+ // t <<"\\sect\\sectd\\sbknone\n";
t <<"\\sect\\sbknone\n";
RtfwriteRuler_emboss();
}
@@ -888,7 +888,7 @@ void RTFGenerator::startProjectNumber()
t << " ";
}
-void RTFGenerator::endProjectNumber()
+void RTFGenerator::endProjectNumber()
{
}
@@ -912,7 +912,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
if (subject) t << "{\\subject " << subject << "}\n";
if (comments) t << "{\\comment " << comments << "}\n";
if (company) t << "{\\company " << company << "}\n";
- if (author) t << "{\\author " << author << "}\n";
+ if (author) t << "{\\author " << author << "}\n";
if (manager) t << "{\\manager " << manager << "}\n";
if (documentType) t << "{\\category " << documentType << "}\n";
if (keywords) t << "{\\keywords " << keywords << "}\n";
@@ -932,7 +932,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
break;
case isNamespaceIndex:
//Namespace Index
- beginRTFChapter();
+ beginRTFChapter();
break;
case isClassHierarchyIndex:
//Hierarchical Index
@@ -995,7 +995,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
beginRTFChapter();
found=TRUE;
}
- }
+ }
}
break;
case isClassDocumentation:
@@ -1028,7 +1028,7 @@ void RTFGenerator::startIndexSection(IndexSections is)
{
if (isFirst)
{
- beginRTFChapter();
+ beginRTFChapter();
isFirst=FALSE;
break;
}
@@ -1107,7 +1107,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << documentId << "\\par\n";
}
t << "\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\n";
-
+
t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to subtitle style
t << "{\\field\\fldedit {\\*\\fldinst AUTHOR \\\\*MERGEFORMAT}{\\fldrslt AUTHOR}}\\par" << endl;
t << "Version " << Config_getString("PROJECT_NUMBER") << "\\par";
@@ -1257,7 +1257,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
t << cd->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
- }
+ }
}
}
break;
@@ -1345,7 +1345,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
}
break;
case isEndIndex:
- beginRTFChapter();
+ beginRTFChapter();
t << Rtf_Style["Heading1"]->reference;
t << theTranslator->trRTFGeneralIndex() << "\\par "<< endl;
t << Rtf_Style_Reset << endl;
@@ -1385,8 +1385,8 @@ void RTFGenerator::writeString(const char *text)
t << text;
}
-void RTFGenerator::startIndexList()
-{
+void RTFGenerator::startIndexList()
+{
DBG_RTF(t << "{\\comment (startIndexList)}" << endl)
t << "{" << endl;
incrementIndentLevel();
@@ -1396,7 +1396,7 @@ void RTFGenerator::startIndexList()
}
void RTFGenerator::endIndexList()
-{
+{
DBG_RTF(t << "{\\comment (endIndexList)}" << endl)
newParagraph();
t << "}";
@@ -1405,8 +1405,8 @@ void RTFGenerator::endIndexList()
}
/*! start bullet list */
-void RTFGenerator::startItemList()
-{
+void RTFGenerator::startItemList()
+{
DBG_RTF(t << "{\\comment (startItemList level=" << m_listLevel << ") }" << endl)
t << "{";
incrementIndentLevel();
@@ -1414,8 +1414,8 @@ void RTFGenerator::startItemList()
}
/*! end bullet list */
-void RTFGenerator::endItemList()
-{
+void RTFGenerator::endItemList()
+{
newParagraph();
DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl)
t << "}";
@@ -1425,7 +1425,7 @@ void RTFGenerator::endItemList()
/*! start enumeration list */
void RTFGenerator::startEnumList() // starts an enumeration list
-{
+{
DBG_RTF(t << "{\\comment (startEnumList)}" << endl)
t << "{" << endl;
incrementIndentLevel();
@@ -1439,7 +1439,7 @@ void RTFGenerator::startEnumList() // starts an enumeration list
/*! end enumeration list */
void RTFGenerator::endEnumList()
-{
+{
newParagraph();
DBG_RTF(t << "{\\comment (endEnumList)}" << endl)
t << "}";
@@ -1480,7 +1480,7 @@ void RTFGenerator::writeIndexItem(const char *ref,const char *fn,
}
else
{
- t << endl;
+ t << endl;
}
newParagraph();
m_omitParagraph=TRUE;
@@ -1501,7 +1501,7 @@ void RTFGenerator::startHtmlLink(const char *url)
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << url;
t << "\" }{}";
- t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
+ t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
}
else
{
@@ -1539,7 +1539,7 @@ void RTFGenerator::writeStartAnnoItem(const char *,const char *f,
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(f);
t << "\" }{}";
- t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
+ t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
docify(name);
@@ -1547,7 +1547,7 @@ void RTFGenerator::writeStartAnnoItem(const char *,const char *f,
}
else
{
- docify(name);
+ docify(name);
}
t << "} ";
}
@@ -1563,13 +1563,13 @@ void RTFGenerator::writeEndAnnoItem(const char *name)
}
else
{
- t << endl;
+ t << endl;
}
newParagraph();
}
-void RTFGenerator::startIndexKey()
-{
+void RTFGenerator::startIndexKey()
+{
DBG_RTF(t << "{\\comment (startIndexKey)}" << endl)
t << "{\\b ";
}
@@ -1578,8 +1578,8 @@ void RTFGenerator::endIndexKey()
{
}
-void RTFGenerator::startIndexValue(bool hasBrief)
-{
+void RTFGenerator::startIndexValue(bool hasBrief)
+{
t << " ";
if (hasBrief) t << "(";
}
@@ -1597,13 +1597,13 @@ void RTFGenerator::endIndexValue(const char *name,bool hasBrief)
}
else
{
- t << endl;
+ t << endl;
}
newParagraph();
}
-void RTFGenerator::startSubsection()
-{
+void RTFGenerator::startSubsection()
+{
//beginRTFSubSection();
t <<"\n";
DBG_RTF(t << "{\\comment Begin SubSection}\n")
@@ -1611,13 +1611,13 @@ void RTFGenerator::startSubsection()
t << Rtf_Style["Heading3"]->reference << "\n";
}
-void RTFGenerator::endSubsection()
+void RTFGenerator::endSubsection()
{
newParagraph();
t << Rtf_Style_Reset << endl;
}
-void RTFGenerator::startSubsubsection()
+void RTFGenerator::startSubsubsection()
{
//beginRTFSubSubSection();
t << "\n";
@@ -1626,11 +1626,11 @@ void RTFGenerator::startSubsubsection()
t << Rtf_Style_Reset << Rtf_Style["Heading4"]->reference << "\n";
}
-void RTFGenerator::endSubsubsection()
-{
+void RTFGenerator::endSubsubsection()
+{
newParagraph();
t << "}" << endl;
-}
+}
//void RTFGenerator::writeClassLink(const char *,const char *,
@@ -1638,7 +1638,7 @@ void RTFGenerator::endSubsubsection()
//{
// t << "{\\bf ";
// docify(name);
-// t << "}";
+// t << "}";
//}
void RTFGenerator::startTextLink(const char *f,const char *anchor)
@@ -1659,7 +1659,7 @@ void RTFGenerator::startTextLink(const char *f,const char *anchor)
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(ref);
t << "\" }{}";
- t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
+ t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
}
}
@@ -1690,7 +1690,7 @@ void RTFGenerator::writeObjectLink(const char *ref, const char *f,
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(refName);
t << "\" }{}";
- t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
+ t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
docify(text);
@@ -1701,7 +1701,7 @@ void RTFGenerator::writeObjectLink(const char *ref, const char *f,
startBold();
docify(text);
endBold();
- }
+ }
}
void RTFGenerator::startPageRef()
@@ -1746,7 +1746,7 @@ void RTFGenerator::writeCodeLink(const char *ref,const char *f,
t << "{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
t << formatBmkStr(refName);
t << "\" }{}";
- t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
+ t << "}{\\fldrslt {\\cs37\\ul\\cf2 ";
codify(name);
@@ -1762,7 +1762,7 @@ void RTFGenerator::startTitleHead(const char *)
{
DBG_RTF(t <<"{\\comment startTitleHead}" << endl)
- // beginRTFSection();
+ // beginRTFSection();
t << Rtf_Style_Reset << Rtf_Style["Heading2"]->reference << endl;
}
@@ -1836,7 +1836,7 @@ void RTFGenerator::startMemberDoc(const char *clname,
t << endl;
}
-void RTFGenerator::endMemberDoc()
+void RTFGenerator::endMemberDoc()
{
DBG_RTF(t << "{\\comment endMemberDoc}" << endl)
t << "}" << endl;
@@ -1864,7 +1864,7 @@ void RTFGenerator::endDoxyAnchor(const char *fName,const char *anchor)
ref+='_';
ref+=anchor;
}
-
+
t << "{\\bkmkstart ";
t << formatBmkStr(ref);
t << "}" << endl;
@@ -1911,36 +1911,36 @@ void RTFGenerator::endIndent()
}
-void RTFGenerator::startDescription()
-{
+void RTFGenerator::startDescription()
+{
DBG_RTF(t << "{\\comment (startDescription)}" << endl)
t << "{" << endl;
t << Rtf_Style_Reset << Rtf_CList_DepthStyle();
}
-void RTFGenerator::endDescription()
-{
+void RTFGenerator::endDescription()
+{
DBG_RTF(t << "{\\comment (endDescription)}" << endl)
t << "}";
newParagraph();
}
void RTFGenerator::startDescItem()
-{
+{
newParagraph();
DBG_RTF(t << "{\\comment (startDescItem)}" << endl)
t << "{\\b ";
}
void RTFGenerator::endDescItem()
-{
+{
DBG_RTF(t << "{\\comment (endDescItem)}" << endl)
t << "}" << endl;
newParagraph();
}
-void RTFGenerator::startMemberDescription()
-{
+void RTFGenerator::startMemberDescription()
+{
DBG_RTF(t << "{\\comment (startMemberDescription)}" << endl)
t << "{" << endl;
incrementIndentLevel();
@@ -1949,7 +1949,7 @@ void RTFGenerator::startMemberDescription()
}
void RTFGenerator::endMemberDescription()
-{
+{
DBG_RTF(t << "{\\comment (endMemberDescription)}" << endl)
endEmphasis();
newParagraph();
@@ -1957,8 +1957,8 @@ void RTFGenerator::endMemberDescription()
t << "\\par}" << endl;
}
-void RTFGenerator::startDescList(SectionTypes)
-{
+void RTFGenerator::startDescList(SectionTypes)
+{
DBG_RTF(t << "{\\comment (startDescList)}" << endl)
t << "{"; // ends at endDescList
t << "{"; // ends at endDescTitle
@@ -1966,8 +1966,8 @@ void RTFGenerator::startDescList(SectionTypes)
newParagraph();
}
-void RTFGenerator::endDescTitle()
-{
+void RTFGenerator::endDescTitle()
+{
DBG_RTF(t << "{\\comment (endDescTitle) }" << endl)
endBold();
t << "}";
@@ -1981,7 +1981,7 @@ void RTFGenerator::writeDescItem()
DBG_RTF(t << "{\\comment (writeDescItem) }" << endl)
}
-void RTFGenerator::endDescList()
+void RTFGenerator::endDescList()
{
DBG_RTF(t << "{\\comment (endDescList)}" << endl)
newParagraph();
@@ -1990,8 +1990,8 @@ void RTFGenerator::endDescList()
t << "}";
}
-void RTFGenerator::startParamList(ParamListTypes)
-{
+void RTFGenerator::startParamList(ParamListTypes)
+{
DBG_RTF(t << "{\\comment (startParamList)}" << endl)
t << "{"; // ends at endParamList
t << "{"; // ends at endDescTitle
@@ -1999,7 +1999,7 @@ void RTFGenerator::startParamList(ParamListTypes)
newParagraph();
}
-void RTFGenerator::endParamList()
+void RTFGenerator::endParamList()
{
DBG_RTF(t << "{\\comment (endParamList)}" << endl)
newParagraph();
@@ -2076,6 +2076,14 @@ void RTFGenerator::writeSectionRefItem(const char *,const char *lab,
// writeSectionRef(name,lab,title);
//}
+char* RTFGenerator::getMultiByte(int c)
+{
+ static char s[10];
+
+ sprintf(s,"\\'%X",c);
+ return s;
+}
+
void RTFGenerator::docify(const char *str)
{
if (str)
@@ -2085,17 +2093,32 @@ void RTFGenerator::docify(const char *str)
unsigned char pc='\0';
while (*p)
{
+ static bool MultiByte = FALSE;
c=*p++;
- switch(c)
+
+ if ( MultiByte )
+ {
+ t << getMultiByte( c );
+ MultiByte = FALSE;
+ continue;
+ }
+ if ( c >= 0x80 )
+ {
+ MultiByte = TRUE;
+ t << getMultiByte( c );
+ continue;
+ }
+
+ switch (c)
{
case '{': t << "\\{"; break;
case '}': t << "\\}"; break;
- case '\\': t << "\\\\"; break;
- default:
- {
+ case '\\': t << "\\\\"; break;
+ default:
+ {
// see if we can insert an hyphenation hint
//if (isupper(c) && islower(pc) && !insideTabbing) t << "\\-";
- t << (char)c;
+ t << (char)c;
}
}
pc = c;
@@ -2110,26 +2133,43 @@ void RTFGenerator::codify(const char *str)
// nothing... add a "newParagraph()";
//static char spaces[]=" ";
if (str)
- {
- const char *p=str;
- char c;
+ {
+ const unsigned char *p=(const unsigned char *)str;
+ unsigned char c;
int spacesToNextTabStop;
+
while (*p)
{
+ static bool MultiByte = FALSE;
+
c=*p++;
+
+ if( MultiByte )
+ {
+ t << getMultiByte( c );
+ MultiByte = FALSE;
+ continue;
+ }
+ if( c >= 0x80 )
+ {
+ MultiByte = TRUE;
+ t << getMultiByte( c );
+ continue;
+ }
+
switch(c)
{
case '\t': spacesToNextTabStop = Config_getInt("TAB_SIZE") - (col%Config_getInt("TAB_SIZE"));
- t << spaces.left(spacesToNextTabStop);
+ t << spaces.left(spacesToNextTabStop);
col+=spacesToNextTabStop;
- break;
+ break;
case '\n': newParagraph();
t << '\n'; col=0;
break;
case '{': t << "\\{"; col++; break;
case '}': t << "\\}"; col++; break;
case '\\': t << "\\\\"; col++; break;
- default: t << c; col++; break;
+ default: t << (char)c; col++; break;
}
}
}
@@ -2169,20 +2209,20 @@ void RTFGenerator::writeFormula(const char *,const char *text)
t << text;
}
-void RTFGenerator::startMemberItem(int)
-{
+void RTFGenerator::startMemberItem(int)
+{
DBG_RTF(t <<"{\\comment startMemberItem }" << endl)
t << Rtf_Style_Reset << Rtf_BList_DepthStyle() << endl; // set style to apropriate depth
}
-void RTFGenerator::endMemberItem(bool)
+void RTFGenerator::endMemberItem(bool)
{
DBG_RTF(t <<"{\\comment endMemberItem }" << endl)
newParagraph();
}
-void RTFGenerator::writeAnchor(const char *fileName,const char *name)
-{
+void RTFGenerator::writeAnchor(const char *fileName,const char *name)
+{
t << "{\\bkmkstart ";
if (fileName) t << formatBmkStr(fileName);
if (fileName && name) t << "_";
@@ -2198,8 +2238,8 @@ void RTFGenerator::WriteRTFReference(const char *label)
t << " \\\\*MERGEFORMAT}{\\fldrslt pagenum}}";
}
-void RTFGenerator::startCodeFragment()
-{
+void RTFGenerator::startCodeFragment()
+{
t << "{" << endl;
newParagraph();
t << Rtf_Style_Reset << Rtf_Code_DepthStyle();
@@ -2207,7 +2247,7 @@ void RTFGenerator::startCodeFragment()
}
void RTFGenerator::endCodeFragment()
-{
+{
newParagraph();
//styleStack.pop();
//printf("RTFGenerator::endCodeFrament() top=%s\n",styleStack.top());
@@ -2217,30 +2257,30 @@ void RTFGenerator::endCodeFragment()
m_omitParagraph = TRUE;
}
-void RTFGenerator::writeNonBreakableSpace(int)
+void RTFGenerator::writeNonBreakableSpace(int)
{
t << "\\~ ";
}
-void RTFGenerator::startMemberList()
+void RTFGenerator::startMemberList()
{
t << endl;
DBG_RTF(t << "{\\comment (startMemberList) }" << endl)
t << "{" << endl;
#ifdef DELETEDCODE
if (!insideTabbing)
- t << "\\begin{CompactItemize}" << endl;
+ t << "\\begin{CompactItemize}" << endl;
#endif
}
-void RTFGenerator::endMemberList()
+void RTFGenerator::endMemberList()
{
DBG_RTF(t << "{\\comment (endMemberList) }" << endl)
t << "}" << endl;
#ifdef DELETEDCODE
if (!insideTabbing)
- t << "\\end{CompactItemize}" << endl;
+ t << "\\end{CompactItemize}" << endl;
#endif
}
@@ -2266,7 +2306,7 @@ void RTFGenerator::startDotFile(const char *name,bool)
int i;
if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
{
- baseName=baseName.right(baseName.length()-i-1);
+ baseName=baseName.right(baseName.length()-i-1);
}
QCString outName = Config_getString("RTF_OUTPUT")+
#ifdef _WIN32
@@ -2290,16 +2330,16 @@ void RTFGenerator::endDotFile(bool)
// not yet implemented
}
-void RTFGenerator::startDescTable()
-{
+void RTFGenerator::startDescTable()
+{
DBG_RTF(t << "{\\comment (startDescTable) }" << endl)
//t << "{" << endl;
//incrementIndentLevel();
//t << Rtf_Style_Reset << Rtf_CList_DepthStyle();
}
-void RTFGenerator::endDescTable()
-{
+void RTFGenerator::endDescTable()
+{
//decrementIndentLevel();
DBG_RTF(t << "{\\comment (endDescTable)}" << endl)
//t << "}" << endl;
@@ -2322,13 +2362,13 @@ void RTFGenerator::endDescTableTitle()
t << " ";
}
-void RTFGenerator::startDescTableData()
+void RTFGenerator::startDescTableData()
{
DBG_RTF(t << "{\\comment (startDescTableData) }" << endl)
m_omitParagraph=FALSE;
}
-void RTFGenerator::endDescTableData()
+void RTFGenerator::endDescTableData()
{
DBG_RTF(t << "{\\comment (endDescTableData) }" << endl)
newParagraph();
@@ -2340,9 +2380,9 @@ void RTFGenerator::endDescTableData()
void RTFGenerator::incrementIndentLevel()
{
m_listLevel++;
- if (m_listLevel>indentLevels-1)
+ if (m_listLevel>indentLevels-1)
{
- warn_cont("Warning: Maximum indent level (%d) exceeded while generating RTF output!\n",indentLevels);
+ warn_cont("Warning: Maximum indent level (%d) exceeded while generating RTF output!\n",indentLevels);
m_listLevel=indentLevels-1;
}
}
@@ -2350,7 +2390,7 @@ void RTFGenerator::incrementIndentLevel()
void RTFGenerator::decrementIndentLevel()
{
m_listLevel--;
- if (m_listLevel<0)
+ if (m_listLevel<0)
{
warn_cont("Warning: Negative indent level while generating RTF output!\n");
m_listLevel=0;
@@ -2371,14 +2411,14 @@ const char * RTFGenerator::Rtf_LCList_DepthStyle()
return Rtf_Style[n]->reference;
}
-// a style for list formatted as a "bullet" style
+// a style for list formatted as a "bullet" style
const char * RTFGenerator::Rtf_BList_DepthStyle()
{
QCString n=makeIndexName("ListBullet",m_listLevel);
return Rtf_Style[n]->reference;
}
-// a style for list formatted as a "enumeration" style
+// a style for list formatted as a "enumeration" style
const char * RTFGenerator::Rtf_EList_DepthStyle()
{
QCString n=makeIndexName("ListEnum",m_listLevel);
@@ -2563,7 +2603,7 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl
return FALSE;
}
- const int maxLineLength = 10240;
+ const int maxLineLength = 10240;
static QCString lineBuf(maxLineLength);
// scan until find end of header
@@ -2622,15 +2662,15 @@ static bool PreProcessFile(QDir &d,QCString &infName, QTextStream &t, bool bIncl
return TRUE;
}
-void RTFGenerator::startDotGraph()
+void RTFGenerator::startDotGraph()
{
}
-void RTFGenerator::endDotGraph(DotClassGraph &g)
+void RTFGenerator::endDotGraph(DotClassGraph &g)
{
newParagraph();
- QCString fileName =
+ QCString fileName =
g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),TRUE,FALSE);
// display the file
@@ -2642,11 +2682,11 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
t << "}" << endl;
}
-void RTFGenerator::startInclDepGraph()
+void RTFGenerator::startInclDepGraph()
{
}
-void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
+void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
{
newParagraph();
@@ -2678,7 +2718,7 @@ void testRTFOutput(const char *name)
{
c=f.getch();
if (c==-1) break;
- }
+ }
else if (c=='{') // open bracket
{
bcount++;
@@ -2707,15 +2747,15 @@ err:
/**
* This is an API to a VERY brittle RTF preprocessor that combines nested
- * RTF files. This version replaces the infile with the new file
+ * RTF files. This version replaces the infile with the new file
*/
bool RTFGenerator::preProcessFileInplace(const char *path,const char *name)
{
QDir d(path);
// store the original directory
- if (!d.exists())
- {
- err("Error: Output dir %s does not exist!\n",path);
+ if (!d.exists())
+ {
+ err("Error: Output dir %s does not exist!\n",path);
return FALSE;
}
QCString oldDir = convertToQCString(QDir::currentDirPath());
diff --git a/src/rtfgen.h b/src/rtfgen.h
index ceb22cc..ddf6e7b 100644
--- a/src/rtfgen.h
+++ b/src/rtfgen.h
@@ -112,8 +112,10 @@ class RTFGenerator : public OutputGenerator
void writeAnchor(const char *fileName,const char *name);
void startCodeFragment();
void endCodeFragment();
- void startPreFragment() { startCodeFragment(); }
- void endPreFragment() { endCodeFragment(); }
+ void startPreFragment() { startCodeFragment(); }
+ void endPreFragment() { endCodeFragment(); }
+ void startVerbatimFragment() { startVerbatimFragment(); }
+ void endVerbatimFragment() { endVerbatimFragment(); }
void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
void startCodeLine() { col=0; }
void endCodeLine() { lineBreak(); }
@@ -275,6 +277,7 @@ class RTFGenerator : public OutputGenerator
void RtfwriteRuler_thick() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; };
void RtfwriteRuler_thin() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; };
void WriteRTFReference(const char *label);
+ char *getMultiByte(int c);
};
#endif
diff --git a/src/scanner.l b/src/scanner.l
index be548f3..27c94ec 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -868,6 +868,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
lineCount();
BEGIN( CompoundName );
}
+<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class{" |
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class"{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::CLASS_SEC;
@@ -886,6 +887,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
// current->mtArgList = 0;
//}
lineCount() ;
+ if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ;
}
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct{" |
@@ -907,6 +909,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
// current->mtArgList = 0;
//}
lineCount() ;
+ if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ;
}
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"union{" |
@@ -919,6 +922,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->startLine = yyLineNr;
current->bodyLine = yyLineNr;
lineCount() ;
+ if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ;
}
<FindMembers>{B}*(("typedef"{BN}+)?)"enum{" |
@@ -931,6 +935,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->startLine = yyLineNr;
current->bodyLine = yyLineNr;
lineCount() ;
+ if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ;
}
<Operator>"("{BN}*")"{BN}*/"(" {
@@ -3622,6 +3627,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
insideFormula=FALSE;
BEGIN(lastFormulaContext);
}
+<ReadFormulaLong>\n { formulaText+=*yytext; }
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs();
diff --git a/src/translator_jp.h b/src/translator_jp.h
index 8f8df91..1d7fe84 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -1,37 +1,39 @@
/******************************************************************************
- *
- *
- *
- * Copyright (C) 1997-2000 by Dimitri van Heesch.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby
- * granted. No representations are made about the suitability of this software
- * for any purpose. It is provided "as is" without express or implied warranty.
- * See the GNU General Public License for more details.
- *
- * Documents produced by Doxygen are derivative works derived from the
- * input used in their production; they are not affected by this license.
- *
- */
+*
+*
+*
+* Copyright (C) 1997-2000 by Dimitri van Heesch.
+*
+* Permission to use, copy, modify, and distribute this software and its
+* documentation under the terms of the GNU General Public License is hereby
+* granted. No representations are made about the suitability of this
+software
+* for any purpose. It is provided "as is" without express or implied
+warranty.
+* See the GNU General Public License for more details.
+*
+* Documents produced by Doxygen are derivative works derived from the
+* input used in their production; they are not affected by this license.
+*
+*/
/*
- * translator_jp.h
- *
- * 1.2.5)
- * First Translation
- * by Kenji Nagamatsu
- * 1.2.12)
- * Update and Shift-Jis(_WIN32)
- * by Ryunosuke Sato (30-Dec-2001)
- */
+* translator_jp.h
+*
+* 1.2.5)
+* First Translation
+* by Kenji Nagamatsu
+* 1.2.12)
+* Update and Shift-Jis(_WIN32)
+* by Ryunosuke Sato (30-Dec-2001)
+*/
#ifndef TRANSLATOR_JP_H
#define TRANSLATOR_JP_H
class TranslatorJapanese : public Translator
{
- private:
+private:
/*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput)
{
@@ -46,7 +48,7 @@ class TranslatorJapanese : public Translator
{ return "japanese"; }
virtual QCString latexLanguageSupportCommand()
{
- return "";
+ return "";
}
/*! returns the name of the package that is included by LaTeX */
virtual QCString idLanguageCharset()
@@ -58,7 +60,8 @@ class TranslatorJapanese : public Translator
#endif
}
- /*! used in the compound documentation before a list of related functions. */
+ /*! used in the compound documentation before a list of related
+functions. */
virtual QCString trRelatedFunctions()
{ return decode("関連する関数"); }
@@ -66,55 +69,57 @@ class TranslatorJapanese : public Translator
virtual QCString trRelatedSubscript()
{ return decode("(これらはメンバ関数でないことに注意)"); }
- /*! header that is put before the detailed description of files, classes and namespaces. */
+ /*! header that is put before the detailed description of files, classes
+and namespaces. */
virtual QCString trDetailedDescription()
{ return decode("解説"); }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
- { return decode("メンバ型定義の解説"); }
-
+ { return decode("Typedefメンバの解説"); }
+
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
- { return decode("メンバ列挙型の解説"); }
-
+ { return decode("Enumメンバの解説"); }
+
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
- { return decode("メンバ関数の解説"); }
-
+ { return decode("関数メンバの解説"); }
+
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
- {
+ {
if( Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("構造体の解説");
- }
+ {
+ return decode("構造体の解説");
+ }
else
- {
- return decode("メンバの解説");
- }
+ {
+ return decode("メンバの解説");
+ }
}
/*! this is the text of a link put after brief descriptions. */
virtual QCString trMore()
- { return decode("より詳しく..."); }
+ { return decode("[詳細]"); }
/*! put in the class documentation */
virtual QCString trListOfAllMembers()
- { return decode("すべてのメンバ一覧"); }
+ { return decode("メンバ一覧"); }
/*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
{ return decode("メンバ一覧"); }
- /*! this is the first part of a sentence that is followed by a class name */
+ /*! this is the first part of a sentence that is followed by a class
+name */
virtual QCString trThisIsTheListOfAllMembers()
- { return decode("これは全メンバの一覧です。"); }
+ { return decode("これはメンバの一覧です。"); }
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
{ return decode("継承メンバもすべて含んでいます。"); }
-
+
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
@@ -127,73 +132,77 @@ class TranslatorJapanese : public Translator
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
- { return decode("列挙型"); }
-
+ { return decode("Enum"); }
+
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
- { return decode("列挙値"); }
-
+ { return decode("Enum値"); }
+
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
{ return decode("次で定義されています。"); }
// quick reference sections
- /*! This is put above each page as a link to the list of all groups of
+ /*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command).
*/
virtual QCString trModules()
{ return decode("モジュール"); }
-
+
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
{ return decode("クラス階層"); }
-
- /*! This is put above each page as a link to the list of annotated classes */
+
+ /*! This is put above each page as a link to the list of annotated
+classes */
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データ構造");
- }
+ {
+ return decode("データ構造");
+ }
else
- {
- return decode("構成");
- }
+ {
+ return decode("構成");
+ }
}
-
- /*! This is put above each page as a link to the list of documented files */
+
+ /*! This is put above each page as a link to the list of documented
+files */
virtual QCString trFileList()
{ return decode("ファイル一覧"); }
- /*! This is put above each page as a link to the list of all verbatim headers */
+ /*! This is put above each page as a link to the list of all verbatim
+headers */
virtual QCString trHeaderFiles()
{ return decode("ヘッダファイル"); }
- /*! This is put above each page as a link to all members of compounds. */
+ /*! This is put above each page as a link to all members of compounds.
+*/
virtual QCString trCompoundMembers()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データフィールド");
- }
+ {
+ return decode("データフィールド");
+ }
else
- {
- return decode("構成メンバ");
- }
+ {
+ return decode("構成メンバ");
+ }
}
/*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("グローバル");
- }
+ {
+ return decode("グローバル");
+ }
else
- {
- return decode("ファイルメンバ");
- }
+ {
+ return decode("ファイルメンバ");
+ }
}
/*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages()
@@ -225,13 +234,13 @@ class TranslatorJapanese : public Translator
virtual QCString trCompoundListDescription()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データ構造の解説です。");
- }
+ {
+ return decode("データ構造の解説です。");
+ }
else
- {
- return decode("クラス、構造体、共用体、インタフェースの解説です。");
- }
+ {
+ return decode("クラス、構造体、共用体、インタフェースの解説です。");
+ }
}
/*! This is an introduction to the page with all class members. */
@@ -239,15 +248,15 @@ class TranslatorJapanese : public Translator
{
QCString result=decode("これは");
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- result+=decode("フィールドの一覧でそれぞれ");
- if (extractAll) result+=decode("が属している構造体/共用体");
- }
+ {
+ result+=decode("フィールドの一覧でそれぞれ");
+ if (extractAll) result+=decode("が属している構造体/共用体");
+ }
else
- {
- result+=decode("クラスメンバの一覧で、それぞれ");
- if (extractAll) result+=decode("が属しているクラス");
- }
+ {
+ result+=decode("クラスメンバの一覧で、それぞれ");
+ if (extractAll) result+=decode("が属しているクラス");
+ }
result+=decode("の解説へリンクしています。");
return result;
}
@@ -257,18 +266,20 @@ class TranslatorJapanese : public Translator
{
QCString result=decode("これは");
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- result+=decode("関数、変数、マクロ、列挙型、型定義の");
- }
+ {
+ result+=decode("関数、変数、マクロ、Typedef定義、Enum定義の");
+ }
else
- {
- result+=decode("ファイルメンバの");
- }
- result+=decode("一覧です。それぞれが属しているファイルの解説へリンクしています。");
+ {
+ result+=decode("ファイルメンバの");
+ }
+
+result+=decode("一覧です。それぞれが属しているファイルの解説へリンクしています。");
return result;
}
- /*! This is an introduction to the page with the list of all header files. */
+ /*! This is an introduction to the page with the list of all header
+files. */
virtual QCString trHeaderFilesDescription()
{ return decode("APIを構成するヘッダファイルです。"); }
@@ -276,58 +287,60 @@ class TranslatorJapanese : public Translator
virtual QCString trExamplesDescription()
{ return decode("すべての例の一覧です。"); }
- /*! This is an introduction to the page with the list of related pages */
+ /*! This is an introduction to the page with the list of related pages
+*/
virtual QCString trRelatedPagesDescription()
{ return decode("関連ページの一覧です。"); }
- /*! This is an introduction to the page with the list of class/file groups */
+ /*! This is an introduction to the page with the list of class/file
+groups */
virtual QCString trModulesDescription()
{ return decode("すべてのモジュールの一覧です。"); }
/*! This sentences is used in the annotated class/file lists if no brief
- * description is given.
+ * description is given.
*/
virtual QCString trNoDescriptionAvailable()
{ return decode("ドキュメントが記述されていません。"); }
-
- // index titles (the project name is prepended for these)
+
+ // index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
{ return decode("ドキュメント"); }
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
virtual QCString trModuleIndex()
{ return decode("モジュール索引"); }
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
{ return decode("階層索引"); }
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
virtual QCString trCompoundIndex()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データ構造索引");
- }
+ {
+ return decode("データ構造索引");
+ }
else
- {
- return decode("構成索引");
- }
+ {
+ return decode("構成索引");
+ }
}
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
- virtual QCString trFileIndex()
+ virtual QCString trFileIndex()
{ return decode("ファイル索引"); }
/*! This is used in LaTeX as the title of the chapter containing
@@ -342,13 +355,13 @@ class TranslatorJapanese : public Translator
virtual QCString trClassDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データ構造の解説");
- }
+ {
+ return decode("データ構造の解説");
+ }
else
- {
- return decode("クラスの解説");
- }
+ {
+ return decode("クラスの解説");
+ }
}
/*! This is used in LaTeX as the title of the chapter containing
@@ -361,7 +374,7 @@ class TranslatorJapanese : public Translator
* the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
- { return decode("例題の解説"); }
+ { return decode("例の解説"); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
@@ -372,115 +385,122 @@ class TranslatorJapanese : public Translator
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return decode("リファレンスマニュアル"); }
-
- /*! This is used in the documentation of a file as a header before the
+
+ /*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
{ return decode("マクロ定義"); }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
virtual QCString trFuncProtos()
{ return decode("関数プロトタイプ"); }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
virtual QCString trTypedefs()
- { return decode("型定義"); }
+ { return decode("Typedef定義"); }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
- { return decode("列挙型"); }
+ { return decode("Enum定義"); }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
virtual QCString trFunctions()
{ return decode("関数"); }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trVariables()
{ return decode("変数"); }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trEnumerationValues()
- { return decode("列挙型値"); }
+ { return decode("Enum値"); }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
{ return decode("マクロ定義の解説"); }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the
+list
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return decode("関数プロトタイプの解説"); }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the
+list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
- { return decode("型定義の解説"); }
+ { return decode("Typedef定義の解説"); }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the
+list
* of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
- { return decode("列挙型の解説"); }
+ { return decode("Enum定義の解説"); }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the
+list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
- { return decode("列挙型値の解説"); }
+ { return decode("Enum値の解説"); }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the
+list
* of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
{ return decode("関数の解説"); }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the
+list
* of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
{ return decode("変数の解説"); }
- /*! This is used in the documentation of a file/namespace/group before
+ /*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
virtual QCString trCompounds()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データ構造");
- }
+ {
+ return decode("データ構造");
+ }
else
- {
- return decode("構成");
- }
+ {
+ return decode("構成");
+ }
}
- /*! This is used in the standard footer of each page and indicates when
- * the page was generated
+ /*! This is used in the standard footer of each page and indicates when
+ * the page was generated
*/
virtual QCString trGeneratedAt(const char *date,const char *projName)
- {
+ {
QCString result;
if (projName) result+=(QCString)projName+decode("に対して");
result+=(QCString)date+decode("に生成されました。");
return result;
}
- /*! This is part of the sentence used in the standard footer of each page.
+ /*! This is part of the sentence used in the standard footer of each
+page.
*/
virtual QCString trWrittenBy()
{
@@ -490,16 +510,17 @@ class TranslatorJapanese : public Translator
/*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName)
{
- return (QCString)clName+decode("に対する継承グラフ");
+ return (QCString)clName+decode("の継承グラフ");
}
-
+
/*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly()
{ return decode("内部使用のみ。"); }
/*! this text is generated when the \\reimp command is used. */
virtual QCString trReimplementedForInternalReasons()
- { return decode("内部的な理由により再実装されましたが、APIには影響しません。");
+ { return
+decode("内部的な理由により再実装されましたが、APIには影響しません。");
}
/*! this text is generated when the \\warning command is used. */
@@ -537,7 +558,7 @@ class TranslatorJapanese : public Translator
/*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
{ return decode("例外"); }
-
+
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
{ return decode(""); }
@@ -545,8 +566,9 @@ class TranslatorJapanese : public Translator
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
-
- /*! used as the title of page containing all the index of all namespaces. */
+
+ /*! used as the title of page containing all the index of all
+namespaces. */
virtual QCString trNamespaceList()
{ return decode("名前空間一覧"); }
@@ -562,18 +584,18 @@ class TranslatorJapanese : public Translator
* friends of a class
*/
virtual QCString trFriends()
- { return decode("フレンド"); }
-
+ { return decode("Friend関数"); }
+
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
-
+
/*! used in the class documentation as a header before the list of all
- * related classes
+ * related classes
*/
virtual QCString trRelatedFunctionDocumentation()
- { return decode("フレンドと関連する関数の解説"); }
-
+ { return decode("関連する関数の解説"); }
+
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
@@ -590,7 +612,8 @@ class TranslatorJapanese : public Translator
case ClassDef::Struct: result+=decode("構造体 "); break;
case ClassDef::Union: result+=decode("共用体 "); break;
case ClassDef::Interface: result+=decode("インタフェース"); break;
- case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme
+ case ClassDef::Exception: result+=decode("例外"); break;
+//TODO:fixme
}
if (isTemplate) result+=decode(" テンプレート");
result+=(QCString)clName+decode(" の解説");
@@ -600,39 +623,40 @@ class TranslatorJapanese : public Translator
/*! used as the title of the HTML page of a file */
virtual QCString trFileReference(const char *fileName)
{
- QCString result=decode("")+(QCString)fileName+decode(" の解説");
+ QCString result=decode("")+(QCString)fileName+decode(" の解説");
return result;
}
/*! used as the title of the HTML page of a namespace */
virtual QCString trNamespaceReference(const char *namespaceName)
{
- QCString result=decode("名前空間 ")+(QCString)namespaceName+decode(" の解説");
+ QCString result=decode("名前空間 ")+(QCString)namespaceName+decode("
+の解説");
return result;
}
-
+
/* these are for the member sections of a class, struct or union */
virtual QCString trPublicMembers()
- { return decode("公開メンバ"); }
+ { return decode("Public メソッド"); }
virtual QCString trPublicSlots()
- { return decode("公開スロット"); }
+ { return decode("Public スロット"); }
virtual QCString trSignals()
{ return decode("シグナル"); }
virtual QCString trStaticPublicMembers()
- { return decode("静的公開メンバ"); }
+ { return decode("Static Public メソッド"); }
virtual QCString trProtectedMembers()
- { return decode("保護メンバ"); }
+ { return decode("Protected メソッド"); }
virtual QCString trProtectedSlots()
- { return decode("保護スロット"); }
+ { return decode("Protected スロット"); }
virtual QCString trStaticProtectedMembers()
- { return decode("静的保護メンバ"); }
+ { return decode("Static Protected メソッド"); }
virtual QCString trPrivateMembers()
- { return decode("非公開メンバ"); }
+ { return decode("Private メソッド"); }
virtual QCString trPrivateSlots()
- { return decode("非公開スロット"); }
+ { return decode("Private スロット"); }
virtual QCString trStaticPrivateMembers()
- { return decode("静的非公開メンバ"); }
-
+ { return decode("Static Private メソッド"); }
+
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
@@ -641,23 +665,23 @@ class TranslatorJapanese : public Translator
QCString result;
int i;
// the inherits list contain `numEntries' classes
- for (i=0;i<numEntries;i++)
+ for (i=0;i<numEntries;i++)
{
// use generateMarker to generate placeholders for the class links!
- result+=generateMarker(i); // generate marker for entry i in the list
+ result+=generateMarker(i); // generate marker for entry i in the list
// (order is left to right)
-
+
if (i!=numEntries-1) // not the last entry, so we need a separator
{
- if (i<numEntries-2) // not the fore last entry
+ if (i<numEntries-2) // not the fore last entry
result+=decode(", ");
else // the fore last entry
result+=decode(", と ");
}
}
- return result;
+ return result;
}
-
+
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
@@ -674,7 +698,7 @@ class TranslatorJapanese : public Translator
return trWriteList(numEntries)+decode("に継承されています。");
}
- /*! used in member documentation blocks to produce a list of
+ /*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
virtual QCString trReimplementedFromList(int numEntries)
@@ -690,23 +714,24 @@ class TranslatorJapanese : public Translator
return trWriteList(numEntries)+decode("で再定義されています。");
}
- /*! This is put above each page as a link to all members of namespaces. */
+ /*! This is put above each page as a link to all members of namespaces.
+*/
virtual QCString trNamespaceMembers()
{ return decode("名前空間メンバ"); }
/*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll)
- {
- QCString result=decode("これは");
+ {
+ QCString result=decode("これは");
result+=decode("名前空間の一覧です。それぞれ");
- if (extractAll)
- result+=decode("の名前空間の解説");
- else
- result+=decode("が属している名前空間");
+ if (extractAll)
+ result+=decode("の名前空間の解説");
+ else
+ result+=decode("が属している名前空間");
result+=decode("へリンクしています。");
return result;
}
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
@@ -746,7 +771,8 @@ class TranslatorJapanese : public Translator
case ClassDef::Struct: result+=decode("構造体"); break;
case ClassDef::Union: result+=decode("共用体"); break;
case ClassDef::Interface: result+=decode("インタフェース"); break;
- case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme
+ case ClassDef::Exception: result+=decode("例外"); break;
+//TODO:fixme
}
result+=decode("の解説は次のファイルから生成されました:");
return result;
@@ -756,7 +782,7 @@ class TranslatorJapanese : public Translator
* list.
*/
virtual QCString trAlphabeticalList()
- { return decode("アルファベット順一覧"); }
+ { return decode("一覧 [アルファベット順]"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
@@ -771,7 +797,7 @@ class TranslatorJapanese : public Translator
virtual QCString trMainPage()
{ return decode("メインページ"); }
- /*! This is used in references to page that are put in the LaTeX
+ /*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
@@ -815,19 +841,21 @@ class TranslatorJapanese : public Translator
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
{
- return (QCString)fName+decode("のインクルード依存関係図");
+ return (QCString)fName+decode("のインクルード依存関係図");
}
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
- return decode("コンストラクタとデストラクタの解説");
+ return decode("コンストラクタとデストラクタの解説");
}
- /*! Used in the file documentation to point to the corresponding sources. */
+ /*! Used in the file documentation to point to the corresponding
+sources. */
virtual QCString trGotoSourceCode()
{
return decode("ソースコードを見る。");
}
- /*! Used in the file sources to point to the corresponding documentation. */
+ /*! Used in the file sources to point to the corresponding
+documentation. */
virtual QCString trGotoDocumentation()
{
return decode("解説を見る。");
@@ -855,7 +883,7 @@ class TranslatorJapanese : public Translator
/*! Text used the source code in the file index */
virtual QCString trCode()
{
- return decode("コード");
+ return decode("ソースコード");
}
virtual QCString trGraphicalHierarchy()
{
@@ -877,53 +905,53 @@ class TranslatorJapanese : public Translator
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
-
+
virtual QCString trNote()
{
return decode("覚え書き");
}
virtual QCString trPublicTypes()
{
- return decode("公開型");
+ return decode("Public 型");
}
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データフィールド");
- }
+ {
+ return decode("データフィールド");
+ }
else
- {
- return decode("公開属性");
- }
+ {
+ return decode("Public 属性");
+ }
}
virtual QCString trStaticPublicAttribs()
{
- return decode("静的公開属性");
+ return decode("Static Public 属性");
}
virtual QCString trProtectedTypes()
{
- return decode("保護型");
+ return decode("Protected 型");
}
virtual QCString trProtectedAttribs()
{
- return decode("保護属性");
+ return decode("Protected 属性");
}
virtual QCString trStaticProtectedAttribs()
{
- return decode("静的保護属性");
+ return decode("Static Protected 属性");
}
virtual QCString trPrivateTypes()
{
- return decode("非公開型");
+ return decode("Private 型");
}
virtual QCString trPrivateAttribs()
{
- return decode("非公開属性");
+ return decode("Private 属性");
}
virtual QCString trStaticPrivateAttribs()
{
- return decode("静的非公開属性");
+ return decode("Static Private 属性");
}
//////////////////////////////////////////////////////////////////////////
@@ -933,12 +961,12 @@ class TranslatorJapanese : public Translator
/*! Used as a marker that is put before a todo item */
virtual QCString trTodo()
{
- return decode("TODO");
+ return decode("Todo");
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
- return decode("TODO一覧");
+ return decode("Todo一覧");
}
//////////////////////////////////////////////////////////////////////////
@@ -959,14 +987,14 @@ class TranslatorJapanese : public Translator
}
virtual QCString trInclByDepGraph()
{
- return decode("このグラフは、どのファイルから直接、間接的に"
+ return decode("このグラフは、どのファイルから直接/間接的に"
"インクルードされているかを示しています。");
}
virtual QCString trSince()
{
return decode("から");
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
@@ -979,8 +1007,9 @@ class TranslatorJapanese : public Translator
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
- return
- decode("このページでは、doxygen で生成されたグラフをどのようにみたらよいかを"
+ return
+ decode("このページでは、doxygen
+で生成されたグラフをどのようにみたらよいかを"
"説明します。<p>\n"
"次の例を考えてみます。\n"
"\\code\n"
@@ -1008,19 +1037,23 @@ class TranslatorJapanese : public Translator
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
- "設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200 にセットされた"
+ "設定ファイル中で、タグ \\c MAX_DOT_GRAPH_HEIGHT が 200
+にセットされた"
"場合、次のようなグラフとなります。"
- "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
+ "<p><center><img
+src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
"上のグラフ内のボックスには次のような意味があります。\n"
"<ul>\n"
- "<li>黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを"
+
+"<li>黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを"
"表します。\n"
"<li>黒枠のボックスはドキュメントがある構造体やクラスを表します。\n"
- "<li>灰色の枠のボックスはドキュメントがない構造体やクラスを表します。\n"
+
+"<li>灰色の枠のボックスはドキュメントがない構造体やクラスを表します。\n"
"<li>赤枠のボックスはドキュメントがある構造体やクラスを表しますが、"
- "指定されたサイズに収まらないために継承・包含関係をすべて図示する"
- "ことができなかったことを示します。"
+ "指定されたサイズに収まらないために継承・包含関係をすべて図示する"
+ "ことができなかったことを示します。"
"</ul>\n"
"矢印には次のような意味があります。\n"
"<ul>\n"
@@ -1028,8 +1061,8 @@ class TranslatorJapanese : public Translator
"<li>緑の矢印は protected 継承関係を示します。\n"
"<li>赤の矢印は private 継承関係を示します。\n"
"<li>紫の破線矢印は、そのクラスが他のクラスに含まれていたり、"
- "利用されていることを示します。また、矢印が指しているクラスや構造体を"
- "どの変数でアクセスできるかを矢印のラベルとして示しています。\n"
+ "利用されていることを示します。また、矢印が指しているクラスや構造体を"
+ "どの変数でアクセスできるかを矢印のラベルとして示しています。\n"
"</ul>\n");
}
/*! text for the link to the legend page */
@@ -1037,11 +1070,11 @@ class TranslatorJapanese : public Translator
{
return decode("凡例");
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
-
+
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
@@ -1060,7 +1093,7 @@ class TranslatorJapanese : public Translator
/*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods()
{
- return decode("DCOPメソッド");
+ return decode("DCOP メソッド");
}
//////////////////////////////////////////////////////////////////////////
@@ -1086,19 +1119,19 @@ class TranslatorJapanese : public Translator
/*! Used for Java interfaces in the summary section of Java packages */
virtual QCString trInterfaces()
{
- return decode("インターフェース");
+ return decode("インタフェース");
}
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
- return decode("データ構造");
- }
+ {
+ return decode("データ構造");
+ }
else
- {
- return decode("クラス");
- }
+ {
+ return decode("クラス");
+ }
}
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
@@ -1135,7 +1168,7 @@ class TranslatorJapanese : public Translator
//////////////////////////////////////////////////////////////////////////
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
-
+
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
@@ -1151,9 +1184,10 @@ class TranslatorJapanese : public Translator
// new since 1.2.6
//////////////////////////////////////////////////////////////////////////
- /*! Used as ansicpg for RTF file
- *
- * The following table shows the correlation of Charset name, Charset Value and
+ /*! Used as ansicpg for RTF file
+ *
+ * The following table shows the correlation of Charset name, Charset
+Value and
* <pre>
* Codepage number:
* Charset Name Charset Value(hex) Codepage number
@@ -1174,15 +1208,15 @@ class TranslatorJapanese : public Translator
* GB2313_CHARSET 134 (x86) 936
* CHINESEBIG5_CHARSET 136 (x88) 950
* </pre>
- *
+ *
*/
virtual QCString trRTFansicp()
{
return "932";
}
-
- /*! Used as ansicpg for RTF fcharset
+
+ /*! Used as ansicpg for RTF fcharset
* \see trRTFansicp() for a table of possible values.
*/
virtual QCString trRTFCharSet()
@@ -1195,97 +1229,97 @@ class TranslatorJapanese : public Translator
{
return decode("索引");
}
-
+
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trClass(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("クラス"));
- return result;
+ return result;
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trFile(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("ファイル"));
- return result;
+ return result;
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trNamespace(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("名前空間"));
- return result;
+ return result;
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGroup(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("グループ"));
- return result;
+ return result;
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trPage(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("ページ"));
- return result;
+ return result;
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trMember(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("メンバ"));
- return result;
+ return result;
}
-
+
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trField(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("フィールド"));
- return result;
+ return result;
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGlobal(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("グローバル"));
@@ -1299,11 +1333,11 @@ class TranslatorJapanese : public Translator
/*! This text is generated when the \\author command is used and
* for the author section in man pages. */
virtual QCString trAuthor(bool first_capital, bool singular)
- {
+ {
first_capital = first_capital;
singular = singular;
QCString result(decode("作者"));
- return result;
+ return result;
}
//////////////////////////////////////////////////////////////////////////
@@ -1321,7 +1355,7 @@ class TranslatorJapanese : public Translator
// new since 1.2.13
//////////////////////////////////////////////////////////////////////////
- /*! used in member documentation blocks to produce a list of
+ /*! used in member documentation blocks to produce a list of
* members that are implemented by this one.
*/
virtual QCString trImplementedFromList(int numEntries)
@@ -1334,8 +1368,9 @@ class TranslatorJapanese : public Translator
*/
virtual QCString trImplementedInList(int numEntries)
{
- return trWriteList(numEntries)+decode("に実装されています")+".";
+ return trWriteList(numEntries)+decode("で実装されています")+".";
}
};
#endif
+
diff --git a/src/translator_si.h b/src/translator_si.h
index 9e7ccdf..cef09f6 100644
--- a/src/translator_si.h
+++ b/src/translator_si.h
@@ -21,7 +21,7 @@
#define TRANSLATOR_SI_H
-class TranslatorSlovene : public TranslatorAdapter_1_2_13
+class TranslatorSlovene : public Translator
{
public:
QCString idLanguage()
@@ -991,6 +991,26 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13
{
return "Reference";
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.13
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in member documentation blocks to produce a list of
+ * members that are implemented by this one.
+ */
+ virtual QCString trImplementedFromList(int numEntries)
+ {
+ return "Implementira "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * all members that implement this abstract member.
+ */
+ virtual QCString trImplementedInList(int numEntries)
+ {
+ return "Implementirano v "+trWriteList(numEntries)+".";
+ }
+
};
#endif
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index ad3cd72..691ae13 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -343,12 +343,23 @@ class XMLGenerator : public OutputDocInterface
{
XML_DB(("(startPreFragment)\n"));
startParMode();
- m_t << "<programlisting>";
+ m_t << "<preformatted>";
}
void endPreFragment()
{
XML_DB(("(endPreFragment)\n"));
- m_t << "</programlisting>";
+ m_t << "</preformatted>";
+ }
+ void startVerbatimFragment()
+ {
+ XML_DB(("(startVerbatimFragment)\n"));
+ startParMode();
+ m_t << "<preformatted>";
+ }
+ void endVerbatimFragment()
+ {
+ XML_DB(("(endVerbatimFragment)\n"));
+ m_t << "</preformatted>";
}
void writeRuler()
{
@@ -616,20 +627,21 @@ class XMLGenerator : public OutputDocInterface
startParMode();
m_t << "<table cols=\"" << cols << "\">\n";
}
- void endTable(bool)
+ void endTable(bool hasCaption)
{
XML_DB(("endTable\n"));
- m_t << "</row>\n</table>";
+ if (!hasCaption) m_t << "</row>\n";
+ m_t << "</table>";
}
void startCaption()
{
XML_DB(("startCaption"));
- m_t << "<caption>";
+ m_t << "</row><caption>";
}
void endCaption()
{
XML_DB(("encCaption"));
- m_t << "</caption";
+ m_t << "</caption>";
}
void nextTableRow()
{
@@ -639,7 +651,7 @@ class XMLGenerator : public OutputDocInterface
// we need manually add a para here because cells are
// parsed before the table is generated, and thus
// are already parsed as if they are inside a paragraph.
- m_t << "<para>";
+ //m_t << "<para>";
}
void endTableRow()
{