summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2003-06-25 18:00:24 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2003-06-25 18:00:24 (GMT)
commit509496da5e5b38aecbd91a5e20b3d695cbbef775 (patch)
treed1ce681120f6cf7c6aed4ba77feceafcc66cc853 /src
parent25a65bed9e3548070b1af401db683bfb0cce9de0 (diff)
downloadDoxygen-509496da5e5b38aecbd91a5e20b3d695cbbef775.zip
Doxygen-509496da5e5b38aecbd91a5e20b3d695cbbef775.tar.gz
Doxygen-509496da5e5b38aecbd91a5e20b3d695cbbef775.tar.bz2
Release-1.3.2-20030625
Diffstat (limited to 'src')
-rw-r--r--src/code.l2
-rw-r--r--src/config.l2
-rw-r--r--src/defargs.l5
-rw-r--r--src/docparser.cpp33
-rw-r--r--src/doctokenizer.l1
-rw-r--r--src/dot.cpp10
-rw-r--r--src/doxygen.cpp18
-rw-r--r--src/groupdef.cpp6
-rw-r--r--src/index.cpp14
-rw-r--r--src/outputlist.cpp3
-rw-r--r--src/printdocvisitor.h2
-rw-r--r--src/scanner.l26
-rw-r--r--src/translator_sr.h108
-rw-r--r--src/util.cpp36
-rw-r--r--src/util.h3
15 files changed, 171 insertions, 98 deletions
diff --git a/src/code.l b/src/code.l
index f2732ee..cc12753 100644
--- a/src/code.l
+++ b/src/code.l
@@ -626,7 +626,7 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst)
{
dst->addSourceReferencedBy(src);
}
- if (Config_getBool("REFERENCES_RELATION") &&
+ if ((Config_getBool("REFERENCES_RELATION") || Config_getBool("CALL_GRAPH")) &&
(src->isFunction() || src->isSlot())
)
{
diff --git a/src/config.l b/src/config.l
index 8a57707..4c2a523 100644
--- a/src/config.l
+++ b/src/config.l
@@ -2473,7 +2473,7 @@ void Config::create()
cb = addBool(
"UML_LOOK",
"If the UML_LOOK tag is set to YES doxygen will generate inheritance and \n"
- "colloborations diagrams in a style similiar to the OMG's Unified Modeling \n"
+ "collaboration diagrams in a style similiar to the OMG's Unified Modeling \n"
"Language. \n",
FALSE
);
diff --git a/src/defargs.l b/src/defargs.l
index b1f2134..035406c 100644
--- a/src/defargs.l
+++ b/src/defargs.l
@@ -325,6 +325,11 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
}
<ReadFuncArgType,ReadFuncArgPtr>{ID} {
QCString name=yytext; //resolveDefines(yytext);
+ if (YY_START==ReadFuncArgType && g_curArgArray=="[]") // Java style array
+ {
+ g_curArgTypeName+=" []";
+ g_curArgArray.resize(0);
+ }
//printf("resolveName `%s'->`%s'\n",yytext,name.data());
g_curArgTypeName+=name;
}
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 7d26e04..abf930a 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -1923,6 +1923,7 @@ void DocImage::parse()
g_nodeStack.push(this);
DBG(("DocImage::parse() start\n"));
+ // parse title
doctokenizerYYsetStateTitle();
int tok;
while ((tok=doctokenizerYYlex()))
@@ -1946,26 +1947,24 @@ void DocImage::parse()
}
}
}
- if (!m_children.isEmpty())
+ // parse size attributes
+ tok=doctokenizerYYlex();
+ while (tok==TK_WORD) // there are values following the title
{
- tok=doctokenizerYYlex();
- while (tok==TK_WORD) // there are values following the title
+ if (g_token->name=="width")
{
- if (g_token->name=="width")
- {
- m_width=g_token->chars;
- }
- else if (g_token->name=="height")
- {
- m_height=g_token->chars;
- }
- else
- {
- warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unknown option %s after image title",
- g_token->name.data());
- }
- tok=doctokenizerYYlex();
+ m_width=g_token->chars;
+ }
+ else if (g_token->name=="height")
+ {
+ m_height=g_token->chars;
}
+ else
+ {
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unknown option %s after image title",
+ g_token->name.data());
+ }
+ tok=doctokenizerYYlex();
}
doctokenizerYYsetStatePara();
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index b86a1dd..d558631 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -791,6 +791,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
g_secLabel = g_secLabel.stripWhiteSpace();
BEGIN(St_SecTitle);
}
+<St_SecTitle>[^\n]+ |
<St_SecTitle>[^\n]*\n {
g_secTitle = yytext;
g_secTitle = g_secTitle.stripWhiteSpace();
diff --git a/src/dot.cpp b/src/dot.cpp
index f9bd520..9b3161d 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -1313,7 +1313,7 @@ void writeDotGraph(DotNode *root,
)
{
// generate the graph description for dot
- //printf("writeDotGraph(%s,%d)\n",baseName.data(),backArrows);
+ //printf("writeDotGraph(%s,%d,lrRank=%d)\n",baseName.data(),backArrows,lrRank);
QFile f;
f.setName(baseName+".dot");
if (f.open(IO_WriteOnly))
@@ -1415,8 +1415,12 @@ static void findMaximalDotGraph(DotNode *root,
}
//printf("lastFit=%d\n",lastFit);
- bool hasLRRank = (lrRank || (minDistance==1 && width>Config_getInt("MAX_DOT_GRAPH_WIDTH"))) &&
- !Config_getBool("UML_LOOK");
+ bool hasLRRank = (lrRank ||
+ (minDistance==1 &&
+ width>Config_getInt("MAX_DOT_GRAPH_WIDTH") &&
+ !Config_getBool("UML_LOOK")
+ )
+ );
writeDotGraph(root,
gt,
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 6901325..d8630a7 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -2277,7 +2277,9 @@ static void buildFunctionList(Entry *root)
// merge ingroup specifiers
if (md->getGroupDef()==0 && root->groups->first())
{
- addMemberToGroups(root,md);
+ // if we do addMemberToGroups here an undocumented declaration may prevent
+ // the documented implementation below from being added
+ //addMemberToGroups(root,md);
GroupDef *gd=Doxygen::groupSDict[root->groups->first()->groupname.data()];
md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, !root->doc.isEmpty());
}
@@ -3982,12 +3984,12 @@ static bool findGlobalMember(Entry *root,
const char *,
const char *decl)
{
- QCString n=name;
- if (n.isEmpty()) return FALSE;
- if (n.find("::")!=-1) return FALSE; // skip undefined class members
Debug::print(Debug::FindMembers,0,
"2. findGlobalMember(namespace=%s,name=%s,tempArg=%s,decl=%s)\n",
namespaceName.data(),name,tempArg,decl);
+ QCString n=name;
+ if (n.isEmpty()) return FALSE;
+ if (n.find("::")!=-1) return FALSE; // skip undefined class members
MemberName *mn=Doxygen::functionNameSDict[n+tempArg]; // look in function dictionary
if (mn==0)
{
@@ -4286,7 +4288,7 @@ static void findMember(Entry *root,
removeRedundantWhiteSpace(scopeName),FALSE);
// split scope into a namespace and a class part
- extractNamespaceName(scopeName,className,namespaceName);
+ extractNamespaceName(scopeName,className,namespaceName,TRUE);
//printf("scopeName=`%s' className=`%s' namespaceName=`%s'\n",
// scopeName.data(),className.data(),namespaceName.data());
@@ -4906,15 +4908,15 @@ static void findMember(Entry *root,
}
else // unrelated not overloaded member found
{
- if (className.isEmpty() &&
- !findGlobalMember(root,namespaceName,funcName,funcTempList,funcArgs,funcDecl))
+ bool globMem = findGlobalMember(root,namespaceName,funcName,funcTempList,funcArgs,funcDecl);
+ if (className.isEmpty() && !globMem)
{
warn(root->fileName,root->startLine,
"Warning: class for member `%s' cannot "
"be found.", funcName.data()
);
}
- else if (!className.isEmpty())
+ else if (!className.isEmpty() && !globMem)
{
warn(root->fileName,root->startLine,
"Warning: member `%s' of class `%s' cannot be found",
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 38a9392..b6b6401 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -748,6 +748,7 @@ void addMemberToGroups(Entry *root,MemberDef *md)
if (moveit)
{
+ //printf("removeMember\n");
mgd->removeMember(md);
insertit = TRUE;
}
@@ -755,11 +756,12 @@ void addMemberToGroups(Entry *root,MemberDef *md)
if (insertit)
{
- //printf("insertMember\n");
+ //printf("insertMember found at %s line %d\n",md->getDefFileName().data(),md->getDefLine());
bool success = fgd->insertMember(md);
if (success)
{
- md->setGroupDef(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0);
+ //printf("insertMember successful\n");
+ md->setGroupDef(fgd,pri,root->fileName,root->startLine,!root->doc.isEmpty());
ClassDef *cd = md->getClassDefOfAnonymousType();
if (cd) cd->setGroupDefForAllMembers(fgd,pri,root->fileName,root->startLine,root->doc.length() != 0);
}
diff --git a/src/index.cpp b/src/index.cpp
index d24f2fe..3a1ee3e 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -214,7 +214,7 @@ QCString abbreviate(const char *s,const char *name)
static void startQuickIndexItem(OutputList &ol,const char *s,const char *l,
bool hl,bool compact,bool &first)
{
- if (!first) ol.writeString(" | ");
+ if (!first && compact) ol.writeString(" | ");
first=FALSE;
if (!compact) ol.writeString("<li>");
QCString *dest;
@@ -281,7 +281,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
ol.startItemList();
}
- if (!compact) ol.writeListItem();
if (Config_getBool("GENERATE_TREEVIEW"))
{
startQuickIndexItem(ol,extLink,"main"+Doxygen::htmlFileExtension,
@@ -297,7 +296,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
if (documentedGroups>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"modules"+Doxygen::htmlFileExtension,
hli==HLI_Modules,compact,first);
ol.parseText(fixSpaces(theTranslator->trModules()));
@@ -305,7 +303,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (documentedNamespaces>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"namespaces"+Doxygen::htmlFileExtension,
hli==HLI_Namespaces,compact,first);
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA"))
@@ -320,7 +317,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (hierarchyClasses>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"hierarchy"+Doxygen::htmlFileExtension,
hli==HLI_Hierarchy,compact,first);
ol.parseText(fixSpaces(theTranslator->trClassHierarchy()));
@@ -330,7 +326,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
{
if (Config_getBool("ALPHABETICAL_INDEX"))
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"classes"+Doxygen::htmlFileExtension,
hli==HLI_Classes,compact,first);
ol.parseText(fixSpaces(theTranslator->trAlphabeticalList()));
@@ -344,7 +339,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (documentedHtmlFiles>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"files"+Doxygen::htmlFileExtension,
hli==HLI_Files,compact,first);
ol.parseText(fixSpaces(theTranslator->trFileList()));
@@ -352,7 +346,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (documentedNamespaceMembers[NMHL_All]>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"namespacemembers"+Doxygen::htmlFileExtension,
hli==HLI_NamespaceMembers,compact,first);
ol.parseText(fixSpaces(theTranslator->trNamespaceMembers()));
@@ -360,7 +353,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (documentedClassMembers[CMHL_All]>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"functions"+Doxygen::htmlFileExtension,
hli==HLI_Functions,compact,first);
ol.parseText(fixSpaces(theTranslator->trCompoundMembers()));
@@ -368,7 +360,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (documentedFileMembers[FMHL_All]>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"globals"+Doxygen::htmlFileExtension,
hli==HLI_Globals,compact,first);
ol.parseText(fixSpaces(theTranslator->trFileMembers()));
@@ -376,7 +367,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (indexedPages>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"pages"+Doxygen::htmlFileExtension,
hli==HLI_Pages,compact,first);
ol.parseText(fixSpaces(theTranslator->trRelatedPages()));
@@ -384,7 +374,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (Doxygen::exampleSDict->count()>0)
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,extLink,"examples"+Doxygen::htmlFileExtension,
hli==HLI_Examples,compact,first);
ol.parseText(fixSpaces(theTranslator->trExamples()));
@@ -392,7 +381,6 @@ void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FA
}
if (Config_getBool("SEARCHENGINE"))
{
- if (!compact) ol.writeListItem();
startQuickIndexItem(ol,"_cgi","",hli==HLI_Search,compact,first);
ol.parseText(fixSpaces(theTranslator->trSearch()));
endQuickIndexItem(ol);
diff --git a/src/outputlist.cpp b/src/outputlist.cpp
index 2946fe9..e68ef8c 100644
--- a/src/outputlist.cpp
+++ b/src/outputlist.cpp
@@ -197,6 +197,7 @@ void OutputList::parseDoc(const char *fileName,int startLine,
const char *exampleName,SectionDict *sections)
{
int count=0;
+ if (docStr.isEmpty()) return;
OutputGenerator *og=outputs->first();
while (og)
@@ -207,7 +208,7 @@ void OutputList::parseDoc(const char *fileName,int startLine,
if (count==0) return; // no output formats enabled.
DocNode *root=0;
- if (docStr.length()==0 || docStr.at(docStr.length()-1)=='\n')
+ if (docStr.at(docStr.length()-1)=='\n')
{
root = validatingParseDoc(fileName,startLine,
clName,md,docStr,isExample,exampleName,
diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h
index dfdaf6f..b06e0a6 100644
--- a/src/printdocvisitor.h
+++ b/src/printdocvisitor.h
@@ -141,6 +141,7 @@ class PrintDocVisitor : public DocVisitor
case DocVerbatim::Verbatim: printf("<verbatim>"); break;
case DocVerbatim::HtmlOnly: printf("<htmlonly>"); break;
case DocVerbatim::LatexOnly: printf("<latexonly>"); break;
+ case DocVerbatim::XmlOnly: printf("<xmlonly>"); break;
}
printf("%s",s->text().data());
switch(s->type())
@@ -149,6 +150,7 @@ class PrintDocVisitor : public DocVisitor
case DocVerbatim::Verbatim: printf("</verbatim>"); break;
case DocVerbatim::HtmlOnly: printf("</htmlonly>"); break;
case DocVerbatim::LatexOnly: printf("</latexonly>"); break;
+ case DocVerbatim::XmlOnly: printf("</xmlonly>"); break;
}
}
void visit(DocAnchor *a)
diff --git a/src/scanner.l b/src/scanner.l
index 5c87275..1b40671 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -150,7 +150,7 @@ static bool insideTryBlock=FALSE;
static bool needsSemi;
static int depthIf;
-static int initializerSharpCount;
+//static int initializerSharpCount;
static QCString memberGroupRelates;
static QCString memberGroupInside;
static QCString xrefItemKey;
@@ -1609,7 +1609,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<FindMembers>"=" {
current->bodyLine = yyLineNr;
lastInitializerContext = YY_START;
- initializerSharpCount=0;
+ //initializerSharpCount=0;
BEGIN(ReadInitializer);
}
/* Read initializer rules */
@@ -1629,15 +1629,18 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<ReadInitializer>[;,] {
//printf(">> initializer `%s' <<\n",current->initializer.data());
- if (initializerSharpCount==0)
+ //if (initializerSharpCount==0)
+ //{
+ if (*yytext==';' || lastInitializerContext!=FindFields)
{
unput(*yytext);
BEGIN(lastInitializerContext);
}
- else
- {
- current->initializer+=*yytext;
- }
+ //}
+ //else
+ //{
+ // current->initializer+=*yytext;
+ //}
}
<ReadInitializer>\" {
if (insideIDL && insideCppQuote)
@@ -1652,6 +1655,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN(CopyString);
}
}
+ /*
+<ReadInitializer>"->" {
+ current->initializer+=yytext;
+ }
<ReadInitializer>"<<" {
current->initializer+=yytext;
}
@@ -1666,6 +1673,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
initializerSharpCount--;
current->initializer+=*yytext;
}
+ */
<ReadInitializer>{CHARLIT} { current->initializer+=yytext; }
<ReadInitializer>\n {
current->initializer+=*yytext;
@@ -1857,7 +1865,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<FindFields>"=" {
lastInitializerContext = YY_START;
- initializerSharpCount=0;
+ //initializerSharpCount=0;
BEGIN(ReadInitializer);
}
<FindFields>"," {
@@ -2117,7 +2125,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<MemberSpec>"=" {
lastInitializerContext=YY_START;
- initializerSharpCount=0;
+ //initializerSharpCount=0;
BEGIN(ReadInitializer);
/* BEGIN(MemberSpecSkip); */
}
diff --git a/src/translator_sr.h b/src/translator_sr.h
index 631da9c..532d54e 100644
--- a/src/translator_sr.h
+++ b/src/translator_sr.h
@@ -20,8 +20,8 @@
// translation by Dejan D. M. Milosavljevic <dmilos@email.com>;<dmilosx@ptt.yu>
-class TranslatorSerbian : public TranslatorAdapter_1_2_17
-{
+class TranslatorSerbian : public TranslatorAdapter_1_3_1
+{
private:
QCString decode(const QCString& sInput)
{
@@ -83,7 +83,7 @@ private:
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
- { return decode( "(To nisu funkcije članice.)" ); }
+ { return decode( "(To nisu funkcije članice.)" ); } // tj. metode
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
@@ -183,7 +183,7 @@ private:
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
- { return "Spisak fajlova"; }
+ { return "Spisak datoteka"; }
/*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles()
@@ -207,11 +207,11 @@ private:
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode("Članovi fajla");
+ return decode("Članovi datoteke");
}
else
{
- return decode("Članovi fajla");
+ return decode("Članovi datoteke");
}
}
@@ -229,14 +229,15 @@ private:
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
- { return decode( "Stablo nasleđivanja je složeno ""približno po abecedi:" ); }
+ { return decode( "Stablo nasleđivanja je složeno "
+ "približno po abecedi:" ); }
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{
QCString result="Spisak svih ";
if (!extractAll) result+="dokumetovanih ";
- result+="fajlova, sa kratkim opisom:";
+ result+="datoteka, sa kratkim opisom:";
return decode( result );
}
@@ -287,7 +288,7 @@ private:
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="strukture/uniije koje pripadaju:";
+ result+="strukture/unije koje pripadaju:";
}
else
{
@@ -315,7 +316,7 @@ private:
result+=" sa linkovima na ";
if (extractAll)
- result+="fajlove u kojima se nalaze:";
+ result+="datoteke u kojima se nalaze:";
else
result+=" dokumentaciju:";
return decode( result );
@@ -381,7 +382,7 @@ private:
* list of all files.
*/
virtual QCString trFileIndex()
- { return "Indeks fajlova"; }
+ { return "Indeks datoteka"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
@@ -408,7 +409,7 @@ private:
* the documentation of all files.
*/
virtual QCString trFileDocumentation()
- { return "Dokumentacija fajla"; }
+ { return "Dokumentacija datoteke"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
@@ -653,7 +654,7 @@ private:
/*! used as the title of the HTML page of a file */
virtual QCString trFileReference(const char *fileName)
{
- QCString result = "Opis fajla ";
+ QCString result = "Opis datoteke ";
result += fileName;
return result;
}
@@ -838,15 +839,15 @@ private:
virtual QCString trSources()
{
- return "Izvorni fajlovi";
+ return "Izvorne datoteke";
}
virtual QCString trDefinedAtLineInSourceFile()
{
- return "Definisano u redu @0 fajla @1.";
+ return "Definisano u redu @0 datoteke @1.";
}
virtual QCString trDefinedInSourceFile()
{
- return "Definisano u fajlu @0.";
+ return "Definisano u datoteci @0.";
}
//////////////////////////////////////////////////////////////////////////
@@ -855,7 +856,7 @@ private:
virtual QCString trDeprecated()
{
- return "Matoro";
+ return "Zastarelo";
}
//////////////////////////////////////////////////////////////////////////
@@ -870,7 +871,7 @@ private:
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
{
- return decode( (QCString)"Graf zavisnosti fajlova za "+fName+":" );
+ return decode( (QCString)"Graf zavisnosti datoteka za "+fName+":" );
}
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
@@ -935,7 +936,7 @@ private:
virtual QCString trNote()
{
- return "Primedba";
+ return "Primedba"; // ili Beleska ili Zapazanje. Primedba zvuci negativno
}
virtual QCString trPublicTypes()
{
@@ -1014,8 +1015,8 @@ private:
}
virtual QCString trInclByDepGraph()
{
- return decode("Ovaj graf pokazuje koji fajl direktno "
- "ili indirektno uključuju ovaj fajl: ");
+ return decode("Ovaj graf pokazuje koja datoteka direktno "
+ "ili indirektno uključuju ovu datoteku: ");
}
virtual QCString trSince()
{
@@ -1068,7 +1069,7 @@ private:
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
- "Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracionom fajlu "
+ "Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracionoj datoteci "
"postavljen na 200 gornje veze će izgledati:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
@@ -1275,8 +1276,8 @@ private:
*/
virtual QCString trFile(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Fajl" : "fajl"));
- result+= (singular ? "" : "ovi");
+ QCString result((first_capital ? "Datotek" : "Datotek"));
+ result+= (singular ? "a" : "e");
return result;
}
@@ -1430,12 +1431,69 @@ private:
{
return "Dokumentacija događaja";
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a heading for a list of Java class types with package scope.
+ */
+ virtual QCString trPackageTypes()
+ {
+ return "Tipovi u Paketu";
+ }
+ /*! Used as a heading for a list of Java class functions with package
+ * scope.
+ */
+ virtual QCString trPackageMembers()
+ {
+ return "Funkcije u paketu";
+ }
+ /*! Used as a heading for a list of static Java class functions with
+ * package scope.
+ */
+ virtual QCString trStaticPackageMembers()
+ {
+ return "Statičke funkcije u paketu"; // Zajednicke funkcije u paketu
+ }
+ /*! Used as a heading for a list of Java class variables with package
+ * scope.
+ */
+ virtual QCString trPackageAttribs()
+ {
+ return "Atributi u paketu"; // Clanovi u paketu
+ }
+ /*! Used as a heading for a list of static Java class variables with
+ * package scope.
+ */
+ virtual QCString trStaticPackageAttribs()
+ {
+ return "Statički atributi u paketu"; // Zajednicki clanovi u paketu
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return "Sve";
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return "Graf pozivanja finkcija:";
+ }
+
};
-#endif
// sh - š - shashavo
// dj - đ - djordje
// ch - č - chasha
// cc - ć - cciccifu
// zz - ž - zzaba
+
+#endif
diff --git a/src/util.cpp b/src/util.cpp
index e43e7c1..b11d2ba 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -762,7 +762,7 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*n
QCString txtStr=text;
QCString scopeName;
int strLen = txtStr.length();
- //printf("linkifyText strtxt=%s strlen=%d\n",txtStr.data(),strLen);
+ //printf("linkifyText scope=%s strtxt=%s strlen=%d\n",scope?scope->name().data():"<none>",txtStr.data(),strLen);
int matchLen;
int index=0;
int newIndex;
@@ -822,10 +822,10 @@ void linkifyText(const TextGeneratorIntf &out,Definition *scope,const char * /*n
// );
Definition *curScope = scope;
// check if `word' is a documented class name
- //printf("Searching...\n");
//int scopeOffset=scopeName.length();
do // for each scope (starting with full scope and going to empty scope)
{
+ //printf("Searching in %s...\n",curScope?curScope->name().data():"<global>");
QCString fullName = word;
QCString prefix;
replaceNamespaceAliases(fullName,fullName.length());
@@ -874,9 +874,9 @@ endloop:
(external ? md->isLinkable() : md->isLinkableInProject())
)
{
- //printf("Found ref\n");
Definition *d=0;
if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
+ //printf("Found ref scope=%s\n",d?d->name().data():"<global>");
if (d && (external ? d->isLinkable() : d->isLinkableInProject()))
{
//ol.writeObjectLink(d->getReference(),d->getOutputFileBase(),
@@ -2202,6 +2202,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
namespaceName=mScope.copy();
}
+ //printf("Trying namespace %s\n",namespaceName.data());
if (!namespaceName.isEmpty() &&
(fnd=Doxygen::namespaceSDict[namespaceName]) &&
fnd->isLinkable()
@@ -2259,11 +2260,20 @@ bool getDefs(const QCString &scName,const QCString &memberName,
return TRUE;
}
}
- else // no scope => global function
+ if (scopeOffset==0)
+ {
+ scopeOffset=-1;
+ }
+ else if ((scopeOffset=scopeName.findRev("::",scopeOffset-1))==-1)
+ {
+ scopeOffset=0;
+ }
+ } while (scopeOffset>=0);
+ //else // no scope => global function
{
QList<MemberDef> members;
- //printf(" Function with global scope `%s' name `%s' args=`%s'\n",namespaceName.data(),memberName.data(),args);
+ //printf(" Function with global scope name `%s' args=`%s'\n",memberName.data(),args);
MemberListIterator mli(*mn);
for (mli.toFirst();(md=mli.current());++mli)
{
@@ -2329,7 +2339,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
if (currentFile==0)
{
bool ambig;
- currentFile = findFileDef(Doxygen::inputNameDict,namespaceName,ambig);
+ currentFile = findFileDef(Doxygen::inputNameDict,0/*namespaceName*/,ambig);
}
MemberDef *bmd = 0;
for (md=members.first(); md; md=members.next())
@@ -2352,15 +2362,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
return TRUE;
}
}
- if (scopeOffset==0)
- {
- scopeOffset=-1;
- }
- else if ((scopeOffset=scopeName.findRev("::",scopeOffset-1))==-1)
- {
- scopeOffset=0;
- }
- } while (scopeOffset>=0);
}
// no nothing found
@@ -3085,7 +3086,8 @@ QCString convertNameToFile(const char *name,bool allowDots)
* namespace part (as large as possible) and a classname part.
*/
void extractNamespaceName(const QCString &scopeName,
- QCString &className,QCString &namespaceName)
+ QCString &className,QCString &namespaceName,
+ bool allowEmptyClass)
{
int i,p;
QCString clName=scopeName;
@@ -3117,7 +3119,7 @@ void extractNamespaceName(const QCString &scopeName,
namespaceName.resize(0);
done:
- if (className.isEmpty() && !namespaceName.isEmpty())
+ if (className.isEmpty() && !namespaceName.isEmpty() && !allowEmptyClass)
{
// class and namespace with the same name, correct to return the class.
className=namespaceName.copy();
diff --git a/src/util.h b/src/util.h
index f8f1c58..e39bdfc 100644
--- a/src/util.h
+++ b/src/util.h
@@ -155,7 +155,8 @@ bool hasVisibleRoot(BaseClassList *bcl);
int minClassDistance(ClassDef *cd,ClassDef *bcd,int level=0);
QCString convertNameToFile(const char *name,bool allowDots=FALSE);
void extractNamespaceName(const QCString &scopeName,
- QCString &className,QCString &namespaceName);
+ QCString &className,QCString &namespaceName,
+ bool allowEmptyClass=FALSE);
QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &templ);
QCString stripScope(const char *name);
int iSystem(const char *command,const char *args,bool isBatchFile=FALSE);