Commit a9b8e482 authored by dimitri's avatar dimitri

Release-1.3.6

parent 3ced6106
...@@ -203,7 +203,7 @@ PERL_PATH = /usr/bin/perl ...@@ -203,7 +203,7 @@ PERL_PATH = /usr/bin/perl
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = YES HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO HAVE_DOT = YES
CLASS_GRAPH = YES CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES COLLABORATION_GRAPH = YES
UML_LOOK = NO UML_LOOK = NO
......
DOXYGEN Version 1.3.5-20040125 DOXYGEN Version 1.3.6
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (25 January 2004) Dimitri van Heesch (12 February 2004)
DOXYGEN Version 1.3.5_20040125 DOXYGEN Version 1.3.6
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (25 January 2004) Dimitri van Heesch (dimitri@stack.nl) (12 February 2004)
1.3.5-20040125 1.3.6
...@@ -27,7 +27,7 @@ Version: $(VERSION) ...@@ -27,7 +27,7 @@ Version: $(VERSION)
<h2>Introduction</h2> <h2>Introduction</h2>
Doxygen is a documentation system for C++, C, Java, IDL Doxygen is a documentation system for C++, C, Java, IDL
(Corba and Microsoft flavors) and to some extent PHP, C# and D. (Corba and Microsoft flavors) and to some extent Objective-C, PHP, C# and D.
It can help you in three ways: It can help you in three ways:
<ol> <ol>
......
...@@ -436,11 +436,11 @@ Here is what is required: ...@@ -436,11 +436,11 @@ Here is what is required:
As a third alternative one could use the GNUWin32 tools that can be As a third alternative one could use the GNUWin32 tools that can be
found at http://gnuwin32.sourceforge.net/ found at http://gnuwin32.sourceforge.net/
Make sure the <code>BISONLIB</code> environment variable points to the Make sure the <code>BISON_SIMPLE</code> environment variable points to the
location where the files <code>bison.simple</code> and location where the files <code>bison.simple</code> and
<code>bison.hairy</code> are located. For instance if these files are in is located. For instance if these file is in
<code>c:\\tools\\cygwin\\share</code> then BISONLIB should <code>c:\\tools\\cygwin\\usr\\share</code> then BISON_SIMPLE should
be set to <code>//c/tools/cygwin/share/</code> be set to <code>c:/tools/cygwin/usr/share/bison.simple</code>
Also make sure the tools are available from a dos box, by adding Also make sure the tools are available from a dos box, by adding
the directory they are in to the search path. the directory they are in to the search path.
......
...@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means ...@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time. languages other than English (the default) at configuration time.
Currently (version 1.3.5), 30 languages Currently (version 1.3.5-20040202), 30 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish, Czech, Danish, Dutch, English, Finnish,
......
...@@ -174,7 +174,7 @@ void MD5Final (MD5_CTX *context, unsigned char digest[16]) ...@@ -174,7 +174,7 @@ void MD5Final (MD5_CTX *context, unsigned char digest[16])
MD5_memset ((POINTER)context, 0, sizeof (*context)); MD5_memset ((POINTER)context, 0, sizeof (*context));
} }
void MD5Buffer (const char *buf,unsigned int len,unsigned char sig[16]) void MD5Buffer (const unsigned char *buf,unsigned int len,unsigned char sig[16])
{ {
MD5_CTX md5; MD5_CTX md5;
MD5Init(&md5); MD5Init(&md5);
......
...@@ -42,7 +42,7 @@ typedef struct { ...@@ -42,7 +42,7 @@ typedef struct {
void MD5Init(MD5_CTX *ctx); void MD5Init(MD5_CTX *ctx);
void MD5Update (MD5_CTX *ctx, const unsigned char *buf, unsigned int len); void MD5Update (MD5_CTX *ctx, const unsigned char *buf, unsigned int len);
void MD5Final (MD5_CTX *ctx, unsigned char sig[16]); void MD5Final (MD5_CTX *ctx, unsigned char sig[16]);
void MD5Buffer (const char *buf,unsigned int len,unsigned char sig[16]); void MD5Buffer (const unsigned char *buf,unsigned int len,unsigned char sig[16]);
void MD5SigToString(unsigned char sig[16],char *str,int len); void MD5SigToString(unsigned char sig[16],char *str,int len);
#ifdef __cplusplus #ifdef __cplusplus
......
...@@ -91,6 +91,7 @@ ClassDef::ClassDef( ...@@ -91,6 +91,7 @@ ClassDef::ClassDef(
m_artificial = FALSE; m_artificial = FALSE;
m_isAbstract = FALSE; m_isAbstract = FALSE;
m_isStatic = FALSE; m_isStatic = FALSE;
m_isObjC = FALSE;
m_membersMerged = FALSE; m_membersMerged = FALSE;
QCString ns; QCString ns;
extractNamespaceName(m_name,m_className,ns); extractNamespaceName(m_name,m_className,ns);
...@@ -997,6 +998,10 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -997,6 +998,10 @@ void ClassDef::writeDocumentation(OutputList &ol)
{ {
ol.docify("import "); ol.docify("import ");
} }
else if (isObjectiveC())
{
ol.docify("#import ");
}
else else
{ {
ol.docify("#include "); ol.docify("#include ");
...@@ -2381,6 +2386,8 @@ QCString ClassDef::compoundTypeString() const ...@@ -2381,6 +2386,8 @@ QCString ClassDef::compoundTypeString() const
case Struct: return "struct"; case Struct: return "struct";
case Union: return "union"; case Union: return "union";
case Interface: return "interface"; case Interface: return "interface";
case Protocol: return "protocol";
case Category: return "category";
case Exception: return "exception"; case Exception: return "exception";
} }
return "unknown"; return "unknown";
......
...@@ -63,6 +63,8 @@ class ClassDef : public Definition ...@@ -63,6 +63,8 @@ class ClassDef : public Definition
Struct=Entry::STRUCT_SEC, Struct=Entry::STRUCT_SEC,
Union=Entry::UNION_SEC, Union=Entry::UNION_SEC,
Interface=Entry::INTERFACE_SEC, Interface=Entry::INTERFACE_SEC,
Protocol=Entry::PROTOCOL_SEC,
Category=Entry::CATEGORY_SEC,
Exception=Entry::EXCEPTION_SEC Exception=Entry::EXCEPTION_SEC
}; };
DefType definitionType() { return TypeClass; } DefType definitionType() { return TypeClass; }
...@@ -197,6 +199,9 @@ class ClassDef : public Definition ...@@ -197,6 +199,9 @@ class ClassDef : public Definition
*/ */
bool isAbstract() const { return m_isAbstract; } bool isAbstract() const { return m_isAbstract; }
/*! Returns TRUE if this class is implemented in Objective-C */
bool isObjectiveC() const { return m_isObjC; }
/*! returns the name of the class including outer classes, but not /*! returns the name of the class including outer classes, but not
* including namespaces. * including namespaces.
*/ */
...@@ -288,6 +293,7 @@ class ClassDef : public Definition ...@@ -288,6 +293,7 @@ class ClassDef : public Definition
void addMembersToTemplateInstance(ClassDef *cd,const char *templSpec); void addMembersToTemplateInstance(ClassDef *cd,const char *templSpec);
void setClassIsArtificial() { m_artificial = TRUE; } void setClassIsArtificial() { m_artificial = TRUE; }
void setIsStatic(bool b) { m_isStatic=b; } void setIsStatic(bool b) { m_isStatic=b; }
void setIsObjectiveC(bool b) { m_isObjC=b; }
void addListReferences(); void addListReferences();
/*! Creates a new compound definition. /*! Creates a new compound definition.
...@@ -425,6 +431,9 @@ class ClassDef : public Definition ...@@ -425,6 +431,9 @@ class ClassDef : public Definition
/*! Is the class part of an unnamed namespace? */ /*! Is the class part of an unnamed namespace? */
bool m_isStatic; bool m_isStatic;
/*! Is the class part implemented in Objective C? */
bool m_isObjC;
/*! TRUE if classes members are merged with those of the base classes. */ /*! TRUE if classes members are merged with those of the base classes. */
bool m_membersMerged; bool m_membersMerged;
......
...@@ -1079,9 +1079,10 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID}) ...@@ -1079,9 +1079,10 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
TEMPLIST "<"[^\"\}\{\(\)\/\n\>]*">" TEMPLIST "<"[^\"\}\{\(\)\/\n\>]*">"
SCOPETNAME ((({ID}{TEMPLIST}?){BN}*"::"{BN}*)*)((~{BN}*)?{ID}) SCOPETNAME ((({ID}{TEMPLIST}?){BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPEPREFIX ({ID}{TEMPLIST}?{BN}*"::"{BN}*)+ SCOPEPREFIX ({ID}{TEMPLIST}?{BN}*"::"{BN}*)+
KEYWORD ("asm"|"auto"|"class"|"const"|"const_cast"|"delete"|"dynamic_cast"|"enum"|"explicit"|"extern"|"false"|"friend"|"inline"|"mutable"|"namespace"|"new"|"operator"|"private"|"protected"|"public"|"register"|"reinterpret_cast"|"sizeof"|"static"|"static_cast"|"struct"|"template"|"this"|"true"|"typedef"|"typeid"|"typename"|"union"|"using"|"virtual"|"volatile"|"abstract"|"final"|"import"|"synchronized"|"transient") KEYWORD_OBJC ("@public"|"@private"|"@protected"|"@class"|"@implementation"|"@interface"|"@end"|"@selector"|"@protocol")
KEYWORD ("asm"|"auto"|"class"|"const"|"const_cast"|"delete"|"dynamic_cast"|"enum"|"explicit"|"extern"|"false"|"friend"|"inline"|"mutable"|"namespace"|"new"|"operator"|"private"|"protected"|"public"|"register"|"reinterpret_cast"|"sizeof"|"static"|"static_cast"|"struct"|"template"|"this"|"true"|"typedef"|"typeid"|"typename"|"union"|"using"|"virtual"|"volatile"|"abstract"|"final"|"import"|"synchronized"|"transient"|KEYWORD_OBJC)
FLOWKW ("break"|"case"|"catch"|"continue"|"default"|"do"|"else"|"for"|"goto"|"if"|"return"|"switch"|"throw"|"throws"|"try"|"while") FLOWKW ("break"|"case"|"catch"|"continue"|"default"|"do"|"else"|"for"|"goto"|"if"|"return"|"switch"|"throw"|"throws"|"try"|"while")
TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"|"void"|"wchar_t"|"boolean") TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"|"void"|"wchar_t"|"boolean"|"id"|"SEL")
%option noyywrap %option noyywrap
...@@ -1109,12 +1110,12 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1109,12 +1110,12 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
%% %%
<*>\x0d <*>\x0d
<Body>^([ \t]*"#"[ \t]*"include"[ \t]*)("<"|"\"") { <Body>^([ \t]*"#"[ \t]*("include"|"import")[ \t]*)("<"|"\"") {
startFontClass("preprocessor"); startFontClass("preprocessor");
g_code->codify(yytext); g_code->codify(yytext);
BEGIN( ReadInclude ); BEGIN( ReadInclude );
} }
<Body>("class"|"struct"|"union"|"namespace")[ \t\n]+ { <Body>("class"|"struct"|"union"|"namespace"|"@interface"|"@implementation"|"@interface")[ \t\n]+ {
startFontClass("keyword"); startFontClass("keyword");
codifyLines(yytext); codifyLines(yytext);
endFontClass(); endFontClass();
...@@ -1234,11 +1235,30 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1234,11 +1235,30 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_currentMemberDef=0; g_currentMemberDef=0;
if (g_currentDefinition) if (g_currentDefinition)
g_currentDefinition=g_currentDefinition->getOuterScope(); g_currentDefinition=g_currentDefinition->getOuterScope();
else
g_currentDefinition=0;
} }
BEGIN(Body); BEGIN(Body);
} }
<Body>"@end" {
g_theVarContext.popScope();
int *scope = g_scopeStack.pop();
if (scope==SCOPEBLOCK || scope==CLASSBLOCK)
{
popScope();
}
startFontClass("keyword");
g_code->codify(yytext);
endFontClass();
g_inClass=FALSE;
g_insideBody=FALSE;
g_currentMemberDef=0;
if (g_currentDefinition)
g_currentDefinition=g_currentDefinition->getOuterScope();
BEGIN(Body);
}
<ClassName,ClassVar>";" { <ClassName,ClassVar>";" {
g_code->codify(yytext); g_code->codify(yytext);
g_searchingForBody=FALSE; g_searchingForBody=FALSE;
...@@ -1330,7 +1350,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1330,7 +1350,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_curClassBases.clear(); g_curClassBases.clear();
BEGIN( Body ); BEGIN( Body );
} }
<Bases>"virtual"|"public"|"protected"|"private" { <Bases>"virtual"|"public"|"protected"|"private"|"@public"|"@private"|"@protected" {
startFontClass("keyword"); startFontClass("keyword");
g_code->codify(yytext); g_code->codify(yytext);
endFontClass(); endFontClass();
...@@ -1354,6 +1374,22 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1354,6 +1374,22 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
if (--g_sharpCount<=0) if (--g_sharpCount<=0)
BEGIN ( Bases ); BEGIN ( Bases );
} }
<Bases>"(" {
g_code->codify(yytext);
g_sharpCount=1;
BEGIN ( SkipSharp );
}
<SkipSharp>"(" {
g_code->codify(yytext);
++g_sharpCount;
}
<SkipSharp>")" {
g_code->codify(yytext);
if (--g_sharpCount<=0)
BEGIN ( Bases );
}
<Bases>"," { <Bases>"," {
g_code->codify(yytext); g_code->codify(yytext);
} }
...@@ -1618,9 +1654,14 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1618,9 +1654,14 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
g_type.resize(0); g_type.resize(0);
g_name.resize(0); g_name.resize(0);
} }
else if (*yytext=='[')
{
g_theCallContext.pushScope();
}
g_args.resize(0); g_args.resize(0);
} }
<Body>"]" { <Body>"]" {
g_theCallContext.popScope();
g_code->codify(yytext); g_code->codify(yytext);
// TODO: nested arrays like: a[b[0]->func()]->func() // TODO: nested arrays like: a[b[0]->func()]->func()
g_name = g_saveName.copy(); g_name = g_saveName.copy();
...@@ -1673,6 +1714,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1673,6 +1714,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
} }
} }
<MemberCall2,FuncCall>")" { <MemberCall2,FuncCall>")" {
g_theVarContext.addVariable(g_parmType,g_parmName);
g_theCallContext.popScope(); g_theCallContext.popScope();
g_code->codify(yytext); g_code->codify(yytext);
if (--g_bracketCount<=0) if (--g_bracketCount<=0)
......
...@@ -238,7 +238,7 @@ void replaceComment(int offset); ...@@ -238,7 +238,7 @@ void replaceComment(int offset);
g_readLineCtx=YY_START; g_readLineCtx=YY_START;
BEGIN(ReadLine); BEGIN(ReadLine);
} }
<SComment>^[ \t]*"//!"/.*\n { <SComment>^[ \t]*"//!"/.*\n {
replaceComment(0); replaceComment(0);
g_readLineCtx=YY_START; g_readLineCtx=YY_START;
BEGIN(ReadLine); BEGIN(ReadLine);
......
...@@ -606,6 +606,8 @@ ...@@ -606,6 +606,8 @@
<xsd:enumeration value="struct" /> <xsd:enumeration value="struct" />
<xsd:enumeration value="union" /> <xsd:enumeration value="union" />
<xsd:enumeration value="interface" /> <xsd:enumeration value="interface" />
<xsd:enumeration value="protocol" />
<xsd:enumeration value="category" />
<xsd:enumeration value="exception" /> <xsd:enumeration value="exception" />
<xsd:enumeration value="file" /> <xsd:enumeration value="file" />
<xsd:enumeration value="namespace" /> <xsd:enumeration value="namespace" />
......
...@@ -606,6 +606,8 @@ ...@@ -606,6 +606,8 @@
" <xsd:enumeration value=\"struct\" />\n" " <xsd:enumeration value=\"struct\" />\n"
" <xsd:enumeration value=\"union\" />\n" " <xsd:enumeration value=\"union\" />\n"
" <xsd:enumeration value=\"interface\" />\n" " <xsd:enumeration value=\"interface\" />\n"
" <xsd:enumeration value=\"protocol\" />\n"
" <xsd:enumeration value=\"category\" />\n"
" <xsd:enumeration value=\"exception\" />\n" " <xsd:enumeration value=\"exception\" />\n"
" <xsd:enumeration value=\"file\" />\n" " <xsd:enumeration value=\"file\" />\n"
" <xsd:enumeration value=\"namespace\" />\n" " <xsd:enumeration value=\"namespace\" />\n"
......
...@@ -3316,7 +3316,8 @@ void DocPara::handleImage(const QString &cmdName) ...@@ -3316,7 +3316,8 @@ void DocPara::handleImage(const QString &cmdName)
return; return;
} }
doctokenizerYYsetStatePara(); doctokenizerYYsetStatePara();
DocImage *img = new DocImage(this,findAndCopyImage(g_token->name,t),t); HtmlAttribList attrList;
DocImage *img = new DocImage(this,attrList,findAndCopyImage(g_token->name,t),t);
m_children.append(img); m_children.append(img);
img->parse(); img->parse();
} }
...@@ -3982,7 +3983,8 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag ...@@ -3982,7 +3983,8 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
{ {
HtmlAttribListIterator li(tagHtmlAttribs); HtmlAttribListIterator li(tagHtmlAttribs);
HtmlAttrib *opt; HtmlAttrib *opt;
for (li.toFirst();(opt=li.current());++li) int index=0;
for (li.toFirst();(opt=li.current());++li,++index)
{ {
if (opt->name=="name") // <a name=label> tag if (opt->name=="name") // <a name=label> tag
{ {
...@@ -4002,7 +4004,8 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag ...@@ -4002,7 +4004,8 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
// copy attributes // copy attributes
HtmlAttribList attrList = tagHtmlAttribs; HtmlAttribList attrList = tagHtmlAttribs;
// and remove the href attribute // and remove the href attribute
attrList.remove(opt); bool result = attrList.remove(index);
ASSERT(result);
DocHRef *href = new DocHRef(this,attrList,opt->value); DocHRef *href = new DocHRef(this,attrList,opt->value);
m_children.append(href); m_children.append(href);
g_insideHtmlLink=TRUE; g_insideHtmlLink=TRUE;
...@@ -4039,12 +4042,18 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag ...@@ -4039,12 +4042,18 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
HtmlAttribListIterator li(tagHtmlAttribs); HtmlAttribListIterator li(tagHtmlAttribs);
HtmlAttrib *opt; HtmlAttrib *opt;
bool found=FALSE; bool found=FALSE;
for (li.toFirst();(opt=li.current());++li) int index=0;
for (li.toFirst();(opt=li.current());++li,++index)
{ {
//printf("option name=%s value=%s\n",opt->name.data(),opt->value.data()); //printf("option name=%s value=%s\n",opt->name.data(),opt->value.data());
if (opt->name=="src" && !opt->value.isEmpty()) if (opt->name=="src" && !opt->value.isEmpty())
{ {
DocImage *img = new DocImage(this,opt->value,DocImage::Html); // copy attributes
HtmlAttribList attrList = tagHtmlAttribs;
// and remove the href attribute
bool result = attrList.remove(index);
ASSERT(result);
DocImage *img = new DocImage(this,attrList,opt->value,DocImage::Html);
m_children.append(img); m_children.append(img);
found = TRUE; found = TRUE;
} }
......
...@@ -561,8 +561,8 @@ class DocImage : public CompAccept<DocImage>, public DocNode ...@@ -561,8 +561,8 @@ class DocImage : public CompAccept<DocImage>, public DocNode
{ {
public: public:
enum Type { Html, Latex, Rtf }; enum Type { Html, Latex, Rtf };
DocImage(DocNode *parent,const QString &name,Type t) : DocImage(DocNode *parent,const HtmlAttribList &attribs,const QString &name,Type t) :
m_parent(parent), m_name(name), m_type(t) {} m_parent(parent), m_attribs(attribs), m_name(name), m_type(t) {}
Kind kind() const { return Kind_Image; } Kind kind() const { return Kind_Image; }
Type type() const { return m_type; } Type type() const { return m_type; }
QString name() const { return m_name; } QString name() const { return m_name; }
...@@ -570,11 +570,13 @@ class DocImage : public CompAccept<DocImage>, public DocNode ...@@ -570,11 +570,13 @@ class DocImage : public CompAccept<DocImage>, public DocNode
bool hasCaption() const { return !m_children.isEmpty(); } bool hasCaption() const { return !m_children.isEmpty(); }
QString width() const { return m_width; } QString width() const { return m_width; }
QString height() const { return m_height; } QString height() const { return m_height; }
const HtmlAttribList &attribs() const { return m_attribs; }
void accept(DocVisitor *v) { CompAccept<DocImage>::accept(this,v); } void accept(DocVisitor *v) { CompAccept<DocImage>::accept(this,v); }
void parse(); void parse();
private: private:
DocNode *m_parent; DocNode *m_parent;
HtmlAttribList m_attribs;
QString m_name; QString m_name;
Type m_type; Type m_type;
QString m_width; QString m_width;
......
...@@ -604,7 +604,7 @@ void DotNode::write(QTextStream &t, ...@@ -604,7 +604,7 @@ void DotNode::write(QTextStream &t,
bool backArrows bool backArrows
) )
{ {
//printf("DotNode::write(%d) name=%s\n",distance,m_label.data()); //printf("DotNode::write(%d) name=%s this=%p written=%d\n",distance,m_label.data(),this,m_written);
if (m_written) return; // node already written to the output if (m_written) return; // node already written to the output
if (m_distance>distance) return; if (m_distance>distance) return;
QList<DotNode> *nl = toChildren ? m_children : m_parents; QList<DotNode> *nl = toChildren ? m_children : m_parents;
...@@ -631,6 +631,7 @@ void DotNode::write(QTextStream &t, ...@@ -631,6 +631,7 @@ void DotNode::write(QTextStream &t,
{ {
if (cn->m_distance<=distance) if (cn->m_distance<=distance)
{ {
//printf("write arrow %s%s%s\n",label().data(),backArrows?"<-":"->",cn->label().data());
writeArrow(t,gt,format,cn,dnli2.current(),topDown,backArrows); writeArrow(t,gt,format,cn,dnli2.current(),topDown,backArrows);
} }
cn->write(t,gt,format,topDown,toChildren,distance,backArrows); cn->write(t,gt,format,topDown,toChildren,distance,backArrows);
...@@ -644,19 +645,21 @@ void DotNode::write(QTextStream &t, ...@@ -644,19 +645,21 @@ void DotNode::write(QTextStream &t,
{ {
if (pn->m_distance<=distance) if (pn->m_distance<=distance)
{ {
//printf("write arrow %s%s%s\n",label().data(),backArrows?"<-":"->",pn->label().data());
writeArrow(t, writeArrow(t,
gt, gt,
format, format,
pn, pn,
pn->m_edgeInfo->at(pn->m_children->findRef(this)), pn->m_edgeInfo->at(pn->m_children->findRef(this)),
FALSE, FALSE,
backArrows backArrows
); );
} }
pn->write(t,gt,format,TRUE,FALSE,distance,backArrows); pn->write(t,gt,format,TRUE,FALSE,distance,backArrows);
} }
} }
} }
//printf("end DotNode::write(%d) name=%s\n",distance,m_label.data());
} }
void DotNode::writeXML(QTextStream &t,bool isClassGraph) void DotNode::writeXML(QTextStream &t,bool isClassGraph)
...@@ -935,12 +938,18 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) ...@@ -935,12 +938,18 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
if (node->m_subgraphId==n->m_subgraphId) if (node->m_subgraphId==n->m_subgraphId)
{ {
node->clearWriteFlag(); node->clearWriteFlag();
}
}
for (dnli2.toFirst();(node=dnli2.current());++dnli2)
{
if (node->m_subgraphId==n->m_subgraphId)
{
node->write(md5stream,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE); node->write(md5stream,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE);
} }
} }
uchar md5_sig[16]; uchar md5_sig[16];
QCString sigStr(33); QCString sigStr(33);
MD5Buffer(buf.ascii(),buf.length(),md5_sig); MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig);
MD5SigToString(md5_sig,sigStr.data(),33); MD5SigToString(md5_sig,sigStr.data(),33);
if (checkAndUpdateMd5Signature(baseName,sigStr) || if (checkAndUpdateMd5Signature(baseName,sigStr) ||
!QFileInfo(mapName).exists()) !QFileInfo(mapName).exists())
...@@ -957,6 +966,12 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) ...@@ -957,6 +966,12 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
if (node->m_subgraphId==n->m_subgraphId) if (node->m_subgraphId==n->m_subgraphId)
{ {
node->clearWriteFlag(); node->clearWriteFlag();
}
}
for (dnli2.toFirst();(node=dnli2.current());++dnli2)
{
if (node->m_subgraphId==n->m_subgraphId)
{
node->write(t,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE); node->write(t,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE);
} }
} }
...@@ -1006,11 +1021,11 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) ...@@ -1006,11 +1021,11 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper)
for ( ; (bcd=bcli.current()) ; ++bcli ) for ( ; (bcd=bcli.current()) ; ++bcli )
{ {
ClassDef *bClass=bcd->classDef; ClassDef *bClass=bcd->classDef;
//printf("Trying super class=`%s'\n",bClass->name().data()); //printf(" Trying super class=`%s' usedNodes=%d\n",bClass->name().data(),m_usedNodes->count());
if (bClass->isVisibleInHierarchy() && hasVisibleRoot(bClass->baseClasses())) if (bClass->isVisibleInHierarchy() && hasVisibleRoot(bClass->baseClasses()))
{ {
DotNode *bn; DotNode *bn;
//printf("Node `%s' Found visible class=`%s'\n",n->m_label.data(), //printf(" Node `%s' Found visible class=`%s'\n",n->m_label.data(),
// bClass->name().data()); // bClass->name().data());
if ((bn=m_usedNodes->find(bClass->name()))) // node already present if ((bn=m_usedNodes->find(bClass->name()))) // node already present
{ {
...@@ -1018,7 +1033,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) ...@@ -1018,7 +1033,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper)
{ {
n->addChild(bn,bcd->prot); n->addChild(bn,bcd->prot);
bn->addParent(n); bn->addParent(n);
//printf("Adding node %s to existing base node %s (c=%d,p=%d)\n", //printf(" Adding node %s to existing base node %s (c=%d,p=%d)\n",
// n->m_label.data(), // n->m_label.data(),
// bn->m_label.data(), // bn->m_label.data(),
// bn->m_children ? bn->m_children->count() : 0, // bn->m_children ? bn->m_children->count() : 0,
...@@ -1027,7 +1042,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) ...@@ -1027,7 +1042,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper)
} }
//else //else
//{ //{
// printf("Class already has an arrow!\n"); // printf(" Class already has an arrow!\n");
//} //}
} }
else else
...@@ -1039,14 +1054,15 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) ...@@ -1039,14 +1054,15 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper)
bClass->displayName(), bClass->displayName(),
tmp_url.data() tmp_url.data()
); );
//printf("Adding node %s to new base node %s (c=%d,p=%d)\n", n->addChild(bn,bcd->prot);
bn->addParent(n);
//printf(" Adding node %s to new base node %s (c=%d,p=%d)\n",
// n->m_label.data(), // n->m_label.data(),
// bn->m_label.data(), // bn->m_label.data(),
// bn->m_children ? bn->m_children->count() : 0, // bn->m_children ? bn->m_children->count() : 0,
// bn->m_parents ? bn->m_parents->count() : 0 // bn->m_parents ? bn->m_parents->count() : 0
// ); // );
n->addChild(bn,bcd->prot); //printf(" inserting %s (%p)\n",bClass->name().data(),bn);
bn->addParent(n);
m_usedNodes->insert(bClass->name(),bn); // add node to the used list m_usedNodes->insert(bClass->name(),bn); // add node to the used list
} }
if (!bClass->visited && !hideSuper && bClass->subClasses()->count()>0) if (!bClass->visited && !hideSuper && bClass->subClasses()->count()>0)
...@@ -1057,6 +1073,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) ...@@ -1057,6 +1073,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper)
} }
} }
} }
//printf("end addHierarchy\n");
} }
void DotGfxHierarchyTable::addClassList(ClassSDict *cl) void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
...@@ -1481,7 +1498,7 @@ QCString computeMd5Signature(DotNode *root, ...@@ -1481,7 +1498,7 @@ QCString computeMd5Signature(DotNode *root,
} }
uchar md5_sig[16]; uchar md5_sig[16];
QCString sigStr(33); QCString sigStr(33);
MD5Buffer(buf.ascii(),buf.length(),md5_sig); MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig);
MD5SigToString(md5_sig,sigStr.data(),33); MD5SigToString(md5_sig,sigStr.data(),33);
//printf("md5: %s | file: %s\n",sigStr,baseName.data()); //printf("md5: %s | file: %s\n",sigStr,baseName.data());
return sigStr; return sigStr;
......
...@@ -715,16 +715,24 @@ static void addClassToContext(Entry *root) ...@@ -715,16 +715,24 @@ static void addClassToContext(Entry *root)
{ {
case Entry::UNION_SEC: case Entry::UNION_SEC:
case Entry::UNIONDOC_SEC: case Entry::UNIONDOC_SEC:
sec=ClassDef::Union; break; sec=ClassDef::Union;
break;
case Entry::STRUCT_SEC: case Entry::STRUCT_SEC:
case Entry::STRUCTDOC_SEC: case Entry::STRUCTDOC_SEC:
sec=ClassDef::Struct; break; sec=ClassDef::Struct;
break;
case Entry::INTERFACE_SEC: case Entry::INTERFACE_SEC:
case Entry::INTERFACEDOC_SEC: case Entry::INTERFACEDOC_SEC:
sec=ClassDef::Interface; break; sec=ClassDef::Interface;
break;
case Entry::PROTOCOL_SEC:
case Entry::PROTOCOLDOC_SEC:
sec=ClassDef::Protocol;
break;
case Entry::EXCEPTION_SEC: case Entry::EXCEPTION_SEC:
case Entry::EXCEPTIONDOC_SEC: case Entry::EXCEPTIONDOC_SEC:
sec=ClassDef::Exception; break; sec=ClassDef::Exception;
break;
} }
Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d\n", Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d\n",
fullName.data(),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1); fullName.data(),root->section,root->tArgLists ? (int)root->tArgLists->count() : -1);
...@@ -746,9 +754,9 @@ static void addClassToContext(Entry *root) ...@@ -746,9 +754,9 @@ static void addClassToContext(Entry *root)
tagName,refFileName); tagName,refFileName);
cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition cd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
cd->setBriefDescription(root->brief,root->briefFile,root->briefLine); cd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
cd->setIsObjectiveC(root->objc);
//printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data());
ArgumentList *tArgList = ArgumentList *tArgList =
getTemplateArgumentsFromName(fullName,root->tArgLists); getTemplateArgumentsFromName(fullName,root->tArgLists);
//printf("class %s template args=%s\n",fullName.data(), //printf("class %s template args=%s\n",fullName.data(),
......
...@@ -184,8 +184,11 @@ class Entry ...@@ -184,8 +184,11 @@ class Entry
EXCEPTION_SEC = 0x00000008, EXCEPTION_SEC = 0x00000008,
NAMESPACE_SEC = 0x00000010, NAMESPACE_SEC = 0x00000010,
INTERFACE_SEC = 0x00000020, INTERFACE_SEC = 0x00000020,
PROTOCOL_SEC = 0x00000040,
CATEGORY_SEC = 0x00000080,
COMPOUND_MASK = CLASS_SEC | STRUCT_SEC | UNION_SEC | COMPOUND_MASK = CLASS_SEC | STRUCT_SEC | UNION_SEC |
INTERFACE_SEC | EXCEPTION_SEC, INTERFACE_SEC | EXCEPTION_SEC |
PROTOCOL_SEC | CATEGORY_SEC,
SCOPE_MASK = COMPOUND_MASK | NAMESPACE_SEC, SCOPE_MASK = COMPOUND_MASK | NAMESPACE_SEC,
CLASSDOC_SEC = 0x00000100, CLASSDOC_SEC = 0x00000100,
...@@ -194,8 +197,9 @@ class Entry ...@@ -194,8 +197,9 @@ class Entry
EXCEPTIONDOC_SEC = 0x00000800, EXCEPTIONDOC_SEC = 0x00000800,
NAMESPACEDOC_SEC = 0x00001000, NAMESPACEDOC_SEC = 0x00001000,
INTERFACEDOC_SEC = 0x00002000, INTERFACEDOC_SEC = 0x00002000,
PROTOCOLDOC_SEC = 0x00004000,
COMPOUNDDOC_MASK = CLASSDOC_SEC | STRUCTDOC_SEC | UNIONDOC_SEC | COMPOUNDDOC_MASK = CLASSDOC_SEC | STRUCTDOC_SEC | UNIONDOC_SEC |
INTERFACEDOC_SEC | EXCEPTIONDOC_SEC, INTERFACEDOC_SEC | EXCEPTIONDOC_SEC | PROTOCOLDOC_SEC,
SOURCE_SEC = 0x00010000, SOURCE_SEC = 0x00010000,
HEADER_SEC = 0x00020000, HEADER_SEC = 0x00020000,
......
...@@ -150,12 +150,9 @@ void FileDef::writeDetailedDocumentation(OutputList &ol) ...@@ -150,12 +150,9 @@ void FileDef::writeDetailedDocumentation(OutputList &ol)
{ {
ol.writeRuler(); ol.writeRuler();
ol.pushGeneratorState(); ol.pushGeneratorState();
//bool latexOn = ol.isEnabled(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::Latex); ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.writeAnchor(0,"_details"); ol.writeAnchor(0,"_details");
//if (latexOn) ol.enable(OutputGenerator::Latex);
ol.popGeneratorState(); ol.popGeneratorState();
ol.startGroupHeader(); ol.startGroupHeader();
ol.parseText(theTranslator->trDetailedDescription()); ol.parseText(theTranslator->trDetailedDescription());
......
...@@ -479,10 +479,13 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -479,10 +479,13 @@ void GroupDef::writeDocumentation(OutputList &ol)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Latex); ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.disable(OutputGenerator::Man);
ol.startTextLink(0,"_details"); ol.startTextLink(0,"_details");
ol.parseText(theTranslator->trMore()); ol.parseText(theTranslator->trMore());
ol.endTextLink(); ol.endTextLink();
//ol.enable(OutputGenerator::Latex); ol.enableAll();
ol.disableAllBut(OutputGenerator::Man);
ol.newParagraph();
ol.popGeneratorState(); ol.popGeneratorState();
} }
......
...@@ -293,10 +293,9 @@ void HtmlDocVisitor::visit(DocFormula *f) ...@@ -293,10 +293,9 @@ void HtmlDocVisitor::visit(DocFormula *f)
{ {
if (m_hide) return; if (m_hide) return;
bool bDisplay = f->text().at(0)=='\\'; bool bDisplay = f->text().at(0)=='\\';
if (bDisplay) m_t << "<p class=formulaDsp>" << endl; if (bDisplay) m_t << "<p class=\"formulaDsp\">" << endl;
m_t << "<img class=formula" m_t << "<img class=\"formula" << (bDisplay ? "Dsp" : "Inl");
<< (bDisplay ? "Dsp" : "Inl"); m_t << "\" alt=\"";
m_t << " alt=\"";
filterQuotedCdataAttr(f->text()); filterQuotedCdataAttr(f->text());
m_t << "\""; m_t << "\"";
/// @todo cache image dimensions on formula generation and give height/width /// @todo cache image dimensions on formula generation and give height/width
...@@ -696,7 +695,7 @@ void HtmlDocVisitor::visitPre(DocImage *img) ...@@ -696,7 +695,7 @@ void HtmlDocVisitor::visitPre(DocImage *img)
} }
m_t << "<div align=\"center\">" << endl; m_t << "<div align=\"center\">" << endl;
m_t << "<img src=\"" << img->name() << "\" alt=\"" m_t << "<img src=\"" << img->name() << "\" alt=\""
<< baseName << "\">" << endl; << baseName << "\"" << htmlAttribsToString(img->attribs()) << ">" << endl;
if (img->hasCaption()) if (img->hasCaption())
{ {
m_t << "<p><strong>"; m_t << "<p><strong>";
......
...@@ -57,15 +57,22 @@ static const char *defaultStyleSheet = ...@@ -57,15 +57,22 @@ static const char *defaultStyleSheet =
" margin: 2px;\n" " margin: 2px;\n"
" padding: 2px;\n" " padding: 2px;\n"
"}\n" "}\n"
"A.qindex { text-decoration: none; font-weight: bold; color: #1A419D}\n" "A.qindex {\n"
"A.qindex:visited { text-decoration: none; font-weight: bold; color: #1A419D}\n" " text-decoration: none;\n"
" font-weight: bold;\n"
" color: #1A419D;\n"
" padding: 2px;\n"
"}\n"
"A.qindex:visited {\n"
" text-decoration: none;\n"
" font-weight: bold;\n"
" color: #1A419D\n"
" padding: 2px;\n"
"}\n"
"A.qindex:hover {\n" "A.qindex:hover {\n"
" text-decoration: none;\n" " text-decoration: none;\n"
" background-color: #ddddff;\n" " background-color: #ddddff;\n"
" padding-top: 2px;\n" " padding: 2px;\n"
" padding-right: 2px;\n"
" padding-bottom: 2px;\n"
" padding-left: 2px;\n"
"}\n" "}\n"
"A.qindexHL {\n" "A.qindexHL {\n"
" text-decoration: none;\n" " text-decoration: none;\n"
...@@ -987,11 +994,13 @@ void HtmlGenerator::endMemberDocPrefixItem() ...@@ -987,11 +994,13 @@ void HtmlGenerator::endMemberDocPrefixItem()
t << " </tr>" << endl; t << " </tr>" << endl;
} }
void HtmlGenerator::startMemberDocName() void HtmlGenerator::startMemberDocName(bool align)
{ {
DBG_HTML(t << "<!-- startMemberDocName -->" << endl;) DBG_HTML(t << "<!-- startMemberDocName -->" << endl;)
t << " <tr>" << endl; t << " <tr>" << endl;
t << " <td class=\"md\" nowrap valign=\"top\"> "; t << " <td class=\"md\" nowrap valign=\"top\"";
if (align) t << " align=\"right\"";
t << "> ";
} }
void HtmlGenerator::endMemberDocName() void HtmlGenerator::endMemberDocName()
...@@ -1000,13 +1009,18 @@ void HtmlGenerator::endMemberDocName() ...@@ -1000,13 +1009,18 @@ void HtmlGenerator::endMemberDocName()
t << "</td>" << endl; t << "</td>" << endl;
} }
void HtmlGenerator::startParameterList() void HtmlGenerator::startParameterList(bool openBracket)
{ {
DBG_HTML(t << "<!-- startParameterList -->" << endl;) DBG_HTML(t << "<!-- startParameterList -->" << endl;)
t << " <td class=\"md\" valign=\"top\">(&nbsp;</td>" << endl; t << " <td class=\"md\" valign=\"top\">";
if (openBracket)
{
t << "(&nbsp;";
}
t << "</td>" << endl;
} }
void HtmlGenerator::startParameterType(bool first) void HtmlGenerator::startParameterType(bool first,const char *key)
{ {
if (first) if (first)
{ {
...@@ -1017,7 +1031,9 @@ void HtmlGenerator::startParameterType(bool first) ...@@ -1017,7 +1031,9 @@ void HtmlGenerator::startParameterType(bool first)
{ {
DBG_HTML(t << "<!-- startParameterType -->" << endl;) DBG_HTML(t << "<!-- startParameterType -->" << endl;)
t << " <tr>" << endl; t << " <tr>" << endl;
t << " <td></td>" << endl; t << " <td class=\"md\" nowrap align=\"right\">";
if (key) t << key;
t << "</td>" << endl;
t << " <td></td>" << endl; t << " <td></td>" << endl;
t << " <td class=\"md\" nowrap>"; t << " <td class=\"md\" nowrap>";
} }
......
...@@ -195,13 +195,13 @@ class HtmlGenerator : public OutputGenerator ...@@ -195,13 +195,13 @@ class HtmlGenerator : public OutputGenerator
void startMemberDocPrefixItem(); void startMemberDocPrefixItem();
void endMemberDocPrefixItem(); void endMemberDocPrefixItem();
void startMemberDocName(); void startMemberDocName(bool);
void endMemberDocName(); void endMemberDocName();
void startParameterType(bool first); void startParameterType(bool first,const char *key);
void endParameterType(); void endParameterType();
void startParameterName(bool); void startParameterName(bool);
void endParameterName(bool last,bool emptyList); void endParameterName(bool last,bool emptyList);
void startParameterList(); void startParameterList(bool);
void endParameterList(); void endParameterList();
void startFontClass(const char *s) { t << "<span class=\"" << s << "\">"; } void startFontClass(const char *s) { t << "<span class=\"" << s << "\">"; }
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
<xsd:enumeration value="struct"/> <xsd:enumeration value="struct"/>
<xsd:enumeration value="union"/> <xsd:enumeration value="union"/>
<xsd:enumeration value="interface"/> <xsd:enumeration value="interface"/>
<xsd:enumeration value="protocol"/>
<xsd:enumeration value="category"/>
<xsd:enumeration value="exception"/> <xsd:enumeration value="exception"/>
<xsd:enumeration value="file"/> <xsd:enumeration value="file"/>
<xsd:enumeration value="namespace"/> <xsd:enumeration value="namespace"/>
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
" <xsd:enumeration value=\"struct\"/>\n" " <xsd:enumeration value=\"struct\"/>\n"
" <xsd:enumeration value=\"union\"/>\n" " <xsd:enumeration value=\"union\"/>\n"
" <xsd:enumeration value=\"interface\"/>\n" " <xsd:enumeration value=\"interface\"/>\n"
" <xsd:enumeration value=\"protocol\"/>\n"
" <xsd:enumeration value=\"category\"/>\n"
" <xsd:enumeration value=\"exception\"/>\n" " <xsd:enumeration value=\"exception\"/>\n"
" <xsd:enumeration value=\"file\"/>\n" " <xsd:enumeration value=\"file\"/>\n"
" <xsd:enumeration value=\"namespace\"/>\n" " <xsd:enumeration value=\"namespace\"/>\n"
......
...@@ -270,13 +270,13 @@ class LatexGenerator : public OutputGenerator ...@@ -270,13 +270,13 @@ class LatexGenerator : public OutputGenerator
void startMemberDocPrefixItem() {} void startMemberDocPrefixItem() {}
void endMemberDocPrefixItem() {} void endMemberDocPrefixItem() {}
void startMemberDocName() {} void startMemberDocName(bool) {}
void endMemberDocName() {} void endMemberDocName() {}
void startParameterType(bool) {} void startParameterType(bool,const char *) {}
void endParameterType() {} void endParameterType() {}
void startParameterName(bool) {} void startParameterName(bool) {}
void endParameterName(bool,bool) {} void endParameterName(bool,bool) {}
void startParameterList() {} void startParameterList(bool) {}
void endParameterList() {} void endParameterList() {}
void startFontClass(const char *) {} void startFontClass(const char *) {}
......
...@@ -237,13 +237,13 @@ class ManGenerator : public OutputGenerator ...@@ -237,13 +237,13 @@ class ManGenerator : public OutputGenerator
void startMemberDocPrefixItem() {} void startMemberDocPrefixItem() {}
void endMemberDocPrefixItem() {} void endMemberDocPrefixItem() {}
void startMemberDocName() {} void startMemberDocName(bool) {}
void endMemberDocName() {} void endMemberDocName() {}
void startParameterType(bool) {} void startParameterType(bool,const char *) {}
void endParameterType() {} void endParameterType() {}
void startParameterName(bool) {} void startParameterName(bool) {}
void endParameterName(bool,bool) {} void endParameterName(bool,bool) {}
void startParameterList() {} void startParameterList(bool) {}
void endParameterList() {} void endParameterList() {}
void startFontClass(const char *) {} void startFontClass(const char *) {}
......
...@@ -89,10 +89,10 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -89,10 +89,10 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.endMemberDocName(); ol.endMemberDocName();
ol.startParameterList(); ol.startParameterList(!md->isObjCMethod());
ol.enableAll(); ol.enableAll();
ol.disable(OutputGenerator::Html); ol.disable(OutputGenerator::Html);
ol.docify("("); // start argument list if (!md->isObjCMethod()) ol.docify("("); // start argument list
ol.endMemberDocName(); ol.endMemberDocName();
ol.popGeneratorState(); ol.popGeneratorState();
//printf("===> name=%s isDefine=%d\n",md->name().data(),md->isDefine()); //printf("===> name=%s isDefine=%d\n",md->name().data(),md->isDefine());
...@@ -125,10 +125,10 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -125,10 +125,10 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
bool first=TRUE; bool first=TRUE;
while (a) while (a)
{ {
if (md->isDefine() || first) ol.startParameterType(first); if (md->isDefine() || first) ol.startParameterType(first,md->isObjCMethod()?"dummy":0);
QRegExp re(")("); QRegExp re(")(");
int vp; int vp;
if (!a->attrib.isEmpty()) // argument has an IDL attribute if (!a->attrib.isEmpty() && !md->isObjCMethod()) // argument has an IDL attribute
{ {
ol.docify(a->attrib+" "); ol.docify(a->attrib+" ");
} }
...@@ -136,12 +136,14 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -136,12 +136,14 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
{ {
//printf("a->type=`%s' a->name=`%s'\n",a->type.data(),a->name.data()); //printf("a->type=`%s' a->name=`%s'\n",a->type.data(),a->name.data());
QCString n=a->type.left(vp); QCString n=a->type.left(vp);
if (md->isObjCMethod()) { n.prepend("("); n.append(")"); }
if (!cName.isEmpty()) n=addTemplateNames(n,cd->name(),cName); if (!cName.isEmpty()) n=addTemplateNames(n,cd->name(),cName);
linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md->name(),n); linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md->name(),n);
} }
else // non-function pointer type else // non-function pointer type
{ {
QCString n=a->type; QCString n=a->type;
if (md->isObjCMethod()) { n.prepend("("); n.append(")"); }
if (!cName.isEmpty()) n=addTemplateNames(n,cd->name(),cName); if (!cName.isEmpty()) n=addTemplateNames(n,cd->name(),cName);
linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md->name(),n); linkifyText(TextGeneratorOLImpl(ol),cd,md->getBodyDef(),md->name(),n);
} }
...@@ -181,11 +183,18 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -181,11 +183,18 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
a=defArgList->next(); a=defArgList->next();
if (a) if (a)
{ {
ol.docify(", "); // there are more arguments if (!md->isObjCMethod()) ol.docify(", "); // there are more arguments
if (!md->isDefine()) if (!md->isDefine())
{ {
QCString key;
if (md->isObjCMethod() && a->attrib.length()>2)
{
//printf("Found parameter keyword %s\n",a->attrib.data());
// strip [ and ]
key=a->attrib.mid(1,a->attrib.length()-2)+":";
}
ol.endParameterName(FALSE,FALSE); ol.endParameterName(FALSE,FALSE);
ol.startParameterType(FALSE); ol.startParameterType(FALSE,key);
} }
} }
first=FALSE; first=FALSE;
...@@ -193,13 +202,13 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -193,13 +202,13 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Html); ol.disable(OutputGenerator::Html);
//if (!first) ol.writeString("&nbsp;"); //if (!first) ol.writeString("&nbsp;");
ol.docify(")"); // end argument list if (!md->isObjCMethod()) ol.docify(")"); // end argument list
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
if (!md->isDefine()) if (!md->isDefine())
{ {
if (first) ol.startParameterName(defArgList->count()<2); if (first) ol.startParameterName(defArgList->count()<2);
ol.endParameterName(TRUE,defArgList->count()<2); ol.endParameterName(!md->isObjCMethod(),defArgList->count()<2);
} }
else else
{ {
...@@ -929,6 +938,11 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -929,6 +938,11 @@ void MemberDef::writeDeclaration(OutputList &ol,
} }
else else
{ {
if (isObjCMethod())
{
ltype.prepend("(");
ltype.append(")");
}
linkifyText(TextGeneratorOLImpl(ol),d,getBodyDef(),name(),ltype,TRUE); linkifyText(TextGeneratorOLImpl(ol),d,getBodyDef(),name(),ltype,TRUE);
} }
bool htmlOn = ol.isEnabled(OutputGenerator::Html); bool htmlOn = ol.isEnabled(OutputGenerator::Html);
...@@ -996,7 +1010,7 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -996,7 +1010,7 @@ void MemberDef::writeDeclaration(OutputList &ol,
} }
} }
if (argsString()) if (argsString() && !isObjCMethod())
{ {
if (!isDefine()) ol.writeString(" "); if (!isDefine()) ol.writeString(" ");
//ol.docify(argsString()); //ol.docify(argsString());
...@@ -1237,7 +1251,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1237,7 +1251,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (si==-1) si=0; if (si==-1) si=0;
while ((pi=r.match(ldef,i+l,&l))!=-1) ei=i=pi+l; while ((pi=r.match(ldef,i+l,&l))!=-1) ei=i=pi+l;
// first si characters of ldef contain compound type name // first si characters of ldef contain compound type name
ol.startMemberDocName(); ol.startMemberDocName(isObjCMethod());
ol.docify(ldef.left(si)); ol.docify(ldef.left(si));
ol.docify(" { ... } "); ol.docify(" { ... } ");
// last ei characters of ldef contain pointer/reference specifiers // last ei characters of ldef contain pointer/reference specifiers
...@@ -1304,7 +1318,28 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1304,7 +1318,28 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
} }
} }
} }
ol.startMemberDocName(); ol.startMemberDocName(isObjCMethod());
if (isObjCMethod())
{
int dp = ldef.find(':');
if (dp!=-1)
{
ldef=ldef.left(dp+1);
}
int l=ldef.length();
//printf("start >%s<\n",ldef.data());
int i=l-1;
while (i>=0 && (isId(ldef.at(i)) || ldef.at(i)==':')) i--;
while (i>=0 && isspace(ldef.at(i))) i--;
if (i>0)
{
// insert braches around the type
QCString tmp("("+ldef.left(i+1)+")"+ldef.mid(i+1));
ldef=tmp;
}
//printf("end >%s< i=%d\n",ldef.data(),i);
if (isStatic()) ldef.prepend("+ "); else ldef.prepend("- ");
}
linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef); linkifyText(TextGeneratorOLImpl(ol),container,getBodyDef(),name(),ldef);
writeDefArgumentList(ol,cd,scopeName,this); writeDefArgumentList(ol,cd,scopeName,this);
if (hasOneLineInitializer()) // add initializer if (hasOneLineInitializer()) // add initializer
...@@ -1329,12 +1364,14 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1329,12 +1364,14 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
Specifier lvirt=virtualness(); Specifier lvirt=virtualness();
if (protection()!=Public || lvirt!=Normal || if (!isObjCMethod() &&
isFriend() || isRelated() || isExplicit() || (protection()!=Public || lvirt!=Normal ||
isMutable() || (isInline() && Config_getBool("INLINE_INFO")) || isFriend() || isRelated() || isExplicit() ||
isSignal() || isSlot() || isMutable() || (isInline() && Config_getBool("INLINE_INFO")) ||
isStatic() || (classDef && classDef!=container) || isSignal() || isSlot() ||
isSettable() || isGettable() isStatic() || (classDef && classDef!=container) ||
isSettable() || isGettable()
)
) )
{ {
// write the member specifier list // write the member specifier list
...@@ -2137,3 +2174,10 @@ void MemberDef::setInbodyDocumentation(const char *docs, ...@@ -2137,3 +2174,10 @@ void MemberDef::setInbodyDocumentation(const char *docs,
m_inbodyFile = docFile; m_inbodyFile = docFile;
} }
bool MemberDef::isObjCMethod() const
{
if (classDef && classDef->isObjectiveC() && isFunction()) return TRUE;
return FALSE;
}
...@@ -126,6 +126,7 @@ class MemberDef : public Definition ...@@ -126,6 +126,7 @@ class MemberDef : public Definition
bool isGettable() const { return (memSpec&Entry::Gettable)!=0; } bool isGettable() const { return (memSpec&Entry::Gettable)!=0; }
bool isSettable() const { return (memSpec&Entry::Settable)!=0; } bool isSettable() const { return (memSpec&Entry::Settable)!=0; }
bool isExternal() const { return explExt; } bool isExternal() const { return explExt; }
bool isObjCMethod() const;
bool isConstructor() const; bool isConstructor() const;
bool isDestructor() const; bool isDestructor() const;
bool hasOneLineInitializer() const; bool hasOneLineInitializer() const;
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include <qlist.h> #include <qlist.h>
#include "sortdict.h" #include "sortdict.h"
#define NOGROUP -1 #define DOX_NOGROUP -1
class MemberDef; class MemberDef;
class ClassDef; class ClassDef;
......
...@@ -308,6 +308,9 @@ void NamespaceDef::writeDocumentation(OutputList &ol) ...@@ -308,6 +308,9 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
ol.startTextLink(0,"_details"); ol.startTextLink(0,"_details");
ol.parseText(theTranslator->trMore()); ol.parseText(theTranslator->trMore());
ol.endTextLink(); ol.endTextLink();
ol.enableAll();
ol.disableAllBut(OutputGenerator::Man);
ol.newParagraph();
ol.popGeneratorState(); ol.popGeneratorState();
} }
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
......
...@@ -346,13 +346,13 @@ class OutputGenerator : public BaseOutputDocInterface ...@@ -346,13 +346,13 @@ class OutputGenerator : public BaseOutputDocInterface
virtual void lastIndexPage() = 0; virtual void lastIndexPage() = 0;
virtual void startMemberDocPrefixItem() = 0; virtual void startMemberDocPrefixItem() = 0;
virtual void endMemberDocPrefixItem() = 0; virtual void endMemberDocPrefixItem() = 0;
virtual void startMemberDocName() = 0; virtual void startMemberDocName(bool) = 0;
virtual void endMemberDocName() = 0; virtual void endMemberDocName() = 0;
virtual void startParameterType(bool) = 0; virtual void startParameterType(bool,const char *) = 0;
virtual void endParameterType() = 0; virtual void endParameterType() = 0;
virtual void startParameterName(bool) = 0; virtual void startParameterName(bool) = 0;
virtual void endParameterName(bool,bool) = 0; virtual void endParameterName(bool,bool) = 0;
virtual void startParameterList() = 0; virtual void startParameterList(bool) = 0;
virtual void endParameterList() = 0; virtual void endParameterList() = 0;
protected: protected:
......
...@@ -273,6 +273,7 @@ FORALL4(const char *a1,const char *a2,const char *a3,bool a4,a1,a2,a3,a4) ...@@ -273,6 +273,7 @@ FORALL4(const char *a1,const char *a2,const char *a3,bool a4,a1,a2,a3,a4)
#endif #endif
FORALL2(int a1,bool a2,a1,a2) FORALL2(int a1,bool a2,a1,a2)
FORALL2(bool a1,HighlightedItem a2,a1,a2) FORALL2(bool a1,HighlightedItem a2,a1,a2)
FORALL2(bool a1,const char *a2,a1,a2)
FORALL2(ParamListTypes a1,const char *a2,a1,a2) FORALL2(ParamListTypes a1,const char *a2,a1,a2)
FORALL1(IndexSections a1,a1) FORALL1(IndexSections a1,a1)
FORALL2(const char *a1,const char *a2,a1,a2) FORALL2(const char *a1,const char *a2,a1,a2)
......
...@@ -329,20 +329,20 @@ class OutputList : public OutputDocInterface ...@@ -329,20 +329,20 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startMemberDocPrefixItem); } { forall(&OutputGenerator::startMemberDocPrefixItem); }
void endMemberDocPrefixItem() void endMemberDocPrefixItem()
{ forall(&OutputGenerator::endMemberDocPrefixItem); } { forall(&OutputGenerator::endMemberDocPrefixItem); }
void startMemberDocName() void startMemberDocName(bool align)
{ forall(&OutputGenerator::startMemberDocName); } { forall(&OutputGenerator::startMemberDocName,align); }
void endMemberDocName() void endMemberDocName()
{ forall(&OutputGenerator::endMemberDocName); } { forall(&OutputGenerator::endMemberDocName); }
void startParameterType(bool first) void startParameterType(bool first,const char *key)
{ forall(&OutputGenerator::startParameterType,first); } { forall(&OutputGenerator::startParameterType,first,key); }
void endParameterType() void endParameterType()
{ forall(&OutputGenerator::endParameterType); } { forall(&OutputGenerator::endParameterType); }
void startParameterName(bool one) void startParameterName(bool one)
{ forall(&OutputGenerator::startParameterName,one); } { forall(&OutputGenerator::startParameterName,one); }
void endParameterName(bool last,bool one) void endParameterName(bool last,bool one)
{ forall(&OutputGenerator::endParameterName,last,one); } { forall(&OutputGenerator::endParameterName,last,one); }
void startParameterList() void startParameterList(bool openBracket)
{ forall(&OutputGenerator::startParameterList); } { forall(&OutputGenerator::startParameterList,openBracket); }
void endParameterList() void endParameterList()
{ forall(&OutputGenerator::endParameterList); } { forall(&OutputGenerator::endParameterList); }
void startFontClass(const char *c) void startFontClass(const char *c)
...@@ -392,6 +392,7 @@ class OutputList : public OutputDocInterface ...@@ -392,6 +392,7 @@ class OutputList : public OutputDocInterface
#endif #endif
FORALLPROTO2(int,bool); FORALLPROTO2(int,bool);
FORALLPROTO2(bool,HighlightedItem); FORALLPROTO2(bool,HighlightedItem);
FORALLPROTO2(bool,const char *);
FORALLPROTO2(ParamListTypes,const char *); FORALLPROTO2(ParamListTypes,const char *);
FORALLPROTO2(const char *,const char *); FORALLPROTO2(const char *,const char *);
FORALLPROTO2(const char *,bool); FORALLPROTO2(const char *,bool);
......
...@@ -240,13 +240,13 @@ class RTFGenerator : public OutputGenerator ...@@ -240,13 +240,13 @@ class RTFGenerator : public OutputGenerator
void startMemberDocPrefixItem() {} void startMemberDocPrefixItem() {}
void endMemberDocPrefixItem() {} void endMemberDocPrefixItem() {}
void startMemberDocName() {} void startMemberDocName(bool) {}
void endMemberDocName() {} void endMemberDocName() {}
void startParameterType(bool) {} void startParameterType(bool,const char *) {}
void endParameterType() {} void endParameterType() {}
void startParameterName(bool) {} void startParameterName(bool) {}
void endParameterName(bool,bool) {} void endParameterName(bool,bool) {}
void startParameterList() {} void startParameterList(bool) {}
void endParameterList() {} void endParameterList() {}
void startFontClass(const char *) {} void startFontClass(const char *) {}
......
...@@ -106,7 +106,7 @@ static bool removeSlashes; ...@@ -106,7 +106,7 @@ static bool removeSlashes;
static Specifier virt; static Specifier virt;
static Specifier baseVirt; static Specifier baseVirt;
static QCString msType,msName,msArgs; static QCString msType,msName,msArgs;
static int memberGroupId = NOGROUP; static int memberGroupId = DOX_NOGROUP;
static QCString memberGroupHeader; static QCString memberGroupHeader;
static QCString memberGroupDocs; static QCString memberGroupDocs;
static bool isTypedef; static bool isTypedef;
...@@ -180,7 +180,7 @@ static void initParser() ...@@ -180,7 +180,7 @@ static void initParser()
sharpCount = 0; sharpCount = 0;
roundCount = 0; roundCount = 0;
curlyCount = 0; curlyCount = 0;
memberGroupId = NOGROUP; memberGroupId = DOX_NOGROUP;
memberGroupRelates.resize(0); memberGroupRelates.resize(0);
memberGroupInside.resize(0); memberGroupInside.resize(0);
mtype = Method; mtype = Method;
...@@ -809,10 +809,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -809,10 +809,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
%% %%
<*>\x06[^\x06]*\x06 { // new file <*>\x06[^\x06]*\x06 { // new file
if (memberGroupId!=NOGROUP) if (memberGroupId!=DOX_NOGROUP)
{ {
warn(yyFileName,yyLineNr,"Warning: Missing //@}"); warn(yyFileName,yyLineNr,"Warning: Missing //@}");
memberGroupId=NOGROUP; memberGroupId=DOX_NOGROUP;
} }
yyLineNr= 0 ; // there is always an extra newline at the start of the file yyLineNr= 0 ; // there is always an extra newline at the start of the file
int i; int i;
...@@ -1063,6 +1063,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1063,6 +1063,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<ObjCParams>{ID} { // name of parameter <ObjCParams>{ID} { // name of parameter
current->argList->getLast()->name=yytext; current->argList->getLast()->name=yytext;
} }
<ObjCParams>"..." { // name of parameter
current->argList->getLast()->name=yytext;
}
<ObjCParams>":" { <ObjCParams>":" {
current->name += ':'; current->name += ':';
} }
...@@ -1236,6 +1239,19 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1236,6 +1239,19 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->bodyLine = yyLineNr; current->bodyLine = yyLineNr;
BEGIN( CompoundName ); BEGIN( CompoundName );
} }
<FindMembers>{B}*"@protocol"{BN}+ { // Objective-C protocol definition
lineCount();
isTypedef=FALSE;
current->section = Entry::PROTOCOL_SEC;
current->objc = insideObjC = TRUE;
current->protection = protection = Public ;
addType( current ) ;
current->type += " protocol" ;
current->fileName = yyFileName;
current->startLine = yyLineNr;
current->bodyLine = yyLineNr;
BEGIN( CompoundName );
}
<FindMembers>{B}*"exception"{BN}+ { // Corba IDL exception <FindMembers>{B}*"exception"{BN}+ { // Corba IDL exception
isTypedef=FALSE; isTypedef=FALSE;
current->section = Entry::EXCEPTION_SEC; current->section = Entry::EXCEPTION_SEC;
...@@ -1247,6 +1263,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1247,6 +1263,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
lineCount(); lineCount();
BEGIN( CompoundName ); BEGIN( CompoundName );
} }
<FindMembers>"@class" | // for Objective C class declarations
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class{" | <FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class{" |
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class"{BN}+ { <FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"class"{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1; isTypedef=((QCString)yytext).find("typedef")!=-1;
...@@ -1290,15 +1307,6 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1290,15 +1307,6 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->fileName = yyFileName; current->fileName = yyFileName;
current->startLine = yyLineNr; current->startLine = yyLineNr;
current->bodyLine = yyLineNr; current->bodyLine = yyLineNr;
//if (current->mtArgList) // transfer template arguments
//{
// if (current->tArgList)
// {
// delete current->tArgList;
// }
// current->tArgList = current->mtArgList;
// current->mtArgList = 0;
//}
lineCount() ; lineCount() ;
if (yytext[yyleng-1]=='{') unput('{'); if (yytext[yyleng-1]=='{') unput('{');
BEGIN( CompoundName ) ; BEGIN( CompoundName ) ;
...@@ -1868,7 +1876,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1868,7 +1876,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
{ {
current->inside = current_root->name+"::"; current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupInside = current->inside.copy(); memberGroupInside = current->inside.copy();
} }
...@@ -1892,7 +1900,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1892,7 +1900,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
} }
} }
<FindMembers,FindFields,ReadInitializer>"//"([!/]?){B}*{CMD}"}".*|"/*"([!*]?){B}*{CMD}"}".*"*/" { <FindMembers,FindFields,ReadInitializer>"//"([!/]?){B}*{CMD}"}".*|"/*"([!*]?){B}*{CMD}"}".*"*/" {
if (memberGroupId==NOGROUP && autoGroupStack.isEmpty()) if (memberGroupId==DOX_NOGROUP && autoGroupStack.isEmpty())
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: end of group without matching begin."); "Warning: end of group without matching begin.");
...@@ -2282,8 +2290,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -2282,8 +2290,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->args = current->args.simplifyWhiteSpace(); current->args = current->args.simplifyWhiteSpace();
current->type = current->type.simplifyWhiteSpace(); current->type = current->type.simplifyWhiteSpace();
current->name = current->name.stripWhiteSpace(); current->name = current->name.stripWhiteSpace();
//printf("adding `%s' `%s' `%s' brief=%s\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data()); //printf("adding `%s' `%s' `%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section);
if (insideObjC) // method definition follows if (insideObjC &&
(current->section==Entry::INTERFACE_SEC || current->section==Entry::CATEGORY_SEC)
) // method definition follows
{ {
BEGIN( ReadBodyIntf ) ; BEGIN( ReadBodyIntf ) ;
} }
...@@ -3299,7 +3309,15 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3299,7 +3309,15 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (--sharpCount<=0) if (--sharpCount<=0)
{ {
current->name = removeRedundantWhiteSpace(current->name); current->name = removeRedundantWhiteSpace(current->name);
BEGIN( lastClassTemplSpecContext ); if (current->section == Entry::PROTOCOL_SEC)
{ // Objective-C protocol
unput('{'); // fake start of body
BEGIN( ClassVar );
}
else
{
BEGIN( lastClassTemplSpecContext );
}
} }
} }
<ClassTemplSpec>"<" { <ClassTemplSpec>"<" {
...@@ -3312,6 +3330,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3312,6 +3330,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<CompoundName>{SCOPENAME} { <CompoundName>{SCOPENAME} {
current->name = yytext ; current->name = yytext ;
lineCount(); lineCount();
if (current->section == Entry::PROTOCOL_SEC)
{
unput('{'); // fake start of body
}
BEGIN( ClassVar ); BEGIN( ClassVar );
} }
<CompoundName>{CSSCOPENAME} { // C# style scope <CompoundName>{CSSCOPENAME} { // C# style scope
...@@ -3335,6 +3357,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3335,6 +3357,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( FindMembers ); BEGIN( FindMembers );
} }
} }
<ClassVar>"," // Multiple class forward declaration
<ClassVar>{ID} { <ClassVar>{ID} {
if (insideIDL && strcmp(yytext,"switch")==0) if (insideIDL && strcmp(yytext,"switch")==0)
{ {
...@@ -3381,6 +3404,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3381,6 +3404,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (insideObjC && *yytext=='(') // class category if (insideObjC && *yytext=='(') // class category
{ {
current->name+='('; current->name+='(';
current->section=Entry::CATEGORY_SEC;
BEGIN( ClassCategory ); BEGIN( ClassCategory );
} }
else else
...@@ -3404,7 +3428,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3404,7 +3428,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->type.resize(0); current->type.resize(0);
if (current->section == Entry::INTERFACE_SEC || if (current->section == Entry::INTERFACE_SEC ||
current->section == Entry::STRUCT_SEC || current->section == Entry::STRUCT_SEC ||
insidePHP || insideCS || insideD insidePHP || insideCS || insideD || insideObjC
) )
baseProt=Public; baseProt=Public;
else else
...@@ -3430,7 +3454,11 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3430,7 +3454,11 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->name.sprintf("@%d",anonCount++); current->name.sprintf("@%d",anonCount++);
} }
curlyCount=0; curlyCount=0;
if (current->section==Entry::NAMESPACE_SEC) if (current->section==Entry::PROTOCOL_SEC)
{
BEGIN( ReadBodyIntf );
}
else if (current->section==Entry::NAMESPACE_SEC)
{ {
BEGIN( ReadNSBody ); BEGIN( ReadNSBody );
} }
...@@ -3467,6 +3495,24 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3467,6 +3495,24 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->args += ' '; current->args += ' ';
current->args += name; current->args += name;
} }
<Bases>^{B}*/[\-+] {
if (!insideObjC)
{
REJECT;
}
else
{
unput('{'); // insert start of fake body
}
}
<ClassVar,Bases>"@end" { // empty ObjC interface
unput('d'); // insert fake body: {}@end
unput('n');
unput('e');
unput('@');
unput('}');
unput('{');
}
<ClassVar>"<" { current->name += *yytext; <ClassVar>"<" { current->name += *yytext;
sharpCount=1; sharpCount=1;
lastSkipSharpContext = YY_START; lastSkipSharpContext = YY_START;
...@@ -3509,7 +3555,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3509,7 +3555,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->extends->append( current->extends->append(
new BaseInfo(baseName,baseProt,baseVirt) new BaseInfo(baseName,baseProt,baseVirt)
); );
if (current->section == Entry::INTERFACE_SEC || insideJava || insidePHP || insideCS || insideD) if (current->section==Entry::INTERFACE_SEC ||
insideJava || insidePHP || insideCS ||
insideD || insideObjC)
baseProt=Public; baseProt=Public;
else else
baseProt=Private; baseProt=Private;
...@@ -3525,7 +3573,14 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3525,7 +3573,14 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
new BaseInfo(baseName,baseProt,baseVirt) new BaseInfo(baseName,baseProt,baseVirt)
); );
curlyCount=0; curlyCount=0;
BEGIN( ReadBody ) ; if (insideObjC)
{
BEGIN( ReadBodyIntf );
}
else
{
BEGIN( ReadBody ) ;
}
} }
<SkipUnionSwitch>{B}*"(" { <SkipUnionSwitch>{B}*"(" {
roundCount++; roundCount++;
...@@ -3563,7 +3618,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3563,7 +3618,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
{ {
current->inside = current_root->name+"::"; current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupInside = current->inside.copy(); memberGroupInside = current->inside.copy();
} }
...@@ -3577,7 +3632,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3577,7 +3632,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
{ {
current->inside = current_root->name+"::"; current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupInside = current->inside.copy(); memberGroupInside = current->inside.copy();
} }
...@@ -3633,7 +3688,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3633,7 +3688,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
{ {
current->inside = current_root->name+"::"; current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupInside = current->inside.copy(); memberGroupInside = current->inside.copy();
} }
...@@ -3652,7 +3707,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -3652,7 +3707,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
{ {
current->inside = current_root->name+"::"; current->inside = current_root->name+"::";
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupInside = current->inside.copy(); memberGroupInside = current->inside.copy();
} }
...@@ -4059,7 +4114,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -4059,7 +4114,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
} }
<ClassDocRelates>({ID}"::")*{ID} { <ClassDocRelates>({ID}"::")*{ID} {
current->relates = yytext; current->relates = yytext;
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupRelates = yytext; memberGroupRelates = yytext;
} }
...@@ -4072,7 +4127,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -4072,7 +4127,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<ClassDocRelatesAlso>({ID}"::")*{ID} { <ClassDocRelatesAlso>({ID}"::")*{ID} {
current->relatesDup = TRUE; current->relatesDup = TRUE;
current->relates = yytext; current->relates = yytext;
if (current->mGrpId!=NOGROUP) if (current->mGrpId!=DOX_NOGROUP)
{ {
memberGroupRelates = yytext; memberGroupRelates = yytext;
} }
...@@ -4536,13 +4591,13 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -4536,13 +4591,13 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( GroupName ); BEGIN( GroupName );
} }
<ClassDoc,Doc,JavaDoc>{CMD}"{" { <ClassDoc,Doc,JavaDoc>{CMD}"{" {
if (memberGroupId==NOGROUP && current->section==Entry::GROUPDOC_SEC) if (memberGroupId==DOX_NOGROUP && current->section==Entry::GROUPDOC_SEC)
{ {
startGroupInDoc(); startGroupInDoc();
} }
} }
<ClassDoc,Doc,JavaDoc>{CMD}"}" { <ClassDoc,Doc,JavaDoc>{CMD}"}" {
if (memberGroupId==NOGROUP && autoGroupStack.isEmpty()) if (memberGroupId==DOX_NOGROUP && autoGroupStack.isEmpty())
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: end of group without matching begin."); "Warning: end of group without matching begin.");
...@@ -5352,7 +5407,7 @@ static void startGroup() ...@@ -5352,7 +5407,7 @@ static void startGroup()
} }
else else
{ {
//if (memberGroupId!=NOGROUP) //if (memberGroupId!=DOX_NOGROUP)
//{ //{
// //warn(yyFileName,yyLineNr,"Warning: ignoring nested member group. " // //warn(yyFileName,yyLineNr,"Warning: ignoring nested member group. "
// // "Previous command was found at line %d.",lastMemberGroupLine); // // "Previous command was found at line %d.",lastMemberGroupLine);
...@@ -5389,7 +5444,7 @@ static void startGroupInDoc() ...@@ -5389,7 +5444,7 @@ static void startGroupInDoc()
} }
else if (current->section == Entry::MEMBERGRP_SEC) /* scope for a member group: @name */ else if (current->section == Entry::MEMBERGRP_SEC) /* scope for a member group: @name */
{ {
//if (memberGroupId!=NOGROUP) //if (memberGroupId!=DOX_NOGROUP)
//{ //{
// printf("startGroupInDoc ends group %d\n",memberGroupId); // printf("startGroupInDoc ends group %d\n",memberGroupId);
// endGroup(); // endGroup();
...@@ -5414,7 +5469,7 @@ static void startGroupInDoc() ...@@ -5414,7 +5469,7 @@ static void startGroupInDoc()
static void endGroup() static void endGroup()
{ {
if (memberGroupId!=NOGROUP) // end of member group if (memberGroupId!=DOX_NOGROUP) // end of member group
{ {
//Doxygen::memberDocDict.insert(memberGroupId, //Doxygen::memberDocDict.insert(memberGroupId,
// new QCString(memberGroupDocs) // new QCString(memberGroupDocs)
...@@ -5425,12 +5480,12 @@ static void endGroup() ...@@ -5425,12 +5480,12 @@ static void endGroup()
info->doc = memberGroupDocs; info->doc = memberGroupDocs;
info->docFile = yyFileName; info->docFile = yyFileName;
} }
memberGroupId=NOGROUP; memberGroupId=DOX_NOGROUP;
memberGroupRelates.resize(0); memberGroupRelates.resize(0);
memberGroupInside.resize(0); memberGroupInside.resize(0);
if (YY_START!=ReadInitializer) if (YY_START!=ReadInitializer)
{ {
current->mGrpId=NOGROUP; current->mGrpId=DOX_NOGROUP;
current->relates.resize(0); current->relates.resize(0);
} }
memberGroupDocs.resize(0); memberGroupDocs.resize(0);
...@@ -5450,7 +5505,7 @@ static void endGroup() ...@@ -5450,7 +5505,7 @@ static void endGroup()
static void forceEndGroup() static void forceEndGroup()
{ {
while (memberGroupId!=NOGROUP || !autoGroupStack.isEmpty()) while (memberGroupId!=DOX_NOGROUP || !autoGroupStack.isEmpty())
{ {
//printf("forceEndGroup ends group %d\n",memberGroupId); //printf("forceEndGroup ends group %d\n",memberGroupId);
endGroup(); endGroup();
...@@ -5543,7 +5598,7 @@ static void parseCompounds(Entry *rt) ...@@ -5543,7 +5598,7 @@ static void parseCompounds(Entry *rt)
current->protection = protection = Public ; current->protection = protection = Public ;
} }
} }
else // named struct, union else // named struct, union, protocol, category
{ {
current->protection = protection = Public ; current->protection = protection = Public ;
} }
...@@ -5551,7 +5606,7 @@ static void parseCompounds(Entry *rt) ...@@ -5551,7 +5606,7 @@ static void parseCompounds(Entry *rt)
virt = Normal; virt = Normal;
//printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat); //printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat);
memberGroupId = NOGROUP; memberGroupId = DOX_NOGROUP;
memberGroupRelates.resize(0); memberGroupRelates.resize(0);
memberGroupInside.resize(0); memberGroupInside.resize(0);
......
...@@ -634,6 +634,8 @@ class TranslatorBrazilian: public Translator ...@@ -634,6 +634,8 @@ class TranslatorBrazilian: public Translator
case ClassDef::Struct: result+=" Estrutura "; break; case ClassDef::Struct: result+=" Estrutura "; break;
case ClassDef::Union: result+=" União "; break; case ClassDef::Union: result+=" União "; break;
case ClassDef::Interface: result+=" Interface "; break; case ClassDef::Interface: result+=" Interface "; break;
case ClassDef::Protocol: result+=" Protocol "; break; // translate me!
case ClassDef::Category: result+=" Category "; break; // translate me!
case ClassDef::Exception: result+=" Exceção "; break; case ClassDef::Exception: result+=" Exceção "; break;
} }
result+=(QCString)clName; result+=(QCString)clName;
...@@ -790,6 +792,8 @@ class TranslatorBrazilian: public Translator ...@@ -790,6 +792,8 @@ class TranslatorBrazilian: public Translator
case ClassDef::Struct: result+="estrutura "; break; case ClassDef::Struct: result+="estrutura "; break;
case ClassDef::Union: result+="união "; break; case ClassDef::Union: result+="união "; break;
case ClassDef::Interface: result+="interface "; break; case ClassDef::Interface: result+="interface "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="exceção "; break; case ClassDef::Exception: result+="exceção "; break;
} }
result+=" foi gerada a partir "; result+=" foi gerada a partir ";
......
...@@ -644,6 +644,8 @@ class TranslatorCatalan : public TranslatorAdapter_1_2_17 ...@@ -644,6 +644,8 @@ class TranslatorCatalan : public TranslatorAdapter_1_2_17
case ClassDef::Struct: result+=" Estructura "; break; case ClassDef::Struct: result+=" Estructura "; break;
case ClassDef::Union: result+=" Unió "; break; case ClassDef::Union: result+=" Unió "; break;
case ClassDef::Interface: result+=" Interfície "; break; case ClassDef::Interface: result+=" Interfície "; break;
case ClassDef::Protocol: result+=" Protocol "; break; // translate me!
case ClassDef::Category: result+=" Category "; break; // translate me!
case ClassDef::Exception: result+=" Excepció "; break; case ClassDef::Exception: result+=" Excepció "; break;
} }
if (isTemplate) result+="Template "; if (isTemplate) result+="Template ";
...@@ -801,6 +803,8 @@ class TranslatorCatalan : public TranslatorAdapter_1_2_17 ...@@ -801,6 +803,8 @@ class TranslatorCatalan : public TranslatorAdapter_1_2_17
case ClassDef::Struct: result+="estructura"; break; case ClassDef::Struct: result+="estructura"; break;
case ClassDef::Union: result+="unió"; break; case ClassDef::Union: result+="unió"; break;
case ClassDef::Interface: result+="interfície"; break; case ClassDef::Interface: result+="interfície"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="excepció"; break; case ClassDef::Exception: result+="excepció"; break;
} }
result+=" es va generar a partir del"; result+=" es va generar a partir del";
......
...@@ -495,6 +495,8 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13 ...@@ -495,6 +495,8 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13
case ClassDef::Struct: result+="结构"; break; case ClassDef::Struct: result+="结构"; break;
case ClassDef::Union: result+="联合"; break; case ClassDef::Union: result+="联合"; break;
case ClassDef::Interface: result+="接口"; break; case ClassDef::Interface: result+="接口"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="异常"; break; case ClassDef::Exception: result+="异常"; break;
} }
result+="参考"; result+="参考";
...@@ -659,6 +661,8 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13 ...@@ -659,6 +661,8 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13
case ClassDef::Struct: result+="结构"; break; case ClassDef::Struct: result+="结构"; break;
case ClassDef::Union: result+="联合"; break; case ClassDef::Union: result+="联合"; break;
case ClassDef::Interface: result+="接口"; break; case ClassDef::Interface: result+="接口"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="异常"; break; case ClassDef::Exception: result+="异常"; break;
} }
result+="的文档由以下文件生成:"; result+="的文档由以下文件生成:";
......
...@@ -763,6 +763,8 @@ class TranslatorCzech : public Translator ...@@ -763,6 +763,8 @@ class TranslatorCzech : public Translator
case ClassDef::Struct: result+="struktury "; break; case ClassDef::Struct: result+="struktury "; break;
case ClassDef::Union: result+="unie "; break; case ClassDef::Union: result+="unie "; break;
case ClassDef::Interface: result+="rozhraní "; break; case ClassDef::Interface: result+="rozhraní "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="výjimky "; break; case ClassDef::Exception: result+="výjimky "; break;
} }
result+=clName; result+=clName;
...@@ -933,6 +935,8 @@ class TranslatorCzech : public Translator ...@@ -933,6 +935,8 @@ class TranslatorCzech : public Translator
case ClassDef::Struct: result+="tuto strukturu (struct)"; break; case ClassDef::Struct: result+="tuto strukturu (struct)"; break;
case ClassDef::Union: result+="tuto unii (union)"; break; case ClassDef::Union: result+="tuto unii (union)"; break;
case ClassDef::Interface: result+="toto rozhraní"; break; case ClassDef::Interface: result+="toto rozhraní"; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="tuto výjimku"; break; case ClassDef::Exception: result+="tuto výjimku"; break;
} }
result+=" byla generována z "; result+=" byla generována z ";
......
...@@ -670,6 +670,8 @@ class TranslatorGerman : public Translator ...@@ -670,6 +670,8 @@ class TranslatorGerman : public Translator
case ClassDef::Struct: result+="Struktur"; break; case ClassDef::Struct: result+="Struktur"; break;
case ClassDef::Union: result+="Varianten"; break; case ClassDef::Union: result+="Varianten"; break;
case ClassDef::Interface: result+="Schnittstellen"; break; case ClassDef::Interface: result+="Schnittstellen"; break;
case ClassDef::Protocol: result+="Protocol"; break; // translate me!
case ClassDef::Category: result+="Category"; break; // translate me!
case ClassDef::Exception: result+="Ausnahmen"; break; case ClassDef::Exception: result+="Ausnahmen"; break;
} }
result+="referenz"; result+="referenz";
...@@ -836,6 +838,8 @@ class TranslatorGerman : public Translator ...@@ -836,6 +838,8 @@ class TranslatorGerman : public Translator
case ClassDef::Struct: result+=" Struktur"; break; case ClassDef::Struct: result+=" Struktur"; break;
case ClassDef::Union: result+=" Variante"; break; case ClassDef::Union: result+=" Variante"; break;
case ClassDef::Interface: result+=" Schnittstelle"; break; case ClassDef::Interface: result+=" Schnittstelle"; break;
case ClassDef::Protocol: result+=" Protocol"; break; // translate me!
case ClassDef::Category: result+=" Category"; break; // translate me!
case ClassDef::Exception: result+=" Ausnahme"; break; case ClassDef::Exception: result+=" Ausnahme"; break;
} }
result+=" wurde erzeugt aufgrund der Datei"; result+=" wurde erzeugt aufgrund der Datei";
......
...@@ -641,6 +641,8 @@ class TranslatorDanish : public Translator ...@@ -641,6 +641,8 @@ class TranslatorDanish : public Translator
case ClassDef::Struct: result+=" Datastruktur-"; break; case ClassDef::Struct: result+=" Datastruktur-"; break;
case ClassDef::Union: result+=" Union-"; break; case ClassDef::Union: result+=" Union-"; break;
case ClassDef::Interface: result+=" Grænseflade-"; break; case ClassDef::Interface: result+=" Grænseflade-"; break;
case ClassDef::Protocol: result+=" Protocol-"; break; // translate me!
case ClassDef::Category: result+=" Category-"; break; // translate me!
case ClassDef::Exception: result+=" Exception-"; break; case ClassDef::Exception: result+=" Exception-"; break;
} }
if (isTemplate) result+="template-"; if (isTemplate) result+="template-";
...@@ -796,6 +798,8 @@ class TranslatorDanish : public Translator ...@@ -796,6 +798,8 @@ class TranslatorDanish : public Translator
case ClassDef::Struct: result+="datastruktur"; break; case ClassDef::Struct: result+="datastruktur"; break;
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="grænseflade"; break; case ClassDef::Interface: result+="grænseflade"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="exception"; break; case ClassDef::Exception: result+="exception"; break;
} }
result+=" blev genereret ud fra fil"; result+=" blev genereret ud fra fil";
......
...@@ -645,6 +645,8 @@ class TranslatorEnglish : public Translator ...@@ -645,6 +645,8 @@ class TranslatorEnglish : public Translator
case ClassDef::Struct: result+=" Struct"; break; case ClassDef::Struct: result+=" Struct"; break;
case ClassDef::Union: result+=" Union"; break; case ClassDef::Union: result+=" Union"; break;
case ClassDef::Interface: result+=" Interface"; break; case ClassDef::Interface: result+=" Interface"; break;
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break; case ClassDef::Exception: result+=" Exception"; break;
} }
if (isTemplate) result+=" Template"; if (isTemplate) result+=" Template";
...@@ -802,6 +804,8 @@ class TranslatorEnglish : public Translator ...@@ -802,6 +804,8 @@ class TranslatorEnglish : public Translator
case ClassDef::Struct: result+="struct"; break; case ClassDef::Struct: result+="struct"; break;
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interface"; break; case ClassDef::Interface: result+="interface"; break;
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break; case ClassDef::Exception: result+="exception"; break;
} }
result+=" was generated from the following file"; result+=" was generated from the following file";
......
...@@ -537,6 +537,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_3 ...@@ -537,6 +537,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+="la Estructura "; break; case ClassDef::Struct: result+="la Estructura "; break;
case ClassDef::Union: result+="la Unión "; break; case ClassDef::Union: result+="la Unión "; break;
case ClassDef::Interface: result+="la Interfaz "; break; case ClassDef::Interface: result+="la Interfaz "; break;
case ClassDef::Protocol: result+="Protocol "; break; // translate me!
case ClassDef::Category: result+="Category "; break; // translate me!
case ClassDef::Exception: result+="la Excepción "; break; case ClassDef::Exception: result+="la Excepción "; break;
} }
result+=(QCString)clName; result+=(QCString)clName;
...@@ -694,6 +696,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_3 ...@@ -694,6 +696,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+="estructura"; break; case ClassDef::Struct: result+="estructura"; break;
case ClassDef::Union: result+="unión"; break; case ClassDef::Union: result+="unión"; break;
case ClassDef::Interface: result+="interfaz"; break; case ClassDef::Interface: result+="interfaz"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="excepción"; break; case ClassDef::Exception: result+="excepción"; break;
} }
result+=" fué generada a partir "; result+=" fué generada a partir ";
......
...@@ -486,6 +486,8 @@ class TranslatorFinnish : public TranslatorEnglish ...@@ -486,6 +486,8 @@ class TranslatorFinnish : public TranslatorEnglish
case ClassDef::Struct: result+=" Struct"; break; // "Struct" case ClassDef::Struct: result+=" Struct"; break; // "Struct"
case ClassDef::Union: result+=" Union"; break; // "Union" case ClassDef::Union: result+=" Union"; break; // "Union"
case ClassDef::Interface: result+=" Interface"; break; // "Interface" case ClassDef::Interface: result+=" Interface"; break; // "Interface"
case ClassDef::Protocol: result+=" Protocol"; break; // translate me!
case ClassDef::Category: result+=" Category"; break; // translate me!
case ClassDef::Exception: result+=" Exception"; break; // "Interface" case ClassDef::Exception: result+=" Exception"; break; // "Interface"
} }
result+=" Referenssi"; // " Reference" result+=" Referenssi"; // " Reference"
......
...@@ -536,6 +536,8 @@ class TranslatorFrench : public Translator ...@@ -536,6 +536,8 @@ class TranslatorFrench : public Translator
case ClassDef::Struct: result+="la structure "; break; case ClassDef::Struct: result+="la structure "; break;
case ClassDef::Union: result+="l'union "; break; case ClassDef::Union: result+="l'union "; break;
case ClassDef::Interface: result+="l'interface "; break; case ClassDef::Interface: result+="l'interface "; break;
case ClassDef::Protocol: result+="le protocol "; break;
case ClassDef::Category: result+="la catégorie "; break;
case ClassDef::Exception: result+="l'exception "; break; case ClassDef::Exception: result+="l'exception "; break;
} }
...@@ -694,6 +696,8 @@ class TranslatorFrench : public Translator ...@@ -694,6 +696,8 @@ class TranslatorFrench : public Translator
case ClassDef::Struct: result+="structure"; break; case ClassDef::Struct: result+="structure"; break;
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interface"; break; case ClassDef::Interface: result+="interface"; break;
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break; case ClassDef::Exception: result+="exception"; break;
} }
result+=" a été générée à partir "; result+=" a été générée à partir ";
......
...@@ -619,6 +619,8 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11 ...@@ -619,6 +619,8 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11
case ClassDef::Struct: result+=" "; break; case ClassDef::Struct: result+=" "; break;
case ClassDef::Union: result+=" "; break; case ClassDef::Union: result+=" "; break;
case ClassDef::Interface: result+=" "; break; case ClassDef::Interface: result+=" "; break;
case ClassDef::Protocol: result+=" Protocol"; break; // translate me!
case ClassDef::Category: result+=" Category"; break; // translate me!
case ClassDef::Exception: result+=" "; break; case ClassDef::Exception: result+=" "; break;
} }
if (isTemplate) result+=" Template"; if (isTemplate) result+=" Template";
...@@ -776,6 +778,8 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11 ...@@ -776,6 +778,8 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11
case ClassDef::Struct: result+=" "; break; case ClassDef::Struct: result+=" "; break;
case ClassDef::Union: result+=" "; break; case ClassDef::Union: result+=" "; break;
case ClassDef::Interface: result+=" "; break; case ClassDef::Interface: result+=" "; break;
case ClassDef::Protocol: result+="Protocol"; break; // translate me!
case ClassDef::Category: result+="Category"; break; // translate me!
case ClassDef::Exception: result+=" "; break; case ClassDef::Exception: result+=" "; break;
} }
result+=" "; result+=" ";
......
...@@ -370,6 +370,8 @@ class TranslatorCroatian : public Translator ...@@ -370,6 +370,8 @@ class TranslatorCroatian : public Translator
case ClassDef::Struct: result+=" strukture "; break; case ClassDef::Struct: result+=" strukture "; break;
case ClassDef::Union: result+=" unije "; break; case ClassDef::Union: result+=" unije "; break;
case ClassDef::Interface: result+=" suelja (interface) "; break; case ClassDef::Interface: result+=" suelja (interface) "; break;
case ClassDef::Protocol: result+=" protocol "; break; // translate me!
case ClassDef::Category: result+=" category "; break; // translate me!
case ClassDef::Exception: result+=" iznimke (exception) "; break; case ClassDef::Exception: result+=" iznimke (exception) "; break;
} }
result += clName; result += clName;
...@@ -518,6 +520,8 @@ class TranslatorCroatian : public Translator ...@@ -518,6 +520,8 @@ class TranslatorCroatian : public Translator
case ClassDef::Struct: result+="strukture"; break; case ClassDef::Struct: result+="strukture"; break;
case ClassDef::Union: result+="unije"; break; case ClassDef::Union: result+="unije"; break;
case ClassDef::Interface: result+="suelja (interface)"; break; case ClassDef::Interface: result+="suelja (interface)"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="iznimke (exception)"; break; case ClassDef::Exception: result+="iznimke (exception)"; break;
} }
result+=" je generirana iz " + trFile(FALSE, single) + ": "; result+=" je generirana iz " + trFile(FALSE, single) + ": ";
......
...@@ -608,6 +608,8 @@ class TranslatorHungarian : public Translator ...@@ -608,6 +608,8 @@ class TranslatorHungarian : public Translator
case ClassDef::Struct: result+=" struktúra"; break; case ClassDef::Struct: result+=" struktúra"; break;
case ClassDef::Union: result+=" unió"; break; case ClassDef::Union: result+=" unió"; break;
case ClassDef::Interface: result+=" interfész"; break; case ClassDef::Interface: result+=" interfész"; break;
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" kivétel"; break; case ClassDef::Exception: result+=" kivétel"; break;
} }
if (isTemplate) result+="sablon-"; if (isTemplate) result+="sablon-";
...@@ -765,6 +767,8 @@ class TranslatorHungarian : public Translator ...@@ -765,6 +767,8 @@ class TranslatorHungarian : public Translator
case ClassDef::Struct: result+="a struktúráról"; break; case ClassDef::Struct: result+="a struktúráról"; break;
case ClassDef::Union: result+="az unióról"; break; case ClassDef::Union: result+="az unióról"; break;
case ClassDef::Interface: result+="az interfészrõl"; break; case ClassDef::Interface: result+="az interfészrõl"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="a kivételrõl"; break; case ClassDef::Exception: result+="a kivételrõl"; break;
} }
result+=" a következõ fájl"; result+=" a következõ fájl";
......
...@@ -644,6 +644,8 @@ class TranslatorItalian : public Translator ...@@ -644,6 +644,8 @@ class TranslatorItalian : public Translator
case ClassDef::Struct: result+="la struct "; break; case ClassDef::Struct: result+="la struct "; break;
case ClassDef::Union: result+="la union "; break; case ClassDef::Union: result+="la union "; break;
case ClassDef::Interface: result+="l'interfaccia "; break; case ClassDef::Interface: result+="l'interfaccia "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="exception "; break; case ClassDef::Exception: result+="exception "; break;
} }
result+=(QCString)clName; result+=(QCString)clName;
...@@ -803,6 +805,8 @@ class TranslatorItalian : public Translator ...@@ -803,6 +805,8 @@ class TranslatorItalian : public Translator
case ClassDef::Struct: result+="struct"; break; case ClassDef::Struct: result+="struct"; break;
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interfaccia"; break; case ClassDef::Interface: result+="interfaccia"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="exception"; break; case ClassDef::Exception: result+="exception"; break;
} }
result+=" è stata generata a partire "; result+=" è stata generata a partire ";
......
...@@ -601,6 +601,8 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -601,6 +601,8 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+=decode("構造体 "); break; case ClassDef::Struct: result+=decode("構造体 "); break;
case ClassDef::Union: result+=decode("共用体 "); break; case ClassDef::Union: result+=decode("共用体 "); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース"); break;
case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me!
case ClassDef::Category: result+=decode("Category"); break; // translate me!
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme
} }
if (isTemplate) result+=decode(" テンプレート"); if (isTemplate) result+=decode(" テンプレート");
...@@ -757,6 +759,8 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -757,6 +759,8 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+=decode("構造体"); break; case ClassDef::Struct: result+=decode("構造体"); break;
case ClassDef::Union: result+=decode("共用体"); break; case ClassDef::Union: result+=decode("共用体"); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース"); break;
case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me!
case ClassDef::Category: result+=decode("Category"); break; // translate me!
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme
} }
result+=decode("の説明は次のファイルから生成されました:"); result+=decode("の説明は次のファイルから生成されました:");
......
...@@ -581,6 +581,8 @@ class TranslatorKorean : public Translator ...@@ -581,6 +581,8 @@ class TranslatorKorean : public Translator
case ClassDef::Struct: result+=" 구조체"; break; case ClassDef::Struct: result+=" 구조체"; break;
case ClassDef::Union: result+=" 공용체"; break; case ClassDef::Union: result+=" 공용체"; break;
case ClassDef::Interface: result+=" 인터페이스"; break; case ClassDef::Interface: result+=" 인터페이스"; break;
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" 예외"; break; case ClassDef::Exception: result+=" 예외"; break;
} }
result+=" 참조"; result+=" 참조";
...@@ -738,6 +740,8 @@ class TranslatorKorean : public Translator ...@@ -738,6 +740,8 @@ class TranslatorKorean : public Translator
case ClassDef::Struct: result+="구조체"; break; case ClassDef::Struct: result+="구조체"; break;
case ClassDef::Union: result+="공용체"; break; case ClassDef::Union: result+="공용체"; break;
case ClassDef::Interface: result+="인터페이스"; break; case ClassDef::Interface: result+="인터페이스"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="예외"; break; case ClassDef::Exception: result+="예외"; break;
} }
result+="을 위한 문서화는 다음의 파일"; result+="을 위한 문서화는 다음의 파일";
......
...@@ -280,6 +280,8 @@ class TranslatorDutch : public Translator ...@@ -280,6 +280,8 @@ class TranslatorDutch : public Translator
case ClassDef::Struct: result+=" Struct"; break; case ClassDef::Struct: result+=" Struct"; break;
case ClassDef::Union: result+=" Union"; break; case ClassDef::Union: result+=" Union"; break;
case ClassDef::Interface: result+=" Interface"; break; case ClassDef::Interface: result+=" Interface"; break;
case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Category: result+=" Category"; break;
case ClassDef::Exception: result+=" Exception"; break; case ClassDef::Exception: result+=" Exception"; break;
} }
result+=" Referentie"; result+=" Referentie";
...@@ -426,6 +428,8 @@ class TranslatorDutch : public Translator ...@@ -426,6 +428,8 @@ class TranslatorDutch : public Translator
case ClassDef::Struct: result+="struct"; break; case ClassDef::Struct: result+="struct"; break;
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interface"; break; case ClassDef::Interface: result+="interface"; break;
case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Category: result+="category"; break;
case ClassDef::Exception: result+="exception"; break; case ClassDef::Exception: result+="exception"; break;
} }
result+=" is gegenereerd op grond van de volgende file"; result+=" is gegenereerd op grond van de volgende file";
......
...@@ -346,6 +346,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -346,6 +346,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
case ClassDef::Struct: result+=" struktur"; break; case ClassDef::Struct: result+=" struktur"; break;
case ClassDef::Union: result+=" union"; break; case ClassDef::Union: result+=" union"; break;
case ClassDef::Interface: result+=" grensesnitt"; break; case ClassDef::Interface: result+=" grensesnitt"; break;
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" unntak"; break; case ClassDef::Exception: result+=" unntak"; break;
} }
result+="referanse"; result+="referanse";
...@@ -484,6 +486,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -484,6 +486,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
case ClassDef::Struct: result+="denne strukt "; break; case ClassDef::Struct: result+="denne strukt "; break;
case ClassDef::Union: result+="denne union "; break; case ClassDef::Union: result+="denne union "; break;
case ClassDef::Interface: result+="dette grensesnittet "; break; case ClassDef::Interface: result+="dette grensesnittet "; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="unntak "; break; case ClassDef::Exception: result+="unntak "; break;
} }
result+="var generert fra flgende fil"; result+="var generert fra flgende fil";
......
...@@ -658,6 +658,8 @@ class TranslatorPolish : public TranslatorAdapter_1_3 ...@@ -658,6 +658,8 @@ class TranslatorPolish : public TranslatorAdapter_1_3
case ClassDef::Struct: result+=" struktury "; break; case ClassDef::Struct: result+=" struktury "; break;
case ClassDef::Union: result+=" unii "; break; case ClassDef::Union: result+=" unii "; break;
case ClassDef::Interface: result+=" interfejsu "; break; case ClassDef::Interface: result+=" interfejsu "; break;
case ClassDef::Protocol: result+=decode(" protocol "); break; // translate me!
case ClassDef::Category: result+=decode(" category "); break; // translate me!
case ClassDef::Exception: result+=decode(" wyj±tku "); break; case ClassDef::Exception: result+=decode(" wyj±tku "); break;
} }
result+=(QCString)clName; result+=(QCString)clName;
...@@ -815,6 +817,8 @@ class TranslatorPolish : public TranslatorAdapter_1_3 ...@@ -815,6 +817,8 @@ class TranslatorPolish : public TranslatorAdapter_1_3
case ClassDef::Struct: result+="j struktury"; break; case ClassDef::Struct: result+="j struktury"; break;
case ClassDef::Union: result+="j unii"; break; case ClassDef::Union: result+="j unii"; break;
case ClassDef::Interface: result+="go interfejsu"; break; case ClassDef::Interface: result+="go interfejsu"; break;
case ClassDef::Protocol: result+=decode("protocol"); break; // translate me!
case ClassDef::Category: result+=decode("category"); break; // translate me!
case ClassDef::Exception: result+="go wyj±tku"; break; case ClassDef::Exception: result+="go wyj±tku"; break;
} }
result+=" zosta³a wygenerowana z plik"; result+=" zosta³a wygenerowana z plik";
......
...@@ -630,6 +630,8 @@ class TranslatorPortuguese : public TranslatorAdapter_1_3_3 ...@@ -630,6 +630,8 @@ class TranslatorPortuguese : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+="à estrutura "; break; case ClassDef::Struct: result+="à estrutura "; break;
case ClassDef::Union: result+="à união "; break; case ClassDef::Union: result+="à união "; break;
case ClassDef::Interface: result+="ao interface "; break; case ClassDef::Interface: result+="ao interface "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="à excepção "; break; case ClassDef::Exception: result+="à excepção "; break;
} }
if (isTemplate) result+="Template "; if (isTemplate) result+="Template ";
...@@ -790,6 +792,8 @@ class TranslatorPortuguese : public TranslatorAdapter_1_3_3 ...@@ -790,6 +792,8 @@ class TranslatorPortuguese : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+="esta estrutura"; break; case ClassDef::Struct: result+="esta estrutura"; break;
case ClassDef::Union: result+="esta união"; break; case ClassDef::Union: result+="esta união"; break;
case ClassDef::Interface: result+="este interface"; break; case ClassDef::Interface: result+="este interface"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="esta excepção"; break; case ClassDef::Exception: result+="esta excepção"; break;
} }
result+=" foi gerada a partir "; result+=" foi gerada a partir ";
......
...@@ -659,6 +659,8 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_16 ...@@ -659,6 +659,8 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_16
case ClassDef::Struct: result+="structura"; break; case ClassDef::Struct: result+="structura"; break;
case ClassDef::Union: result+="uniunea"; break; case ClassDef::Union: result+="uniunea"; break;
case ClassDef::Interface: result+="interfaþa"; break; case ClassDef::Interface: result+="interfaþa"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="excepþia"; break; case ClassDef::Exception: result+="excepþia"; break;
} }
if (isTemplate) result+=" (Template) "; if (isTemplate) result+=" (Template) ";
...@@ -819,6 +821,8 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_16 ...@@ -819,6 +821,8 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_16
case ClassDef::Struct: result+="structurã"; break; case ClassDef::Struct: result+="structurã"; break;
case ClassDef::Union: result+="uniune"; break; case ClassDef::Union: result+="uniune"; break;
case ClassDef::Interface: result+="interfaþã"; break; case ClassDef::Interface: result+="interfaþã"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="excepþie"; break; case ClassDef::Exception: result+="excepþie"; break;
} }
result+=" a fost generatã din fiºier"; result+=" a fost generatã din fiºier";
......
...@@ -660,6 +660,8 @@ class TranslatorRussian : public Translator ...@@ -660,6 +660,8 @@ class TranslatorRussian : public Translator
case ClassDef::Struct: result+=""; break; case ClassDef::Struct: result+=""; break;
case ClassDef::Union: result+=""; break; case ClassDef::Union: result+=""; break;
case ClassDef::Interface: result+=""; break; case ClassDef::Interface: result+=""; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+=""; break; case ClassDef::Exception: result+=""; break;
} }
} }
...@@ -671,6 +673,8 @@ class TranslatorRussian : public Translator ...@@ -671,6 +673,8 @@ class TranslatorRussian : public Translator
case ClassDef::Struct: result+=""; break; case ClassDef::Struct: result+=""; break;
case ClassDef::Union: result+=""; break; case ClassDef::Union: result+=""; break;
case ClassDef::Interface: result+=""; break; case ClassDef::Interface: result+=""; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+=""; break; case ClassDef::Exception: result+=""; break;
} }
} }
...@@ -834,6 +838,10 @@ class TranslatorRussian : public Translator ...@@ -834,6 +838,10 @@ class TranslatorRussian : public Translator
case ClassDef::Interface: result+=""; case ClassDef::Interface: result+="";
if (single) result+=''; else result+=""; if (single) result+=''; else result+="";
break; break;
case ClassDef::Protocol: result+="Protocol"; // translate me!
break;
case ClassDef::Category: result+="Category"; // translate me!
break;
case ClassDef::Exception: result+=""; case ClassDef::Exception: result+="";
if (single) result+=''; else result+=''; if (single) result+=''; else result+='';
break; break;
......
...@@ -524,6 +524,8 @@ class TranslatorSwedish : public TranslatorAdapter_1_3_3 ...@@ -524,6 +524,8 @@ class TranslatorSwedish : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+=" strukt"; break; case ClassDef::Struct: result+=" strukt"; break;
case ClassDef::Union: result+=" union"; break; case ClassDef::Union: result+=" union"; break;
case ClassDef::Interface: result+=" grnssnitt"; break; case ClassDef::Interface: result+=" grnssnitt"; break;
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" undantag"; break; case ClassDef::Exception: result+=" undantag"; break;
} }
if (isTemplate) result+="template"; if (isTemplate) result+="template";
...@@ -663,6 +665,8 @@ class TranslatorSwedish : public TranslatorAdapter_1_3_3 ...@@ -663,6 +665,8 @@ class TranslatorSwedish : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+="denna strukt "; break; case ClassDef::Struct: result+="denna strukt "; break;
case ClassDef::Union: result+="denna union "; break; case ClassDef::Union: result+="denna union "; break;
case ClassDef::Interface: result+="detta grnssnitt "; break; case ClassDef::Interface: result+="detta grnssnitt "; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="detta undantag "; break; case ClassDef::Exception: result+="detta undantag "; break;
} }
result+="var genererad frn fljande fil"; result+="var genererad frn fljande fil";
......
...@@ -274,6 +274,8 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_16 ...@@ -274,6 +274,8 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_16
case ClassDef::Struct: result+=" Struktura "; break; case ClassDef::Struct: result+=" Struktura "; break;
case ClassDef::Union: result+=" Mnoica "; break; case ClassDef::Union: result+=" Mnoica "; break;
case ClassDef::Interface: result+=" IDL vmesnik "; break; case ClassDef::Interface: result+=" IDL vmesnik "; break;
case ClassDef::Protocol: result+=" protocol "; break; // translate me!
case ClassDef::Category: result+=" category "; break; // translate me!
case ClassDef::Exception: result+=" IDL prekinitev "; break; case ClassDef::Exception: result+=" IDL prekinitev "; break;
} }
result += (QCString)clName; result += (QCString)clName;
...@@ -420,6 +422,8 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_16 ...@@ -420,6 +422,8 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_16
case ClassDef::Struct: result+="strukture"; break; case ClassDef::Struct: result+="strukture"; break;
case ClassDef::Union: result+="unije"; break; case ClassDef::Union: result+="unije"; break;
case ClassDef::Interface: result+="vmesnika (interface)"; break; case ClassDef::Interface: result+="vmesnika (interface)"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="prekinitve (exception)"; break; case ClassDef::Exception: result+="prekinitve (exception)"; break;
} }
result+=" je zgrajen na podlagi naslednj"; result+=" je zgrajen na podlagi naslednj";
......
...@@ -629,6 +629,8 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_18 ...@@ -629,6 +629,8 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_18
case ClassDef::Struct: result+="truktry "; break; case ClassDef::Struct: result+="truktry "; break;
case ClassDef::Union: result+="unionu "; break; case ClassDef::Union: result+="unionu "; break;
case ClassDef::Interface: result+="rozhrania "; break; case ClassDef::Interface: result+="rozhrania "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="vnimky "; break; case ClassDef::Exception: result+="vnimky "; break;
} }
result+=clName; result+=clName;
...@@ -799,6 +801,8 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_18 ...@@ -799,6 +801,8 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_18
case ClassDef::Struct: result+="tto truktru (struct)"; break; case ClassDef::Struct: result+="tto truktru (struct)"; break;
case ClassDef::Union: result+="tento union"; break; case ClassDef::Union: result+="tento union"; break;
case ClassDef::Interface: result+="toto rozhranie"; break; case ClassDef::Interface: result+="toto rozhranie"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="tto vnimku"; break; case ClassDef::Exception: result+="tto vnimku"; break;
} }
result+=" bola generovan z "; result+=" bola generovan z ";
......
...@@ -645,6 +645,8 @@ private: ...@@ -645,6 +645,8 @@ private:
case ClassDef::Struct: result+="strukture "; break; case ClassDef::Struct: result+="strukture "; break;
case ClassDef::Union: result+="unije "; break; case ClassDef::Union: result+="unije "; break;
case ClassDef::Interface: result+="interfejsa "; break; case ClassDef::Interface: result+="interfejsa "; break;
case ClassDef::Protocol: result+="protocol "; break; // translate me!
case ClassDef::Category: result+="category "; break; // translate me!
case ClassDef::Exception: result+="izuzetka "; break; case ClassDef::Exception: result+="izuzetka "; break;
} }
if (isTemplate) result += "¹ablona "; if (isTemplate) result += "¹ablona ";
...@@ -803,6 +805,8 @@ private: ...@@ -803,6 +805,8 @@ private:
case ClassDef::Struct: result+="ove strukture"; break; case ClassDef::Struct: result+="ove strukture"; break;
case ClassDef::Union: result+="ove unije"; break; case ClassDef::Union: result+="ove unije"; break;
case ClassDef::Interface: result+="ovog interfejsa"; break; case ClassDef::Interface: result+="ovog interfejsa"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="ovog izuzetka"; break; case ClassDef::Exception: result+="ovog izuzetka"; break;
} }
result+=" je napravljena iz "; result+=" je napravljena iz ";
......
...@@ -646,6 +646,8 @@ class TranslatorChinesetraditional : public Translator ...@@ -646,6 +646,8 @@ class TranslatorChinesetraditional : public Translator
case ClassDef::Struct: result+=" 結構"; break; case ClassDef::Struct: result+=" 結構"; break;
case ClassDef::Union: result+=" 聯合"; break; case ClassDef::Union: result+=" 聯合"; break;
case ClassDef::Interface: result+=" 介面"; break; case ClassDef::Interface: result+=" 介面"; break;
case ClassDef::Protocol: result+=" protocol"; break; // translate me!
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" 例外"; break; case ClassDef::Exception: result+=" 例外"; break;
} }
if (isTemplate) result+=" 樣版"; if (isTemplate) result+=" 樣版";
...@@ -803,6 +805,8 @@ class TranslatorChinesetraditional : public Translator ...@@ -803,6 +805,8 @@ class TranslatorChinesetraditional : public Translator
case ClassDef::Struct: result+="結構(structure)"; break; case ClassDef::Struct: result+="結構(structure)"; break;
case ClassDef::Union: result+="聯合(union)"; break; case ClassDef::Union: result+="聯合(union)"; break;
case ClassDef::Interface: result+="介面(interface)"; break; case ClassDef::Interface: result+="介面(interface)"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="例外(exception)"; break; case ClassDef::Exception: result+="例外(exception)"; break;
} }
result+=" 文件是由下列檔案中產生"; result+=" 文件是由下列檔案中產生";
......
...@@ -42,19 +42,23 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 ...@@ -42,19 +42,23 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11
/* Used to get the command(s) for the language support. */ /* Used to get the command(s) for the language support. */
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
{
#ifdef _WIN32 #ifdef _WIN32
{ return "\\usepackage[cp1251]{inputenc}\n\\usepackage[ukrainian]{babel}\n"; } return "\\usepackage[cp1251]{inputenc}\n\\usepackage[ukrainian]{babel}\n";
#else #else
{ return "\\usepackage[koi8-u]{inputenc}\n\\usepackage[ukrainian]{babel}\n"; } return "\\usepackage[koi8-u]{inputenc}\n\\usepackage[ukrainian]{babel}\n";
#endif #endif
}
/*! return the language charset. This will be used for the HTML output */ /*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset() virtual QCString idLanguageCharset()
{
#ifdef _WIN32 #ifdef _WIN32
{ return "Windows-1251"; } return "Windows-1251";
#else #else
{ return "koi8-u"; } return "koi8-u";
#endif #endif
}
// --- Language translation methods ------------------- // --- Language translation methods -------------------
...@@ -618,6 +622,8 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 ...@@ -618,6 +622,8 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11
case ClassDef::Struct: result+="ÓÔÒÕËÔÕÒÉ"; break; case ClassDef::Struct: result+="ÓÔÒÕËÔÕÒÉ"; break;
case ClassDef::Union: result+="ÏÂ'¤ÄÎÁÎÎÑ"; break; case ClassDef::Union: result+="ÏÂ'¤ÄÎÁÎÎÑ"; break;
case ClassDef::Interface: result+="¦ÎÔÅÒÆÅÊÓÕ"; break; case ClassDef::Interface: result+="¦ÎÔÅÒÆÅÊÓÕ"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="÷ÉÎÑÔÏË"; break; case ClassDef::Exception: result+="÷ÉÎÑÔÏË"; break;
} }
} }
...@@ -629,6 +635,8 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 ...@@ -629,6 +635,8 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11
case ClassDef::Struct: result+="óÔÒÕËÔÕÒÁ"; break; case ClassDef::Struct: result+="óÔÒÕËÔÕÒÁ"; break;
case ClassDef::Union: result+="ïÂ'¤ÄÎÁÎÎÑ"; break; case ClassDef::Union: result+="ïÂ'¤ÄÎÁÎÎÑ"; break;
case ClassDef::Interface: result+="¶ÎÔÅÒÆÅÊÓ"; break; case ClassDef::Interface: result+="¶ÎÔÅÒÆÅÊÓ"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+="÷ÉÎÑÔÏË"; break; case ClassDef::Exception: result+="÷ÉÎÑÔÏË"; break;
} }
} }
...@@ -791,6 +799,12 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 ...@@ -791,6 +799,12 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11
case ClassDef::Interface: case ClassDef::Interface:
if (single) result+="ÃØÏÇÏ ¦ÎÔÅÒÆÅÊÓÕ"; else result+="ÃÉÈ ¦ÎÔÅÒÆÅÊÓ¦×"; if (single) result+="ÃØÏÇÏ ¦ÎÔÅÒÆÅÊÓÕ"; else result+="ÃÉÈ ¦ÎÔÅÒÆÅÊÓ¦×";
break; break;
case ClassDef::Protocol:
if (single) result+="protocol"; else result+="protocols"; // translate me!
break;
case ClassDef::Category:
if (single) result+="category"; else result+="categories"; // translate me!
break;
case ClassDef::Exception: case ClassDef::Exception:
if (single) result+="ÃØÏÇÏ ×ÉÎÑÔËÕ"; else result+="ÃÉÈ ×ÉÎÑÔ˦×"; if (single) result+="ÃØÏÇÏ ×ÉÎÑÔËÕ"; else result+="ÃÉÈ ×ÉÎÑÔ˦×";
break; break;
......
...@@ -457,7 +457,7 @@ sub Project { ...@@ -457,7 +457,7 @@ sub Project {
$r = ""; $r = "";
foreach ( @settings ) { foreach ( @settings ) {
$v = $_; $v = $_;
if ( $v =~ s/^\s*((?:[^:\s]*?:)?)(\w+)\s*(\+=|\*=|\-=|\/=|=)// ) { if ( $v =~ s/^\s*([^:\r\n]+:)?(\w+)\s*(\+=|\*=|\-=|\/=|=)// ) {
$if_var = $1; $if_var = $1;
if ( $if_var ne "" ) { if ( $if_var ne "" ) {
chop $if_var; chop $if_var;
...@@ -550,7 +550,7 @@ sub ScanProject { ...@@ -550,7 +550,7 @@ sub ScanProject {
s/\#.*//; # strip comment s/\#.*//; # strip comment
s/^\s+//; # strip white space s/^\s+//; # strip white space
s/\s+$//; s/\s+$//;
if ( /^\s*((?:(?:[^:\s]*?:)?)\w+\s*(\+|\-|\*|\/)?=)/ ) { if ( /^(([^:\r\n]+:)?\w+\s*(\+|\-|\*|\/)?=)/ ) {
$var = $1; # var also contains the ".=" $var = $1; # var also contains the ".="
s/^.*?=\s*//; s/^.*?=\s*//;
if ( /^\<\<(.*)$/ ) { if ( /^\<\<(.*)$/ ) {
......
...@@ -8,7 +8,7 @@ TEMPLATE = app ...@@ -8,7 +8,7 @@ TEMPLATE = app
CONFIG = qt warn_on release CONFIG = qt warn_on release
TMAKE_CC = aCC TMAKE_CC = aCC
TMAKE_CFLAGS = -w -D__STRICT_ANSI__ TMAKE_CFLAGS = -w -D__STRICT_ANSI__ -DPNG_USE_LOCAL_ARRAYS
TMAKE_CFLAGS_WARN_ON = TMAKE_CFLAGS_WARN_ON =
TMAKE_CFLAGS_WARN_OFF = TMAKE_CFLAGS_WARN_OFF =
TMAKE_CFLAGS_RELEASE = -O TMAKE_CFLAGS_RELEASE = -O
......
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