Commit b0cbd597 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3-rc3-20020215

parent 8fda55cd
DOXYGEN Version 1.3-rc3
DOXYGEN Version 1.3-rc3-20030215
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (01 February 2003)
Dimitri van Heesch (15 February 2003)
DOXYGEN Version 1.3_rc3
DOXYGEN Version 1.3_rc3_20030215
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (01 February 2003)
Dimitri van Heesch (dimitri@stack.nl) (15 February 2003)
1.3-rc3
1.3-rc3-20030215
......@@ -727,6 +727,12 @@ class ISection
virtual bool isProtected() const = 0;
};
class IUserDefined : public ISection
{
public:
virtual const IString * header() const = 0;
};
class ISectionIterator
{
public:
......
......@@ -727,6 +727,12 @@ class ISection
virtual bool isProtected() const = 0;
};
class IUserDefined : public ISection
{
public:
virtual const IString * header() const = 0;
};
class ISectionIterator
{
public:
......
......@@ -88,6 +88,8 @@ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent)
m_members.setAutoDelete(TRUE);
addEndHandler("sectiondef",this,&SectionHandler::endSection);
addStartHandler("memberdef",this,&SectionHandler::startMember);
addStartHandler("header",this,&SectionHandler::startHeader);
addEndHandler("header",this,&SectionHandler::endHeader);
}
SectionHandler::~SectionHandler()
......@@ -115,6 +117,18 @@ void SectionHandler::startMember(const QXmlAttributes& attrib)
m_members.append(memHandler);
}
void SectionHandler::startHeader(const QXmlAttributes&)
{
m_header="";
m_curString="";
}
void SectionHandler::endHeader()
{
m_header = m_curString.stripWhiteSpace();
debug(2,"member header=`%s'\n",m_header.data());
}
void SectionHandler::initialize(CompoundHandler *ch)
{
QListIterator<MemberHandler> mli(m_members);
......
......@@ -34,12 +34,14 @@ class SectionIterator :
};
class SectionHandler : public ISection, public BaseHandler<SectionHandler>
class SectionHandler : public IUserDefined, public BaseHandler<SectionHandler>
{
public:
virtual void startMember(const QXmlAttributes& attrib);
virtual void startHeader(const QXmlAttributes& attrib);
virtual void startSection(const QXmlAttributes& attrib);
virtual void endSection();
virtual void endHeader();
SectionHandler(IBaseHandler *parent);
virtual ~SectionHandler();
......@@ -73,10 +75,17 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
void initialize(CompoundHandler *c);
// IUserDefined implementation
virtual const IString *header() const
{
return &m_header;
}
private:
IBaseHandler *m_parent;
SectionKind m_kind;
StringImpl m_kindString;
StringImpl m_header;
QList<MemberHandler> m_members;
};
......
......@@ -565,6 +565,11 @@ int main(int argc,char **argv)
printf(" Section kind=%s\n",sec->kindString()->latin1());
IMemberIterator *mli = sec->members();
IMember *mem;
if( sec->kind() == ISection::UserDefined )
{
IUserDefined *group = dynamic_cast<IUserDefined*>(sec);
printf(" Title=%s\n", group->header()->latin1() );
}
for (mli->toFirst();(mem=mli->current());mli->toNext())
{
ILinkedTextIterator *lti = mem->type();
......
......@@ -421,13 +421,6 @@ TMAKE_MOC = $QTDIR/bin/moc
EOF
fi
#if test "$f_platform" = "win32-g++"; then
# cat >> .tmakeconfig <<EOF
# TMAKE_LFLAGS += -D_WIN32
#EOF
#fi
if test "$f_english" = YES; then
cat >> .tmakeconfig <<EOF
TMAKE_CXXFLAGS += -DENGLISH_ONLY
......
......@@ -417,6 +417,8 @@ function's detailed documentation block.
comments) as a brief description. This used to be the default behaviour.
The new default is to treat a multi-line C++ comment block as a detailed
description. Set this tag to YES if you prefer the old behaviour instead.
Note that setting this tag to YES also means that rational rose comments
are not recognised any more.
\anchor cfg_details_at_top
<dt>\c DETAILS_AT_TOP <dd>
......
......@@ -25,10 +25,10 @@ to get the latest distribution, if you did not have it already.
This section is divided into the following sections:
<ul>
<li>\ref install_src_unix "Compiling from source on Unix"
<li>\ref install_bin_unix "Installating the binaries on Unix"
<li>\ref install_bin_unix "Installing the binaries on Unix"
<li>\ref unix_problems "Known compilation problems for Unix"
<li>\ref install_src_windows "Compiling from source on Windows"
<li>\ref install_bin_windows "Installating the binaries on Windows"
<li>\ref install_bin_windows "Installing the binaries on Windows"
<li>\ref build_tools "Tools used to develop doxygen"
</ul>
......@@ -158,7 +158,7 @@ Compilation is now done by performing the following steps:
</ol>
\section install_bin_unix Installating the binaries on Unix
\section install_bin_unix Installing the binaries on Unix
After the compilation of the source code do a <code>make install</code>
to install doxygen. If you downloaded the binary distribution for Unix,
......@@ -540,7 +540,7 @@ Compilation is now done by performing the following steps:
documentation can be generated.
</ol>
\section install_bin_windows Installating the binaries on Windows
\section install_bin_windows Installing the binaries on Windows
There is no fancy installation procedure at the moment (if anyone can
add it in a location independent way please let me know).
......
......@@ -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
languages other than English (the default) at configuration time.
Currently (version 1.3-rc3), 28 languages
Currently (version 1.2.14-20020317), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
......
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3_rc3
Version: 1.3_rc3_20030215
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
......@@ -128,6 +128,8 @@
#define _OS_UNIXWARE7_
#elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__)
#define _OS_UNIXWARE7_
#elif defined(__CYGWIN__)
#define _OS_CYGWIN_
#else
#error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"
#endif
......
......@@ -74,6 +74,6 @@ win32:SOURCES += qfile_win32.cpp \
INCLUDEPATH = .
TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE
win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:TMAKE_CXXFLAGS += -D_WIN32 -D__CYGWIN__ -DALL_STATIC
win32-g++:TMAKE_CXXFLAGS += -D__CYGWIN__ -DALL_STATIC
OBJECTS_DIR = ../objects
DESTDIR = ../lib
......@@ -1171,7 +1171,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
addType();
g_code->codify(yytext);
}
<ClassName>{ID} {
<ClassName>{ID}("::"{ID})* {
g_curClassName=yytext;
addType();
generateClassOrGlobalLink(*g_code,yytext);
......
......@@ -543,12 +543,19 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
return tok;
}
while ((tok=doctokenizerYYlex()) &&
tok!=TK_WHITESPACE &&
tok!=TK_NEWPARA &&
tok!=TK_LISTITEM &&
tok!=TK_ENDLIST
tok!=TK_WHITESPACE &&
tok!=TK_NEWPARA &&
tok!=TK_LISTITEM &&
tok!=TK_ENDLIST
)
{
static QRegExp specialChar("[.,|()\\[\\]:;\\?]");
if (tok==TK_WORD && g_token->name.length()==1 &&
g_token->name.find(specialChar)!=-1)
{
// special character that ends the markup command
return tok;
}
if (!defaultHandleToken(parent,tok,children))
{
switch (tok)
......@@ -732,6 +739,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
DBG((" name=%s",g_token->name.data()));
}
DBG(("\n"));
reparsetoken:
QString tokenName = g_token->name;
switch (tok)
{
......@@ -767,8 +775,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,TRUE));
tok=handleStyleArgument(parent,children,tokenName);
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,FALSE));
children.append(new DocWhiteSpace(parent," "));
if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," "));
if (tok==TK_NEWPARA) goto handlepara;
else if (tok==TK_WORD) goto reparsetoken;
}
break;
case CMD_BOLD:
......@@ -776,8 +785,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,TRUE));
tok=handleStyleArgument(parent,children,tokenName);
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,FALSE));
children.append(new DocWhiteSpace(parent," "));
if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," "));
if (tok==TK_NEWPARA) goto handlepara;
else if (tok==TK_WORD) goto reparsetoken;
}
break;
case CMD_CODE:
......@@ -785,8 +795,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,TRUE));
tok=handleStyleArgument(parent,children,tokenName);
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,FALSE));
children.append(new DocWhiteSpace(parent," "));
if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," "));
if (tok==TK_NEWPARA) goto handlepara;
else if (tok==TK_WORD) goto reparsetoken;
}
break;
case CMD_HTMLONLY:
......@@ -1001,7 +1012,14 @@ handlepara:
return FALSE;
break;
case TK_URL:
children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr));
if (g_insideHtmlLink)
{
children.append(new DocWord(parent,g_token->name));
}
else
{
children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr));
}
break;
default:
return FALSE;
......@@ -1347,16 +1365,18 @@ void DocXRefItem::parse()
{
RefItem *item = refList->getRefItem(m_id);
ASSERT(item!=0);
m_file = refList->listName();
m_anchor = item->listAnchor;
m_title = refList->sectionTitle();
if (!item->text.isEmpty())
if (item)
{
docParserPushContext();
internalValidatingParseDoc(this,m_children,item->text);
docParserPopContext();
m_file = refList->listName();
m_anchor = item->listAnchor;
m_title = refList->sectionTitle();
if (!item->text.isEmpty())
{
docParserPushContext();
internalValidatingParseDoc(this,m_children,item->text);
docParserPopContext();
}
}
}
}
......@@ -3392,19 +3412,19 @@ int DocPara::handleCommand(const QString &cmdName)
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE));
retval=handleStyleArgument(this,m_children,cmdName);
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,FALSE));
m_children.append(new DocWhiteSpace(this," "));
if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," "));
break;
case CMD_BOLD:
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,TRUE));
retval=handleStyleArgument(this,m_children,cmdName);
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,FALSE));
m_children.append(new DocWhiteSpace(this," "));
if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," "));
break;
case CMD_CODE:
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,TRUE));
retval=handleStyleArgument(this,m_children,cmdName);
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,FALSE));
m_children.append(new DocWhiteSpace(this," "));
if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," "));
break;
case CMD_BSLASH:
m_children.append(new DocSymbol(this,DocSymbol::BSlash));
......@@ -4255,7 +4275,7 @@ reparsetoken:
// the command ended normally, keep scanner for new tokens.
retval = 0;
}
else if (retval==TK_LISTITEM || retval==TK_ENDLIST)
else if (retval==TK_LISTITEM || retval==TK_ENDLIST || retval==TK_WORD)
{
tok = retval;
goto reparsetoken;
......
......@@ -1239,7 +1239,6 @@ static void findIncludedUsingDirectives()
{
fd->visited=FALSE;
}
fn=Doxygen::inputNameList.next();
}
// then recursively add using directives found in #include files
// to files that have not been visited.
......@@ -1247,11 +1246,14 @@ static void findIncludedUsingDirectives()
{
FileNameIterator fni(*fn);
FileDef *fd;
for (;(fd=fni.current());++fni)
for (fni.toFirst();(fd=fni.current());++fni)
{
if (!fd->visited) fd->addIncludedUsingDirectives();
if (!fd->visited)
{
//printf("----- adding using directives for file %s\n",fd->name().data());
fd->addIncludedUsingDirectives();
}
}
fn=Doxygen::inputNameList.next();
}
}
......@@ -4419,6 +4421,10 @@ static void findMember(Entry *root,
{
Debug::print(Debug::FindMembers,0,
"1. funcName=`%s'\n",funcName.data());
if (funcName.left(9)=="operator ")
{
funcName = substitute(funcName,className+"::","");
}
if (!funcTempList.isEmpty()) // try with member specialization
{
mn=Doxygen::memberNameSDict[funcName+funcTempList];
......@@ -4677,9 +4683,10 @@ static void findMember(Entry *root,
{
warn_cont("%s ",md->typeString());
}
warn_cont("%s::%s%s\n",
cd->qualifiedNameWithTemplateParameters().data(),
md->name().data(),md->argsString());
QCString qScope = cd->qualifiedNameWithTemplateParameters();
if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data());
if (md->argsString()) warn_cont("%s",md->argsString());
warn_cont("\n");
}
}
}
......
......@@ -27,7 +27,6 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib shell32.lib
win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:TMAKE_CXXFLAGS += -D_WIN32
INCLUDEPATH += ../qtools
OBJECTS_DIR = ../objects
TARGET = ../bin/doxytag
......@@ -651,26 +651,32 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local)
void FileDef::addIncludedUsingDirectives()
{
if (!visited)
if (visited) return;
visited=TRUE;
//printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data());
NamespaceList nl;
if (includeList) // file contains #includes
{
visited=TRUE;
NamespaceList nl;
if (includeList) // file contains #includes
{
QListIterator<IncludeInfo> iii(*includeList);
IncludeInfo *ii;
for (;(ii=iii.current());++iii) // foreach #include...
for (iii.toFirst();(ii=iii.current());++iii) // foreach #include...
{
if (ii->fileDef) // ...that is a known file
if (ii->fileDef && !ii->fileDef->visited) // ...that is a known file
{
// recurse into this file
ii->fileDef->addIncludedUsingDirectives();
}
}
}
{
QListIterator<IncludeInfo> iii(*includeList);
IncludeInfo *ii;
// iterate through list from last to first
for (iii.toLast();(ii=iii.current());--iii)
{
if (ii->fileDef)
if (ii->fileDef && ii->fileDef!=this)
{
NamespaceList *unl = ii->fileDef->usingDirList;
if (unl)
......@@ -681,14 +687,16 @@ void FileDef::addIncludedUsingDirectives()
{
// append each using directive found in a #include file
if (usingDirList==0) usingDirList = new NamespaceList;
//printf("Prepending used namespace %s to the list of file %s\n",
// nd->name().data(),name().data());
usingDirList->prepend(nd);
}
}
}
}
}
// add elements of nl to usingDirList
}
//printf(") end FileDef::addIncludedUsingDirectives for file %s\n",name().data());
}
......
......@@ -111,7 +111,6 @@ HEADERS = bufstr.h \
translator_sr.h \
translator_tw.h \
translator_ua.h \
treeview.h \
unistd.h \
util.h \
version.h \
......
......@@ -16,8 +16,10 @@
#!
#$ IncludeTemplate("lib.t");
LEX = flex
YACC = bison
LEX = flex
YACC = bison
PERL = perl
INCBUFSIZE = $(PERL) -n -e "s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;"
#${
sub GenerateDep {
......@@ -45,13 +47,13 @@ sub GenerateDep {
####################
#$ GenerateDep("scanner.cpp","scanner.l");
$(LEX) -PscanYY -t scanner.l >scanner.cpp
$(LEX) -PscanYY -t scanner.l | $(INCBUFSIZE) >scanner.cpp
#$ GenerateDep("code.cpp","code.l");
$(LEX) -PcodeYY -t code.l >code.cpp
$(LEX) -PcodeYY -t code.l | $(INCBUFSIZE) >code.cpp
#$ GenerateDep("pre.cpp","pre.l");
$(LEX) -PpreYY -t pre.l >pre.cpp
$(LEX) -PpreYY -t pre.l | $(INCBUFSIZE) >pre.cpp
#$ GenerateDep("declinfo.cpp","declinfo.l");
$(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp
......@@ -75,6 +77,6 @@ sub GenerateDep {
$(YACC) -l -d -p cppExpYY constexp.y -o ce_parse.c
-rm ce_parse.c
treeview.h: treeview.js
cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h
#treeview.h: treeview.js
# cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h
......@@ -1623,7 +1623,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_defLitText+=' ';
BEGIN(SkipCPPComment);
}
<SkipCComment>"*/" {
<SkipCComment>[/]?"*/" {
if (yytext[0]=='/') outputChar('/');
outputChar('*');outputChar('/');
if (--g_commentCount<=0)
{
......@@ -1647,7 +1648,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<SkipCComment>. {
outputChar(*yytext);
}
<RemoveCComment>"*/" { BEGIN(g_lastCContext); }
<RemoveCComment>"*/" { BEGIN(g_lastCContext); }
<RemoveCComment>"//"
<RemoveCComment>"/*"
<RemoveCComment>[^*\n]+
......
......@@ -47,7 +47,7 @@
#define YY_NEVER_INTERACTIVE 1
/* -----------------------------------------------------------------
*
* statics
......@@ -181,6 +181,7 @@ static void initParser()
insideTryBlock = FALSE;
autoGroupStack.setAutoDelete(TRUE);
lastDefGroup.groupname.resize(0);
insideFormula = FALSE;
}
static void initEntry()
......@@ -959,7 +960,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface
lineCount();
if (insideIDL || insideJava)
if (insideIDL || insideJava || insideCS)
{
isTypedef=FALSE;
current->section = Entry::INTERFACE_SEC;
......@@ -3899,6 +3900,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<ReadFormulaShort>\n {
formulaText+=" ";
yyLineNr++;
if (lastFormulaContext==LineDoc ||
lastFormulaContext==AfterDocLine
)
......@@ -3922,7 +3924,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
insideFormula=FALSE;
BEGIN(lastFormulaContext);
}
<ReadFormulaLong>\n { formulaText+=*yytext; }
<ReadFormulaLong>\n { formulaText+=*yytext; yyLineNr++; }
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs();
......@@ -4195,7 +4197,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
}
<ClassDocBrief>"<"{BR}{ATTR}">"
<ClassDocBrief>{BS}/{SECTIONCMD} {
<ClassDocBrief>{BS}/{SECTIONCMD} |
<ClassDocBrief>{B}*/{SECTIONCMD} {
current->brief=current->brief.stripWhiteSpace();
BEGIN( lastBriefContext );
}
......@@ -4445,12 +4448,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,AfterDoc>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n {
current->doc += yytext;
yyLineNr++;
}
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ {
current->brief += "-";
}
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n {
current->brief += ".";
current->brief += "."; yyLineNr++;
}
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/]
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+{B}+ {
......
This diff is collapsed.
......@@ -41,11 +41,13 @@
* -------------+------------------------------------------------------------
* 2002-10-22 | Update for new since 1.2.18
* -------------+------------------------------------------------------------
* 2003-02-04 | Corrected typo. Thanks to Bertrand M. :)
* -------------+------------------------------------------------------------
*/
#ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H
class TranslatorFrench : public TranslatorAdapter_1_2_17
class TranslatorFrench : public Translator
{
public:
QCString idLanguage()
......@@ -205,7 +207,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
/*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription()
{ return "Liste des classes, des strutures et des unions "
{ return "Liste des classes, des structures et des unions "
"avec une brève description :";
}
......@@ -384,7 +386,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
* of documentation blocks for enumeration types
*/
QCString trEnumerationTypeDocumentation()
{ return "Documentation du type de l'énumeration"; }
{ return "Documentation du type de l'énumération"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
......@@ -959,13 +961,13 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
"</ul>\n"
"Les flèches ont la signification suivante:\n"
"<ul>\n"
"<li>Une flèche bleu foncé est utilisée pour visuliser une relation d'héritage public "
"<li>Une flèche bleu foncé est utilisée pour visualiser une relation d'héritage public "
"entre deux classes.\n"
"<li>Une flèche vert foncé est utilisée pour une relation d'héritage protégé.\n"
"<li>Une flèche rouge foncé est utilisée pour une relation d'héritage privé.\n"
"<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou "
"utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) "
"qui permettent d'acceder à la classe ou structure pointée. \n"
"qui permettent d'accéder à la classe ou structure pointée. \n"
"</ul>\n";
}
/*! text for the link to the legend page */
......
This diff is collapsed.
This diff is collapsed.
......@@ -98,7 +98,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
if (command==0) return 1;
//#ifdef _OS_SOLARIS_
#ifdef _OS_SOLARIS // for Solaris we use vfork since it is more memory efficient
// on Solaris fork() duplicates the memory usage
// so we use vfork instead
......@@ -131,38 +131,36 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
}
return status;
//#else /* Other unices where clients do copy on demand for the parent's pages
// * when forked.
// */
//
// pid = fork();
// if (pid==-1) return -1;
// if (pid==0)
// {
// char buf[4096];
// strcpy(buf,command);
// strcat(buf," ");
// strcat(buf,args);
// const char * argv[4];
// argv[0] = "sh";
// argv[1] = "-c";
// argv[2] = buf;
// argv[3] = 0;
// execve("/bin/sh",(char * const *)argv,environ);
// exit(127);
// }
// for (;;)
// {
// if (waitpid(pid,&status,0)==-1)
// {
// if (errno!=EINTR) return -1;
// }
// else
// {
// return status;
// }
// }
//#endif
#else // Other Unices just use fork
pid = fork();
if (pid==-1) return -1;
if (pid==0)
{
char buf[4096];
strcpy(buf,command);
strcat(buf," ");
strcat(buf,args);
const char * argv[4];
argv[0] = "sh";
argv[1] = "-c";
argv[2] = buf;
argv[3] = 0;
execve("/bin/sh",(char * const *)argv,environ);
exit(127);
}
for (;;)
{
if (waitpid(pid,&status,0)==-1)
{
if (errno!=EINTR) return -1;
}
else
{
return status;
}
}
#endif // _OS_SOLARIS
#else
if (isBatchFile)
......
......@@ -510,10 +510,17 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
ArgumentList *al = md->argumentList();
t << " const=\"";
if (al && al->constSpecifier) t << "yes"; else t << "no";
t << "\" volatile=\"";
t << "\"";
}
if (md->memberType() == MemberDef::Variable)
{
ArgumentList *al = md->argumentList();
t << " volatile=\"";
if (al && al->volatileSpecifier) t << "yes"; else t << "no";
t << "\"";
}
t << ">" << endl;
if (md->memberType()!=MemberDef::Define &&
......
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