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);
......
This diff is collapsed.
...@@ -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