Commit 64200b5e authored by dimitri's avatar dimitri

Release-1.3-20030514

parent a9f41d99
DOXYGEN Version 1.3-20030430 DOXYGEN Version 1.3-20030514
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 (30 April 2003) Dimitri van Heesch (14 May 2003)
DOXYGEN Version 1.3_20030430 DOXYGEN Version 1.3_20030514
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) (30 April 2003) Dimitri van Heesch (dimitri@stack.nl) (14 May 2003)
1.3-20030430 1.3-20030514
...@@ -1478,7 +1478,7 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre> ...@@ -1478,7 +1478,7 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
\addindex DOT_IMAGE_FORMAT \addindex DOT_IMAGE_FORMAT
The DOT_IMAGE_FORMAT tag can be used to set the image format of the images The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
generated by dot. Possible values are gif, jpg, and png. generated by dot. Possible values are gif, jpg, and png.
If left blank gif will be used. If left blank png will be used.
\anchor cfg_dot_path \anchor cfg_dot_path
<dt>\c DOT_PATH <dd> <dt>\c DOT_PATH <dd>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
]{hyperref} ]{hyperref}
\makeindex \makeindex
\setcounter{tocdepth}{1} \setcounter{tocdepth}{1}
\setlength{\footrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt}
\begin{document} \begin{document}
\begin{titlepage} \begin{titlepage}
\includegraphics[width=\textwidth]{doxygen_logo} \includegraphics[width=\textwidth]{doxygen_logo}
......
...@@ -183,8 +183,8 @@ Thanks go to: ...@@ -183,8 +183,8 @@ Thanks go to:
Roddy, Paul Schwartz, Charles Duffy, Vadym Voznyuk, Philip Walton, Roddy, Paul Schwartz, Charles Duffy, Vadym Voznyuk, Philip Walton,
Dwight Browne, Andreas Fredriksson, Karel Lindveld, Ivan Lee, Albert Dwight Browne, Andreas Fredriksson, Karel Lindveld, Ivan Lee, Albert
Vernon, Adam McKee, Vijapurapu Anatharac, Ben Hunsberger and Vernon, Adam McKee, Vijapurapu Anatharac, Ben Hunsberger and
Walter Wartenweiler, Jeff Garbers, David Harris and Terry Brown Walter Wartenweiler, Jeff Garbers, David Harris, Terry Brown and
for donating money. Nicolas Reimen for donating money.
<li>The Comms group of <a href="http://www.symbian.com">Symbian</a> for donating <li>The Comms group of <a href="http://www.symbian.com">Symbian</a> for donating
an ultra cool <a href="http://www.psion.com/revoplus">Revo plus</a> an ultra cool <a href="http://www.psion.com/revoplus">Revo plus</a>
organizer! organizer!
......
...@@ -445,8 +445,10 @@ Here is what is required: ...@@ -445,8 +445,10 @@ Here is what is required:
<li>To generate LaTeX documentation or formulas in HTML you need the tools: <li>To generate LaTeX documentation or formulas in HTML you need the tools:
<code>latex</code>, <code>dvips</code> and <code>gswin32</code>. <code>latex</code>, <code>dvips</code> and <code>gswin32</code>.
To get these working under Windows To get these working under Windows
install the fpTeX distribution. You can download it at: install the fpTeX distribution. You can find more info at:
http://www.ese-metz.fr/~popineau/fptex/wwwfptex.html http://www.fptex.org/ and download it from CTAN or one of its mirrors.
In the Netherlands for example this would be:
ftp://ftp.easynet.nl/mirror/CTAN/systems/win32/fptex/
Make sure the tools are available from a dos box, by adding the Make sure the tools are available from a dos box, by adding the
directory they are in to the search path. directory they are in to the search path.
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3_20030430 Version: 1.3_20030514
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -594,6 +594,6 @@ Q_EXPORT void qObsolete( const char *message ); ...@@ -594,6 +594,6 @@ Q_EXPORT void qObsolete( const char *message );
#endif #endif
// DvH: added to avoid warnings on recent gcc versions // DvH: added to avoid warnings on recent gcc versions
#define Q_DELETE_VOID_UNDEFINED #define Q_DELETING_VOID_UNDEFINED
#endif // QGLOBAL_H #endif // QGLOBAL_H
...@@ -1415,7 +1415,7 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -1415,7 +1415,7 @@ void ClassDef::writeMemberList(OutputList &ol)
{ {
QCString name=mi->ambiguityResolutionScope+md->name(); QCString name=mi->ambiguityResolutionScope+md->name();
//ol.writeListItem(); //ol.writeListItem();
ol.writeString(" <tr bgcolor=\"#f0f0f0\"><td>"); ol.writeString(" <tr class=\"memlist\"><td>");
Definition *bd = md->getGroupDef(); Definition *bd = md->getGroupDef();
if (bd==0) bd=cd; if (bd==0) bd=cd;
ol.writeObjectLink(bd->getReference(),bd->getOutputFileBase(), ol.writeObjectLink(bd->getReference(),bd->getOutputFileBase(),
......
...@@ -1388,7 +1388,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1388,7 +1388,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
addType(); addType();
g_name+=yytext; g_name+=yytext;
} }
<Body>"("{B}*("*"{B}*)*{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() <Body>"("{B}*("*"{B}*)+{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() but not "if (p) ..."
g_code->codify(yytext); g_code->codify(yytext);
int s=0;while (s<yyleng && !isId(yytext[s])) s++; int s=0;while (s<yyleng && !isId(yytext[s])) s++;
int e=yyleng-1;while (e>=0 && !isId(yytext[e])) e--; int e=yyleng-1;while (e>=0 && !isId(yytext[e])) e--;
...@@ -2085,7 +2085,11 @@ void parseCode(BaseCodeDocInterface &od,const char *className,const QCString &s, ...@@ -2085,7 +2085,11 @@ void parseCode(BaseCodeDocInterface &od,const char *className,const QCString &s,
return; return;
} }
#if !defined(YY_FLEX_SUBMINOR_VERSION)
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
// int codeYYwrap() { return 1 ; }
void codeYYdummy() { yy_flex_realloc(0,0); } void codeYYdummy() { yy_flex_realloc(0,0); }
} }
#else
#error "You seem to be using a version of flex newer than 2.5.4. These are currently incompatible with 2.5.4, and do NOT work with doxygen! Please use version 2.5.4 or expect things to be parsed wrongly! A bug report has been submitted (#732132)."
#endif
...@@ -25,10 +25,13 @@ ...@@ -25,10 +25,13 @@
#include "bufstr.h" #include "bufstr.h"
#include "debug.h" #include "debug.h"
#include "message.h" #include "message.h"
#include "config.h"
static BufStr *g_inBuf; static BufStr *g_inBuf;
static BufStr *g_outBuf; static BufStr *g_outBuf;
static int g_inBufPos; static int g_inBufPos;
static int g_col;
static int g_blockHeadCol;
static void replaceCommentMarker(const char *s,int len) static void replaceCommentMarker(const char *s,int len)
{ {
...@@ -59,9 +62,35 @@ static void replaceCommentMarker(const char *s,int len) ...@@ -59,9 +62,35 @@ static void replaceCommentMarker(const char *s,int len)
g_outBuf->addArray(p,len-(p-s)); g_outBuf->addArray(p,len-(p-s));
} }
static inline int computeIndent(const char *s)
{
int col=0;
static int tabSize=Config_getInt("TAB_SIZE");
const char *p=s;
char c;
while ((c=*p++))
{
if (c==' ') col++;
else if (c=='\t') col+=tabSize-(col%tabSize);
else break;
}
return col;
}
static inline void copyToOutput(const char *s,int len) static inline void copyToOutput(const char *s,int len)
{ {
g_outBuf->addArray(s,len); g_outBuf->addArray(s,len);
int i;
static int tabSize=Config_getInt("TAB_SIZE");
for (i=0;i<len;i++)
{
switch (s[i])
{
case '\n': g_col=0; break;
case '\t': g_col+=tabSize-(g_col%tabSize); break;
default: g_col++; break;
}
}
} }
#undef YY_INPUT #undef YY_INPUT
...@@ -76,10 +105,22 @@ static int yyread(char *buf,int max_size) ...@@ -76,10 +105,22 @@ static int yyread(char *buf,int max_size)
return bytesToCopy; return bytesToCopy;
} }
#define replaceComment(offset) \
int i=computeIndent(&yytext[offset]); \
if (i==g_blockHeadCol) \
{ \
replaceCommentMarker(yytext,yyleng); \
} \
else \
{ \
copyToOutput(" */",3); \
int i;for (i=yyleng-1;i>=0;i--) unput(yytext[i]); \
BEGIN(Scan); \
} \
%} %}
%option noyywrap %option noyywrap
%option nounput
%x Scan %x Scan
%x SkipString %x SkipString
...@@ -99,18 +140,20 @@ static int yyread(char *buf,int max_size) ...@@ -99,18 +140,20 @@ static int yyread(char *buf,int max_size)
<Scan>\n { /* new line */ <Scan>\n { /* new line */
copyToOutput(yytext,yyleng); copyToOutput(yytext,yyleng);
} }
<Scan>("//!"|"///").*\n/[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */ <Scan>("//!"|"///").*/\n[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */
int i=3; int i=3;
if (yytext[2]=='/') if (yytext[2]=='/')
{ {
while (i<yyleng && yytext[i]=='/') i++; while (i<yyleng && yytext[i]=='/') i++;
} }
g_blockHeadCol=g_col;
copyToOutput("/**",3); copyToOutput("/**",3);
copyToOutput(yytext+i,yyleng-i); copyToOutput(yytext+i,yyleng-i);
BEGIN(SComment); BEGIN(SComment);
} }
<Scan>"//##Documentation".*\n { /* Start of Rational Rose ANSI C++ comment block */ <Scan>"//##Documentation".*/\n { /* Start of Rational Rose ANSI C++ comment block */
int i=17; //=strlen("//##Documentation"); int i=17; //=strlen("//##Documentation");
g_blockHeadCol=g_col;
copyToOutput("/**",3); copyToOutput("/**",3);
copyToOutput(yytext+i,yyleng-i); copyToOutput(yytext+i,yyleng-i);
BEGIN(SComment); BEGIN(SComment);
...@@ -169,28 +212,28 @@ static int yyread(char *buf,int max_size) ...@@ -169,28 +212,28 @@ static int yyread(char *buf,int max_size)
BEGIN(Scan); BEGIN(Scan);
} }
<SComment>^[ \t]*"///"[\/]*/\n { <SComment>^[ \t]*"///"[\/]*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(0);
} }
<SComment>\n[ \t]*"///"[\/]*/\n { <SComment>\n[ \t]*"///"[\/]*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(1);
} }
<SComment>^[ \t]*"///"[^\/\n].*/\n { <SComment>^[ \t]*"///"[^\/\n].*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(0);
} }
<SComment>\n[ \t]*"///"[^\/\n].*/\n { <SComment>\n[ \t]*"///"[^\/\n].*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(1);
} }
<SComment>^[ \t]*"//!".*/\n { <SComment>^[ \t]*"//!".*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(0);
} }
<SComment>\n[ \t]*"//!".*/\n { <SComment>\n[ \t]*"//!".*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(1);
} }
<SComment>^[ \t]*"//##".*/\n { <SComment>^[ \t]*"//##".*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(0);
} }
<SComment>\n[ \t]*"//##".*/\n { <SComment>\n[ \t]*"//##".*/\n {
replaceCommentMarker(yytext,yyleng); replaceComment(1);
} }
<SComment>\n { /* end of special comment */ <SComment>\n { /* end of special comment */
copyToOutput(" */",3); copyToOutput(" */",3);
...@@ -205,6 +248,7 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf) ...@@ -205,6 +248,7 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf)
g_inBuf = inBuf; g_inBuf = inBuf;
g_outBuf = outBuf; g_outBuf = outBuf;
g_inBufPos = 0; g_inBufPos = 0;
g_col = 0;
BEGIN(Scan); BEGIN(Scan);
yylex(); yylex();
if (Debug::isFlagSet(Debug::CommentCnv)) if (Debug::isFlagSet(Debug::CommentCnv))
...@@ -214,7 +258,9 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf) ...@@ -214,7 +258,9 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf)
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
#if !defined(YY_FLEX_SUBMINOR_VERSION)
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
void commentcnvYYdummy() { yy_flex_realloc(0,0); } void commentcnvYYdummy() { yy_flex_realloc(0,0); }
} }
#endif
...@@ -65,7 +65,6 @@ void config_warn(const char *fmt, ...) ...@@ -65,7 +65,6 @@ void config_warn(const char *fmt, ...)
#define MAX_INCLUDE_DEPTH 10 #define MAX_INCLUDE_DEPTH 10
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
#define YY_NO_UNPUT
/* ----------------------------------------------------------------- /* -----------------------------------------------------------------
*/ */
...@@ -410,6 +409,7 @@ static void readIncludeFile(const char *incName) ...@@ -410,6 +409,7 @@ static void readIncludeFile(const char *incName)
%} %}
%option nounput
%option noyywrap %option noyywrap
%x Start %x Start
...@@ -2713,6 +2713,6 @@ bool Config::parse(const char *fn) ...@@ -2713,6 +2713,6 @@ bool Config::parse(const char *fn)
return TRUE; return TRUE;
} }
//extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
// int configYYwrap() { return 1 ; } //int configYYwrap() { return 1 ; }
//} }
...@@ -49,6 +49,8 @@ static int yyread(char *buf,int max_size) ...@@ -49,6 +49,8 @@ static int yyread(char *buf,int max_size)
%} %}
%option nounput
%% %%
"?" { return TOK_QUESTIONMARK; } "?" { return TOK_QUESTIONMARK; }
......
...@@ -29,9 +29,6 @@ ...@@ -29,9 +29,6 @@
#include "util.h" #include "util.h"
#include "message.h" #include "message.h"
#define YY_NO_UNPUT
/* ----------------------------------------------------------------- /* -----------------------------------------------------------------
* *
* statics * statics
...@@ -97,6 +94,7 @@ static int yyread(char *buf,int max_size) ...@@ -97,6 +94,7 @@ static int yyread(char *buf,int max_size)
B [ \t] B [ \t]
ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+) ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+)
%option nounput
%option noyywrap %option noyywrap
%x Start %x Start
......
...@@ -409,6 +409,9 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al) ...@@ -409,6 +409,9 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al)
//printf("stringToArgumentList(%s) result=%s\n",argsString,argListToString(al).data()); //printf("stringToArgumentList(%s) result=%s\n",argsString,argListToString(al).data());
} }
#if !defined(YY_FLEX_SUBMINOR_VERSION)
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
void defargsYYdummy() { yy_flex_realloc(0,0); } void defargsYYdummy() { yy_flex_realloc(0,0); }
} }
#endif
...@@ -1923,38 +1923,40 @@ void DocImage::parse() ...@@ -1923,38 +1923,40 @@ void DocImage::parse()
{ {
case TK_COMMAND: case TK_COMMAND:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Illegal command %s as part of a \\image", warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Illegal command %s as part of a \\image",
g_token->name.data()); g_token->name.data());
break; break;
case TK_SYMBOL: case TK_SYMBOL:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found", warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unsupported symbol %s found",
g_token->name.data()); g_token->name.data());
break; break;
default: default:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s", warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected token %s",
tokToString(tok)); tokToString(tok));
break; break;
} }
} }
} }
tok=doctokenizerYYlex(); if (!m_children.isEmpty())
while (tok==TK_WORD) // there are values following the title
{ {
if (g_token->name=="width") tok=doctokenizerYYlex();
{ while (tok==TK_WORD) // there are values following the title
m_width=g_token->chars;
}
else if (g_token->name=="height")
{
m_height=g_token->chars;
}
else
{ {
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unknown option %s after image title", if (g_token->name=="width")
{
m_width=g_token->chars;
}
else if (g_token->name=="height")
{
m_height=g_token->chars;
}
else
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unknown option %s after image title",
g_token->name.data()); g_token->name.data());
}
tok=doctokenizerYYlex();
} }
tok=doctokenizerYYlex();
} }
ASSERT(tok==0);
doctokenizerYYsetStatePara(); doctokenizerYYsetStatePara();
handlePendingStyleCommands(this,m_children); handlePendingStyleCommands(this,m_children);
......
...@@ -917,6 +917,9 @@ void doctokenizerYYsetInsidePre(bool b) ...@@ -917,6 +917,9 @@ void doctokenizerYYsetInsidePre(bool b)
g_insidePre = b; g_insidePre = b;
} }
#if !defined(YY_FLEX_SUBMINOR_VERSION)
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
void doctokenizerYYdummy() { yy_flex_realloc(0,0); } void doctokenizerYYdummy() { yy_flex_realloc(0,0); }
} }
#endif
This diff is collapsed.
...@@ -275,8 +275,6 @@ void HtmlDocVisitor::visit(DocFormula *f) ...@@ -275,8 +275,6 @@ void HtmlDocVisitor::visit(DocFormula *f)
m_t << " src=\"" << f->name() << ".png\">"; m_t << " src=\"" << f->name() << ".png\">";
if (bDisplay) if (bDisplay)
m_t << endl << "<p>" << endl; m_t << endl << "<p>" << endl;
else
m_t << " ";
} }
void HtmlDocVisitor::visit(DocIndexEntry *) void HtmlDocVisitor::visit(DocIndexEntry *)
......
...@@ -88,6 +88,9 @@ static const char *defaultStyleSheet = ...@@ -88,6 +88,9 @@ static const char *defaultStyleSheet =
" margin-top : 2px; \n" " margin-top : 2px; \n"
" margin-bottom : 2px \n" " margin-bottom : 2px \n"
"}\n" "}\n"
"TR.memlist {\n"
" background-color: #f0f0f0; \n"
"}\n"
"p.formulaDsp { text-align: center; }\n" "p.formulaDsp { text-align: center; }\n"
"img.formulaDsp { }\n" "img.formulaDsp { }\n"
"img.formulaInl { vertical-align: middle; }\n" "img.formulaInl { vertical-align: middle; }\n"
......
...@@ -2285,7 +2285,9 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ...@@ -2285,7 +2285,9 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level)
/* Some groups should appear twice under different parent-groups. /* Some groups should appear twice under different parent-groups.
* That is why we should not check if it was visited * That is why we should not check if it was visited
*/ */
if (/*!gd->visited &&*/ (!gd->isASubGroup() || level>0)) if (/*!gd->visited &&*/ (!gd->isASubGroup() || level>0) &&
(!gd->isReference() || Config_getBool("EXTERNAL_GROUPS")) // hide external groups by default
)
{ {
//printf("gd->name()=%s #members=%d\n",gd->name().data(),gd->countMembers()); //printf("gd->name()=%s #members=%d\n",gd->name().data(),gd->countMembers());
// write group info // write group info
......
...@@ -65,7 +65,6 @@ HEADERS = bufstr.h \ ...@@ -65,7 +65,6 @@ HEADERS = bufstr.h \
namespacedef.h \ namespacedef.h \
outputgen.h \ outputgen.h \
outputlist.h \ outputlist.h \
page.h \
pagedef.h \ pagedef.h \
perlmodgen.h \ perlmodgen.h \
pngenc.h \ pngenc.h \
......
...@@ -1897,6 +1897,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl, ...@@ -1897,6 +1897,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl,
if (numVisibleEnumValues>0) if (numVisibleEnumValues>0)
{ {
uint enumValuesPerLine = (uint)Config_getInt("ENUM_VALUES_PER_LINE"); uint enumValuesPerLine = (uint)Config_getInt("ENUM_VALUES_PER_LINE");
if (enumValuesPerLine==0) enumValuesPerLine=1;
typeDecl.docify("{ "); typeDecl.docify("{ ");
if (fmdl) if (fmdl)
{ {
......
...@@ -413,6 +413,15 @@ void MemberList::addListReferences(Definition *def) ...@@ -413,6 +413,15 @@ void MemberList::addListReferences(Definition *def)
if (md->getGroupDef()==0 || def->definitionType()==Definition::TypeGroup) if (md->getGroupDef()==0 || def->definitionType()==Definition::TypeGroup)
{ {
md->addListReference(def); md->addListReference(def);
if (md->memberType()==MemberDef::Enumeration && md->enumFieldList())
{
MemberListIterator vmli(*md->enumFieldList());
MemberDef *vmd;
for ( ; (vmd=vmli.current()) ; ++vmli)
{
vmd->addListReference(def);
}
}
} }
} }
if (memberGroupList) if (memberGroupList)
......
/******************************************************************************
*
*
*
* Copyright (C) 1997-2003 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#if 0
#include "sortdict.h"
#include "config.h"
#include "docparser.h"
#include "section.h"
#include "doxygen.h"
class PageInfo
{
public:
PageInfo(const char *f, int l,const char *n,const char *d,const char *t) :
defFileName(f), defLine(l), name(n),
doc(d), title(t), context(0), xrefListItems(0),m_inGroup(0)
{
sectionDict = new SectionDict(17);
}
~PageInfo()
{
delete sectionDict;
}
// where the page definition was found
QCString defFileName;
int defLine;
// contents of the page
QCString name;
QCString doc;
QCString title;
// external reference? if so then this is the tag file name
QCString reference;
QCString fileName;
// class, file or namespace in which the page was found
Definition *context;
// functions to get a uniform interface with Definitions
QCString getOutputFileBase() const { return fileName; }
bool isReference() const { return !reference.isEmpty(); }
QCString getReference() const { return reference; }
//void addSections(QList<QCString> *anchorList)
//{
// if (anchorList)
// {
// QCString *s=anchorList->first();
// while (s)
// {
// SectionInfo *si=0;
// if (!s->isEmpty() && (si=Doxygen::sectionDict[*s]))
// {
// //printf("Add section `%s' to definition `%s'\n",
// // si->label.data(),n.data());
// if (sectionDict==0)
// {
// sectionDict = new SectionDict(17);
// }
// if (sectionDict->find(*s)==0)
// {
// sectionDict->insert(*s,si);
// }
// si->pageRef = this;
// si->fileName = fileName;
// }
// s=anchorList->next();
// }
// }
//}
void findSectionsInDocumentation()
{
docFindSections(doc,this,0,0,defFileName);
}
void writeDocAnchorsToTagFile()
{
if (!Config_getString("GENERATE_TAGFILE").isEmpty() && sectionDict)
{
QDictIterator<SectionInfo> sdi(*sectionDict);
SectionInfo *si;
for (;(si=sdi.current());++sdi)
{
if (!si->generated)
{
Doxygen::tagFile << " <docanchor>" << si->label << "</docanchor>" << endl;
}
}
}
}
void makePartOfGroup(GroupDef *gd) { m_inGroup = gd; }
GroupDef *getGroupDef() const { return m_inGroup; }
// is this page part of a group
SectionDict *sectionDict;
QList<ListItemInfo> *xrefListItems;
private:
GroupDef *m_inGroup;
};
class PageSDict : public SDict<PageInfo>
{
public:
PageSDict(int size) : SDict<PageInfo>(size) {}
virtual ~PageSDict() {}
int compareItems(GCI i1,GCI i2)
{
return stricmp(((PageInfo *)i1)->name,((PageInfo *)i2)->name);
}
};
#endif
...@@ -17,11 +17,6 @@ ...@@ -17,11 +17,6 @@
#include "definition.h" #include "definition.h"
#include "sortdict.h" #include "sortdict.h"
//#include "config.h"
//#include "docparser.h"
//#include "section.h"
//#include "doxygen.h"
class PageDef : public Definition class PageDef : public Definition
{ {
...@@ -44,97 +39,7 @@ class PageDef : public Definition ...@@ -44,97 +39,7 @@ class PageDef : public Definition
QCString title() const { return m_title; } QCString title() const { return m_title; }
GroupDef *getGroupDef() const; GroupDef *getGroupDef() const;
void setFileName(const char *name) { m_fileName = name; } void setFileName(const char *name) { m_fileName = name; }
#if 0
bool isReference() const { return !reference.isEmpty(); }
QCString getReference() const { return reference; }
PageInfo(const char *f, int l,const char *n,const char *d,const char *t) :
defFileName(f), defLine(l), name(n),
doc(d), title(t), context(0), xrefListItems(0),m_inGroup(0)
{
sectionDict = new SectionDict(17);
}
~PageInfo()
{
delete sectionDict;
}
// where the page definition was found
QCString defFileName;
int defLine;
// contents of the page
QCString name;
QCString doc;
QCString title;
// external reference? if so then this is the tag file name
QCString reference;
QCString fileName;
// class, file or namespace in which the page was found
Definition *context;
//void addSections(QList<QCString> *anchorList)
//{
// if (anchorList)
// {
// QCString *s=anchorList->first();
// while (s)
// {
// SectionInfo *si=0;
// if (!s->isEmpty() && (si=Doxygen::sectionDict[*s]))
// {
// //printf("Add section `%s' to definition `%s'\n",
// // si->label.data(),n.data());
// if (sectionDict==0)
// {
// sectionDict = new SectionDict(17);
// }
// if (sectionDict->find(*s)==0)
// {
// sectionDict->insert(*s,si);
// }
// si->pageRef = this;
// si->fileName = fileName;
// }
// s=anchorList->next();
// }
// }
//}
void findSectionsInDocumentation()
{
docFindSections(doc,this,0,0,defFileName);
}
void writeDocAnchorsToTagFile()
{
if (!Config_getString("GENERATE_TAGFILE").isEmpty() && sectionDict)
{
QDictIterator<SectionInfo> sdi(*sectionDict);
SectionInfo *si;
for (;(si=sdi.current());++sdi)
{
if (!si->generated)
{
Doxygen::tagFile << " <docanchor>" << si->label << "</docanchor>" << endl;
}
}
}
}
void makePartOfGroup(GroupDef *gd) { m_inGroup = gd; }
GroupDef *getGroupDef() const { return m_inGroup; }
// is this page part of a group
SectionDict *sectionDict;
QList<ListItemInfo> *xrefListItems;
private:
GroupDef *m_inGroup;
#endif
private: private:
QCString m_fileName; QCString m_fileName;
QCString m_title; QCString m_title;
......
...@@ -354,6 +354,12 @@ static void processConcatOperators(QCString &expr) ...@@ -354,6 +354,12 @@ static void processConcatOperators(QCString &expr)
//printf("processConcatOperators: out=`%s'\n",expr.data()); //printf("processConcatOperators: out=`%s'\n",expr.data());
} }
static void yyunput (int c,char *buf_ptr );
static void returnCharToStream(char c)
{
unput(c);
}
/*! replaces the function macro \a def whose argument list starts at /*! replaces the function macro \a def whose argument list starts at
* \a pos in expression \a expr. * \a pos in expression \a expr.
* Notice that this routine may scan beyond the \a expr string if needed. * Notice that this routine may scan beyond the \a expr string if needed.
...@@ -1900,7 +1906,9 @@ static int getCurrentChar(const QCString &expr,QCString *rest,uint pos) ...@@ -1900,7 +1906,9 @@ static int getCurrentChar(const QCString &expr,QCString *rest,uint pos)
} }
else else
{ {
int cc=yyinput();unput(cc); int cc=yyinput();
returnCharToStream(cc);
//unput((char)cc);
//printf("%c=yyinput()\n",cc); //printf("%c=yyinput()\n",cc);
return cc; return cc;
} }
...@@ -1921,7 +1929,8 @@ static void unputChar(const QCString &expr,QCString *rest,uint &pos,char c) ...@@ -1921,7 +1929,8 @@ static void unputChar(const QCString &expr,QCString *rest,uint &pos,char c)
} }
else else
{ {
unput(c); //unput(c);
returnCharToStream(c);
} }
//printf("result: unputChar(%s,%s,%d,%c)\n",expr.data(),rest ? rest->data() : 0,pos,c); //printf("result: unputChar(%s,%s,%d,%c)\n",expr.data(),rest ? rest->data() : 0,pos,c);
} }
...@@ -2114,7 +2123,10 @@ void preprocessFile(const char *fileName,BufStr &output) ...@@ -2114,7 +2123,10 @@ void preprocessFile(const char *fileName,BufStr &output)
} }
} }
#if !defined(YY_FLEX_SUBMINOR_VERSION)
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
// int preYYwrap() { return 1 ; } // int preYYwrap() { return 1 ; }
void preYYdummy() { yy_flex_realloc(0,0); } void preYYdummy() { yy_flex_realloc(0,0); }
} }
#endif
...@@ -32,10 +32,8 @@ RefList::RefList(const char *listName, ...@@ -32,10 +32,8 @@ RefList::RefList(const char *listName,
m_dictIterator = 0; m_dictIterator = 0;
m_id = 0; m_id = 0;
m_listName = listName; m_listName = listName;
//m_optionName = optionName;
m_pageTitle = pageTitle; m_pageTitle = pageTitle;
m_secTitle = secTitle; m_secTitle = secTitle;
/*m_type = type;*/
} }
/*! Destroy the todo list. Currently not called! */ /*! Destroy the todo list. Currently not called! */
...@@ -95,11 +93,6 @@ QCString RefList::listName() const ...@@ -95,11 +93,6 @@ QCString RefList::listName() const
return m_listName; return m_listName;
} }
//QCString RefList::optionName() const
//{
// return m_optionName;
//}
QCString RefList::pageTitle() const QCString RefList::pageTitle() const
{ {
return m_pageTitle; return m_pageTitle;
...@@ -110,10 +103,3 @@ QCString RefList::sectionTitle() const ...@@ -110,10 +103,3 @@ QCString RefList::sectionTitle() const
return m_secTitle; return m_secTitle;
} }
//BaseOutputDocInterface::SectionTypes RefList::sectionType() const
//{
// return m_type;
//}
...@@ -50,26 +50,21 @@ class RefList ...@@ -50,26 +50,21 @@ class RefList
RefItem *getFirstRefItem(); RefItem *getFirstRefItem();
RefItem *getNextRefItem(); RefItem *getNextRefItem();
QCString listName() const; QCString listName() const;
//QCString optionName() const;
QCString pageTitle() const; QCString pageTitle() const;
QCString sectionTitle() const; QCString sectionTitle() const;
//BaseOutputDocInterface::SectionTypes sectionType() const;
RefList(const char *listName, RefList(const char *listName,
const char *pageTitle,const char *secTitle const char *pageTitle,const char *secTitle
/*,BaseOutputDocInterface::SectionTypes type*/
); );
~RefList(); ~RefList();
private: private:
int m_id; int m_id;
QCString m_listName; QCString m_listName;
//QCString m_optionName;
QCString m_pageTitle; QCString m_pageTitle;
QCString m_secTitle; QCString m_secTitle;
QIntDict<RefItem> *m_dict; QIntDict<RefItem> *m_dict;
QIntDictIterator<RefItem> *m_dictIterator; QIntDictIterator<RefItem> *m_dictIterator;
//BaseOutputDocInterface::SectionTypes m_type;
}; };
#endif #endif
...@@ -1884,9 +1884,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -1884,9 +1884,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
/* /*
<FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); } <FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); }
*/ */
<ReadBody,ReadNSBody>[^\r\n\#{}"'/]* { current->program += yytext ; } <ReadBody,ReadNSBody>[^\r\n\#{}"'/]* { current->program += yytext ; }
<ReadBody,ReadNSBody>"//".* { current->program += yytext ; } <ReadBody,ReadNSBody>"//".* { current->program += yytext ; }
<ReadBody,ReadNSBody>"#".* { if (! insidePHP) <ReadBody,ReadNSBody>"#".* { if (! insidePHP)
REJECT; REJECT;
current->program += yytext ; current->program += yytext ;
} }
...@@ -4454,14 +4454,16 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -4454,14 +4454,16 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<LineDoc>[\n\r]+{B}*"//"[!/] { lineCount(); } <LineDoc>[\n\r]+{B}*"//"[!/] { lineCount(); }
<LineDoc>\n { <LineDoc>\n {
yyLineNr++; yyLineNr++;
if (!Config_getBool("HIDE_IN_BODY_DOCS") && if (lastDocContext==SkipCurly) // inside body
lastDocContext==SkipCurly) // inside body
{ {
if (!previous->doc.isEmpty()) if (!Config_getBool("HIDE_IN_BODY_DOCS"))
{ {
previous->doc+="<p>"; if (!previous->doc.isEmpty())
{
previous->doc+="<p>";
}
previous->doc += current->brief;
} }
previous->doc += current->brief;
current->brief.resize(0); current->brief.resize(0);
} }
BEGIN( lastDocContext ); BEGIN( lastDocContext );
...@@ -5003,7 +5005,10 @@ void parseMain(Entry *rt) ...@@ -5003,7 +5005,10 @@ void parseMain(Entry *rt)
parseCompounds(rt); parseCompounds(rt);
} }
#if !defined(YY_FLEX_SUBMINOR_VERSION)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
void scannerYYdummy() { yy_flex_realloc(0,0); } void scannerYYdummy() { yy_flex_realloc(0,0); }
} }
#endif
...@@ -895,6 +895,10 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members) ...@@ -895,6 +895,10 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
me->virt = tmi->virt; me->virt = tmi->virt;
me->stat = tmi->isStatic; me->stat = tmi->isStatic;
me->fileName = ce->fileName; me->fileName = ce->fileName;
if (ce->section == Entry::GROUPDOC_SEC)
{
me->groups->append(new Grouping(ce->name,Grouping::GROUPING_INGROUP));
}
addDocAnchors(me,tmi->docAnchors); addDocAnchors(me,tmi->docAnchors);
TagInfo *ti = new TagInfo; TagInfo *ti = new TagInfo;
ti->tagName = m_tagName; ti->tagName = m_tagName;
...@@ -1113,8 +1117,8 @@ void TagFileParser::buildLists(Entry *root) ...@@ -1113,8 +1117,8 @@ void TagFileParser::buildLists(Entry *root)
} }
// build group list, but only if config file says to include it // build group list, but only if config file says to include it
if (Config_getBool("EXTERNAL_GROUPS")) //if (Config_getBool("EXTERNAL_GROUPS"))
{ //{
TagGroupInfo *tgi = m_tagFileGroups.first(); TagGroupInfo *tgi = m_tagFileGroups.first();
while (tgi) while (tgi)
{ {
...@@ -1132,7 +1136,7 @@ void TagFileParser::buildLists(Entry *root) ...@@ -1132,7 +1136,7 @@ void TagFileParser::buildLists(Entry *root)
root->addSubEntry(ge); root->addSubEntry(ge);
tgi = m_tagFileGroups.next(); tgi = m_tagFileGroups.next();
} }
} //}
// build page list // build page list
TagPageInfo *tpi = m_tagFilePages.first(); TagPageInfo *tpi = m_tagFilePages.first();
......
...@@ -13,26 +13,21 @@ ...@@ -13,26 +13,21 @@
* Brazilian Portuguese version by * Brazilian Portuguese version by
* Fabio "FJTC" Jun Takada Chino <chino@icmc.usp.br> * Fabio "FJTC" Jun Takada Chino <chino@icmc.usp.br>
* http://www.icmc.sc.usp.br/~chino * http://www.icmc.sc.usp.br/~chino
* Version: 1.2.19 (2002/10/15) * Version: 1.3 (2003/05/01)
* *
* History: * History:
* 1.3:
* - Updated to Doxygen 1.3.x.
* 1.2.19: * 1.2.19:
* - Updated to Doxygen 1.2.19 * - Updated to Doxygen 1.2.19
* - Translation Review (Thanks to Jorge Ramos and others) * - Translation Review (Thanks to Jorge Ramos and others)
* - Small fixes in C output. * - Small fixes in C output.
* - Latex generation support fixed (invalid package name). * - Latex generation support fixed (invalid package name).
* 1.2.18 (2002/07/30):
* - Updated to Doxygen 1.2.18
* 1.2.17 (2002/07/10):
* - Updated to Doxygen 1.2.17.
* 1.2.13.2 (2002/05/10):
* - Latex Babel package language name fixed.
* - "Estrura" bug identified and fixed (Thanks to Jorge Ramos).
*/ */
#ifndef TRANSLATOR_BR_H #ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H #define TRANSLATOR_BR_H
class TranslatorBrazilian: public TranslatorAdapter_1_3 class TranslatorBrazilian: public Translator
{ {
public: public:
...@@ -1422,5 +1417,48 @@ class TranslatorBrazilian: public TranslatorAdapter_1_3 ...@@ -1422,5 +1417,48 @@ class TranslatorBrazilian: public TranslatorAdapter_1_3
return "Eventos"; return "Eventos";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a heading for a list of Java class types with package scope.
*/
virtual QCString trPackageTypes()
{
return "Tipos do Pacote";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return "Funções do Pacote";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return "Funções Estáticas do Pacote";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return "Atributos do Pacote";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return "Atributos Estáticos do Pacote";
}
}; };
#endif #endif
...@@ -147,6 +147,9 @@ ...@@ -147,6 +147,9 @@
// 2002/10/15 // 2002/10/15
// - The new trEvents() and trEventDocumentation() implemented. // - The new trEvents() and trEventDocumentation() implemented.
// //
// 2003/04/28
// - The five new methods "since 1.3" implemented.
//
// Todo // Todo
// ---- // ----
// - The trReimplementedFromList() should pass the kind of the // - The trReimplementedFromList() should pass the kind of the
...@@ -165,8 +168,7 @@ ...@@ -165,8 +168,7 @@
// Windows version. The version which does not call the function is // Windows version. The version which does not call the function is
// probably slightly faster. // probably slightly faster.
class TranslatorCzech : public Translator
class TranslatorCzech : public TranslatorAdapter_1_3
{ {
private: private:
/*! The decode() inline assumes the source written in the /*! The decode() inline assumes the source written in the
...@@ -1553,12 +1555,51 @@ class TranslatorCzech : public TranslatorAdapter_1_3 ...@@ -1553,12 +1555,51 @@ class TranslatorCzech : public TranslatorAdapter_1_3
*/ */
virtual QCString trEvents() virtual QCString trEvents()
{ {
return "Události"; return decode("Události");
} }
/*! Header used for the documentation section of a class' events. */ /*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation() virtual QCString trEventDocumentation()
{ {
return "Dokumentace událostí"; return decode("Dokumentace událostí");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a heading for a list of Java class types with package scope.
*/
virtual QCString trPackageTypes()
{
return decode("Typy v balíku");
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return decode("Funkce v balíku");
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return decode("Statické funkce v balíku");
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return decode("Atributy balíku");
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return decode("Statické atributy balíku");
} }
}; };
......
...@@ -73,13 +73,17 @@ ...@@ -73,13 +73,17 @@
// - changed "Datenelemente" to "Methoden" in // - changed "Datenelemente" to "Methoden" in
// tr{,Static}{Public,Protected,Private}Members // tr{,Static}{Public,Protected,Private}Members
// //
// 2003/04/28 Jens Seidel (jensseidel@users.sourceforge.net)
// - Updated for "new since 1.3" version
// - translated Java package to Paket
//
// Todo: // Todo:
// - see FIXME // - see FIXME
#ifndef TRANSLATOR_DE_H #ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H #define TRANSLATOR_DE_H
class TranslatorGerman : public TranslatorAdapter_1_3 class TranslatorGerman : public Translator
{ {
public: public:
...@@ -1225,31 +1229,31 @@ class TranslatorGerman : public TranslatorAdapter_1_3 ...@@ -1225,31 +1229,31 @@ class TranslatorGerman : public TranslatorAdapter_1_3
/*! Used as the title of a Java package */ /*! Used as the title of a Java package */
virtual QCString trPackage(const char *name) virtual QCString trPackage(const char *name)
{ {
return (QCString)"Package "+name; return (QCString)"Paket "+name;
} }
/*! Title of the package index page */ /*! Title of the package index page */
virtual QCString trPackageList() virtual QCString trPackageList()
{ {
return "Package Liste"; return "Paketliste";
} }
/*! The description of the package index page */ /*! The description of the package index page */
virtual QCString trPackageListDescription() virtual QCString trPackageListDescription()
{ {
return "Hier folgen die packages mit einer Kurzbeschreibung (wenn verfügbar):"; return "Hier folgen die Pakete mit einer Kurzbeschreibung (wenn verfügbar):";
} }
/*! The link name in the Quick links header for each page */ /*! The link name in the Quick links header for each page */
virtual QCString trPackages() virtual QCString trPackages()
{ {
return "Packages"; return "Pakete";
} }
/*! Used as a chapter title for Latex & RTF output */ /*! Used as a chapter title for Latex & RTF output */
virtual QCString trPackageDocumentation() virtual QCString trPackageDocumentation()
{ {
return "Package Dokumentation"; return "Paketdokumentation";
} }
/*! Text shown before a multi-line define */ /*! Text shown before a multi-line define */
...@@ -1477,6 +1481,49 @@ class TranslatorGerman : public TranslatorAdapter_1_3 ...@@ -1477,6 +1481,49 @@ class TranslatorGerman : public TranslatorAdapter_1_3
return "Ereignisdokumentation"; return "Ereignisdokumentation";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a heading for a list of Java class types with package scope.
*/
virtual QCString trPackageTypes()
{
return "Pakettypen";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return "Paketfunktionen";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return "Statische Paketfunktionen";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return "Paketattribute";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return "Statische Paketattribute";
}
}; };
#endif #endif
This diff is collapsed.
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* *
* Revision history * Revision history
* *
* 2003/04: translated new items used since version 1.3
* 2002/11: translated new items used since version 1.2.18 * 2002/11: translated new items used since version 1.2.18
* 2002/08: translated new items used since version 1.2.17 * 2002/08: translated new items used since version 1.2.17
* 2002/07: translated new items used since version 1.2.16 * 2002/07: translated new items used since version 1.2.16
...@@ -67,7 +68,7 @@ ...@@ -67,7 +68,7 @@
#ifndef TRANSLATOR_IT_H #ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H #define TRANSLATOR_IT_H
class TranslatorItalian : public TranslatorAdapter_1_3 class TranslatorItalian : public Translator
{ {
public: public:
...@@ -1389,6 +1390,46 @@ class TranslatorItalian : public TranslatorAdapter_1_3 ...@@ -1389,6 +1390,46 @@ class TranslatorItalian : public TranslatorAdapter_1_3
return "Documentazione degli eventi"; return "Documentazione degli eventi";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a heading for a list of Java class types with package scope.
*/
virtual QCString trPackageTypes()
{
return "Tipi con visibilità di package";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return "Funczioni con visibilità di package";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return "Funzioni statiche con visibilità di package";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return "Attributi con visibilità di package";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return "Attributi statici con visibilità di package";
}
}; };
#endif #endif
...@@ -823,11 +823,12 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam ...@@ -823,11 +823,12 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
do // for each scope (starting with full scope and going to empty scope) do // for each scope (starting with full scope and going to empty scope)
{ {
QCString fullName = word; QCString fullName = word;
QCString prefix;
replaceNamespaceAliases(fullName,fullName.length()); replaceNamespaceAliases(fullName,fullName.length());
if (scopeOffset>0) if (scopeOffset>0)
{ {
QCString prefix = scopeName.left(scopeOffset); prefix = scopeName.left(scopeOffset);
replaceNamespaceAliases(prefix,scopeOffset); replaceNamespaceAliases(prefix,scopeOffset);
fullName.prepend(prefix+"::"); fullName.prepend(prefix+"::");
} }
...@@ -2518,7 +2519,7 @@ bool resolveRef(/* in */ const char *scName, ...@@ -2518,7 +2519,7 @@ bool resolveRef(/* in */ const char *scName,
GroupDef *gd = 0; GroupDef *gd = 0;
// check if nameStr is a member or global. // check if nameStr is a member or global.
//printf("getDefs(scope=%s,name=%s,args=%s\n",scopeStr.data(),nameStr.data(),argsStr.data()); //printf("getDefs(scope=%s,name=%s,args=%s)\n",scopeStr.data(),nameStr.data(),argsStr.data());
if (getDefs(scopeStr,nameStr,argsStr, if (getDefs(scopeStr,nameStr,argsStr,
md,cd,fd,nd,gd, md,cd,fd,nd,gd,
scopePos==0 && !memberScopeFirst, scopePos==0 && !memberScopeFirst,
...@@ -3192,6 +3193,12 @@ QCString stripScope(const char *name) ...@@ -3192,6 +3193,12 @@ QCString stripScope(const char *name)
} }
/*! Convert nibble (range 0..15) to hex char */
static char nibbleToHex(int n)
{
return (n < 10) ? ('0'+n) : ('a'+n-10);
}
/*! Converts a string to an XML-encoded string */ /*! Converts a string to an XML-encoded string */
QCString convertToXML(const char *s) QCString convertToXML(const char *s)
{ {
...@@ -3208,7 +3215,18 @@ QCString convertToXML(const char *s) ...@@ -3208,7 +3215,18 @@ QCString convertToXML(const char *s)
case '&': result+="&amp;"; break; case '&': result+="&amp;"; break;
case '\'': result+="&apos;"; break; case '\'': result+="&apos;"; break;
case '"': result+="&quot;"; break; case '"': result+="&quot;"; break;
default: result+=c; break; default:
if (c<0)
{
result+=(QCString)"&#x" +
nibbleToHex((((uchar)c)>>4)&0xf)+
nibbleToHex(c&0xf)+";";
}
else
{
result+=c;
}
break;
} }
} }
return result; return result;
......
...@@ -25,7 +25,7 @@ CFG=Doxygen - Win32 Debug ...@@ -25,7 +25,7 @@ CFG=Doxygen - Win32 Debug
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "Doxygen" # PROP Scc_ProjName "Doxygen"
# PROP Scc_LocalPath "." # PROP Scc_LocalPath "."
CPP=xicl6.exe CPP=cwcl.exe
RSC=rc.exe RSC=rc.exe
!IF "$(CFG)" == "Doxygen - Win32 Release" !IF "$(CFG)" == "Doxygen - Win32 Release"
...@@ -49,7 +49,7 @@ RSC=rc.exe ...@@ -49,7 +49,7 @@ RSC=rc.exe
BSC32=snBsc.exe BSC32=snBsc.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=xilink6.exe LINK32=cwlink.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 qtools.lib libpng.lib zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"Release" # ADD LINK32 qtools.lib libpng.lib zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"Release"
...@@ -74,7 +74,7 @@ LINK32=xilink6.exe ...@@ -74,7 +74,7 @@ LINK32=xilink6.exe
BSC32=snBsc.exe BSC32=snBsc.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=xilink6.exe LINK32=cwlink.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 qtools.lib libpng.lib zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Debug" # ADD LINK32 qtools.lib libpng.lib zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Debug"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
...@@ -282,6 +282,10 @@ SOURCE=..\src\packagedef.cpp ...@@ -282,6 +282,10 @@ SOURCE=..\src\packagedef.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\pagedef.cpp
# End Source File
# Begin Source File
SOURCE=..\src\perlmodgen.cpp SOURCE=..\src\perlmodgen.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -550,6 +554,10 @@ SOURCE=..\src\page.h ...@@ -550,6 +554,10 @@ SOURCE=..\src\page.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\src\pagedef.h
# End Source File
# Begin Source File
SOURCE=..\src\perlmodgen.h SOURCE=..\src\perlmodgen.h
# End Source File # End Source File
# Begin Source File # Begin Source File
......
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