summaryrefslogtreecommitdiffstats
path: root/tests/auto/qtipc/lackey
ModeNameSize
-rw-r--r--lackey.pro287logstatsplain
-rw-r--r--main.cpp8104logstatsplain
d---------scripts392logstatsplain
ubject'>Release-1.3.3-20030915
Diffstat (limited to 'src')
-rw-r--r--src/cmdmapper.cpp2
-rw-r--r--src/cmdmapper.h4
-rw-r--r--src/compound.xsd1
-rw-r--r--src/compound_xsd.h1
-rw-r--r--src/docparser.cpp16
-rw-r--r--src/docparser.h4
-rw-r--r--src/doctokenizer.h1
-rw-r--r--src/doctokenizer.l19
-rw-r--r--src/dot.cpp36
-rw-r--r--src/htmldocvisitor.cpp62
-rw-r--r--src/htmldocvisitor.h1
-rw-r--r--src/latexdocvisitor.cpp134
-rw-r--r--src/latexdocvisitor.h3
-rw-r--r--src/latexgen.cpp4
-rw-r--r--src/mandocvisitor.cpp1
-rw-r--r--src/perlmodgen.cpp1
-rw-r--r--src/printdocvisitor.h2
-rw-r--r--src/rtfdocvisitor.cpp57
-rw-r--r--src/rtfdocvisitor.h1
-rw-r--r--src/scanner.l70
-rw-r--r--src/translator_fr.h56
-rw-r--r--src/xmldocvisitor.cpp5
22 files changed, 377 insertions, 104 deletions
diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp
index f06c6f1..578af8c 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -101,6 +101,8 @@ CommandMap cmdMap[] =
{ "%", CMD_PERCENT },
{ "~", CMD_LANGSWITCH },
{ "_internalref", CMD_INTERNALREF },
+ { "dot", CMD_DOT },
+ { "enddot", CMD_ENDDOT },
{ 0, 0 }
};
diff --git a/src/cmdmapper.h b/src/cmdmapper.h
index 7623348..44e77ae 100644
--- a/src/cmdmapper.h
+++ b/src/cmdmapper.h
@@ -101,7 +101,9 @@ enum CommandType
CMD_VERSION = 67 | SIMPLESECT_BIT,
CMD_WARNING = 68 | SIMPLESECT_BIT,
CMD_XREFITEM = 69 | SIMPLESECT_BIT,
- CMD_XMLONLY = 70
+ CMD_XMLONLY = 70,
+ CMD_DOT = 71,
+ CMD_ENDDOT = 72
};
enum HtmlTagType
diff --git a/src/compound.xsd b/src/compound.xsd
index 4937ff0..925f29e 100644
--- a/src/compound.xsd
+++ b/src/compound.xsd
@@ -313,6 +313,7 @@
<xsd:element name="small" type="docMarkupType" />
<xsd:element name="htmlonly" type="xsd:string" />
<xsd:element name="latexonly" type="xsd:string" />
+ <xsd:element name="dot" type="xsd:string" />
<xsd:element name="anchor" type="docAnchorType" />
<xsd:element name="formula" type="docFormulaType" />
<xsd:element name="ref" type="docRefTextType" />
diff --git a/src/compound_xsd.h b/src/compound_xsd.h
index 6ec95e1..f434aad 100644
--- a/src/compound_xsd.h
+++ b/src/compound_xsd.h
@@ -313,6 +313,7 @@
" <xsd:element name=\"small\" type=\"docMarkupType\" />\n"
" <xsd:element name=\"htmlonly\" type=\"xsd:string\" />\n"
" <xsd:element name=\"latexonly\" type=\"xsd:string\" />\n"
+" <xsd:element name=\"dot\" type=\"xsd:string\" />\n"
" <xsd:element name=\"anchor\" type=\"docAnchorType\" />\n"
" <xsd:element name=\"formula\" type=\"docFormulaType\" />\n"
" <xsd:element name=\"ref\" type=\"docRefTextType\" />\n"
diff --git a/src/docparser.cpp b/src/docparser.cpp
index a66f659..048448d 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -3686,12 +3686,22 @@ int DocPara::handleCommand(const QString &cmdName)
doctokenizerYYsetStatePara();
}
break;
+ case CMD_DOT:
+ {
+ doctokenizerYYsetStateDot();
+ retval = doctokenizerYYlex();
+ m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::Dot,g_isExample,g_exampleName));
+ if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: dot section ended without end marker");
+ doctokenizerYYsetStatePara();
+ }
+ break;
case CMD_ENDCODE:
case CMD_ENDHTMLONLY:
case CMD_ENDLATEXONLY:
case CMD_ENDXMLONLY:
case CMD_ENDLINK:
case CMD_ENDVERBATIM:
+ case CMD_ENDDOT:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: unexpected command %s",g_token->name.data());
break;
case CMD_PARAM:
@@ -4585,6 +4595,7 @@ int DocSection::parse()
void DocText::parse()
{
+ DBG(("DocText::parse() start\n"));
g_nodeStack.push(this);
doctokenizerYYsetStateText();
@@ -4658,6 +4669,7 @@ void DocText::parse()
DocNode *n = g_nodeStack.pop();
ASSERT(n==this);
+ DBG(("DocText::parse() end\n"));
}
@@ -4665,6 +4677,7 @@ void DocText::parse()
void DocRoot::parse()
{
+ DBG(("DocRoot::parse() start\n"));
g_nodeStack.push(this);
doctokenizerYYsetStatePara();
int retval=0;
@@ -4717,7 +4730,7 @@ void DocRoot::parse()
}
else
{
- warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Invalid anchor id `%s'",g_token->sectionId.data());
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Invalid anchor id `%s'; ignoring section",g_token->sectionId.data());
retval = 0;
}
}
@@ -4734,6 +4747,7 @@ void DocRoot::parse()
DocNode *n = g_nodeStack.pop();
ASSERT(n==this);
+ DBG(("DocRoot::parse() end\n"));
}
//--------------------------------------------------------------------------
diff --git a/src/docparser.h b/src/docparser.h
index 6b79220..dc2b890 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -349,7 +349,7 @@ class DocWhiteSpace : public DocNode
class DocVerbatim : public DocNode
{
public:
- enum Type { Code, HtmlOnly, LatexOnly, XmlOnly, Verbatim };
+ enum Type { Code, HtmlOnly, LatexOnly, XmlOnly, Verbatim, Dot };
DocVerbatim(DocNode *parent,const QString &context,
const QString &text, Type t,bool isExample,
const QString &exampleFile) :
@@ -373,6 +373,7 @@ class DocVerbatim : public DocNode
QString m_exampleFile;
};
+
/*! @brief Node representing an included text block from file */
class DocInclude : public DocNode
{
@@ -595,7 +596,6 @@ class DocDotFile : public CompAccept<DocDotFile>, public DocNode
QString height() const { return m_height; }
DocNode *parent() const { return m_parent; }
void accept(DocVisitor *v) { CompAccept<DocDotFile>::accept(this,v); }
-
private:
DocNode *m_parent;
QString m_name;
diff --git a/src/doctokenizer.h b/src/doctokenizer.h
index 6c62815..ce2532d 100644
--- a/src/doctokenizer.h
+++ b/src/doctokenizer.h
@@ -123,6 +123,7 @@ void doctokenizerYYsetStateHtmlOnly();
void doctokenizerYYsetStateLatexOnly();
void doctokenizerYYsetStateXmlOnly();
void doctokenizerYYsetStateVerbatim();
+void doctokenizerYYsetStateDot();
void doctokenizerYYsetStateParam();
void doctokenizerYYsetStateXRefItem();
void doctokenizerYYsetStateFile();
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index 1e4b2d1..81e2afa 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -327,6 +327,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
%x St_LatexOnly
%x St_XmlOnly
%x St_Verbatim
+%x St_Dot
%x St_Param
%x St_XRefItem
%x St_XRefItem2
@@ -525,6 +526,14 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
<St_Verbatim>. { /* Verbatim text */
g_token->verb+=yytext;
}
+<St_Dot>{CMD}"enddot" {
+ return RetVal_OK;
+ }
+<St_Dot>[^\\@\n]+ |
+<St_Dot>\n |
+<St_Dot>. { /* dot text */
+ g_token->verb+=yytext;
+ }
<St_Title>"\"" { // quoted title
BEGIN(St_TitleQ);
}
@@ -746,6 +755,10 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
g_endMarker="endverbatim";
BEGIN(St_SecSkip);
}
+<St_Sections>{CMD}"dot" {
+ g_endMarker="enddot";
+ BEGIN(St_SecSkip);
+ }
<St_Sections>{CMD}"htmlonly" {
g_endMarker="endhtmlonly";
BEGIN(St_SecSkip);
@@ -885,6 +898,12 @@ void doctokenizerYYsetStateVerbatim()
BEGIN(St_Verbatim);
}
+void doctokenizerYYsetStateDot()
+{
+ g_token->verb="";
+ BEGIN(St_Dot);
+}
+
void doctokenizerYYsetStateParam()
{
BEGIN(St_Param);
diff --git a/src/dot.cpp b/src/dot.cpp
index a9585bf..d2f852a 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -26,6 +26,7 @@
#include "language.h"
#include "scanner.h"
#include "defargs.h"
+#include "docparser.h"
#include <qdir.h>
#include <qfile.h>
@@ -96,6 +97,8 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
const int maxLineLen=1024;
char buf[maxLineLen];
char url[maxLineLen];
+ char ref[maxLineLen];
+ bool isRef = FALSE;
int x1,y1,x2,y2;
while (!f.atEnd())
{
@@ -106,6 +109,13 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
{
// obtain the url and the coordinates in the order used by graphviz-1.5
sscanf(buf,"rect %s %d,%d %d,%d",url,&x1,&y1,&x2,&y2);
+
+ if ( strcmp(url,"\\ref") == 0 )
+ {
+ isRef = TRUE;
+ sscanf(buf,"rect %s %s %d,%d %d,%d",ref,url,&x1,&y1,&x2,&y2);
+ }
+
// later versions of graphviz corrected the y coordinate order
// the rule is that y2>=y1, so test and switch if needed
if (y2<y1)
@@ -124,9 +134,27 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
}
if (urlOnly)
{
- t << "<area href=\"" << url << "\" shape=\"rect\" coords=\""
- << x1 << "," << y1 << "," << x2 << "," << y2 << "\""
- << " alt=\"\">" << endl;
+ t << "<area href=\"";
+
+ if ( isRef )
+ {
+ // handle doxygen \ref tag URL reference
+ QCString *dest;
+ DocRef *df = new DocRef( (DocNode*) 0, url );
+ if (!df->ref().isEmpty())
+ {
+ if ((dest=Doxygen::tagDestinationDict[df->ref()])) t << *dest << "/";
+ }
+ if (!df->file().isEmpty()) t << df->file() << Doxygen::htmlFileExtension;
+ if (!df->anchor().isEmpty()) t << "#" << df->anchor();
+ }
+ else
+ {
+ t << url;
+ }
+ t << "\" shape=\"rect\" coords=\""
+ << x1 << "," << y1 << "," << x2 << "," << y2 << "\""
+ << " alt=\"\">" << endl;
}
else // name and external reference are separated by a $
{
@@ -2220,7 +2248,7 @@ QString getDotImageMapFromFile(const QString& inFile, const QString& outDir)
QTextOStream tmpout(&result);
convertMapFile(tmpout, outFile, TRUE);
QDir().remove(outFile);
- //printf("result=%s\n",result.data());
+// printf("result=%s\n",result.data());
QDir::setCurrent(oldDir);
return result;
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index 23c7a6d..9db76aa 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -16,6 +16,7 @@
*
*/
+#include <qdir.h>
#include "htmldocvisitor.h"
#include "docparser.h"
#include "language.h"
@@ -180,6 +181,7 @@ void HtmlDocVisitor::visit(DocStyleChange *s)
}
}
+
void HtmlDocVisitor::visit(DocVerbatim *s)
{
if (m_hide) return;
@@ -202,6 +204,31 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
case DocVerbatim::XmlOnly:
/* nothing */
break;
+
+ case DocVerbatim::Dot:
+ {
+ static int dotindex = 1;
+ QCString fileName(4096);
+
+ fileName.sprintf("%s%d",
+ (Config_getString("HTML_OUTPUT")+"/inline_dotgraph_").data(),
+ dotindex++
+ );
+ QFile file(fileName);
+ if (!file.open(IO_WriteOnly))
+ {
+ err("Could not open file %s for writing\n",fileName.data());
+ }
+ file.writeBlock( s->text(), s->text().length() );
+ file.close();
+
+ m_t << "<div align=\"center\">" << endl;
+ writeDotFile(fileName);
+ m_t << "</div>" << endl;
+
+ file.remove();
+ }
+ break;
}
}
@@ -701,22 +728,8 @@ void HtmlDocVisitor::visitPost(DocImage *img)
void HtmlDocVisitor::visitPre(DocDotFile *df)
{
if (m_hide) return;
- QString baseName=df->file();
- int i;
- if ((i=baseName.findRev('/'))!=-1)
- {
- baseName=baseName.right(baseName.length()-i-1);
- }
- QString outDir = Config_getString("HTML_OUTPUT");
- writeDotGraphFromFile(df->file(),outDir,baseName,BITMAP);
+ writeDotFile(df->file());
m_t << "<div align=\"center\">" << endl;
- QString mapName = baseName+".map";
- QString mapFile = df->file()+".map";
- m_t << "<img src=\"" << baseName << "."
- << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\""
- << baseName << "\" border=\"0\" usemap=\"#" << mapName << "\">" << endl;
- QString imap = getDotImageMapFromFile(df->file(),outDir);
- m_t << "<map name=\"" << mapName << "\">" << imap << "</map>" << endl;
if (df->hasCaption())
{
m_t << "<p><strong>";
@@ -1000,3 +1013,22 @@ void HtmlDocVisitor::popEnabled()
delete v;
}
+void HtmlDocVisitor::writeDotFile(const QString &fileName)
+{
+ QString baseName=fileName;
+ int i;
+ if ((i=baseName.findRev('/'))!=-1)
+ {
+ baseName=baseName.right(baseName.length()-i-1);
+ }
+ QString outDir = Config_getString("HTML_OUTPUT");
+ writeDotGraphFromFile(fileName,outDir,baseName,BITMAP);
+ QString mapName = baseName+".map";
+ QString mapFile = fileName+".map";
+ m_t << "<img src=\"" << baseName << "."
+ << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\""
+ << baseName << "\" border=\"0\" usemap=\"#" << mapName << "\">" << endl;
+ QString imap = getDotImageMapFromFile(fileName,outDir);
+ m_t << "<map name=\"" << mapName << "\">" << imap << "</map>" << endl;
+}
+
diff --git a/src/htmldocvisitor.h b/src/htmldocvisitor.h