Commit cb417a1f authored by dimitri's avatar dimitri

Release-1.1.4-20000618

parent 24106371
...@@ -84,10 +84,13 @@ You will need to install the windows/dos versions of following tools: ...@@ -84,10 +84,13 @@ You will need to install the windows/dos versions of following tools:
You can download them at: http://sourceware.cygnus.com/cygwin/ You can download them at: http://sourceware.cygnus.com/cygwin/
Make sure the BISONLIB environment variable points to the Make sure the BISONLIB environment variable points to the
location where bison.simple and bison.hairy are located. location where bison.simple and bison.hairy are located.
- Qt-1.xx (Qt-2.xx should also work, but I didn't test it for Windows) - Qt-1.xx (Qt-2.xx does not work without adding some extra code)
(Hint: only the tools section is required, so you can use the free Only the tools section is required, so you can use the free
X-windows version (use Qt-1.44) as well!) X-windows version (use Qt-1.44) and build a library called qt.lib out of
You can get it at http://www.troll.no the sources in src/tools. The library should be put in the lib directory
of the Qt distribution. You can get Qt-1.44 at http://www.trolltech.com
Before continuing make sure the QTDIR environment variable points to the
root of the Qt distribution.
- Microsoft Visual C++ (I only tested with version 5.0). - Microsoft Visual C++ (I only tested with version 5.0).
Use the vcvars32.bat to set the environment variables Use the vcvars32.bat to set the environment variables
(if you did not select to do this automatically during installation). (if you did not select to do this automatically during installation).
...@@ -146,7 +149,7 @@ QT RELATED PROBLEMS: ...@@ -146,7 +149,7 @@ QT RELATED PROBLEMS:
- do "cd qt" - do "cd qt"
- do "ln -s your-qt-include-dir-here include", - do "ln -s your-qt-include-dir-here include",
- do "ln -s your-qt-lib-dir-here lib", - do "ln -s your-qt-lib-dir-here lib",
- do "export QTDIR=$PWD" (or "setenv QTDIR $PWD if you have a csh) - do "export QTDIR=$PWD" (or "setenv QTDIR $PWD if you have a csh-like shell)
Now install doxygen as described above. Now install doxygen as described above.
...@@ -252,4 +255,4 @@ The latest version of doxygen can be obtained at ...@@ -252,4 +255,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (11 June 2000) Dimitri van Heesch (18 June 2000)
...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at ...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (11 June 2000) Dimitri van Heesch (18 June 2000)
...@@ -318,6 +318,7 @@ void configStrToVal() ...@@ -318,6 +318,7 @@ void configStrToVal()
static void substEnvVarsInString(QCString &s) static void substEnvVarsInString(QCString &s)
{ {
static QRegExp re("\\$\\([a-z_A-Z0-9]+\\)"); static QRegExp re("\\$\\([a-z_A-Z0-9]+\\)");
if (s.isEmpty()) return;
int p=0; int p=0;
int i,l; int i,l;
//printf("substEnvVarInString(%s) start\n",s.data()); //printf("substEnvVarInString(%s) start\n",s.data());
......
...@@ -788,29 +788,33 @@ void init() ...@@ -788,29 +788,33 @@ void init()
"EXTRACT_ALL", "EXTRACT_ALL",
"FALSE", "FALSE",
"gererate docs for all classes flag", "gererate docs for all classes flag",
"If the EXTRACT_ALL tag is set to YES all classes and functions will be \n" "If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in \n"
"included in the documentation, even if no documentation was available. \n" "documentation are documented, even if no documentation was available. \n"
"Private class members and static file members will be hidden unless \n"
"the EXTRACT_PRIVATE tag is set to YES \n"
); );
ConfigBool::add( "extractPrivateFlag", ConfigBool::add( "extractPrivateFlag",
"EXTRACT_PRIVATE", "EXTRACT_PRIVATE",
"FALSE", "FALSE",
"generate docs for private members flag", "generate docs for private members flag",
"If the EXTRACT_PRIVATE tag is set to YES all private members of a class \n" "If the EXTRACT_PRIVATE tag is set to YES all private members of a class \n"
"will be included in the documentation. \n" "and the static members of a file will be included in the documentation. \n"
); );
ConfigBool::add( "hideMemberFlag", ConfigBool::add( "hideMemberFlag",
"HIDE_UNDOC_MEMBERS", "HIDE_UNDOC_MEMBERS",
"FALSE", "FALSE",
"hide undocumented members.", "hide undocumented members.",
"If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all \n" "If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all \n"
"undocumented members inside documented classes or files. \n" "undocumented members of documented classes, files or namespaces. \n"
"This option has no effect if EXTRACT_ALL is enabled. \n"
); );
ConfigBool::add( "hideClassFlag", ConfigBool::add( "hideClassFlag",
"HIDE_UNDOC_CLASSES", "HIDE_UNDOC_CLASSES",
"FALSE", "FALSE",
"hide undocumented members.", "hide undocumented members.",
"If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all \n" "If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all \n"
"undocumented classes. \n" "undocumented classes that are normally visible in the class hierarchy. \n"
"This option has no effect if EXTRACT_ALL is enabled. \n"
); );
ConfigBool::add( "briefMemDescFlag", ConfigBool::add( "briefMemDescFlag",
"BRIEF_MEMBER_DESC", "BRIEF_MEMBER_DESC",
......
...@@ -47,6 +47,7 @@ documentation: ...@@ -47,6 +47,7 @@ documentation:
<li> \refitem cmdaddindex \addindex <li> \refitem cmdaddindex \addindex
<li> \refitem cmdanchor \anchor <li> \refitem cmdanchor \anchor
<li> \refitem cmdarg \arg <li> \refitem cmdarg \arg
<li> \refitem cmdattention \attention
<li> \refitem cmdauthor \author <li> \refitem cmdauthor \author
<li> \refitem cmdb \b <li> \refitem cmdb \b
<li> \refitem cmdbrief \brief <li> \refitem cmdbrief \brief
...@@ -97,6 +98,7 @@ documentation: ...@@ -97,6 +98,7 @@ documentation:
<li> \refitem cmdpre \pre <li> \refitem cmdpre \pre
<li> \refitem cmdref \ref <li> \refitem cmdref \ref
<li> \refitem cmdrelates \relates <li> \refitem cmdrelates \relates
<li> \refitem cmdremarks \remarks
<li> \refitem cmdreturn \return <li> \refitem cmdreturn \return
<li> \refitem cmdretval \retval <li> \refitem cmdretval \retval
<li> \refitem cmdsa \sa <li> \refitem cmdsa \sa
...@@ -523,6 +525,18 @@ Public/Protected/Private/... section. ...@@ -523,6 +525,18 @@ Public/Protected/Private/... section.
Section indicators Section indicators
\htmlonly --- </center>\endhtmlonly</h2> \htmlonly --- </center>\endhtmlonly</h2>
<hr>
\subsection cmdattention \attention { attention text }
\addindex \attention
Starts a paragraph where a message that needs attention may be entered.
The paragraph will be indented.
The text of the paragraph has no special internal structure. All visual
enhancement commands may be used inside the paragraph.
Multiple adjacent \\attention commands will be joined into a single paragraph.
The \\attention command ends when a blank line or some other
sectioning command is encountered.
\subsection cmdauthor \author { list of authors } \subsection cmdauthor \author { list of authors }
\addindex \author \addindex \author
...@@ -664,7 +678,7 @@ Public/Protected/Private/... section. ...@@ -664,7 +678,7 @@ Public/Protected/Private/... section.
The text of the paragraph has no special internal structure. All visual The text of the paragraph has no special internal structure. All visual
enhancement commands may be used inside the paragraph. enhancement commands may be used inside the paragraph.
Multiple adjacent \\invariant commands will be joined into a single paragraph. Multiple adjacent \\invariant commands will be joined into a single paragraph.
Each warning description will start on a new line. Each invariant description will start on a new line.
Alternatively, one \\invariant command may mention Alternatively, one \\invariant command may mention
several invariants. The \\invariant command ends when a blank line or some other several invariants. The \\invariant command ends when a blank line or some other
sectioning command is encountered. sectioning command is encountered.
...@@ -712,7 +726,7 @@ Public/Protected/Private/... section. ...@@ -712,7 +726,7 @@ Public/Protected/Private/... section.
The text of the paragraph has no special internal structure. All visual The text of the paragraph has no special internal structure. All visual
enhancement commands may be used inside the paragraph. enhancement commands may be used inside the paragraph.
Multiple adjacent \\post commands will be joined into a single paragraph. Multiple adjacent \\post commands will be joined into a single paragraph.
Each warning description will start on a new line. Each postcondition will start on a new line.
Alternatively, one \\post command may mention Alternatively, one \\post command may mention
several postconditions. The \\post command ends when a blank line or some other several postconditions. The \\post command ends when a blank line or some other
sectioning command is encountered. sectioning command is encountered.
...@@ -726,11 +740,25 @@ Public/Protected/Private/... section. ...@@ -726,11 +740,25 @@ Public/Protected/Private/... section.
The text of the paragraph has no special internal structure. All visual The text of the paragraph has no special internal structure. All visual
enhancement commands may be used inside the paragraph. enhancement commands may be used inside the paragraph.
Multiple adjacent \\pre commands will be joined into a single paragraph. Multiple adjacent \\pre commands will be joined into a single paragraph.
Each warning description will start on a new line. Each precondition will start on a new line.
Alternatively, one \\pre command may mention Alternatively, one \\pre command may mention
several preconditions. The \\pre command ends when a blank line or some other several preconditions. The \\pre command ends when a blank line or some other
sectioning command is encountered. sectioning command is encountered.
<hr>
\subsection cmdremarks \remarks { remark text }
\addindex \remarks
Starts a paragraph where one or more marks may be entered.
The paragraph will be indented.
The text of the paragraph has no special internal structure. All visual
enhancement commands may be used inside the paragraph.
Multiple adjacent \\remark commands will be joined into a single paragraph.
Each remark will start on a new line.
Alternatively, one \\remark command may mention
several remarks. The \\remark command ends when a blank line or some other
sectioning command is encountered.
<hr> <hr>
\subsection cmdreturn \return { description of the return value } \subsection cmdreturn \return { description of the return value }
...@@ -800,7 +828,8 @@ Public/Protected/Private/... section. ...@@ -800,7 +828,8 @@ Public/Protected/Private/... section.
Multiple adjacent \\version commands will be joined into a single paragraph. Multiple adjacent \\version commands will be joined into a single paragraph.
Each version description will start on a new line. Each version description will start on a new line.
Alternatively, one \\version command may mention Alternatively, one \\version command may mention
several dates. The \\version command ends when a blank line or some other several version strings.
The \\version command ends when a blank line or some other
sectioning command is encountered. See section \ref cmdauthor "\\author" sectioning command is encountered. See section \ref cmdauthor "\\author"
for an example. for an example.
......
REM make script for Microsoft Visual C++ REM make script for Microsoft Visual C++
if "%QTDIR%"=="" goto ERROR
REM use perl to create the config file REM use perl to create the config file
perl wintools\make.pl perl wintools\make.pl
...@@ -12,3 +14,10 @@ type src\doxytag.pro.in | sed "s/\$extraopts/release/g" >src\doxytag.pro ...@@ -12,3 +14,10 @@ type src\doxytag.pro.in | sed "s/\$extraopts/release/g" >src\doxytag.pro
type src\doxysearch.pro.in | sed "s/\$extraopts/release/g" >src\doxysearch.pro type src\doxysearch.pro.in | sed "s/\$extraopts/release/g" >src\doxysearch.pro
nmake nmake
goto END
:ERROR
echo The QTDIR environment variable is not set! See the INSTALL file for more info.
goto END
:END
...@@ -1025,7 +1025,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -1025,7 +1025,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
while (file) while (file)
{ {
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,file,ambig); FileDef *fd=findFileDef(inputNameDict,file,ambig);
if (fd) if (fd)
{ {
if (first) if (first)
......
...@@ -676,7 +676,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -676,7 +676,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
//FileInfo *f; //FileInfo *f;
bool ambig; bool ambig;
FileDef *fd; FileDef *fd;
if ((fd=findFileDef(&inputNameDict,yytext,ambig)) && if ((fd=findFileDef(inputNameDict,yytext,ambig)) &&
fd->isLinkable()) fd->isLinkable())
{ {
g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,yytext); g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,yytext);
......
...@@ -1875,6 +1875,7 @@ void configStrToVal() ...@@ -1875,6 +1875,7 @@ void configStrToVal()
static void substEnvVarsInString(QCString &s) static void substEnvVarsInString(QCString &s)
{ {
static QRegExp re("\\$\\([a-z_A-Z0-9]+\\)"); static QRegExp re("\\$\\([a-z_A-Z0-9]+\\)");
if (s.isEmpty()) return;
int p=0; int p=0;
int i,l; int i,l;
//printf("substEnvVarInString(%s) start\n",s.data()); //printf("substEnvVarInString(%s) start\n",s.data());
......
...@@ -136,9 +136,10 @@ ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+) ...@@ -136,9 +136,10 @@ ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+)
<Start>{B}+ { <Start>{B}+ {
addType(); addType();
} }
<Start>{B}*"("{B}*"*" { <Start>{B}*"("({ID}"::")*{B}*"*" {
addType(); addType();
type+="(*"; QCString text=yytext;
type+=text.stripWhiteSpace();
} }
<Start>{B}*")" { <Start>{B}*")" {
type+=")"; type+=")";
......
...@@ -256,12 +256,9 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -256,12 +256,9 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
if (l>0) if (l>0)
{ {
int i=l-1; int i=l-1;
while (i>=0 && while (i>=0 && isspace(g_curArgTypeName.at(i))) i--;
( while (i>=0 && isId(g_curArgTypeName.at(i))) i--;
isspace(g_curArgTypeName.at(i)) || //printf("g_curArgTypeName=`%s' i=%d\n",g_curArgTypeName.data(),i);
isId(g_curArgTypeName.at(i))
)
) i--;
Argument *a = new Argument; Argument *a = new Argument;
a->attrib = g_curArgAttrib.copy(); a->attrib = g_curArgAttrib.copy();
if (i>=0 && g_curArgTypeName.at(i)!=':') if (i>=0 && g_curArgTypeName.at(i)!=':')
...@@ -276,7 +273,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -276,7 +273,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
a->array = g_curArgArray.copy(); a->array = g_curArgArray.copy();
a->defval = g_curArgDefValue.copy(); a->defval = g_curArgDefValue.copy();
a->docs = g_curArgDocs.stripWhiteSpace(); a->docs = g_curArgDocs.stripWhiteSpace();
//printf("Argument %s %s adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data()); //printf("Argument `%s' `%s' adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data());
g_argList->append(a); g_argList->append(a);
} }
g_curArgAttrib.resize(0); g_curArgAttrib.resize(0);
......
...@@ -141,15 +141,27 @@ static bool readCodeFragment(const char *fileName, ...@@ -141,15 +141,27 @@ static bool readCodeFragment(const char *fileName,
} }
if (!f.atEnd()) if (!f.atEnd())
{ {
// skip until the opening bracket is found // skip until the opening bracket or lonely : is found
while (lineNr<=endLine && !f.atEnd() && c!='{') bool found=FALSE;
char cn;
while (lineNr<=endLine && !f.atEnd() && !found)
{ {
while ((c=f.getch())!='{' && c!=-1) if (c=='\n') lineNr++; while ((c=f.getch())!='{' && c!=':' && c!=-1) if (c=='\n') lineNr++;
if (c==':')
{
cn=f.getch();
if (cn!=':') found=TRUE;
}
else if (c=='{')
{
found=TRUE;
}
} }
if (c=='{') if (found)
{ {
// copy until end of line // copy until end of line
result+=c; result+=c;
if (c==':') result+=cn;
startLine=lineNr; startLine=lineNr;
const int maxLineLength=4096; const int maxLineLength=4096;
char lineStr[maxLineLength]; char lineStr[maxLineLength];
...@@ -179,7 +191,7 @@ static bool readCodeFragment(const char *fileName, ...@@ -179,7 +191,7 @@ static bool readCodeFragment(const char *fileName,
} }
/*! Write a reference to the source code defining this definition */ /*! Write a reference to the source code defining this definition */
void Definition::writeSourceDef(OutputList &ol,const char *scopeName) void Definition::writeSourceDef(OutputList &ol,const char *)
{ {
ol.pushGeneratorState(); ol.pushGeneratorState();
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef); //printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
...@@ -271,6 +283,13 @@ void Definition::writeSourceDef(OutputList &ol,const char *scopeName) ...@@ -271,6 +283,13 @@ void Definition::writeSourceDef(OutputList &ol,const char *scopeName)
ol.newParagraph(); ol.newParagraph();
ol.enableAll(); ol.enableAll();
} }
ol.popGeneratorState();
}
/*! Write code of this definition into the documentation */
void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
{
ol.pushGeneratorState();
if (Config::inlineSourceFlag && startBodyLine!=-1 && if (Config::inlineSourceFlag && startBodyLine!=-1 &&
endBodyLine>=startBodyLine && bodyDef) endBodyLine>=startBodyLine && bodyDef)
{ {
......
...@@ -97,6 +97,7 @@ class Definition ...@@ -97,6 +97,7 @@ class Definition
int getEndBodyLine() const { return endBodyLine; } int getEndBodyLine() const { return endBodyLine; }
FileDef *getBodyDef() { return bodyDef; } FileDef *getBodyDef() { return bodyDef; }
void writeSourceDef(OutputList &ol,const char *scopeName); void writeSourceDef(OutputList &ol,const char *scopeName);
void writeInlineCode(OutputList &ol,const char *scopeName);
void writeSourceRefs(OutputList &ol,const char *scopeName); void writeSourceRefs(OutputList &ol,const char *scopeName);
void addSourceReference(MemberDef *d); void addSourceReference(MemberDef *d);
......
/****************************************************************************** /******************************************************************************
* *
* $Id$ *
* *
* *
* Copyright (C) 1997-2000 by Dimitri van Heesch. * Copyright (C) 1997-2000 by Dimitri van Heesch.
...@@ -80,11 +80,15 @@ MemberNameDict memberNameDict(10007); // all class member names ...@@ -80,11 +80,15 @@ MemberNameDict memberNameDict(10007); // all class member names
MemberNameDict functionNameDict(10007); // all functions MemberNameDict functionNameDict(10007); // all functions
StringDict substituteDict(1009); // class name substitutes StringDict substituteDict(1009); // class name substitutes
SectionDict sectionDict(257); // all page sections SectionDict sectionDict(257); // all page sections
FileNameDict inputNameDict(1009); // sections
StringDict excludeNameDict(1009); // sections StringDict excludeNameDict(1009); // sections
FileNameDict includeNameDict(1009); // include names //FileNameDict inputNameDict(1009); // sections
FileNameDict exampleNameDict(1009); // examples //FileNameDict includeNameDict(1009); // include names
FileNameDict imageNameDict(257); // images //FileNameDict exampleNameDict(1009); // examples
//FileNameDict imageNameDict(257); // images
FileNameDict *inputNameDict; // sections
FileNameDict *includeNameDict; // include names
FileNameDict *exampleNameDict; // examples
FileNameDict *imageNameDict; // images
StringDict typedefDict(1009); // all typedefs StringDict typedefDict(1009); // all typedefs
GroupDict groupDict(257); // all groups GroupDict groupDict(257); // all groups
FormulaDict formulaDict(1009); // all formulas FormulaDict formulaDict(1009); // all formulas
...@@ -119,11 +123,11 @@ void clearAll() ...@@ -119,11 +123,11 @@ void clearAll()
functionNameDict.clear(); functionNameDict.clear();
substituteDict.clear(); substituteDict.clear();
sectionDict.clear(); sectionDict.clear();
inputNameDict.clear(); inputNameDict->clear();
excludeNameDict.clear(); excludeNameDict.clear();
includeNameDict.clear(); includeNameDict->clear();
exampleNameDict.clear(); exampleNameDict->clear();
imageNameDict.clear(); imageNameDict->clear();
typedefDict.clear(); typedefDict.clear();
groupDict.clear(); groupDict.clear();
formulaDict.clear(); formulaDict.clear();
...@@ -246,7 +250,7 @@ static void buildFileList(Entry *root) ...@@ -246,7 +250,7 @@ static void buildFileList(Entry *root)
) )
{ {
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->name,ambig); FileDef *fd=findFileDef(inputNameDict,root->name,ambig);
if (fd && !ambig) if (fd && !ambig)
{ {
if ((!root->doc.isEmpty() && !fd->documentation().isEmpty()) || if ((!root->doc.isEmpty() && !fd->documentation().isEmpty()) ||
...@@ -291,7 +295,7 @@ static void buildFileList(Entry *root) ...@@ -291,7 +295,7 @@ static void buildFileList(Entry *root)
if (ambig) // name is ambigious if (ambig) // name is ambigious
{ {
text+="matches the following input files:\n"; text+="matches the following input files:\n";
text+=showFileDefMatches(&inputNameDict,root->name); text+=showFileDefMatches(inputNameDict,root->name);
text+="Please use a more specific name by " text+="Please use a more specific name by "
"including a (larger) part of the path!"; "including a (larger) part of the path!";
} }
...@@ -326,7 +330,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) ...@@ -326,7 +330,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
// see if we need to include a verbatim copy of the header file // see if we need to include a verbatim copy of the header file
//printf("root->includeFile=%s\n",root->includeFile.data()); //printf("root->includeFile=%s\n",root->includeFile.data());
if (!root->includeFile.isEmpty() && if (!root->includeFile.isEmpty() &&
(fd=findFileDef(&inputNameDict,root->includeFile,ambig))==0 (fd=findFileDef(inputNameDict,root->includeFile,ambig))==0
) )
{ // explicit request { // explicit request
QCString text; QCString text;
...@@ -337,7 +341,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) ...@@ -337,7 +341,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
if (ambig) // name is ambigious if (ambig) // name is ambigious
{ {
text+="matches the following input files:\n"; text+="matches the following input files:\n";
text+=showFileDefMatches(&inputNameDict,root->includeFile); text+=showFileDefMatches(inputNameDict,root->includeFile);
text+="Please use a more specific name by " text+="Please use a more specific name by "
"including a (larger) part of the path!"; "including a (larger) part of the path!";
} }
...@@ -442,7 +446,7 @@ static void buildClassList(Entry *root) ...@@ -442,7 +446,7 @@ static void buildClassList(Entry *root)
bool ambig; bool ambig;
ClassDef *cd; ClassDef *cd;
//printf("findFileDef(%s)\n",root->fileName.data()); //printf("findFileDef(%s)\n",root->fileName.data());
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
if ((cd=getClass(fullName))) if ((cd=getClass(fullName)))
{ {
...@@ -486,7 +490,7 @@ static void buildClassList(Entry *root) ...@@ -486,7 +490,7 @@ static void buildClassList(Entry *root)
if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1) if (root->bodyLine!=-1 && cd->getStartBodyLine()==-1)
{ {
cd->setBodySegment(root->bodyLine,root->endBodyLine); cd->setBodySegment(root->bodyLine,root->endBodyLine);
cd->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); cd->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
} }
cd->addSectionsToDefinition(root->anchors); cd->addSectionsToDefinition(root->anchors);
cd->setName(fullName); // change name to match docs cd->setName(fullName); // change name to match docs
...@@ -652,7 +656,7 @@ static void buildNamespaceList(Entry *root) ...@@ -652,7 +656,7 @@ static void buildNamespaceList(Entry *root)
bool ambig; bool ambig;
// file definition containing the namespace nd // file definition containing the namespace nd
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
// insert the namespace in the file definition // insert the namespace in the file definition
if (fd) fd->insertNamespace(nd); if (fd) fd->insertNamespace(nd);
} }
...@@ -672,7 +676,7 @@ static void buildNamespaceList(Entry *root) ...@@ -672,7 +676,7 @@ static void buildNamespaceList(Entry *root)
bool ambig; bool ambig;
// file definition containing the namespace nd // file definition containing the namespace nd
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
// insert the namespace in the file definition // insert the namespace in the file definition
if (fd) fd->insertNamespace(nd); if (fd) fd->insertNamespace(nd);
...@@ -707,7 +711,7 @@ static void findUsingDirectives(Entry *root) ...@@ -707,7 +711,7 @@ static void findUsingDirectives(Entry *root)
{ {
NamespaceDef *usingNd = 0; NamespaceDef *usingNd = 0;
NamespaceDef *nd = 0; NamespaceDef *nd = 0;
FileDef *fd = findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd = findFileDef(inputNameDict,root->fileName,ambig);
QCString nsName; QCString nsName;
// see if the using statement was found inside a namespace or inside // see if the using statement was found inside a namespace or inside
...@@ -777,7 +781,7 @@ static void findUsingDirectives(Entry *root) ...@@ -777,7 +781,7 @@ static void findUsingDirectives(Entry *root)
bool ambig; bool ambig;
// file definition containing the namespace nd // file definition containing the namespace nd
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
// insert the namespace in the file definition // insert the namespace in the file definition
if (fd) if (fd)
{ {
...@@ -815,7 +819,7 @@ void findUsingDeclarations(Entry *root) ...@@ -815,7 +819,7 @@ void findUsingDeclarations(Entry *root)
{ {
ClassDef *usingCd = 0; ClassDef *usingCd = 0;
NamespaceDef *nd = 0; NamespaceDef *nd = 0;
FileDef *fd = findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd = findFileDef(inputNameDict,root->fileName,ambig);
QCString scName; QCString scName;
// see if the using statement was found inside a namespace or inside // see if the using statement was found inside a namespace or inside
...@@ -977,7 +981,7 @@ static MemberDef *addVariableToClass( ...@@ -977,7 +981,7 @@ static MemberDef *addVariableToClass(
// md->setMemberGroup(memberGroupDict[root->mGrpId]); // md->setMemberGroup(memberGroupDict[root->mGrpId]);
// //
bool ambig; bool ambig;
md->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); md->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
// add the member to the global list // add the member to the global list
if (mn) if (mn)
...@@ -1040,7 +1044,7 @@ static MemberDef *addVariableToFile( ...@@ -1040,7 +1044,7 @@ static MemberDef *addVariableToFile(
md->setMaxInitLines(root->initLines); md->setMaxInitLines(root->initLines);
md->setMemberGroupId(root->mGrpId); md->setMemberGroupId(root->mGrpId);
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
md->setBodyDef(fd); md->setBodyDef(fd);
//if (root->mGrpId!=-1) //if (root->mGrpId!=-1)
//{ //{
...@@ -1391,7 +1395,7 @@ static void buildMemberList(Entry *root) ...@@ -1391,7 +1395,7 @@ static void buildMemberList(Entry *root)
md->setMemberSpecifiers(root->memSpec); md->setMemberSpecifiers(root->memSpec);
md->setMemberGroupId(root->mGrpId); md->setMemberGroupId(root->mGrpId);
bool ambig; bool ambig;
md->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); md->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
//md->setScopeTemplateArguments(root->tArgList); //md->setScopeTemplateArguments(root->tArgList);
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
QCString def; QCString def;
...@@ -1528,7 +1532,7 @@ static void buildMemberList(Entry *root) ...@@ -1528,7 +1532,7 @@ static void buildMemberList(Entry *root)
{ {
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
md->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); md->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
} }
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
} }
...@@ -1555,7 +1559,7 @@ static void buildMemberList(Entry *root) ...@@ -1555,7 +1559,7 @@ static void buildMemberList(Entry *root)
//md->setBody(root->body); //md->setBody(root->body);
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
md->setBodyDef(fd); md->setBodyDef(fd);
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
md->setMemberSpecifiers(root->memSpec); md->setMemberSpecifiers(root->memSpec);
...@@ -1622,7 +1626,7 @@ static void buildMemberList(Entry *root) ...@@ -1622,7 +1626,7 @@ static void buildMemberList(Entry *root)
//FileDef *fd=0; //FileDef *fd=0;
//bool ambig; //bool ambig;
//if (!root->fileName.isEmpty() && //if (!root->fileName.isEmpty() &&
// (fd=findFileDef(&inputNameDict,root->fileName,ambig)) // (fd=findFileDef(inputNameDict,root->fileName,ambig))
// ) // )
if (fd) if (fd)
{ {
...@@ -2178,7 +2182,7 @@ static void addMemberDocs(Entry *root, ...@@ -2178,7 +2182,7 @@ static void addMemberDocs(Entry *root,
{ {
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
md->setBodyDef(fd); md->setBodyDef(fd);
} }
} }
...@@ -2214,7 +2218,7 @@ static void addMemberDocs(Entry *root, ...@@ -2214,7 +2218,7 @@ static void addMemberDocs(Entry *root,
// else // else
// { // {
// bool ambig; // bool ambig;
// FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); // FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
// if (fd) // if (fd)
// { // {
// //fd->addMemberToGroup(md,root->mGrpId); // //fd->addMemberToGroup(md,root->mGrpId);
...@@ -2343,8 +2347,9 @@ static bool findUnrelatedFunction(Entry *root, ...@@ -2343,8 +2347,9 @@ static bool findUnrelatedFunction(Entry *root,
{ {
bool ambig; bool ambig;
NamespaceDef *nd=md->getNamespace(); NamespaceDef *nd=md->getNamespace();
//printf("Namespace %s\n",nd ? nd->name().data() : "<none>"); //printf("Namespace namespaceName=%s nd=%s\n",
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); // namespaceName.data(),nd ? nd->name().data() : "<none>");
FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
//printf("File %s\n",fd ? fd->name().data() : "<none>"); //printf("File %s\n",fd ? fd->name().data() : "<none>");
NamespaceList *nl = fd ? fd->getUsedNamespaces() : 0; NamespaceList *nl = fd ? fd->getUsedNamespaces() : 0;
//printf("NamespaceList %p\n",nl); //printf("NamespaceList %p\n",nl);
...@@ -2360,11 +2365,10 @@ static bool findUnrelatedFunction(Entry *root, ...@@ -2360,11 +2365,10 @@ static bool findUnrelatedFunction(Entry *root,
{ {
Debug::print(Debug::FindMembers,0,"4. Try to add member `%s' to scope `%s'\n", Debug::print(Debug::FindMembers,0,"4. Try to add member `%s' to scope `%s'\n",
md->name().data(),namespaceName.data()); md->name().data(),namespaceName.data());
//ArgumentList *al = new ArgumentList;
//stringToArgumentList(funcArgs,al);
QCString nsName = nd ? nd->name().data() : ""; QCString nsName = nd ? nd->name().data() : "";
bool matching= bool matching=
(md->argumentList()==0 && root->argList->count()==0) || (md->argumentList()==0 && root->argList->count()==0) ||
md->isVariable() || md->isTypedef() || /* in case of function pointers */
matchArguments(md->argumentList(),root->argList,0,nsName); matchArguments(md->argumentList(),root->argList,0,nsName);
if (matching) // add docs to the member if (matching) // add docs to the member
{ {
...@@ -2372,7 +2376,6 @@ static bool findUnrelatedFunction(Entry *root, ...@@ -2372,7 +2376,6 @@ static bool findUnrelatedFunction(Entry *root,
addMemberDocs(root,md,decl,root->argList,FALSE); addMemberDocs(root,md,decl,root->argList,FALSE);
found=TRUE; found=TRUE;
} }
//delete al;
} }
md=mn->next(); md=mn->next();
} }
...@@ -2851,7 +2854,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -2851,7 +2854,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
ClassDef *tcd=0; ClassDef *tcd=0;
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
NamespaceDef *nd=0; NamespaceDef *nd=0;
if (!namespaceName.isEmpty()) nd=namespaceDict[namespaceName]; if (!namespaceName.isEmpty()) nd=namespaceDict[namespaceName];
tcd = findClassDefinition(fd,nd,scopeName,classTempList); tcd = findClassDefinition(fd,nd,scopeName,classTempList);
...@@ -2935,7 +2938,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -2935,7 +2938,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
// TODO: match loop for all possible scopes // TODO: match loop for all possible scopes
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
// list of namespaces using in the file that this member definition is part of // list of namespaces using in the file that this member definition is part of
NamespaceList *nl = fd ? fd->getUsedNamespaces() : 0; NamespaceList *nl = fd ? fd->getUsedNamespaces() : 0;
...@@ -3034,7 +3037,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3034,7 +3037,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
md->setBodyDef(fd); md->setBodyDef(fd);
md->setMemberSpecifiers(root->memSpec); md->setMemberSpecifiers(root->memSpec);
md->setMemberGroupId(root->mGrpId); md->setMemberGroupId(root->mGrpId);
...@@ -3136,7 +3139,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3136,7 +3139,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
{ {
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
FileDef *fd=findFileDef(&inputNameDict,root->fileName,ambig); FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig);
md->setBodyDef(fd); md->setBodyDef(fd);
} }
...@@ -3355,7 +3358,7 @@ static void findEnums(Entry *root) ...@@ -3355,7 +3358,7 @@ static void findEnums(Entry *root)
else // found a global enum else // found a global enum
{ {
bool ambig; bool ambig;
fd=findFileDef(&inputNameDict,root->fileName,ambig); fd=findFileDef(inputNameDict,root->fileName,ambig);
mnd=&functionNameDict; mnd=&functionNameDict;
mnl=&functionNameList; mnl=&functionNameList;
isGlobal=TRUE; isGlobal=TRUE;
...@@ -3372,7 +3375,7 @@ static void findEnums(Entry *root) ...@@ -3372,7 +3375,7 @@ static void findEnums(Entry *root)
//md->setDefLine(root->startLine); //md->setDefLine(root->startLine);
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
md->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); md->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
//printf("Enum %s definition at line %d of %s: protection=%d\n", //printf("Enum %s definition at line %d of %s: protection=%d\n",
// root->name.data(),root->bodyLine,root->fileName.data(),root->protection); // root->name.data(),root->bodyLine,root->fileName.data(),root->protection);
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
...@@ -4046,7 +4049,7 @@ static void findDefineDocumentation(Entry *root) ...@@ -4046,7 +4049,7 @@ static void findDefineDocumentation(Entry *root)
md->setBriefDescription(root->brief); md->setBriefDescription(root->brief);
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
md->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); md->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
md->setMaxInitLines(root->initLines); md->setMaxInitLines(root->initLines);
if (root->mGrpId!=-1) md->setMemberGroupId(root->mGrpId); if (root->mGrpId!=-1) md->setMemberGroupId(root->mGrpId);
...@@ -4084,7 +4087,7 @@ static void findDefineDocumentation(Entry *root) ...@@ -4084,7 +4087,7 @@ static void findDefineDocumentation(Entry *root)
md->setBriefDescription(root->brief); md->setBriefDescription(root->brief);
md->setBodySegment(root->bodyLine,root->endBodyLine); md->setBodySegment(root->bodyLine,root->endBodyLine);
bool ambig; bool ambig;
md->setBodyDef(findFileDef(&inputNameDict,root->fileName,ambig)); md->setBodyDef(findFileDef(inputNameDict,root->fileName,ambig));
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
//if (root->mGrpId!=-1 && md->getMemberGroup()==0) //if (root->mGrpId!=-1 && md->getMemberGroup()==0)
//{ //{
...@@ -5163,6 +5166,11 @@ int main(int argc,char **argv) ...@@ -5163,6 +5166,11 @@ int main(int argc,char **argv)
substituteEnvironmentVars(); substituteEnvironmentVars();
checkConfig(); checkConfig();
inputNameDict = new FileNameDict(1009);
includeNameDict = new FileNameDict(1009);
exampleNameDict = new FileNameDict(1009);
imageNameDict = new FileNameDict(257);
/************************************************************************** /**************************************************************************
* Initialize some global constants * Initialize some global constants
**************************************************************************/ **************************************************************************/
...@@ -5214,7 +5222,7 @@ int main(int argc,char **argv) ...@@ -5214,7 +5222,7 @@ int main(int argc,char **argv)
s=Config::includePath.first(); s=Config::includePath.first();
while (s) while (s)
{ {
readFileOrDirectory(s,0,&includeNameDict,0,&Config::filePatternList, readFileOrDirectory(s,0,includeNameDict,0,&Config::filePatternList,
&Config::excludePatternList,0,0); &Config::excludePatternList,0,0);
s=Config::includePath.next(); s=Config::includePath.next();
} }
...@@ -5223,7 +5231,7 @@ int main(int argc,char **argv) ...@@ -5223,7 +5231,7 @@ int main(int argc,char **argv)
s=Config::examplePath.first(); s=Config::examplePath.first();
while (s) while (s)
{ {
readFileOrDirectory(s,0,&exampleNameDict,0,&Config::examplePatternList, readFileOrDirectory(s,0,exampleNameDict,0,&Config::examplePatternList,
0,0,0); 0,0,0);
s=Config::examplePath.next(); s=Config::examplePath.next();
} }
...@@ -5232,7 +5240,7 @@ int main(int argc,char **argv) ...@@ -5232,7 +5240,7 @@ int main(int argc,char **argv)
s=Config::imagePath.first(); s=Config::imagePath.first();
while (s) while (s)
{ {
readFileOrDirectory(s,0,&imageNameDict,0,0, readFileOrDirectory(s,0,imageNameDict,0,0,
0,0,0); 0,0,0);
s=Config::imagePath.next(); s=Config::imagePath.next();
} }
...@@ -5252,7 +5260,7 @@ int main(int argc,char **argv) ...@@ -5252,7 +5260,7 @@ int main(int argc,char **argv)
while (s) while (s)
{ {
inputSize+=readFileOrDirectory(s,&inputNameList, inputSize+=readFileOrDirectory(s,&inputNameList,
&inputNameDict,&excludeNameDict, inputNameDict,&excludeNameDict,
&Config::filePatternList, &Config::filePatternList,
&Config::excludePatternList, &Config::excludePatternList,
&inputFiles,0); &inputFiles,0);
......
...@@ -109,10 +109,10 @@ extern ClassDef unrelatedClass; ...@@ -109,10 +109,10 @@ extern ClassDef unrelatedClass;
extern QTextStream tagFile; extern QTextStream tagFile;
extern SectionDict sectionDict; extern SectionDict sectionDict;
extern FileNameList inputNameList; extern FileNameList inputNameList;
extern FileNameDict includeNameDict; extern FileNameDict *includeNameDict;
extern FileNameDict exampleNameDict; extern FileNameDict *exampleNameDict;
extern FileNameDict inputNameDict; extern FileNameDict *inputNameDict;
extern FileNameDict imageNameDict; extern FileNameDict *imageNameDict;
//extern FileList includeFiles; //extern FileList includeFiles;
extern StringDict typedefDict; extern StringDict typedefDict;
extern GroupList groupList; extern GroupList groupList;
......
...@@ -213,7 +213,7 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -213,7 +213,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
while (fd) while (fd)
{ {
ol.startMemberItem(0); ol.startMemberItem(0);
ol.docify("file"); ol.docify("file ");
ol.insertMemberAlign(); ol.insertMemberAlign();
ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,fd->name()); ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,fd->name());
ol.endMemberItem(FALSE); ol.endMemberItem(FALSE);
......
...@@ -1302,6 +1302,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1302,6 +1302,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
// write reference to the source // write reference to the source
writeSourceDef(ol,cname); writeSourceDef(ol,cname);
writeSourceRefs(ol,cname); writeSourceRefs(ol,cname);
writeInlineCode(ol,cname);
ol.endIndent(); ol.endIndent();
// enable LaTeX again // enable LaTeX again
......
...@@ -99,7 +99,7 @@ static void setFileName(const char *name) ...@@ -99,7 +99,7 @@ static void setFileName(const char *name)
{ {
bool ambig; bool ambig;
g_yyFileName=name; g_yyFileName=name;
g_yyFileDef=findFileDef(&inputNameDict,g_yyFileName,ambig); g_yyFileDef=findFileDef(inputNameDict,g_yyFileName,ambig);
} }
static void incrLevel() static void incrLevel()
...@@ -858,7 +858,7 @@ static void readIncludeFile(const QCString &inc) ...@@ -858,7 +858,7 @@ static void readIncludeFile(const QCString &inc)
if (oldFileDef) if (oldFileDef)
{ {
bool ambig; bool ambig;
FileDef *fd = findFileDef(&inputNameDict,incFileName,ambig); FileDef *fd = findFileDef(inputNameDict,incFileName,ambig);
// add include dependency to the file in which the #include was found // add include dependency to the file in which the #include was found
oldFileDef->addIncludeDependency(fd,incFileName,localInclude); oldFileDef->addIncludeDependency(fd,incFileName,localInclude);
} }
......
...@@ -137,6 +137,8 @@ static bool inPreBlock; ...@@ -137,6 +137,8 @@ static bool inPreBlock;
static bool inPostBlock; static bool inPostBlock;
static bool inInvarBlock; static bool inInvarBlock;
static bool inWarningBlock; static bool inWarningBlock;
static bool inRemarkBlock;
static bool inAttentionBlock;
static bool inParBlock; static bool inParBlock;
static bool firstSeeArg; static bool firstSeeArg;
static char afterDocTerminator; static char afterDocTerminator;
...@@ -223,6 +225,8 @@ static void initParser() ...@@ -223,6 +225,8 @@ static void initParser()
inPostBlock = FALSE; inPostBlock = FALSE;
inInvarBlock = FALSE; inInvarBlock = FALSE;
inWarningBlock = FALSE; inWarningBlock = FALSE;
inRemarkBlock = FALSE;
inAttentionBlock = FALSE;
inParBlock = FALSE; inParBlock = FALSE;
firstSeeArg = FALSE; firstSeeArg = FALSE;
} }
...@@ -400,7 +404,7 @@ static void includeFile(OutputList &ol,const char *fileName,bool quiet) ...@@ -400,7 +404,7 @@ static void includeFile(OutputList &ol,const char *fileName,bool quiet)
//FileInfo *f; //FileInfo *f;
bool ambig; bool ambig;
FileDef *fd; FileDef *fd;
if ((fd=findFileDef(&exampleNameDict,fileName,ambig))) if ((fd=findFileDef(exampleNameDict,fileName,ambig)))
{ {
currentIncludeFile=fileToString(fd->absFilePath()); currentIncludeFile=fileToString(fd->absFilePath());
includeFileOffset=0; includeFileOffset=0;
...@@ -419,7 +423,7 @@ static void includeFile(OutputList &ol,const char *fileName,bool quiet) ...@@ -419,7 +423,7 @@ static void includeFile(OutputList &ol,const char *fileName,bool quiet)
QCString text; QCString text;
text.sprintf("Include file name %s is ambigious.\n",fileName); text.sprintf("Include file name %s is ambigious.\n",fileName);
text+="Possible candidates:\n"; text+="Possible candidates:\n";
text+=showFileDefMatches(&exampleNameDict,fileName); text+=showFileDefMatches(exampleNameDict,fileName);
warn(yyFileName,yyLineNr,text); warn(yyFileName,yyLineNr,text);
} }
else else
...@@ -436,7 +440,7 @@ static void verbIncludeFile(OutputList &ol,const char *name) ...@@ -436,7 +440,7 @@ static void verbIncludeFile(OutputList &ol,const char *name)
//FileInfo *f; //FileInfo *f;
bool ambig; bool ambig;
FileDef *fd; FileDef *fd;
if ((fd=findFileDef(&exampleNameDict,name,ambig))) if ((fd=findFileDef(exampleNameDict,name,ambig)))
{ {
ol.startCodeFragment(); ol.startCodeFragment();
ol.codify(fileToString(fd->absFilePath())); ol.codify(fileToString(fd->absFilePath()));
...@@ -447,7 +451,7 @@ static void verbIncludeFile(OutputList &ol,const char *name) ...@@ -447,7 +451,7 @@ static void verbIncludeFile(OutputList &ol,const char *name)
QCString text; QCString text;
text.sprintf("Include file name %s is ambigious.\n",name); text.sprintf("Include file name %s is ambigious.\n",name);
text+=("Possible candidates:\n"); text+=("Possible candidates:\n");
text+=showFileDefMatches(&exampleNameDict,name); text+=showFileDefMatches(exampleNameDict,name);
warn(yyFileName,yyLineNr,text); warn(yyFileName,yyLineNr,text);
} }
else else
...@@ -665,7 +669,8 @@ static void tryEndItemList() ...@@ -665,7 +669,8 @@ static void tryEndItemList()
static bool inBlock() static bool inBlock()
{ {
return inParamBlock || inRetValBlock || inSeeBlock || inReturnBlock || inAuthorBlock || return inParamBlock || inRetValBlock || inSeeBlock || inReturnBlock || inAuthorBlock ||
inVersionBlock || inDateBlock || inWarningBlock || inBugBlock || inNoteBlock || inVersionBlock || inDateBlock || inWarningBlock || inRemarkBlock ||
inAttentionBlock || inBugBlock || inNoteBlock ||
inParBlock || inExceptionBlock || inDeprecatedBlock || inPreBlock || inParBlock || inExceptionBlock || inDeprecatedBlock || inPreBlock ||
inPostBlock || inInvarBlock; inPostBlock || inInvarBlock;
} }
...@@ -681,7 +686,7 @@ static void endBlock() ...@@ -681,7 +686,7 @@ static void endBlock()
inParamBlock=inRetValBlock=inSeeBlock=inReturnBlock=inAuthorBlock= inParamBlock=inRetValBlock=inSeeBlock=inReturnBlock=inAuthorBlock=
inVersionBlock=inDateBlock=inBugBlock=inNoteBlock=inWarningBlock= inVersionBlock=inDateBlock=inBugBlock=inNoteBlock=inWarningBlock=
inParBlock=inExceptionBlock=inDeprecatedBlock=inPreBlock=inPostBlock= inParBlock=inExceptionBlock=inDeprecatedBlock=inPreBlock=inPostBlock=
inInvarBlock=FALSE; inInvarBlock=inRemarkBlock=inAttentionBlock=FALSE;
} }
static void addSection() static void addSection()
...@@ -786,7 +791,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type) ...@@ -786,7 +791,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
QCString result; QCString result;
bool ambig; bool ambig;
FileDef *fd; FileDef *fd;
if ((fd=findFileDef(&imageNameDict,fileName,ambig))) if ((fd=findFileDef(imageNameDict,fileName,ambig)))
{ {
QFile inImage(fd->absFilePath().data()); QFile inImage(fd->absFilePath().data());
if (inImage.open(IO_ReadOnly)) if (inImage.open(IO_ReadOnly))
...@@ -834,7 +839,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type) ...@@ -834,7 +839,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
QCString text; QCString text;
text.sprintf("Warning: image file name %s is ambigious.\n",fileName); text.sprintf("Warning: image file name %s is ambigious.\n",fileName);
text+="Possible candidates:\n"; text+="Possible candidates:\n";
text+=showFileDefMatches(&imageNameDict,fileName); text+=showFileDefMatches(imageNameDict,fileName);
warn(yyFileName,yyLineNr,text); warn(yyFileName,yyLineNr,text);
} }
else else
...@@ -1317,7 +1322,6 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1317,7 +1322,6 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (inBlock()) endBlock(); if (inBlock()) endBlock();
inWarningBlock=TRUE; inWarningBlock=TRUE;
outDoc->startDescList(); outDoc->startDescList();
//outDoc->writeBoldString("Warning: ");
outDoc->startBold(); outDoc->startBold();
scanString(theTranslator->trWarning()+": "); scanString(theTranslator->trWarning()+": ");
outDoc->endBold(); outDoc->endBold();
...@@ -1329,6 +1333,42 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1329,6 +1333,42 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeDescItem(); outDoc->writeDescItem();
} }
} }
<DocScan>{CMD}"remark"[s]?/{BN} {
endArgumentList();
if (!inRemarkBlock)
{
if (inBlock()) endBlock();
inRemarkBlock=TRUE;
outDoc->startDescList();
outDoc->startBold();
scanString(theTranslator->trRemarks()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
else
{
outDoc->writeDescItem();
}
}
<DocScan>{CMD}"attention"[s]?/{BN} {
endArgumentList();
if (!inAttentionBlock)
{
if (inBlock()) endBlock();
inAttentionBlock=TRUE;
outDoc->startDescList();
outDoc->startBold();
scanString(theTranslator->trAttention()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
else
{
outDoc->writeDescItem();
}
}
<DocScan>{CMD}"bug"[s]?/{BN} { <DocScan>{CMD}"bug"[s]?/{BN} {
endArgumentList(); endArgumentList();
if (!inBugBlock) if (!inBugBlock)
...@@ -1473,6 +1513,22 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1473,6 +1513,22 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeDescItem(); outDoc->writeDescItem();
} }
} }
<DocScan>"$"[a-zA-Z_0-9]+":"[^\n\$]+"$" { // RCS tag
QCString tagName(&yytext[1]);
int i=tagName.find(':');
tagName=tagName.left(i);
QCString tagText=&yytext[i+2];
tagText=tagText.left(tagText.length()-1);
endArgumentList();
if (inBlock()) endBlock();
outDoc->startDescList();
outDoc->startBold();
scanString(tagName+": ");
outDoc->endBold();
outDoc->endDescTitle();
scanString(tagText);
outDoc->endDescList();
}
<DocScan>{CMD}"author"/{BN} { <DocScan>{CMD}"author"/{BN} {
endArgumentList(); endArgumentList();
if (!inAuthorBlock) if (!inAuthorBlock)
...@@ -2417,6 +2473,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -2417,6 +2473,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
BEGIN( FindMembers ) ; BEGIN( FindMembers ) ;
} }
<Operator>[^(] { <Operator>[^(] {
lineCount();
current->name += *yytext ; current->name += *yytext ;
} }
<Operator>"<>" { /* skip guided templ specifiers */ } <Operator>"<>" { /* skip guided templ specifiers */ }
......
...@@ -67,7 +67,7 @@ static void addFile(const char *name) ...@@ -67,7 +67,7 @@ static void addFile(const char *name)
//printf("adding file %s tagName=`%s'\n",name,tagName.data()); //printf("adding file %s tagName=`%s'\n",name,tagName.data());
fd = new FileDef(0,name,tagName); fd = new FileDef(0,name,tagName);
FileName *mn; FileName *mn;
if ((mn=inputNameDict[name])) if ((mn=inputNameDict->find(name)))
{ {
mn->append(fd); mn->append(fd);
} }
...@@ -76,7 +76,7 @@ static void addFile(const char *name) ...@@ -76,7 +76,7 @@ static void addFile(const char *name)
mn = new FileName(name,name); mn = new FileName(name,name);
mn->append(fd); mn->append(fd);
inputNameList.inSort(mn); inputNameList.inSort(mn);
inputNameDict.insert(name,mn); inputNameDict->insert(name,mn);
} }
cd = 0; cd = 0;
nd = 0; nd = 0;
......
...@@ -885,7 +885,14 @@ class Translator ...@@ -885,7 +885,14 @@ class Translator
{ {
return "Referenced by"; return "Referenced by";
} }
virtual QCString trRemarks()
{
return "Remarks";
}
virtual QCString trAttention()
{
return "Attention";
}
}; };
#endif #endif
...@@ -1954,7 +1954,7 @@ bool generateLink(OutputList &ol,const char *clName, ...@@ -1954,7 +1954,7 @@ bool generateLink(OutputList &ol,const char *clName,
ol.endTextLink(); ol.endTextLink();
return TRUE; return TRUE;
} }
else if ((fd=findFileDef(&inputNameDict,linkRef,ambig)) else if ((fd=findFileDef(inputNameDict,linkRef,ambig))
&& fd->isLinkable()) && fd->isLinkable())
{ {
// link to documented input file // link to documented input file
...@@ -1973,7 +1973,7 @@ void generateFileRef(OutputList &ol,const char *name,const char *text) ...@@ -1973,7 +1973,7 @@ void generateFileRef(OutputList &ol,const char *name,const char *text)
//FileInfo *fi; //FileInfo *fi;
FileDef *fd; FileDef *fd;
bool ambig; bool ambig;
if ((fd=findFileDef(&inputNameDict,name,ambig)) && if ((fd=findFileDef(inputNameDict,name,ambig)) &&
fd->isLinkable()) fd->isLinkable())
// link to documented input file // link to documented input file
ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,linkText); ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,linkText);
......
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