Commit 26ded37d authored by dimitri's avatar dimitri

Release-1.2.1-20000829

parent 8726fc64
DOXYGEN Version 1.2.1
DOXYGEN Version 1.2.1-20000829
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (13 August 2000)
Dimitri van Heesch (29 August 2000)
DOXYGEN Version 1.2.1
DOXYGEN Version 1.2.1-20000829
Please read INSTALL for compilation instructions.
......@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (13 August 2000)
Dimitri van Heesch (29 August 2000)
1.2.1
1.2.1-20000829
......@@ -812,6 +812,20 @@ void checkConfig()
#endif
s=Config::includePath.next();
}
// check aliases
s=Config::aliasList.first();
while (s)
{
QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*[ \t]*=");
QCString alias=s;
alias=alias.stripWhiteSpace();
if (alias.find(re)!=0)
{
err("Illegal alias format `%s'. Use \"name=value\"\n",alias.data());
}
s=Config::aliasList.next();
}
// check dot path
if (!Config::dotPath.isEmpty())
......
......@@ -1014,6 +1014,18 @@ void init()
"disable (NO) the test list. This list is created by putting \\test \n"
"commands in the documentation.\n"
);
ConfigList::add( "aliasList",
"ALIASES",
"",
"list of aliases",
"This tag can be used to specify a number of aliases that acts \n"
"as commands in the documentation. An alias has the form \"\\name=value\". \n"
"For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n"
"put the command \\sideeffect (or @sideeffect) in the documentation, which \n"
"will result in a user defined paragraph with heading \"Side Effects:\". \n"
"You can put \\n's in the value part of an alias to insert newlines. \n"
"Predefined commands cannot be overwritten using aliases. \n"
);
//-----------------------------------------------------------------------------------------------
ConfigInfo::add( "Messages","configuration options related to warning and progress messages");
//-----------------------------------------------------------------------------------------------
......
......@@ -282,7 +282,7 @@ Doxygen. Unrecognized commands are treated as normal text.
(either global or as a member of a class). This command is needed if a
comment block is \e not located before the function declaration
or definition. A full function declaration should be specified after the
\fn command. The argument ends at the end of the line.
\\fn command. The argument ends at the end of the line.
\par Example:
\verbinclude func.h
......
......@@ -39,12 +39,12 @@ You should use the \\mainpage command inside a comment block like this:
In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are
located using a comment block containing a \file (or @file)
located using a comment block containing a \\file (or \@file)
command.
Alternatively, you can put all members in a group (or module)
using the \ingroup command and then document the group using a comment
block containing the \defgroup command.
using the \\ingroup command and then document the group using a comment
block containing the \\defgroup command.
<li><b>How can I avoid that some code fragment is parsed by Doxyen?</b>
<p>
......
......@@ -111,7 +111,7 @@
special <code>//!</code> C++ line comments.
<li>Unrelated members can now be documented. A page containing a
list of these members is generated.
<li>Added an <code>\include</code> command to insert blocks of source code
<li>Added an <code>\\include</code> command to insert blocks of source code
into the documentation.
<li>Warnings are generated for members that are undocumented.
<li>You can now specify your own HTML headers and footers for the
......
......@@ -62,7 +62,7 @@
documentation, because of possible ambiguities or lack of
information about the context in which the code fragment is found.
<li>It is not possible to insert a non-member function f in a class A
using the \relates command, if class A already has a member with name f
using the \\relates command, if class A already has a member with name f
and the same argument list.
<li>There is only very limited support for member specialization at the
moment. It only works if there is a specialized template class as
......
Name: doxygen
Version: 1.2.1
Version: 1.2.1-20000829
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
......
......@@ -1200,9 +1200,11 @@ void ClassDef::writeMemberList(OutputList &ol)
ol.writeString(")");
memberWritten=TRUE;
}
if ((protect!=Public || md->isStatic() || virt!=Normal ||
md->isFriend() || md->isRelated() ||
md->getMemberSpecifiers()!=0
if ((protect!=Public || virt!=Normal ||
md->isFriend() || md->isRelated() || md->isExplicit() ||
md->isMutable() || (md->isInline() && Config::inlineInfoFlag) ||
md->isSignal() || md->isSlot() ||
md->isStatic()
)
&& memberWritten)
{
......
......@@ -447,7 +447,9 @@ static bool getLink(const char *className,
{
md->addSourceReference(g_currentMemberDef);
}
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data());
//printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data());
//printf("g_classVar=`%s' type=`%s'\n",g_classVar ? g_classVar->name().data() : "none",md->typeString());
writeMultiLineCodeLink(result,d->getReference(),d->getOutputFileBase(),
md->anchor(),text ? text : memberName);
return TRUE;
......@@ -559,8 +561,36 @@ static void generateMemberLink(OutputList &ol,const char *varName,
ClassDef *vcd = getResolvedClass(g_classScope);
if (vcd && vcd->isLinkable())
{
//printf("Found class for variable `%s'\n",varName);
//printf("Found class %s for variable `%s'\n",g_classScope.data(),varName);
MemberName *vmn=memberNameDict[varName];
if (vmn==0)
{
int vi;
QCString vn=varName;
QCString scope;
if ((vi=vn.findRev("::"))!=-1) // explicit scope A::b(), probably static member
{
ClassDef *jcd = getClass(vn.left(vi));
vn=vn.right(vn.length()-vi-2);
vmn=memberNameDict[vn];
//printf("Trying name `%s' scope=%s\n",vn.data(),scope.data());
MemberNameIterator vmni(*vmn);
MemberDef *vmd;
for (;(vmd=vmni.current());++vmni)
{
if ((vmd->isVariable() || vmd->isFunction()) &&
vmd->getClassDef()==jcd)
{
//printf("Found variable type=%s\n",vmd->typeString());
ClassDef *mcd=stripClassName(vmd->typeString());
if (mcd && mcd->isLinkable())
{
if (generateClassMemberLink(ol,mcd,memName)) return;
}
}
}
}
}
if (vmn)
{
//printf("There is a variable with name `%s'\n",varName);
......
/* This file was generated by configgen on Sat Aug 12 16:16:35 2000
/* This file was generated by configgen on Fri Aug 25 21:22:11 2000
* from config_templ.h
*
* DO NOT EDIT!
......@@ -68,6 +68,7 @@ struct Config
static QStrList sectionFilterList; // list of section filters that are enabled
static bool generateTodoList; // do we want a todo list?
static bool generateTestList; // do we want a test list?
static QStrList aliasList; // list of aliases
static bool quietFlag; // generate progress messages flag
static bool warningFlag; // generate warnings flag
static bool warningUndocFlag; // generate undocumented warnings
......
/* This file was generated by configgen on Sun Aug 13 14:05:26 2000
/* This file was generated by configgen on Fri Aug 25 21:22:11 2000
* from config_templ.l
*
* DO NOT EDIT!
......@@ -105,6 +105,7 @@ int Config::tabSize = 8;
QStrList Config::sectionFilterList;
bool Config::generateTodoList = TRUE;
bool Config::generateTestList = TRUE;
QStrList Config::aliasList;
bool Config::quietFlag = FALSE;
bool Config::warningFlag = TRUE;
bool Config::warningUndocFlag = TRUE;
......@@ -361,6 +362,8 @@ static void readIncludeFile(const char *incName)
<Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; }
<Start>"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; }
<Start>"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; }
<Start>"ALIASES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::aliasList; l->clear(); elemStr=""; }
<Start>"ALIASES"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::aliasList; elemStr=""; }
<Start>"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; }
<Start>"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; }
<Start>"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; }
......@@ -595,6 +598,14 @@ void dumpConfig()
}
printf("generateTodoList=`%d'\n",Config::generateTodoList);
printf("generateTestList=`%d'\n",Config::generateTestList);
{
char *is=Config::aliasList.first();
while (is)
{
printf("aliasList=`%s'\n",is);
is=Config::aliasList.next();
}
}
printf("# configuration options related to warning and progress messages\n");
printf("quietFlag=`%d'\n",Config::quietFlag);
printf("warningFlag=`%d'\n",Config::warningFlag);
......@@ -817,6 +828,7 @@ void Config::init()
Config::sectionFilterList.clear();
Config::generateTodoList = TRUE;
Config::generateTestList = TRUE;
Config::aliasList.clear();
Config::quietFlag = FALSE;
Config::warningFlag = TRUE;
Config::warningUndocFlag = TRUE;
......@@ -1308,6 +1320,20 @@ void writeTemplateConfig(QFile *f,bool sl)
writeBoolValue(t,Config::generateTestList);
t << "\n";
if (!sl)
{
t << "\n";
t << "# This tag can be used to specify a number of aliases that acts \n";
t << "# as commands in the documentation. An alias has the form \"\\name=value\". \n";
t << "# For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n";
t << "# put the command \\sideeffect (or @sideeffect) in the documentation, which \n";
t << "# will result in a user defined paragraph with heading \"Side Effects:\". \n";
t << "# Predefined commands cannot be overwritten using aliases. \n";
t << "\n";
}
t << "ALIASES = ";
writeStringList(t,Config::aliasList);
t << "\n";
if (!sl)
{
t << "\n";
}
......@@ -2374,6 +2400,7 @@ void substituteEnvironmentVars()
substEnvVarsInString( Config::outputLanguage );
substEnvVarsInStrList( Config::stripFromPath );
substEnvVarsInStrList( Config::sectionFilterList );
substEnvVarsInStrList( Config::aliasList );
substEnvVarsInString( Config::warnFormat );
substEnvVarsInStrList( Config::inputSources );
substEnvVarsInStrList( Config::filePatternList );
......@@ -2635,6 +2662,20 @@ void checkConfig()
#endif
s=Config::includePath.next();
}
// check aliases
s=Config::aliasList.first();
while (s)
{
QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*[ \t]*=");
QCString alias=s;
alias=alias.stripWhiteSpace();
if (alias.find(re)!=0)
{
err("Illegal alias format `%s'. Use \"name=value\"\n",alias.data());
}
s=Config::aliasList.next();
}
// check dot path
if (!Config::dotPath.isEmpty())
......
......@@ -1246,8 +1246,8 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
}
void ClassDiagram::writeImageMap(QTextStream &t,const char *path,
const char *fileName, bool generateMap)
void ClassDiagram::writeImage(QTextStream &t,const char *path,
const char *fileName, bool generateMap)
{
uint baseRows=base->computeRows();
uint superRows=super->computeRows();
......
......@@ -123,7 +123,7 @@ class ClassDiagram
~ClassDiagram();
void writeFigure(QTextStream &t,const char *path,
const char *file);
void writeImageMap(QTextStream &t,const char *path,
void writeImage(QTextStream &t,const char *path,
const char *file,bool generateMap=TRUE);
private:
TreeDiagram *base;
......
......@@ -90,6 +90,7 @@ static bool inAttentionBlock;
static bool inParBlock;
static QCString sectionRef;
static bool insideVerbatim = FALSE;
static bool insidePre = FALSE;
static int depthIf;
//static int currentListIndentLevel;
static QStack<char> currentListIndent;
......@@ -486,10 +487,15 @@ static void addListItemMarker(const char *marker,int dashPos,bool enumerated)
int indent=0;
for (i=0;i<dashPos;i++)
{
//printf("Parsed[%d]=%d\n",i,marker[i]);
if (marker[i]=='\t')
{
indent+=Config::tabSize - (indent%Config::tabSize);
}
else if (marker[i]=='\n')
{
indent=0;
}
else
{
indent++;
......@@ -599,6 +605,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
QCString result;
bool ambig;
FileDef *fd;
//printf("Search for %s\n",fileName);
if ((fd=findFileDef(imageNameDict,fileName,ambig)))
{
QFile inImage(QString(fd->absFilePath().data()));
......@@ -944,7 +951,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
<DocScan>{CMD}"endlink"/[^a-z_A-Z0-9] { warn(yyFileName,yyLineNr,
"Warning: \\endlink without \\link "
"in documentation."
"in documentation of this entity."
);
}
<DocScan>{CMD}"addindex"{B}+ {
......@@ -1460,10 +1467,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeObjectLink(0,internalRefFile,internalRefAnchor,text);
BEGIN(DocScan);
}
<DocScan>{CMD}"ref" {
<DocScan>{CMD}"ref"/{BN} {
BEGIN(DocRefName);
}
<DocScan>{CMD}"refitem" {
<DocScan>{CMD}"refitem"/{BN} {
BEGIN(DocRefItem);
}
<DocScan>{CMD}"if"/{BN} {
......@@ -1476,7 +1483,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
{
warn(yyFileName,yyLineNr,
"Warning: documentation block contains \\endif without "
"matching \\if found in documentation."
"matching \\if found in documentation of this entity."
);
}
else
......@@ -1515,7 +1522,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
else if (!generateLink(*outDoc,className,yytext,TRUE,0))
{
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s!",yytext);
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s in the documentation of this entity!",yytext);
//outDoc->writeBoldString(" unknown reference! ");
}
BEGIN(DocScan);
......@@ -1548,7 +1555,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
else if (!generateLink(*outDoc,className,sectionRef,TRUE,text))
{
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s!",sectionRef.data());
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s in the documentation of this entity!",sectionRef.data());
outDoc->writeBoldString(" unknown reference! ");
}
BEGIN(DocScan);
......@@ -1566,7 +1573,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
else
{
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s!",sectionRef.data());
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s in the documentation of this entity!",sectionRef.data());
outDoc->writeBoldString(" unknown reference! ");
}
BEGIN(DocScan);
......@@ -1623,10 +1630,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
BEGIN(DocScan);
}
<DocImage>[a-z_A-Z0-9\.\-]+ {
warn(yyFileName,yyLineNr,"Warning: %s is an unsupported output format for \\image",yytext);
warn(yyFileName,yyLineNr,"Warning: %s is an unsupported output format for \\image in the documentation of the entity",yytext);
}
<DocImage,DocHtmlImageName,DocLatexImageName>\n {
warn(yyFileName,yyLineNr,"Warning: invalid \\image command found!");
warn(yyFileName,yyLineNr,"Warning: invalid \\image command found in the documentation of this entity!");
outDoc->enableAll();
BEGIN(DocScan);
}
......@@ -1637,7 +1644,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
}
<DocScan>{CMD}"endcode"/[^a-z_A-Z0-9] {
warn(yyFileName,yyLineNr,"Warning: \\endcode without \\code "
"in the documentation.");
"in the documentation of this entity.");
}
<DocScan,DocRefName>{ID}"<"[^>\ \t\n]*">"("::"{ID})+"("?[a-z_A-Z0-9,:\<\> \t\*\&]*")"? {
......@@ -1775,8 +1782,18 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
/*restoreOutputListState();*/
outDoc->popGeneratorState();
}
<DocScan>"<"{PRE}{ATTR}">" { outDoc->startPreFragment(); }
<DocScan>"</"{PRE}{ATTR}">" { outDoc->endPreFragment(); }
<DocScan>"<"{PRE}{ATTR}">" {
if (insidePre)
{
warn(yyFileName,yyLineNr,"Warning in the documentation of this entity:\nNested <pre> found in the documentation of this entity!");
}
outDoc->startPreFragment();
insidePre=TRUE;
}
<DocScan>"</"{PRE}{ATTR}">" {
outDoc->endPreFragment();
insidePre=FALSE;
}
<DocScan>"<"{SUB}{ATTR}">" { outDoc->startSubscript(); }
<DocScan>"</"{SUB}{ATTR}">" { outDoc->endSubscript(); }
<DocScan>"<"{SUP}{ATTR}">" { outDoc->startSuperscript(); }
......@@ -1792,13 +1809,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (currentListIndent.isEmpty())
{
warn(yyFileName,yyLineNr,
"Warning: more </ol> tags than <ol> tags in the documentation."
"Warning in the documentation of this entity:\nMore </ol> tags than <ol> tags in the documentation of this entity."
);
}
else if (currentListIndent.top()!="O")
{
warn(yyFileName,yyLineNr,
"Warning: </ol> tag does not end a <ol> tag in the documentation."
"Warning in the documentation of this entity:\nThe </ol> tag does not end a <ol> tag."
);
}
else
......@@ -1814,13 +1831,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (currentListIndent.isEmpty())
{
warn(yyFileName,yyLineNr,
"Warning: more </ul> tags than <ul> tags in the documentation."
"Warning in the documentation of this entity:\nMore </ul> tags than <ul> tags."
);
}
else if (currentListIndent.top()!="U")
{
warn(yyFileName,yyLineNr,
"Warning: </ul> tag does not end a <ul> tag in the documentation."
"Warning in the documentation of this entity:\nThe </ul> tag does not end a <ul> tag."
);
}
else
......@@ -1834,7 +1851,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
currentListIndent.top()=="D")
{
warn(yyFileName,yyLineNr,
"Warning: The <li> tag can only be used inside a <ul> ... </ul> or a <ol> ... </ol> block."
"Warning in the documentation of this entity:\nThe <li> tag can only be used inside a <ul> ... </ul> or a <ol> ... </ol> block."
);
}
else
......@@ -1855,13 +1872,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (currentListIndent.isEmpty())
{
warn(yyFileName,yyLineNr,
"Warning: more </dl> tags than <dl> tags in the documentation."
"Warning in the documentation of this entity:\nMore </dl> tags than <dl> tags in the documentation."
);
}
else if (currentListIndent.top()!="D")
{
warn(yyFileName,yyLineNr,
"Warning: </dl> tag does not end a <dl> tag in the documentation."
"Warning in the documentation of this entity:\nThe </dl> tag does not end a <dl> tag in the documentation."
);
}
else
......@@ -1875,7 +1892,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
currentListIndent.top()!="D")
{
warn(yyFileName,yyLineNr,
"Warning: The <dt> tag can only be used inside a <dl> ... </dl> block."
"Warning in the documentation of this entity:\nThe <dt> tag can only be used inside a <dl> ... </dl> block."
);
}
else
......@@ -1889,7 +1906,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
currentListIndent.top()!="D")
{
warn(yyFileName,yyLineNr,
"Warning: The <dd> tag can only be used inside a <dl> ... </dl> block."
"Warning in the documentation of this entity:\nThe <dd> tag can only be used inside a <dl> ... </dl> block."
);
}
else
......@@ -1935,7 +1952,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
<DocScan>{CMD}("\\"|"@"|"<"|">"|"&"|"$"|"#"|"%") {
outDoc->docify(&yytext[1]);
}
<DocScan>"%"[a-zA-Z_0-9\-]+ {
<DocScan,DocEmphasis,DocBold,DocCode>"%"[a-zA-Z_0-9\-]+ {
outDoc->docify(yytext+1);
}
<DocEmphasis>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" {
......@@ -2012,7 +2029,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->newParagraph();
}
if (inBlock()) endBlock();
addListItemMarker(strrchr(yytext,'\n')+1,dashPos,isEnumerated);
addListItemMarker(yytext,dashPos+1,isEnumerated);
}
<DocScan>({B}*"\n"){2,}{B}* { // new paragraph
if (insideArgumentList)
......@@ -2034,7 +2051,32 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeChar(' ');
}
<DocScan>\n?{B}* {
outDoc->writeChar(' ');
if (insidePre)
{
outDoc->docify(yytext);
}
else
{
outDoc->writeChar(' ');
}
}
<DocScan>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
outDoc->docify(yytext);
}
<DocScan>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
QCString *pValue=aliasDict[yytext+1];
if (pValue)
{
int i,l=pValue->length();
for (i=l-1;i>=0;i--)
{
unput(pValue->at(i));
}
}
else
{
warn(yyFileName,yyLineNr,"Warning in the documentation of this entity:\nUnknown command `%s' found.",yytext);
}
}
<DocCode,DocEmphasis,DocBold,DocScan,Text>[a-z_A-Z0-9]+ {
outDoc->docify(yytext);
......
......@@ -1043,13 +1043,27 @@ static void findMaximalDotGraph(DotNode *root,
QCString DotClassGraph::diskName() const
{
return m_diskName + "_coll_graph";
QString result=m_diskName.copy();
switch (m_graphType)
{
case Implementation:
result+="_coll_graph";
break;
case Interface:
result+="_intf_graph";
break;
case Inheritance:
result+="_inherit_graph";
break;
}
return result;
}
void DotClassGraph::writeGraph(QTextStream &out,
GraphOutputFormat format,
const char *path,
bool isTBRank)
bool isTBRank,
bool generateImageMap)
{
QDir d(path);
// store the original directory
......@@ -1094,34 +1108,37 @@ void DotClassGraph::writeGraph(QTextStream &out,
QDir::setCurrent(oldDir);
return;
}
// run dot again to create an image map
dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"",
Config::dotPath.data(),baseName.data(),baseName.data());
if (iSystem(dotCmd)!=0)
if (generateImageMap)
{
err("Error: Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return;
}
out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
// run dot again to create an image map
dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"",
Config::dotPath.data(),baseName.data(),baseName.data());
if (iSystem(dotCmd)!=0)
{
err("Error: Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return;
}
out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
<< m_startNode->m_label << "_" << mapName << "\" alt=\"";
switch (m_graphType)
{
case Implementation:
out << "Collaboration graph";
break;
case Interface:
out << "Interface dependency graph";
break;
case Inheritance:
out << "Inheritance graph";
break;
switch (m_graphType)
{
case Implementation:
out << "Collaboration graph";
break;
case Interface:
out << "Interface dependency graph";
break;
case Inheritance:
out << "Inheritance graph";
break;
}
out << "\"></center>" << endl;
out << "<map name=\"" << m_startNode->m_label << "_" << mapName << "\">" << endl;
convertMapFile(out,baseName+".map");
out << "</map>" << endl;
thisDir.remove(baseName+".map");
}
out << "\"></center>" << endl;
out << "<map name=\"" << m_startNode->m_label << "_" << mapName << "\">" << endl;
convertMapFile(out,baseName+".map");
out << "</map><p>" << endl;
thisDir.remove(baseName+".map");
}
else if (format==EPS) // run dot to create a .eps image
{
......@@ -1251,12 +1268,16 @@ DotInclDepGraph::~DotInclDepGraph()
QCString DotInclDepGraph::diskName() const
{
return m_diskName + "_incldep";
QCString result=m_diskName.copy();
if (m_inverse) result+="_dep";
result+="_incl";
return result;
}
void DotInclDepGraph::writeGraph(QTextStream &out,
GraphOutputFormat format,
const char *path
const char *path,
bool generateImageMap
)
{
QDir d(path);
......@@ -1292,25 +1313,28 @@ void DotInclDepGraph::writeGraph(QTextStream &out,
return;
}
// run dot again to create an image map
dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"",
Config::dotPath.data(),baseName.data(),baseName.data());
if (iSystem(dotCmd)!=0)
if (generateImageMap)
{
err("Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return;
}
// run dot again to create an image map
dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"",
Config::dotPath.data(),baseName.data(),baseName.data());
if (iSystem(dotCmd)!=0)
{
err("Problems running dot. Check your installation!\n");
QDir::setCurrent(oldDir);
return;
}
out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
<< mapName << "_map\" alt=\"";
if (m_inverse) out << "Included by dependency graph"; else out << "Include dependency graph";
out << "\">";
out << "</center>" << endl;
out << "<map name=\"" << mapName << "_map\">" << endl;
convertMapFile(out,baseName+".map");
out << "</map><p>" << endl;
thisDir.remove(baseName+".map");
if (m_inverse) out << "Included by dependency graph"; else out << "Include dependency graph";
out << "\">";
out << "</center>" << endl;
out << "<map name=\"" << mapName << "_map\">" << endl;
convertMapFile(out,baseName+".map");
out << "</map>" << endl;
thisDir.remove(baseName+".map");
}
}
else if (format==EPS)
{
......
......@@ -120,7 +120,7 @@ class DotClassGraph
~DotClassGraph();
bool isTrivial() const;
void writeGraph(QTextStream &t,GraphOutputFormat f,const char *path,
bool TBRank=TRUE);
bool TBRank=TRUE,bool imageMap=TRUE);
QCString diskName() const;
private:
......@@ -141,7 +141,8 @@ class DotInclDepGraph
public:
DotInclDepGraph(FileDef *fd,bool inverse=FALSE);
~DotInclDepGraph();
void writeGraph(QTextStream &t, GraphOutputFormat f,const char *path);
void writeGraph(QTextStream &t, GraphOutputFormat f,const char *path,
bool writeImageMap=TRUE);
bool isTrivial() const;
QCString diskName() const;
......
......@@ -81,9 +81,10 @@ ClassDict classDict(1009); // all documented classes
NamespaceDict namespaceDict(257); // all documented namespaces
MemberNameDict memberNameDict(10007); // all class member names
MemberNameDict functionNameDict(10007); // all functions
//StringDict substituteDict(1009); // class name substitutes
//StringDict substituteDict(1009); // class name substitutes
SectionDict sectionDict(257); // all page sections
StringDict excludeNameDict(1009); // sections
StringDict aliasDict(257); // aliases
FileNameDict *inputNameDict; // sections
FileNameDict *includeNameDict; // include names
FileNameDict *exampleNameDict; // examples
......@@ -1081,8 +1082,9 @@ static MemberDef *addVariableToClass(
MemberName *mn=memberNameDict[name];
if (mn)
{
MemberDef *md=mn->first();
while (md)
MemberNameIterator mni(*mn);
MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
{
if (md->getClassDef()==cd && root->type==md->typeString())
// member already in the scope
......@@ -1090,7 +1092,6 @@ static MemberDef *addVariableToClass(
addMemberDocs(root,md,def,0,FALSE);
return md;
}
md=mn->next();
}
}
// new member variable, typedef or enum value
......@@ -1212,8 +1213,9 @@ static MemberDef *addVariableToFile(
MemberName *mn=functionNameDict[name];
if (mn)
{
MemberDef *md=mn->first();
while (md)
MemberNameIterator mni(*mn);
MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
{
QCString nscope=removeAnnonymousScopes(scope);
NamespaceDef *nd=0;
......@@ -1228,7 +1230,6 @@ static MemberDef *addVariableToFile(
md->setRefItems(root->todoId,root->testId);
return md;
}
md=mn->next();
}
}
// new global variable, enum value or typedef
......@@ -1690,8 +1691,9 @@ static void buildMemberList(Entry *root)
if ((mn=functionNameDict[rname]))
{
//printf("--> function %s already found!\n",rname.data());
MemberDef *md=mn->first();
while (md && !found)
MemberNameIterator mni(*mn);
MemberDef *md;
for (mni.toFirst();((md=mni.current()) && !found);++mni)
{
NamespaceDef *nd = md->getNamespaceDef();
NamespaceDef *rnd = 0;
......@@ -1709,7 +1711,7 @@ static void buildMemberList(Entry *root)
)
{
// see if we need to create a new member
found=nsName==rnsName && // members are in the same namespace
found=nsName==rnsName || // members are in the same namespace
((fd!=0 && // no external reference
fd->absFilePath()==root->fileName // prototype in the same file
) ||
......@@ -1735,7 +1737,6 @@ static void buildMemberList(Entry *root)
}
md->addSectionsToDefinition(root->anchors);
}
md=mn->next();
}
}
if (!found) /* global function is unique with respect to the file */
......@@ -2680,9 +2681,10 @@ static bool findUnrelatedFunction(Entry *root,
{
Debug::print(Debug::FindMembers,0,"3. Found function scope\n");
//int count=0;
MemberDef *md=mn->first();
MemberNameIterator mni(*mn);
MemberDef *md;
bool found=FALSE;
while (md)
for (mni.toFirst();(md=mni.current()) && !found;++mni)
{
bool ambig;
NamespaceDef *nd=md->getNamespaceDef();
......@@ -2716,7 +2718,6 @@ static bool findUnrelatedFunction(Entry *root,
found=TRUE;
}
}
md=mn->next();
}
if (!found) // no match
{
......@@ -2727,11 +2728,9 @@ static bool findUnrelatedFunction(Entry *root,
if (mn->count()>0)
{
warn_cont("Possible candidates:\n");
md=mn->first();
while (md)
for (mni.toFirst();(md=mni.current());++mni)
{
warn_cont(" %s\n",md->declaration());
md=mn->next();
}
}
}
......@@ -3185,7 +3184,6 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (!className.isEmpty()) // class name is valid
{
int count=0;
//MemberDef *md=mn->first(); // for each member with that name
MemberNameIterator mni(*mn);
MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
......@@ -3328,37 +3326,22 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
int candidates=0;
if (mn->count()>0)
{
md=mn->first();
while (md)
for (mni.toFirst();(md=mni.current());++mni)
{
ClassDef *cd=md->getClassDef();
if (cd!=0 && cd->name()==className) candidates++;
md=mn->next();
}
}
if (candidates>0)
{
warn_cont("Possible candidates:\n");
md=mn->first();
while (md)
for (mni.toFirst();(md=mni.current());++mni)
{
ClassDef *cd=md->getClassDef();
if (cd!=0 && cd->name()==className)
{
warn_cont(" %s",md->declaration());
#if 0
if (cd->name().at(0)!='@')
{
warn_cont(" in class %s",cd->name().data());
}
if (!md->getDefFileName().isEmpty() && md->getDefLine()!=-1)
{
warn_cont(" defined at line %d of file %s",md->getDefLine(),md->getDefFileName().data());
}
#endif
warn_cont("\n");
warn_cont(" %s\n",md->declaration());
}
md=mn->next();
}
}
}
......@@ -3368,18 +3351,18 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
// for unique overloaded member we allow the class to be
// omitted, this is to be Qt compatable. Using this should
// however be avoided, because it is error prone
MemberDef *md=mn->first();
MemberNameIterator mni(*mn);
MemberDef *md=mni.toFirst();
ASSERT(md);
ClassDef *cd=md->getClassDef();
ASSERT(cd);
QCString className=cd->name().copy();
md=mn->next();
++mni;
bool unique=TRUE;
while (md)
for (;(md=mni.current());++mni)
{
ClassDef *cd=md->getClassDef();
if (className!=cd->name()) unique=FALSE;
md=mn->next();
}
if (unique)
{
......@@ -3812,8 +3795,12 @@ static void findEnums(Entry *root)
if (!e->name.isEmpty() && (fmn=(*mnd)[e->name]))
// get list of members with the same name as the field
{
MemberDef *fmd=fmn->first();
while (fmd) // search for the scope with the right name
MemberNameIterator fmni(*fmn);
MemberDef *fmd;
for (fmni.toFirst();
(fmd=fmni.current()) && fmd->isEnumValue();
++fmni
) // search for the scope with the right name
{
if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@')
{
......@@ -3842,7 +3829,6 @@ static void findEnums(Entry *root)
fmd->setEnumScope(md); // cross ref with enum name
}
}
fmd=fmn->next();
}
}
}
......@@ -3900,8 +3886,9 @@ static void findEnumDocumentation(Entry *root)
MemberName *mn=memberNameDict[name];
if (mn)
{
MemberDef *md=mn->first();
while (md && !found)
MemberNameIterator mni(*mn);
MemberDef *md;
for (mni.toFirst();(md=mni.current()) && !found;++mni)
{
ClassDef *cd=md->getClassDef();
if (cd && cd->name()==className)
......@@ -3927,7 +3914,6 @@ static void findEnumDocumentation(Entry *root)
md->addSectionsToDefinition(root->anchors);
found=TRUE;
}
md=mn->next();
}
}
else
......@@ -3939,7 +3925,7 @@ static void findEnumDocumentation(Entry *root)
{
MemberDef *md;
MemberName *mn=functionNameDict[name];
if (mn && (md=mn->first()))
if (mn && (md=mn->getFirst()))
{
md->setDocumentation(root->doc);
md->setBriefDescription(root->brief);
......@@ -3981,16 +3967,16 @@ static void findDEV(const MemberNameList &mnl)
{
if (md->isEnumerate()) // member is an enum
{
QList<MemberDef> *fmdl = md->enumFieldList();
MemberList *fmdl = md->enumFieldList();
int documentedEnumValues=0;
if (fmdl) // enum has values
{
MemberDef *fmd=fmdl->first();
MemberListIterator fmni(*fmdl);
MemberDef *fmd;
// for each enum value
while (fmd)
for (fmni.toFirst();(fmd=fmni.current());++fmni)
{
if (fmd->isLinkableInProject()) documentedEnumValues++;
fmd=fmdl->next();
}
}
// at least one enum value is documented
......@@ -4016,19 +4002,20 @@ static void findDocumentedEnumValues()
static void computeMemberRelations()
{
MemberName *mn=memberNameList.first();
while (mn) // for each member name
MemberNameListIterator mnli(memberNameList);
MemberName *mn;
for ( ; (mn=mnli.current()) ; ++mnli ) // for each member name
{
MemberNameIterator mdi(*mn);
for ( ; mdi.current() ; ++mdi) // for each member with a specific arg list
MemberDef *md;
for ( ; (md=mdi.current()) ; ++mdi ) // for each member with a specific arg list
{
MemberDef *md=mdi.current();
MemberNameIterator bmdi(*mn);
for ( ; bmdi.current() ; ++bmdi) // for each other member with that signature
MemberDef *bmd;
for ( ; (bmd=bmdi.current()) ; ++bmdi ) // for each other member with that signature
{
MemberDef *bmd=bmdi.current();
ClassDef *bmcd = bmd->getClassDef();
ClassDef *mcd = md->getClassDef();
ClassDef *mcd = md->getClassDef();
//printf("Check relation between `%s'::`%s' and `%s'::`%s'\n",
// mcd->name().data(),md->name().data(),
// bmcd->name().data(),bmd->name().data()
......@@ -4060,7 +4047,6 @@ static void computeMemberRelations()
}
}
}
mn=memberNameList.next();
}
}
......@@ -4108,11 +4094,13 @@ static void generateFileSources()
if (inputNameList.count()>0)
{
FileName *fn=inputNameList.first();
while (fn)
FileNameListIterator fnli(inputNameList);
FileName *fn;
for (;(fn=fnli.current());++fnli)
{
FileDef *fd=fn->first();
while (fd)
FileNameIterator fni(*fn);
FileDef *fd;
for (;(fd=fni.current());++fni)
{
bool src = !fd->isReference() &&
(fd->generateSource() || Config::sourceBrowseFlag);
......@@ -4121,9 +4109,7 @@ static void generateFileSources()
msg("Generating code for file %s...\n",fd->name().data());
fd->writeSource(*outputList);
}
fd=fn->next();
}
fn=inputNameList.next();
}
}
}
......@@ -4136,11 +4122,13 @@ static void generateFileDocs()
if (inputNameList.count()>0)
{
FileName *fn=inputNameList.first();
while (fn)
FileNameListIterator fnli(inputNameList);
FileName *fn;
for (fnli.toFirst();(fn=fnli.current());++fnli)
{
FileDef *fd=fn->first();
while (fd)
FileNameIterator fni(*fn);
FileDef *fd;
for (fni.toFirst();(fd=fni.current());++fni)
{
bool doc = fd->isLinkableInProject();
if (doc)
......@@ -4149,9 +4137,7 @@ static void generateFileDocs()
fd->writeDocumentation(*outputList);
}
fd=fn->next();
}
fn=inputNameList.next();
}
}
}
......@@ -5728,6 +5714,38 @@ int main(int argc,char **argv)
}
s=Config::expandAsDefinedList.next();
}
// add aliases to a dictionary
aliasDict.setAutoDelete(TRUE);
s=Config::aliasList.first();
while (s)
{
if (aliasDict[s]==0)
{
QCString alias=s;
int i=alias.find('=');
if (i>0)
{
QCString name=alias.left(i).stripWhiteSpace();
QCString value=alias.right(alias.length()-i-1);
value=substitute(value,"\\n","\n");
//printf("Alias: found name=`%s' value=`%s'\n",name.data(),value.data());
if (!name.isEmpty())
{
QCString *dn=aliasDict[name];
if (dn==0) // insert new alias
{
aliasDict.insert(name,new QCString(value));
}
else // overwrite previous alias
{
*dn=value;
}
}
}
}
s=Config::aliasList.next();
}
BufStr input(inputSize+1); // Add one byte extra for \0 termination
......
......@@ -99,6 +99,7 @@ extern FormulaList formulaList;
extern FormulaDict formulaDict;
extern FormulaDict formulaNameDict;
extern StringDict tagDestinationDict;
extern StringDict aliasDict;
extern QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
extern QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
extern QDict<void> expandAsDefinedDict;
......
......@@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
translator_nl.h translator_se.h translator_cz.h translator_fr.h \
translator_it.h formula.h debug.h membergroup.h htmlhelp.h \
translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \
reflist.h page.h sortdict.h
reflist.h page.h sortdict.h translator_hu.h
SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
......
......@@ -577,7 +577,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d,
<< " border=\"0\"></center>" << endl
<< "<map name=\"" << name << "_map\">" << endl;
d.writeImageMap(t,dir,fileName);
d.writeImage(t,dir,fileName);
}
void HtmlGenerator::startColorFont(uchar red,uchar green,uchar blue)
......
......@@ -31,6 +31,7 @@
#include "translator_hr.h"
#include "translator_pl.h"
#include "translator_pt.h"
#include "translator_hu.h"
#endif
#define L_EQUAL(a) !stricmp(langName,a)
......@@ -100,6 +101,10 @@ bool setTranslator(const char *langName)
{
theTranslator=new TranslatorPortuguese;
}
else if (L_EQUAL("hungarian"))
{
theTranslator=new TranslatorHungarian;
}
#endif
else // use the default language (i.e. english)
{
......
......@@ -108,7 +108,7 @@ class LatexGenerator : public OutputGenerator
void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ }
void writeAnchor(const char *fileName,const char *name);
void startCodeFragment() { t << "\\small\\begin{verbatim}"; }
void startCodeFragment() { t << "\\footnotesize\\begin{verbatim}"; }
void endCodeFragment() { t << "\\end{verbatim}\\normalsize " << endl; }
void startPreFragment() { t << "\\small\\begin{alltt}"; }
void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl; }
......
......@@ -972,10 +972,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
rmd = rmd->reimplements();
}
if (isStatic() || protection()!=Public ||
lvirt!=Normal || isSignal() || isFriend() ||
isRelated() || isSlot() ||
getMemberSpecifiers()!=0
if (protection()!=Public || lvirt!=Normal ||
isFriend() || isRelated() || isExplicit() ||
isMutable() || (isInline() && Config::inlineInfoFlag) ||
isSignal() || isSlot() ||
isStatic()
)
{
// write the member specifier list
......
......@@ -1737,7 +1737,7 @@ void RTFGenerator::endClassDiagram(ClassDiagram &d,
newParagraph();
// create a gif file
d.writeImageMap(t,dir,fileName,FALSE);
d.writeImage(t,dir,fileName,FALSE);
// display the file
t << "{" << endl;
......@@ -2160,11 +2160,8 @@ void RTFGenerator::startDotGraph()
void RTFGenerator::endDotGraph(DotClassGraph &g)
{
newParagraph();
DBG_RTF(t <<"{\\comment This would be an image map..." << endl)
g.writeGraph(t,GIF,Config::rtfOutputDir);
t << "}" << endl;
g.writeGraph(t,GIF,Config::rtfOutputDir,TRUE,FALSE);
// display the file
t << "{" << endl;
......@@ -2182,11 +2179,8 @@ void RTFGenerator::startInclDepGraph()
void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
{
newParagraph();
DBG_RTF(t <<"{\\comment This would be an image map..." << endl)
g.writeGraph(t,GIF,Config::rtfOutputDir);
t << "}" << endl;
g.writeGraph(t,GIF,Config::rtfOutputDir,FALSE);
//QCString diskName = g.diskName();
......
......@@ -13,10 +13,16 @@
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
*/
// translation by Boris Bralo <boris.bralo@zg.tel.hr>
// Updates:
// --------
// 2000/08/20
// - Better handling of ISO-8859-2/ WIN 1250 stuff based on (actualy stolen from :-)) Czech translations
// implemented by Petr Prikryl (prikrylp@skil.cz).
// As opposed to Czech translation this one assumes that Doxygen strings are written in Linux ( it's true,
// I don't have QT pro licence ) , and uses ISOToWin function when built in WIN32
//
#ifndef TRANSLATOR_HR_H
#define TRANSLATOR_HR_H
......@@ -24,249 +30,333 @@
class TranslatorCroatian : public Translator
{
private:
/*! to avoid macro redefinition from translator_cz.h */
/* Speed loss is actualy less than in Czech version due to
fewer QCString copying.
*/
inline QCString& decode(const QCString& sInput)
{
#ifdef _WIN32
return ISOToWin(sInput);
#else
return const_cast<QCString&>(sInput);
#endif
}
/*! returns the string converted from windows-1250 to iso-8859-2 */
QCString WinToISO(const QCString& sInput)
{
// The conversion table for characters >127
//
static const char WinToISOTab[] = {
'\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
'\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC',
'\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97',
'\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC',
'\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7',
'\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF',
'\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7',
'\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF',
'\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
'\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
'\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
'\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
'\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
'\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
'\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D',
'\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
'\0'
};
QCString result;
int len = sInput.length();
for (int i = 0; i < len; ++i)
{
unsigned int c = sInput[i];
result += (c > 127) ? WinToISOTab[c & 0x7F] : c;
}
return result;
}
/*! returns the string converted from iso-8859-2 to windows-1250 */
QCString ISOToWin(const QCString& sInput)
{
// The conversion table for characters >127
//
static const char ISOToWinTab[] = {
'\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
'\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
'\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
'\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
'\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7',
'\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF',
'\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7',
'\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF',
'\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
'\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
'\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
'\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
'\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
'\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
'\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
'\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
'\0'
};
QCString result;
int len = sInput.length();
for (int i = 0; i < len; ++i)
{
unsigned int c = sInput[i];
result += (c > 127) ? ISOToWinTab[c & 0x7F] : c;
}
return result;
}
public:
QCString idLanguage()
{ return "croatian"; }
QCString latexBabelPackage()
{ return "croatian"; }
QCString idLanguageCharset()
{
#ifdef _WIN32
return "windows-1250";
{ return "windows-1250"; }
#else
return "iso-8859-2";
{ return "iso-8859-2"; }
#endif
}
QCString latexBabelPackage()
{ return "croatian"; }
QCString trRelatedFunctions()
{ return "Povezane funkcije"; }
{ return decode("Povezane funkcije"); }
QCString trRelatedSubscript()
{ return "(To nisu member funkcije.)"; }
{ return decode("(To nisu member funkcije.)"); }
QCString trDetailedDescription()
{ return "Detaljno objanjenje"; }
{ return decode("Detaljno objanjenje"); }
QCString trMemberTypedefDocumentation()
{ return "Dokumentacija <code> typedef </code> lanova"; }
{ return decode("Dokumentacija typedef lanova"); }
QCString trMemberEnumerationDocumentation()
{ return "Dokumentacija <code> enum </code> lanova"; }
{ return decode("Dokumentacija enum lanova"); }
QCString trEnumerationValueDocumentation()
{ return "Dokumentacija <code> enum </code> vrijednosti"; }
{ return decode("Dokumentacija enum vrijednosti"); }
QCString trMemberFunctionDocumentation()
{ return "Dokumentacija funkcija"; }
{ return decode("Dokumentacija funkcija"); }
QCString trMemberDataDocumentation()
{ return "Documentacija varijabli"; }
{ return decode("Documentacija varijabli"); }
QCString trGeneratedFrom(const char *s,bool single)
{
QCString result=(QCString)"Dokumentacija za "+s+
"je generirana iz ";
if (single) result+="datoteke :"; else result+="slijedeih datoteka:";
QCString result= decode("Dokumentacija za ")+s+
decode("je generirana iz ");
if (single)
result+= decode("datoteke :");
else
result+= decode("slijedeih datoteka:");
return result;
}
QCString trMore()
{ return "Opirnije..."; }
{ return decode("Opirnije..."); }
QCString trListOfAllMembers()
{ return "Popis svih lanova."; }
{ return decode("Popis svih lanova."); }
QCString trMemberList()
{ return "Popis lanova."; }
{ return decode("Popis lanova."); }
QCString trThisIsTheListOfAllMembers()
{ return "Ovo je popis svih lanova"; }
{ return decode("Ovo je popis svih lanova"); }
QCString trIncludingInheritedMembers()
{ return ", ukljuujui naslijeene lanove."; }
{ return decode(", ukljuujui naslijeene lanove."); }
QCString trGeneratedAutomatically(const char *s)
{ QCString result="generirano automatski Doxygen-om";
if (s) result+=(QCString)" za "+s;
result+=" iz programskog koda.";
{ QCString result=decode("generirano automatski Doxygen-om");
if (s) result+=(QCString)decode(" za ")+s;
result+=decode(" iz programskog koda.");
return result;
}
QCString trEnumName()
{ return "enum ime"; }
{ return decode("enum ime"); }
QCString trEnumValue()
{ return "enum vrijednost"; }
{ return decode("enum vrijednost"); }
QCString trDefinedIn()
{ return "definirano u"; }
{ return decode("definirano u"); }
QCString trVerbatimText(const char *f)
{ return (QCString)"Ovo je citirani tekst iz include datoteke "+f+"."; }
{ return (QCString)decode("Ovo je citirani tekst iz include datoteke ")+f+"."; }
QCString trModules()
{ return "Moduli"; }
{ return decode("Moduli"); }
QCString trClassHierarchy()
{ return "Stablo klasa"; }
{ return decode("Stablo klasa"); }
QCString trCompoundList()
{ return "Sve klase"; }
{ return decode("Sve klase"); }
QCString trFileList()
{ return "Popis datoteka"; }
{ return decode("Popis datoteka"); }
QCString trHeaderFiles()
{ return "Header datoteke"; }
{ return decode("Header datoteke"); }
QCString trCompoundMembers()
{ return "Svi lanovi"; }
{ return decode("Svi lanovi"); }
QCString trFileMembers()
{ return "lanovi(memberi) u datoteci"; }
{ return decode("lanovi(memberi) u datoteci"); }
QCString trRelatedPages()
{ return "Povezane stranice"; }
{ return decode("Povezane stranice"); }
QCString trExamples()
{ return "Primjeri"; }
{ return decode("Primjeri"); }
QCString trSearch()
{ return "Trai"; }
{ return decode("Trai"); }
QCString trClassHierarchyDescription()
{ return "Stablo naslijeivanja je posloeno "
"priblino po abecedi:";
{ return decode("Stablo naslijeivanja je posloeno "
"priblino po abecedi:");
}
QCString trFileListDescription(bool extractAll)
{
QCString result="Popis svih ";
if (!extractAll) result+="dokumentiranih ";
result+="datoteka, s kratkim opisom:";
QCString result=decode("Popis svih ");
if (!extractAll) result+=decode("dokumentiranih ");
result+=decode("datoteka, s kratkim opisom:");
return result;
}
QCString trCompoundListDescription()
{ return "Popis svih klasa, unija i struktura "
"s kratkim opisom :";
{ return decode("Popis svih klasa, unija i struktura "
"s kratkim opisom :");
}
QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="Popis svih ";
if (!extractAll) result+="dokumentiranih ";
result+="lanova klasa s linkovima na ";
if (extractAll) result+="dokumentaciju svakog lana:";
else result+="dokumentaciju klase :";
QCString result=decode("Popis svih ");
if (!extractAll) result+=decode("dokumentiranih ");
result+=decode("lanova klasa s linkovima na ");
if (extractAll) result+=decode("dokumentaciju svakog lana:");
else result+=decode("dokumentaciju klase :");
return result;
}
QCString trFileMembersDescription(bool extractAll)
{
QCString result="Popis svih ";
if (!extractAll) result+="dokumentiranih ";
result+="lanova s linkovima na ";
if (extractAll) result+="dokumentaciju datoteke u kojima se nalaze:";
else result+="datoteke u kojima se nalaze:";
QCString result=decode("Popis svih ");
if (!extractAll) result+=decode("dokumentiranih ");
result+=decode("lanova s linkovima na ");
if (extractAll) result+=decode("dokumentaciju datoteke u kojima se nalaze:");
else result+=decode("datoteke u kojima se nalaze:");
return result;
}
QCString trHeaderFilesDescription()
{ return "Popis header datoteka koje ine API :"; }
{ return decode("Popis header datoteka koje ine API :"); }
QCString trExamplesDescription()
{ return "Popis primjera :"; }
{ return decode("Popis primjera :"); }
QCString trRelatedPagesDescription()
{ return "Popis povezanih stranica:"; }
{ return decode("Popis povezanih stranica:"); }
QCString trModulesDescription()
{ return "Popis svih modula:"; }
{ return decode("Popis svih modula:"); }
QCString trNoDescriptionAvailable()
{ return "Opis nije dostupan"; }
{ return decode("Opis nije dostupan"); }
QCString trDocumentation()
{ return "Dokumentacija"; }
{ return decode("Dokumentacija"); }
QCString trModuleIndex()
{ return "Indeks modula"; }
{ return decode("Indeks modula"); }
QCString trHierarchicalIndex()
{ return "Hijerarhijski indeks"; }
{ return decode("Hijerarhijski indeks"); }
QCString trCompoundIndex()
{ return "Skupni indeks"; }
{ return decode("Skupni indeks"); }
QCString trFileIndex()
{ return "Indeks datoteka"; }
{ return decode("Indeks datoteka"); }
QCString trModuleDocumentation()
{ return "Dokumentacija modula"; }
{ return decode("Dokumentacija modula"); }
QCString trClassDocumentation()
{ return "Dokumentacija klasa"; }
{ return decode("Dokumentacija klasa"); }
QCString trFileDocumentation()
{ return "Dokumentacija datoteka"; }
{ return decode("Dokumentacija datoteka"); }
QCString trExampleDocumentation()
{ return "Dokumentacija primjera"; }
{ return decode("Dokumentacija primjera"); }
QCString trPageDocumentation()
{ return "Dokumentacija za povezane stranice"; }
{ return decode("Dokumentacija za povezane stranice"); }
QCString trReferenceManual()
{ return "Prirunik"; }
{ return decode("Prirunik"); }
QCString trDefines()
{ return "Define-ovi"; }
{ return decode("Define-ovi"); }
QCString trFuncProtos()
{ return "Prototipi funkcija"; }
{ return decode("Prototipi funkcija"); }
QCString trTypedefs()
{ return "Typedef-ovi"; }
{ return decode("Typedef-ovi"); }
QCString trEnumerations()
{ return "Enumeracije"; }
{ return decode("Enumeracije"); }
QCString trFunctions()
{ return "Funkcije"; }
{ return decode("Funkcije"); }
QCString trVariables()
{ return "Varijable"; }
{ return decode("Varijable"); }
QCString trEnumerationValues()
{ return "Vrijednosti enum-ova"; }
{ return decode("Vrijednosti enum-ova"); }
QCString trAuthor()
{ return "autor"; }
{ return decode("autor"); }
QCString trDefineDocumentation()
{ return "Dokumentacija define-a"; }
{ return decode("Dokumentacija define-a"); }
QCString trFunctionPrototypeDocumentation()
{ return "Dokumentacija prototipa funkcije"; }
{ return decode("Dokumentacija prototipa funkcije"); }
QCString trTypedefDocumentation()
{ return "Dokumentacija typedef-a"; }
{ return decode("Dokumentacija typedef-a"); }
QCString trEnumerationTypeDocumentation()
{ return "Dokumentacija enum tipa"; }
{ return decode("Dokumentacija enum tipa"); }
QCString trFunctionDocumentation()
{ return "Dokumentacije funkcijs"; }
{ return decode("Dokumentacije funkcijs"); }
QCString trVariableDocumentation()
{ return "Dokumentacija varijable"; }
{ return decode("Dokumentacija varijable"); }
QCString trCompounds()
{ return "Strukture"; }
{ return decode("Strukture"); }
QCString trFiles()
{ return "Datoteke"; }
{ return decode("Datoteke"); }
QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result=(QCString)"Generirano "+date;
if (projName) result+=(QCString)" projekt: "+projName;
result+=(QCString)" generator: ";
QCString result=(QCString)decode("Generirano ")+date;
if (projName) result+=(QCString)decode(" projekt: ")+projName;
result+=(QCString)decode(" generator: ");
return result;
}
QCString trWrittenBy()
{
return "napisao ";
return decode("napisao ");
}
QCString trClassDiagram(const char *clName)
{
return (QCString)"Dijagram klasa za "+clName;
return decode("Dijagram klasa za ")+clName;
}
QCString trForInternalUseOnly()
{ return "Iskljuivo za internu uporabu."; }
{ return decode("Iskljuivo za internu uporabu."); }
QCString trReimplementedForInternalReasons()
{ return "Reimplementirano zbog internih razloga; "
"Nema utjecaja na API.";
{ return decode("Reimplementirano zbog internih razloga; "
"Nema utjecaja na API.");
}
QCString trWarning()
{ return "Upozorenje"; }
{ return decode("Upozorenje"); }
QCString trBugsAndLimitations()
{ return "Greke i ogranienja"; }
{ return decode("Greke i ogranienja"); }
QCString trVersion()
{ return "Verzija"; }
{ return decode("Verzija"); }
QCString trDate()
{ return "Datum"; }
{ return decode("Datum"); }
QCString trAuthors()
{ return "Autor(i)"; }
{ return decode("Autor(i)"); }
QCString trReturns()
{ return "Povratne vrijednosti"; }
{ return decode("Povratne vrijednosti"); }
QCString trSeeAlso()
{ return "Vidi takoer"; }
{ return decode("Vidi takoer"); }
QCString trParameters()
{ return "Parametri"; }
{ return decode("Parametri"); }
QCString trExceptions()
{ return "Iznimke"; }
{ return decode("Iznimke"); }
QCString trGeneratedBy()
{ return "Generirao"; }
{ return decode("Generirao"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
QCString trNamespaceList()
{ return "Popis namespace-ova"; }
{ return decode("Popis namespace-ova"); }
QCString trNamespaceListDescription(bool extractAll)
{
QCString result="Popis svih ";
if (!extractAll) result+="dokumentiranih ";
result+="namespace-ova s kratkim opisom:";
QCString result=decode("Popis svih ");
if (!extractAll) result+=decode("dokumentiranih ");
result+=decode("namespace-ova s kratkim opisom:");
return result;
}
QCString trFriends()
{ return "Friend-ovi "; }
{ return decode("Friend-ovi "); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
QCString trRelatedFunctionDocumentation()
{ return "Dokumentacija povezanih funkcija"; }
{ return decode("Dokumentacija povezanih funkcija"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
......@@ -277,14 +367,14 @@ class TranslatorCroatian : public Translator
bool /*isTemplate*/)
// used as the title of the HTML page of a class/struct/union
{
QCString result="Opis ";
QCString result=decode("Opis ");
switch(compType)
{
case ClassDef::Class: result+=" klase "; break;
case ClassDef::Struct: result+=" strukture "; break;
case ClassDef::Union: result+=" unije "; break;
case ClassDef::Interface: result+=" suelja (interface) "; break;
case ClassDef::Exception: result+=" iznimke (exception) "; break;
case ClassDef::Class: result+=decode(" klase "); break;
case ClassDef::Struct: result+=decode(" strukture "); break;
case ClassDef::Union: result+=decode(" unije "); break;
case ClassDef::Interface: result+=decode(" suelja (interface) "); break;
case ClassDef::Exception: result+=decode(" iznimke (exception) "); break;
}
result += (QCString)clName;
......@@ -293,14 +383,14 @@ class TranslatorCroatian : public Translator
QCString trFileReference(const char *fileName)
// used as the title of the HTML page of a file
{
QCString result="Opis datoteke ";
QCString result=decode("Opis datoteke ");
result+=fileName;
return result;
}
QCString trNamespaceReference(const char *namespaceName)
// used as the title of the HTML page of a namespace
{
QCString result ="Opis namespace-a ";
QCString result =decode("Opis namespace-a ");
result+=namespaceName;
return result;
......@@ -308,25 +398,25 @@ class TranslatorCroatian : public Translator
// these are for the member sections of a class, struct or union
QCString trPublicMembers()
{ return "Public lanovi"; }
{ return decode("Public lanovi"); }
QCString trPublicSlots()
{ return "Public slotovi"; }
{ return decode("Public slotovi"); }
QCString trSignals()
{ return "Signali"; }
{ return decode("Signali"); }
QCString trStaticPublicMembers()
{ return "Static public lanovi"; }
{ return decode("Static public lanovi"); }
QCString trProtectedMembers()
{ return "Protected lanovi"; }
{ return decode("Protected lanovi"); }
QCString trProtectedSlots()
{ return "Protected slotovi"; }
{ return decode("Protected slotovi"); }
QCString trStaticProtectedMembers()
{ return "Static protected lanovi"; }
{ return decode("Static protected lanovi"); }
QCString trPrivateMembers()
{ return "Private lanovi"; }
{ return decode("Private lanovi"); }
QCString trPrivateSlots()
{ return "Private slotovi"; }
{ return decode("Private slotovi"); }
QCString trStaticPrivateMembers()
{ return "Static private lanovi"; }
{ return decode("Static private lanovi"); }
// end of member sections
QCString trWriteList(int numEntries)
......@@ -357,50 +447,50 @@ class TranslatorCroatian : public Translator
// used in class documentation to produce a list of base classes,
// if class diagrams are disabled.
{
return "Naslijeuje od "+trWriteList(numEntries)+".";
return decode("Naslijeuje od "+trWriteList(numEntries)+".");
}
QCString trInheritedByList(int numEntries)
// used in class documentation to produce a list of super classes,
// if class diagrams are disabled.
{
return "Naslijeena u "+trWriteList(numEntries)+".";
return decode("Naslijeena u "+trWriteList(numEntries)+".");
}
QCString trReimplementedFromList(int numEntries)
// used in member documentation blocks to produce a list of
// members that are hidden by this one.
{
return "Reimplementirano od "+trWriteList(numEntries)+".";
return decode("Reimplementirano od "+trWriteList(numEntries)+".");
}
QCString trReimplementedInList(int numEntries)
{
// used in member documentation blocks to produce a list of
// all member that overwrite the implementation of this member.
return "Reimplementacija u "+trWriteList(numEntries)+".";
return decode("Reimplementacija u "+trWriteList(numEntries)+".");
}
QCString trNamespaceMembers()
// This is put above each page as a link to all members of namespaces.
{ return "Namespace lanovi"; }
{ return decode("Namespace lanovi"); }
QCString trNamespaceMemberDescription(bool extractAll)
// This is an introduction to the page with all namespace members
{
QCString result="Lista svih ";
if (!extractAll) result+="dokumentiranih ";
result+="namespace lanova s linkovima na ";
QCString result=decode("Lista svih ");
if (!extractAll) result+=decode("dokumentiranih ");
result+=decode("namespace lanova s linkovima na ");
if (extractAll)
result+="namespace dokumentaciju svakog lana:";
result+=decode("namespace dokumentaciju svakog lana:");
else
result+="namespace kojima pripadaju:";
result+=decode("namespace kojima pripadaju:");
return result;
}
QCString trNamespaceIndex()
// This is used in LaTeX as the title of the chapter with the
// index of all namespaces.
{ return "Indeks namespace-a"; }
{ return decode("Indeks namespace-a"); }
QCString trNamespaceDocumentation()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all namespaces.
{ return "Dokumentacija namespace-a"; }
{ return decode("Dokumentacija namespace-a"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
......@@ -413,16 +503,16 @@ class TranslatorCroatian : public Translator
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"Dokumentacija ove ";
QCString result=(QCString)decode("Dokumentacija ove ");
switch(compType)
{
case ClassDef::Class: result+="klase"; break;
case ClassDef::Struct: result+="strukture"; break;
case ClassDef::Union: result+="unije"; break;
case ClassDef::Interface: result+="suelja (interface)"; break;
case ClassDef::Exception: result+="iznimke (exception)"; break;
case ClassDef::Class: result+=decode("klase"); break;
case ClassDef::Struct: result+=decode("strukture"); break;
case ClassDef::Union: result+=decode("unije"); break;
case ClassDef::Interface: result+=decode("suelja (interface)"); break;
case ClassDef::Exception: result+=decode("iznimke (exception)"); break;
}
result+=" je generirana iz datotek";
result+=decode(" je generirana iz datotek");
if (single) result+="e :"; else result+="a :";
return result;
}
......@@ -431,7 +521,7 @@ class TranslatorCroatian : public Translator
* list.
*/
QCString trAlphabeticalList()
{ return "Abecedni popis"; }
{ return decode("Abecedni popis"); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
......@@ -439,18 +529,18 @@ class TranslatorCroatian : public Translator
/*! This is used as the heading text for the retval command. */
QCString trReturnValues()
{ return "Povratna vrijednost"; }
{ return decode("Povratna vrijednost"); }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
QCString trMainPage()
{ return "Glavna stranica"; }
{ return decode("Glavna stranica"); }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
QCString trPageAbbreviation()
{ return "str."; }
{ return decode("str."); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991106
......@@ -458,15 +548,15 @@ class TranslatorCroatian : public Translator
QCString trSources()
{
return "Izvorne datoteke";
return decode("Izvorne datoteke");
}
QCString trDefinedAtLineInSourceFile()
{
return "Definirano u liniji @0 datoteke @1.";
return decode("Definirano u liniji @0 datoteke @1.");
}
QCString trDefinedInSourceFile()
{
return "Definirano u datoteci @0.";
return decode("Definirano u datoteci @0.");
}
//////////////////////////////////////////////////////////////////////////
......@@ -475,7 +565,7 @@ class TranslatorCroatian : public Translator
QCString trDeprecated()
{
return "Zastarjelo";
return decode("Zastarjelo");
}
//////////////////////////////////////////////////////////////////////////
......@@ -485,68 +575,68 @@ class TranslatorCroatian : public Translator
/*! this text is put before a collaboration diagram */
QCString trCollaborationDiagram(const char *clName)
{
return (QCString)"Kolaboracijski dijagram za "+clName+":";
return decode( (QCString)"Kolaboracijski dijagram za "+clName+ ":");
}
/*! this text is put before an include dependency graph */
QCString trInclDepGraph(const char *fName)
{
return (QCString)"Graf include meuovisnosti za "+fName+":";
return decode((QCString)"Graf include meuovisnosti za "+fName+":");
}
/*! header that is put before the list of constructor/destructors. */
QCString trConstructorDocumentation()
{
return "Dokumentacija konstruktora i destruktora ";
return decode("Dokumentacija konstruktora i destruktora ");
}
/*! Used in the file documentation to point to the corresponding sources. */
QCString trGotoSourceCode()
{
return "Izvorni kod";
return decode("Izvorni kod");
}
/*! Used in the file sources to point to the corresponding documentation. */
QCString trGotoDocumentation()
{
return "Dokumenacija za ovu datoteku.";
return decode("Dokumenacija za ovu datoteku.");
}
/*! Text for the \pre command */
QCString trPrecondition()
{
return "Preduvjeti";
return decode("Preduvjeti");
}
/*! Text for the \post command */
QCString trPostcondition()
{
return "Postuvjeti";
return decode("Postuvjeti");
}
/*! Text for the \invariant command */
QCString trInvariant()
{
return "Invarijanta";
return decode("Invarijanta");
}
/*! Text shown before a multi-line variable/enum initialization */
QCString trInitialValue()
{
return "Poetna vrijednost:";
return decode("Poetna vrijednost:");
}
/*! Text used the source code in the file index */
QCString trCode()
{
return "kod";
return decode("kod");
}
QCString trGraphicalHierarchy()
{
return "Grafiko stablo klasa";
return decode("Grafiko stablo klasa");
}
QCString trGotoGraphicalHierarchy()
{
return "Grafiko stablo klasa";
return decode("Grafiko stablo klasa");
}
QCString trGotoTextualHierarchy()
{
return "Tekstualno stablo klasa";
return decode("Tekstualno stablo klasa");
}
QCString trPageIndex()
{
return "Indeks stranice";
return decode("Indeks stranice");
}
//////////////////////////////////////////////////////////////////////////
......@@ -555,43 +645,43 @@ class TranslatorCroatian : public Translator
QCString trNote()
{
return "Primjedba";
return decode("Primjedba");
}
QCString trPublicTypes()
{
return "Public tipovi";
return decode("Public tipovi");
}
QCString trPublicAttribs()
{
return "Public atributi";
return decode("Public atributi");
}
QCString trStaticPublicAttribs()
{
return "Static public atributi";
return decode("Static public atributi");
}
QCString trProtectedTypes()
{
return "Protected tipovi";
return decode("Protected tipovi");
}
QCString trProtectedAttribs()
{
return "Protected atributi";
return decode("Protected atributi");
}
QCString trStaticProtectedAttribs()
{
return "Static protected atributi";
return decode("Static protected atributi");
}
QCString trPrivateTypes()
{
return "Private tipovi";
return decode("Private tipovi");
}
QCString trPrivateAttribs()
{
return "Private atributi";
return decode("Private atributi");
}
QCString trStaticPrivateAttribs()
{
return "Static private atributi";
return decode("Static private atributi");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
......@@ -600,12 +690,12 @@ class TranslatorCroatian : public Translator
/*! Used as a marker that is put before a todo item */
virtual QCString trTodo()
{
return "Za uraditi";
return decode("Za uraditi");
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Ostalo za uraditi";
return decode("Ostalo za uraditi");
}
//////////////////////////////////////////////////////////////////////////
......@@ -614,31 +704,108 @@ class TranslatorCroatian : public Translator
virtual QCString trReferencedBy()
{
return "Referencirano od";
return decode("Referencirano od");
}
virtual QCString trRemarks()
{
return "Napomene";
return decode("Napomene");
}
virtual QCString trAttention()
{
#ifdef _WIN32
return "Pa?nja";
#else
return "Panja";
#endif
return decode("Panja");
}
virtual QCString trInclByDepGraph()
{
return "Ovaj graf pokazuje koje datoteke izravno "
"ili neizravno ukljuuju ovu datoteku:";
return decode("Ovaj graf pokazuje koje datoteke izravno "
"ili neizravno ukljuuju ovu datoteku:");
}
virtual QCString trSince()
{
return "Od";
return decode("Od");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return decode("Legenda");
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
return
decode( "Ova stranica objanjava kako interpretirati grafikone koje je generirao "
"doxygen.<p>\n"
"Na primjer:\n"
"\\code\n"
"/*! Nevidljiva klasa (nee stati na graf date visine) */\n"
"class Invisible { };\n\n"
"/*! Odrezana klasa, inheritance je skriven (klase se vidi na grafu, ali ne i sve bazne klase) */\n"
"class Truncated : public Invisible { };\n\n"
"/* Nedokumentirana klasa */\n"
"class Undocumented { };\n\n"
"/*! Klasa koja je naslijeena public */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! Klasa koje je naslijeena protected */\n"
"class ProtectedBase { };\n\n"
"/*! Klasa koje je naslijeena private */\n"
"class PrivateBase { };\n\n"
"/*! Klasa koja se koristi agregacijom */\n"
"class Used { };\n\n"
"/*! Super klasa koja naslijeuje/koristi ostale */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracijskoj datoteci "
"postavljen na 200 gornje veze e rezultirati grafikonom:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"Pravokutnici imaju slijedee znaenje:\n"
"<ul>\n"
"<li>Puni crni predstavlja klasu za koji je generiran graf.\n"
"<li>Pravokutnik s crnim rubom predstavlja dokumentiranu klasu.\n"
"<li>Pravokutnik s sivim rubom predstavlja nedokumentiranu klasu.\n"
"<li>Pravokutnik s crvenim rubom predstavlja dokumentiranu klasu\n"
"Za koju nije prikazan graf naslijeivanja. Graf je odrezan "
"ako ne stane unutar odreenih granica."
"</ul>\n"
"Strelice imaju slijedee znaenje:\n"
"<ul>\n"
"<li>Tamnoplava strelica oznaava public naslijeivanje.\n"
"<li>Tamnozelena strelica oznaava protected naslijeivanje.\n"
"<li>Tamnocrvena strelica oznaava private naslijeivanje.\n"
"<li>Ljubiasta isprekidana strelica se koristi za agregate vezu. "
"Strelica je oznaena imenom varijable.\n"
"</ul>\n");
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
return decode("legenda");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
return "Test";
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Test lista";
}
};
#endif
/******************************************************************************
*
*
*
* 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.
*
*/
#ifndef TRANSLATOR_HU_H
#define TRANSLATOR_HU_H
#include "translator.h"
class TranslatorHungarian : public Translator
{
public:
// --- Language contol methods -------------------
QCString idLanguage()
{ return "hungarian"; }
/*! Used to get the command(s) for the language support. This method
* was designed for languages which do not prefer babel package.
* If this methods returns empty string, then the latexBabelPackage()
* method is used to generate the command for using the babel package.
*/
QCString latexLanguageSupportCommand()
{
return "";
}
/*! returns the name of the package that is included by LaTeX */
QCString latexBabelPackage()
{ return ""; }
/*! return the language charset. This will be used for the HTML output */
QCString idLanguageCharset()
{
return "iso-8859-2";
}
// --- Language translation methods -------------------
/*! used in the compound documentation before a list of related functions. */
QCString trRelatedFunctions()
{ return "Kapcsolódó függvények"; }
/*! subscript for the related functions. */
QCString trRelatedSubscript()
{ return "(Figyelem! Ezek a függvények nem tagjai az osztálynak!)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
QCString trDetailedDescription()
{ return "Részletes leírás"; }
/*! header that is put before the list of typedefs. */
QCString trMemberTypedefDocumentation()
{ return "Osztálytag típusdefiníciók dokumentációja"; }
/*! header that is put before the list of enumerations. */
QCString trMemberEnumerationDocumentation()
{ return "Osztálytag enumerációk dokumentációja"; }
/*! header that is put before the list of member functions. */
QCString trMemberFunctionDocumentation()
{ return "Osztálytag függvények (metódusok) dokumentációja"; }
/*! header that is put before the list of member attributes. */
QCString trMemberDataDocumentation()
{ return "Osztálytag adatok dokumentációja"; }
/*! this is the text of a link put after brief descriptions. */
QCString trMore()
{ return "Részletek..."; }
/*! put in the class documentation */
QCString trListOfAllMembers()
{ return "Osztálytagok listája."; }
/*! used as the title of the "list of all members" page of a class */
QCString trMemberList()
{ return "Osztálytagok listája"; }
/*! this is the first part of a sentence that is followed by a class name */
QCString trThisIsTheListOfAllMembers()
{ return "A(z) "; }
/*! this is the remainder of the sentence after the class name */
QCString trIncludingInheritedMembers()
{ return " osztály tagjainak teljes listája, az örökölt tagokkal együtt."; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
QCString trGeneratedAutomatically(const char *s)
{ QCString result="Ezt a dokumentációt a Doxygen készítette";
if (s) result+=(QCString)" a(z) "+s+(QCString)" projekthez";
result+=" a forráskódból.";
return result;
}
/*! put after an enum name in the list of all members */
QCString trEnumName()
{ return "enumeráció neve"; }
/*! put after an enum value in the list of all members */
QCString trEnumValue()
{ return "enumeráció értéke"; }
/*! put after an undocumented member in the list of all members */
QCString trDefinedIn()
{ return "definiálva itt:"; }
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
QCString trVerbatimText(const char *f)
{ return (QCString)"Ez a(z) "+f+" definíciós fájl pontos tartalma."; }
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command).
*/
QCString trModules()
{ return "Modulok"; }
/*! This is put above each page as a link to the class hierarchy */
QCString trClassHierarchy()
{ return "Osztályhierarchia"; }
/*! This is put above each page as a link to the list of annotated classes */
QCString trCompoundList()
{ return "Összetevõk listája"; }
/*! This is put above each page as a link to the list of documented files */
QCString trFileList()
{ return "Fájlok listája"; }
/*! This is put above each page as a link to the list of all verbatim headers */
QCString trHeaderFiles()
{ return "Definíciós fájlok"; }
/*! This is put above each page as a link to all members of compounds. */
QCString trCompoundMembers()
{ return "Osztályok összetevõi"; }
/*! This is put above each page as a link to all members of files. */
QCString trFileMembers()
{ return "Fájlok elemei"; }
/*! This is put above each page as a link to all related pages. */
QCString trRelatedPages()
{ return "Kapcsolódó lapok"; }
/*! This is put above each page as a link to all examples. */
QCString trExamples()
{ return "Példák"; }
/*! This is put above each page as a link to the search engine. */
QCString trSearch()
{ return "Keresés"; }
/*! This is an introduction to the class hierarchy. */
QCString trClassHierarchyDescription()
{ return "Ez a leszármaztatási lista hozzávetõleg, "
"de nem szigorúan véve, ábécé sorrendbe rendezett:";
}
/*! This is an introduction to the list with all files. */
QCString trFileListDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="doumentált ";
result+="fájl listája rövid leírásokkal:";
return result;
}
/*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription()
{ return "Ez az osztályok, struktúrák, uniók és interfészek "
"listája rövid leírásokkal:";
}
/*! This is an introduction to the page with all class members. */
QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="osztály összetevõ listája ";
if (extractAll)
result+="hivatkozással a hozzájuk tartózó osztály dokumentációra:";
else
result+="az õket tartalmazó osztály megjelölésével:";
return result;
}
/*! This is an introduction to the page with all file members. */
QCString trFileMembersDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="fájl elem listája ";
if (extractAll)
result+="hivatkozással a hozzájuk tartózó fájl dokumentációra:";
else
result+="az õket tartalmazó fájl megjelölésével:";
return result;
}
/*! This is an introduction to the page with the list of all header files. */
QCString trHeaderFilesDescription()
{ return "Ezek a Programozói Interfészt (API) alkotó definíciós fájlok:"; }
/*! This is an introduction to the page with the list of all examples */
QCString trExamplesDescription()
{ return "Ez a példák listája:"; }
/*! This is an introduction to the page with the list of related pages */
QCString trRelatedPagesDescription()
{ return "Ez a kapcsolódó dokumentációk listája:"; }
/*! This is an introduction to the page with the list of class/file groups */
QCString trModulesDescription()
{ return "Ez a modulok listája:"; }
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
QCString trNoDescriptionAvailable()
{ return "Nincs hozzá leírás"; }
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
QCString trDocumentation()
{ return "Dokumentáció"; }
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
QCString trModuleIndex()
{ return "Modul index"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
QCString trHierarchicalIndex()
{ return "Hierarchikus index"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
QCString trCompoundIndex()
{ return "Összetevõk indexe"; }
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
QCString trFileIndex()
{ return "Fájl index"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
QCString trModuleDocumentation()
{ return "Modul documentáció"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
*/
QCString trClassDocumentation()
{ return "Osztály documentatáció"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files.
*/
QCString trFileDocumentation()
{ return "Fájl documentatáció"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
QCString trExampleDocumentation()
{ return "Példák documentatációja"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
QCString trPageDocumentation()
{ return "Kapcsolódó lapok documentációja"; }
/*! This is used in LaTeX as the title of the document */
QCString trReferenceManual()
{ return "Referencia kézikönyv"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
QCString trDefines()
{ return "Definíciók"; }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
QCString trFuncProtos()
{ return "Függvény prototípusok"; }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
QCString trTypedefs()
{ return "Típusdefiníciók"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
QCString trEnumerations()
{ return "Enumerációk"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
QCString trFunctions()
{ return "Függvények"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString trVariables()
{ return "Változók"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString trEnumerationValues()
{ return "Enumeráció értékek"; }
/*! This is used in man pages as the author section. */
QCString trAuthor()
{ return "Szerzõ"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
QCString trDefineDocumentation()
{ return "Definíciók dokumentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
QCString trFunctionPrototypeDocumentation()
{ return "Függvény prototípusok documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
QCString trTypedefDocumentation()
{ return "Típusdefiníciók documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
QCString trEnumerationTypeDocumentation()
{ return "Enumerációk documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
QCString trEnumerationValueDocumentation()
{ return "Enumeráció értékek documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
QCString trFunctionDocumentation()
{ return "Függvények dokumentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
QCString trVariableDocumentation()
{ return "Változók documentációja"; }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
QCString trCompounds()
{ return "Összetevõk"; }
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
QCString trFiles()
{ return "Fájlok"; }
/*! This is used in the standard footer of each page and indicates when
* the page was generated
*/
QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result=(QCString)"";
if (projName) result+=(QCString)"Projekt: "+projName;
result+=(QCString)" Készült: "+date+" Készítette: ";
return result;
}
/*! This is part of the sentence used in the standard footer of each page.
*/
QCString trWrittenBy()
{
return " melyet írt ";
}
/*! this text is put before a class diagram */
QCString trClassDiagram(const char *clName)
{
return clName+(QCString)" osztály származtatási diagramja";
}
/*! this text is generated when the \internal command is used. */
QCString trForInternalUseOnly()
{ return "CSAK BELSÕ HASZNÁLATRA!"; }
/*! this text is generated when the \reimp command is used. */
QCString trReimplementedForInternalReasons()
{ return "Belsõ okok miatt újraimplementálva, az API-t nem érinti."; }
/*! this text is generated when the \warning command is used. */
QCString trWarning()
{ return "Figyelmeztetés"; }
/*! this text is generated when the \bug command is used. */
QCString trBugsAndLimitations()
{ return "Hibák és korlátozások"; }
/*! this text is generated when the \version command is used. */
QCString trVersion()
{ return "Verzió"; }
/*! this text is generated when the \date command is used. */
QCString trDate()
{ return "Dátum"; }
/*! this text is generated when the \author command is used. */
QCString trAuthors()
{ return "Szerzõ(k)"; }
/*! this text is generated when the \return command is used. */
QCString trReturns()
{ return "Visszaadott érték"; }
/*! this text is generated when the \sa command is used. */
QCString trSeeAlso()
{ return "Lásd még"; }
/*! this text is generated when the \param command is used. */
QCString trParameters()
{ return "Paraméterek"; }
/*! this text is generated when the \exception command is used. */
QCString trExceptions()
{ return "Kivételek"; }
/*! this text is used in the title page of a LaTeX document. */
QCString trGeneratedBy()
{ return "Készítette"; }
// new since 0.49-990307
/*! used as the title of page containing all the index of all namespaces. */
QCString trNamespaceList()
{ return "Névtér lista"; }
/*! used as an introduction to the namespace list */
QCString trNamespaceListDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="névtér listája rövid leírásokkal:";
return result;
}
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
QCString trFriends()
{ return "Barátok"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
/*! used in the class documentation as a header before the list of all
* related classes
*/
QCString trRelatedFunctionDocumentation()
{ return "Barát és kapcsolódó függvények dokumentációja"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
/*! used as the title of the HTML page of a class/struct/union */
QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
{
QCString result=(QCString)clName;
switch(compType)
{
case ClassDef::Class: result+=" osztály"; break;
case ClassDef::Struct: result+=" struktúra"; break;
case ClassDef::Union: result+=" unió"; break;
case ClassDef::Interface: result+=" interfész"; break;
case ClassDef::Exception: result+=" kivétel"; break;
}
if (isTemplate) result+=" sablon";
result+=" referencia";
return result;
}
/*! used as the title of the HTML page of a file */
QCString trFileReference(const char *fileName)
{
QCString result=fileName;
result+=" fájl referencia";
return result;
}
/*! used as the title of the HTML page of a namespace */
QCString trNamespaceReference(const char *namespaceName)
{
QCString result=namespaceName;
result+=" névtér reference";
return result;
}
/*! \mgroup Class sections
* these are for the member sections of a class, struct or union
*/
QCString trPublicMembers()
{ return "Publikus metódusok"; }
QCString trPublicSlots()
{ return "Publikus adatok"; }
QCString trSignals()
{ return "Szignálok"; }
QCString trStaticPublicMembers()
{ return "Statikus publikus metódusok"; }
QCString trProtectedMembers()
{ return "Védett metódusok"; }
QCString trProtectedSlots()
{ return "Védett adatok"; }
QCString trStaticProtectedMembers()
{ return "Statikus védett metódusok"; }
QCString trPrivateMembers()
{ return "Privát metódusok"; }
QCString trPrivateSlots()
{ return "Privát adatok"; }
QCString trStaticPrivateMembers()
{ return "Statikus privát metódusok"; }
/*! \endmgroup */
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
QCString trWriteList(int numEntries)
{
QCString result;
int i;
// the inherits list contain `numEntries' classes
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
// (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
result+=", ";
else // the fore last entry
result+=" és ";
}
}
return result;
}
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
QCString trInheritsList(int numEntries)
{
return "Szülõk osztályok: "+trWriteList(numEntries)+".";
}
/*! used in class documentation to produce a list of super classes,
* if class diagrams are disabled.
*/
QCString trInheritedByList(int numEntries)
{
return "Származtatott osztályok: "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
QCString trReimplementedFromList(int numEntries)
{
return "Újra implementálva ebbõl az osztályból: "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* all member that overwrite the implementation of this member.
*/
QCString trReimplementedInList(int numEntries)
{
return "Újra implementálva ebben az osztályban: "+trWriteList(numEntries)+".";
}
/*! This is put above each page as a link to all members of namespaces. */
QCString trNamespaceMembers()
{ return "Névtér tagjai"; }
/*! This is an introduction to the page with all namespace members */
QCString trNamespaceMemberDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="névtér tagjainak listája ";
if (extractAll)
result+="a hozzájuk tartozó dokumentációra való hivatkozással:";
else
result+="az öket tartalmazó névtérrel:";
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
QCString trNamespaceIndex()
{ return "Névtér index"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
QCString trNamespaceDocumentation()
{ return "Névtér documentáció"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
//////////////////////////////////////////////////////////////////////////
/*! This is used in the documentation before the list of all
* namespaces in a file.
*/
QCString trNamespaces()
{ return "Névterek"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
//////////////////////////////////////////////////////////////////////////
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
*/
QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"Ez a dokumentáció ";
switch(compType)
{
case ClassDef::Class: result+="az osztályról"; break;
case ClassDef::Struct: result+="a struktúráról"; break;
case ClassDef::Union: result+="az unióról"; break;
case ClassDef::Interface: result+="az interfészrõl"; break;
case ClassDef::Exception: result+="a kivételrõl"; break;
}
result+=" a következõ fájl";
if (!single) result+="ok";
result+=" alapján készült:";
return result;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
QCString trAlphabeticalList()
{ return "Ábécé rendes lista"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
QCString trReturnValues()
{ return "Visszaadott értékek"; }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
QCString trMainPage()
{ return "Kezdõ lap"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
QCString trPageAbbreviation()
{ return "o."; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
QCString trSources()
{
return "Források";
}
QCString trDefinedAtLineInSourceFile()
{
return "Definíció a(z) @1 fájl @0. sorában.";
}
QCString trDefinedInSourceFile()
{
return "Definíció a(z) @0 fájlban.";
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991205
//////////////////////////////////////////////////////////////////////////
QCString trDeprecated()
{
return "Ellenjavallt";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.0.0
//////////////////////////////////////////////////////////////////////////
/*! this text is put before a collaboration diagram */
QCString trCollaborationDiagram(const char *clName)
{
return (QCString)"Együttmûködési diagram "+clName+" osztályhoz:";
}
/*! this text is put before an include dependency graph */
QCString trInclDepGraph(const char *fName)
{
return (QCString)"Definíciós fájl függési ábra "+fName+" fájlhoz:";
}
/*! header that is put before the list of constructor/destructors. */
QCString trConstructorDocumentation()
{
return "Konstruktor és destruktor dokumentáció";
}
/*! Used in the file documentation to point to the corresponding sources. */
QCString trGotoSourceCode()
{
return "Ugrás a fájl forrásához.";
}
/*! Used in the file sources to point to the corresponding documentation. */
QCString trGotoDocumentation()
{
return "Ugrás a fájl dokumentációjához.";
}
/*! Text for the \pre command */
QCString trPrecondition()
{
return "Elõfeltétel";
}
/*! Text for the \post command */
QCString trPostcondition()
{
return "Utófeltétel";
}
/*! Text for the \invariant command */
QCString trInvariant()
{
return "Invariáns";
}
/*! Text shown before a multi-line variable/enum initialization */
QCString trInitialValue()
{
return "Kezdõ érték:";
}
/*! Text used the source code in the file index */
QCString trCode()
{
return "forráskód";
}
QCString trGraphicalHierarchy()
{
return "Osztály-hierarchia grafikon";
}
QCString trGotoGraphicalHierarchy()
{
return "Ugrás az osztály-hierarchia grafikonhoz";
}
QCString trGotoTextualHierarchy()
{
return "Ugrás az osztály-hierarchia leíráshoz";
}
QCString trPageIndex()
{
return "Oldal index";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
QCString trNote()
{
return "Megjegyzés";
}
QCString trPublicTypes()
{
return "Publikus típusok";
}
QCString trPublicAttribs()
{
return "Publikus attribútumok";
}
QCString trStaticPublicAttribs()
{
return "Statikus publikus attribútumok";
}
QCString trProtectedTypes()
{
return "Védett típusok";
}
QCString trProtectedAttribs()
{
return "Védett attribútumok";
}
QCString trStaticProtectedAttribs()
{
return "Statikus védett attribútumok";
}
QCString trPrivateTypes()
{
return "Privát típusok";
}
QCString trPrivateAttribs()
{
return "Privát attribútumok";
}
QCString trStaticPrivateAttribs()
{
return "Statikus privát attribútumok";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a todo item */
QCString trTodo()
{
return "Tennivaló";
}
/*! Used as the header of the todo list */
QCString trTodoList()
{
return "Tennivalók listája";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.4
//////////////////////////////////////////////////////////////////////////
QCString trReferencedBy()
{
return "hivatkozás innen:";
}
QCString trRemarks()
{
return "Megjegyzések";
}
QCString trAttention()
{
return "Figyelem";
}
QCString trInclByDepGraph()
{
return "Ez az ábra azt mutatja, hogy mely fájlok ágyazzák be "
"közvetve vagy közvetlenül ezt a fájlt:";
}
QCString trSince()
{
return "Elõször bevezetve";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
QCString trLegendTitle()
{
return "Jelmagyarázat";
}
/*! page explaining how the dot graph's should be interpreted */
QCString trLegendDocs()
{
return
"Hogyan értelmezzük a DopxyGen által készített ábrákat?<p>\n"
"Vegyük a következõ példát:\n"
"\\code\n"
"/*! Nem látható osztály, nem fér ki, vágásra kerül */\n"
"class Invisible { };\n\n"
"/*! Származtatás rejtett */\n"
"class Truncated : public Invisible { };\n\n"
"/* Nem dokumentált osztály */\n"
"class Undocumented { };\n\n"
"/*! Publikus származtatásal levezetett osztály */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! Védett származtatásal levezetett osztály */\n"
"class ProtectedBase { };\n\n"
"/*! Privát származtatásal levezetett osztály */\n"
"class PrivateBase { };\n\n"
"/*! Osztály, melyet a származtatott osztály használ */\n"
"class Used { };\n\n"
"/*! Osztály, mely több másiknak leszármazottja */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét "
"200-ra állítjuk, az eredmény a következõ ábra lesz:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"Az ábrán levõ dobozok jelentése:\n"
"<ul>\n"
"<li>Kitöltött fekete doboz jelzi azt az osztályt vagy struktúrát,"
"amelyrõl az ábra szól.\n"
"<li>Fekete keret jelszi a dokumentált osztályokat vagy struktúrákat.\n"
"<li>Szürke keret jelzi a nem dokumentált osztályokat vagy struktúrákat.\n"
"<li>Piros keret jelzi azokat az osztályokat vagy struktúrákat, amelyeknél vágás miatt nem látható "
"az összes leszármaztatási kapcsolat. Egy ábra vágásra kerül, ha nem fér bele "
"a megadott tartományba."
"</ul>\n"
"A nyilak jelentése:\n"
"<ul>\n"
"<li>Sötétkék nyíl jelzi a publikus származtatást.\n"
"<li>Sötétzöld nyíl jelzi a védett származtatást.\n"
"<li>Sötétvörös nyíl jelzi a privát származtatást.\n"
"<li>Lila szaggatott nyíl jelzi, ha az osztály egy másikat használ vagy tartalmaz. "
"A nyíl felirata jelzi a változók nevét, amelyeken keresztül a másik osztály kapcsolódik.\n"
"</ul>\n";
}
/*! text for the link to the legend page */
QCString trLegend()
{
return "Jelmagyarázat";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
QCString trTest()
{
return "Teszt";
}
/*! Used as the header of the test list */
QCString trTestList()
{
return "Teszt lista";
}
};
#endif
/******************************************************************************
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (June 1999)
* Updates:
* 2000/08: translated new items used since version 1.1.3, 1.1.4, 1.1.5 and 1.2.0
* 2000/03: translated new items used since version 1.0 and 1.1.0
* 1999/19: entirely rewritten the translation to correct small variations due
* to feature additions and to conform to the layout of the latest
......@@ -179,8 +178,7 @@ class TranslatorItalian : public Translator
/*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription()
{ return "Queste sono le classi, structs, "
"unions e interfacce con una loro breve descrizione:";
{ return "Queste sono le classi, structs, unions e interfacce con una loro breve descrizione:";
}
/*! This is an introduction to the page with all class members. */
......@@ -427,7 +425,7 @@ class TranslatorItalian : public Translator
/*! this text is generated when the \warning command is used. */
QCString trWarning()
{ return "Attenzione"; }
{ return "Avvertimento"; }
/*! this text is generated when the \bug command is used. */
QCString trBugsAndLimitations()
......@@ -728,7 +726,7 @@ class TranslatorItalian : public Translator
}
//////////////////////////////////////////////////////////////////////////
// new since 1.0.0
// new since 0.49-991205
//////////////////////////////////////////////////////////////////////////
QCString trDeprecated()
......@@ -737,7 +735,7 @@ class TranslatorItalian : public Translator
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
// new since 1.0.0
//////////////////////////////////////////////////////////////////////////
/*! this text is put before a collaboration diagram */
......@@ -753,7 +751,7 @@ class TranslatorItalian : public Translator
/*! header that is put before the list of constructor/destructors. */
QCString trConstructorDocumentation()
{
return "Documentazione dei costruttori e dei distruttori";
return "Documentazione dei costruttori e dei distruttori";
}
/*! Used in the file documentation to point to the corresponding sources. */
QCString trGotoSourceCode()
......@@ -806,11 +804,15 @@ class TranslatorItalian : public Translator
{
return "Indice delle pagine";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
QCString trNote()
{
return "Nota";
}
QCString trPublicTypes()
{
return "Tipi pubblici";
......@@ -847,6 +849,127 @@ class TranslatorItalian : public Translator
{
return "Attributi privati statici";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a todo item */
virtual QCString trTodo()
{
return "Da Fare";
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Lista di cose da fare";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.4
//////////////////////////////////////////////////////////////////////////
virtual QCString trReferencedBy()
{
return "Referenziato da";
}
virtual QCString trRemarks()
{
return "Osservazioni";
}
virtual QCString trAttention()
{
return "Attenzione";
}
virtual QCString trInclByDepGraph()
{
return "Queato grafo mostra quali files includono direttamente o indirettamente questo file:";
}
virtual QCString trSince()
{
return "A partire da";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return "Legenda del grafo";
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
return
"Questa pagina spiega come interpretare i grafi generati da doxygen.<p>\n"
"Considerate l'esempio seguente:\n"
"\\code\n"
"/*! Invisible class because of truncation */\n"
"class Invisible { };\n\n"
"/*! Truncated class, inheritance relation is hidden */\n"
"class Truncated : public Invisible { };\n\n"
"/* Class not documented with doxygen comments */\n"
"class Undocumented { };\n\n"
"/*! Class that is inherited using public inheritance */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! Class that is inherited using protected inheritance */\n"
"class ProtectedBase { };\n\n"
"/*! Class that is inherited using private inheritance */\n"
"class PrivateBase { };\n\n"
"/*! Class that is used by the Inherited class */\n"
"class Used { };\n\n"
"/*! Super class that inherits a number of other classes */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Se il tag \\c MAX_DOT_GRAPH_HEIGHT nel file di configurazione "
"è impostato a 200 verrà prodotto il grafo seguente:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"I riquadri nel grafo qui sopra hanno il seguente significato:\n"
"<ul>\n"
"<li>Il riquadro nero pieno rappresenta la struct o la classe per la quale il grafo è stato generato.\n"
"<li>Un riquadro con un bordo nero denota una struct o una classe documentata.\n"
"<li>Un riquadro con un bordo grigio indica una struct o una classe non documentata.\n"
"<li>Un riquadro con un bordo rosso indica una struct o una classe per la quale non sono mostrate tutte le relazioni di ereditarietà/contenimento (un grafo viene troncato se non rientra nei limiti prestabiliti)."
"</ul>\n"
"Le frecce hanno il seguente significato:\n"
"<ul>\n"
"<li>Una freccia blu scuro indica una relazione di ereditarietà pubblica tra due classi.\n"
"<li>Una freccia verde indica un'ereditarietà protetta.\n"
"<li>Una freccia rossa indica un'ereditarietà privata.\n"
"<li>Una freccia viola tratteggiata indica che una classe è contenuta o usata da un'altra classe."
" La freccia viene etichettata con la o le variabili attraverso cui la struct o la classe puntata dalla freccia è accessibile.\n"
"</ul>\n";
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
return "legenda";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
return "Test";
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Lista dei test";
}
};
#endif
......@@ -897,6 +897,94 @@ class TranslatorPolish : public Translator
{
return "Od";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
QCString trLegendTitle()
{
return "Legenda Wykresu";
}
/*! page explaining how the dot graph's should be interpreted */
QCString trLegendDocs()
{
return
"Ta strona wyja¶nia jak interpretowaæ wykresy, które s± wygenerowane "
"przez doxygen.<p>\n"
"Rozwa¿ nastêpuj±cy przyk³ad:\n"
"\\code\n"
"/*! Klasa Niewidzialna z powodu okrojenia */\n"
"class Niewidzialna { };\n\n"
"/*! Klasa Okrojona, relacja dziedziczenia jest ukryta */\n"
"class Okrojona : public Niewidzialna { };\n\n"
"/* Klasa nie udokumentowana komentarzami doxygen */\n"
"class Nieudokumentowana { };\n\n"
"/*! Klasa, która jest dziedziczona publicznie */\n"
"class PublicznaBaza : public Okrojona { };\n\n"
"/*! Klasa, która jest dziedziczona przy u¿yciu dziedziczenia chronionego */\n"
"class ChronionaBaza { };\n\n"
"/*! Klasa, która jest dziedziczona prywatnie */\n"
"class PrywatnaBaza { };\n\n"
"/*! Klasa, która jest u¿yta przez klasê Dziedziczona */\n"
"class Uzyta { };\n\n"
"/*! Superklasa, która dziedziczy kilka innych klas */\n"
"class Dziedziczona : public PublicznaBaza,\n"
" protected ChronionaBaza,\n"
" private PrywatnaBaza,\n"
" public Nieudokumentowana\n"
"{\n"
" private:\n"
" Uzyta *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Je¶li znacznik \\c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji "
"jest ustawiony na 200, odniesie to rezultat w nastêpuj±cym wykresie:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n"
"<ul>\n"
"<li>Wype³nione czarne pude³ko reprezentuje strukturê lub klasê dla "
"której zosta³ wygenerowany wykres.\n"
"<li>Pude³ko z czarn± obwolut± oznacza udokumentowan± strukturê lub klasê.\n"
"<li>Pude³ko z szar± obwolut± oznacza nieudokumentowan± strukturê lub klasê.\n"
"<li>Pude³ko z czerwon± obwolut± oznacza udokumentowan± strukturê lub klasê dla\n"
"której nie s± pokazane wszystkie relacje dziedziczenia/zawierania. Wykres jest "
"okrojony, je¶li nie mie¶ci siê w okre¶lonych brzegach."
"</ul>\n"
"Strza³ki maj± nastêpuj±ce znaczenie:\n"
"<ul>\n"
"<li>Ciemno niebieska strza³ka jest u¿ywana do wizualizacji relacji "
"dziedziczenia publicznego pomiêdzy dwiema klasami.\n"
"<li>Ciemno zielona strza³ka jest u¿ywana dla dziedziczenia chronionego.\n"
"<li>Ciemno czerwona strza³ka jest u¿ywana dla dziedziczenia prywatnego.\n"
"<li>Fioletowa przerywana strza³ka jest u¿ywana je¶li klasa jest zawarta "
"lub u¿yta przez inn± klasê. Strza³ka jest podpisana zmienn±(ymi) "
"przez które wskazywana klasa lub struktura jest dostêpna. \n"
"</ul>\n";
}
/*! text for the link to the legend page */
QCString trLegend()
{
return "legenda";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
QCString trTest()
{
return "Test";
}
/*! Used as the header of the test list */
QCString trTestList()
{
return "Lista Testu";
}
};
#endif
......@@ -871,8 +871,9 @@ void endFile(OutputList &ol,bool external)
void setAnchors(char id,MemberList *ml,int groupId)
{
int count=0;
MemberDef *md=ml->first();
while (md)
MemberListIterator mli(*ml);
MemberDef *md;
for (;(md=mli.current());++mli)
{
QCString anchor;
if (groupId==-1)
......@@ -881,7 +882,6 @@ void setAnchors(char id,MemberList *ml,int groupId)
anchor.sprintf("%c%d_%d",id,groupId,count++);
//printf("Member %s anchor %s\n",md->name(),anchor.data());
md->setAnchor(anchor);
md=ml->next();
}
}
......@@ -1605,7 +1605,8 @@ bool getDefs(const QCString &scName,const QCString &memberName,
)
{
//printf(" Found fcd=%p\n",fcd);
MemberDef *mmd=mn->first();
MemberListIterator mmli(*mn);
MemberDef *mmd;
int mdist=maxInheritanceDepth;
ArgumentList *argList=0;
if (args)
......@@ -1613,7 +1614,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
argList=new ArgumentList;
stringToArgumentList(args,argList);
}
while (mmd)
for (mmli.toFirst();(mmd=mmli.current());++mmli)
{
if (mmd->isLinkable())
{
......@@ -1631,7 +1632,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
}
}
}
mmd=mn->next();
}
if (argList)
{
......@@ -1641,8 +1641,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// no exact match found, but if args="()" an arbitrary member will do
{
//printf(" >Searching for arbitrary member\n");
mmd=mn->first();
while (mmd)
for (mmli.toFirst();(mmd=mmli.current());++mmli)
{
if (//(mmd->protection()!=Private || Config::extractPrivateFlag) &&
//(
......@@ -1664,7 +1663,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
md=mmd;
}
}
mmd=mn->next();
}
}
//printf(" >Succes=%d\n",mdist<maxInheritanceDepth);
......@@ -1711,15 +1709,13 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
//printf("Function inside existing namespace `%s'\n",namespaceName.data());
bool found=FALSE;
MemberDef *mmd=mn->first();
while (mmd && !found)
MemberListIterator mmli(*mn);
MemberDef *mmd;
for (mmli.toFirst();((mmd=mmli.current()) && !found);++mmli)
{
//printf("mmd->getNamespaceDef()=%p fnd=%p\n",
// mmd->getNamespaceDef(),fnd);
if (mmd->getNamespaceDef()==fnd &&
//(mmd->isReference() || mmd->hasDocumentation())
mmd->isLinkable()
)
if (mmd->getNamespaceDef()==fnd && mmd->isLinkable())
{ // namespace is found
bool match=TRUE;
ArgumentList *argList=0;
......@@ -1740,25 +1736,19 @@ bool getDefs(const QCString &scName,const QCString &memberName,
delete argList; argList=0;
}
}
mmd=mn->next();
}
if (!found && !strcmp(args,"()"))
// no exact match found, but if args="()" an arbitrary
// member will do
{
MemberDef *mmd=mn->first();
while (mmd && !found)
for (mmli.toFirst();((mmd=mmli.current()) && !found);++mmli)
{
if (mmd->getNamespaceDef()==fnd &&
//(mmd->isReference() || mmd->hasDocumentation())
mmd->isLinkable()
)
if (mmd->getNamespaceDef()==fnd && mmd->isLinkable())
{
nd=fnd;
md=mmd;
found=TRUE;
}
mmd=mn->next();
}
}
if (found) return TRUE;
......@@ -1766,8 +1756,8 @@ bool getDefs(const QCString &scName,const QCString &memberName,
else // no scope => global function
{
//printf("Function with global scope `%s' args=`%s'\n",namespaceName.data(),args);
md=mn->first();
while (md)
MemberListIterator mli(*mn);
for (mli.toFirst();(md=mli.current());++mli)
{
if (md->isLinkable())
{
......@@ -1798,7 +1788,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
}
}
}
md=mn->next();
}
if (!strcmp(args,"()"))
{
......@@ -2256,21 +2245,21 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig)
{
if (fn->count()==1)
{
return fn->first();
return fn->getFirst();
}
else // file name alone is ambigious
{
int count=0;
FileDef *fd=fn->first();
FileNameIterator fni(*fn);
FileDef *fd;
FileDef *lastMatch=0;
while (fd)
for (fni.toFirst();(fd=fni.current());++fni)
{
if (path.isEmpty() || fd->getPath().right(path.length())==path)
{
count++;
lastMatch=fd;
}
fd=fn->next();
}
ambig=(count>1);
return lastMatch;
......@@ -2295,14 +2284,14 @@ QCString showFileDefMatches(const FileNameDict *fnDict,const char *n)
FileName *fn;
if ((fn=(*fnDict)[name]))
{
FileDef *fd=fn->first();
while (fd)
FileNameIterator fni(*fn);
FileDef *fd;
for (fni.toFirst();(fd=fni.current());++fni)
{
if (path.isEmpty() || fd->getPath().right(path.length())==path)
{
result+=" "+fd->absFilePath()+"\n";
}
fd=fn->next();
}
}
return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment