Commit 2b7214ab authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.5.7.1

parent 7b38eb9f
DOXYGEN Version 1.5.7
DOXYGEN Version 1.5.7.1
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (28 September 2008)
Dimitri van Heesch (04 October 2008)
......@@ -2,6 +2,8 @@
# cd qtools ; $(MAKE)
# cd src ; $(MAKE)
DESTDIR =
clean: FORCE
cd examples ; $(MAKE) clean
cd doc ; $(MAKE) clean
......@@ -53,25 +55,25 @@ DATE=$(shell date "+%B %Y")
MAN1DIR = man/man1
install: doxywizard_install
$(INSTTOOL) -d $(INSTALL)/bin
$(INSTTOOL) -m 755 bin/doxygen $(INSTALL)/bin
$(INSTTOOL) -m 755 bin/doxytag $(INSTALL)/bin
$(INSTTOOL) -d $(INSTALL)/$(MAN1DIR)
$(INSTTOOL) -d $(DESTDIR)/$(INSTALL)/bin
$(INSTTOOL) -m 755 bin/doxygen $(DESTDIR)/$(INSTALL)/bin
$(INSTTOOL) -m 755 bin/doxytag $(DESTDIR)/$(INSTALL)/bin
$(INSTTOOL) -d $(DESTDIR)/$(INSTALL)/$(MAN1DIR)
cat doc/doxygen.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxygen.1
$(INSTTOOL) -m 644 doxygen.1 $(INSTALL)/$(MAN1DIR)/doxygen.1
$(INSTTOOL) -m 644 doxygen.1 $(DESTDIR)/$(INSTALL)/$(MAN1DIR)/doxygen.1
rm doxygen.1
cat doc/doxytag.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxytag.1
$(INSTTOOL) -m 644 doxytag.1 $(INSTALL)/$(MAN1DIR)/doxytag.1
$(INSTTOOL) -m 644 doxytag.1 $(DESTDIR)/$(INSTALL)/$(MAN1DIR)/doxytag.1
rm doxytag.1
install_docs:
$(INSTTOOL) -d $(DOCDIR)
$(INSTTOOL) -d $(DESTDIR)/$(DOCDIR)
$(MAKE) -C examples
$(MAKE) -C doc
$(MAKE) -C latex
$(INSTTOOL) -m 644 latex/doxygen_manual.pdf $(DOCDIR)
cp -r examples $(DOCDIR)
cp -r html $(DOCDIR)
$(INSTTOOL) -m 644 latex/doxygen_manual.pdf $(DESTDIR)/$(DOCDIR)
cp -r examples $(DESTDIR)/$(DOCDIR)
cp -r html $(DESTDIR)/$(DOCDIR)
docs: FORCE
cd examples ; $(MAKE)
......
DOXYGEN Version 1.5.7
DOXYGEN Version 1.5.7.1
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (28 September 2008)
Dimitri van Heesch (dimitri@stack.nl) (04 October 2008)
......@@ -49,12 +49,18 @@ QCString getResourcePath()
void setDotPath()
{
Config_getString("DOT_PATH")=getResourcePath();
// TODO: enable this if we ship dot with doxygen again...
// Config_getString("DOT_PATH")=getResourcePath();
}
void setMscgenPath()
bool setMscgenPath()
{
Config_getString("MSCGEN_PATH")=getResourcePath();
if (Config_getString("MSCGEN_PATH")!=getResourcePath())
{
Config_getString("MSCGEN_PATH")=getResourcePath();
return TRUE;
}
return FALSE;
}
#endif
......@@ -496,11 +502,11 @@ Step4::Step4(QWidget *parent) : QWidget(parent,"Step4")
m_dotOptions->setEnabled(FALSE);
gbox->addWidget(w,4,0);
#if defined(Q_OS_MACX) // we bundle dot with the mac package
m_diagramMode->setButton(2);
#else
//#if defined(Q_OS_MACX) // we bundle dot with the mac package
// m_diagramMode->setButton(2);
//#else
m_diagramMode->setButton(1);
#endif
//#endif
layout->addWidget(m_diagramMode);
layout->addStretch(1);
......@@ -1106,11 +1112,11 @@ void MainWidget::loadConfigFromFile(const QString &fn)
m_workingDir->setText(QFileInfo(fn).dirPath(TRUE));
m_configFileName = fn;
#if defined(Q_OS_MACX)
if (Config_getString("DOT_PATH").isEmpty())
{
setDotPath();
setConfigSaved(FALSE);
}
//if (Config_getString("DOT_PATH").isEmpty())
//{
// setDotPath();
// setConfigSaved(FALSE);
//}
if (Config_getString("MSCGEN_PATH").isEmpty())
{
setMscgenPath();
......
......@@ -17,7 +17,7 @@
doxygen_version_major=1
doxygen_version_minor=5
doxygen_version_revision=7
doxygen_version_revision=7.1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=NO
......@@ -46,7 +46,7 @@ while test -n "$1"; do
shift; f_prefix=$1
;;
--docdir | -docdir)
shift; f_docdir=$1/doxygen
shift; f_docdir=$1
;;
--shared | -shared)
f_shared=YES
......@@ -136,8 +136,8 @@ Options:
--prefix dir Installation prefix directory (doxygen will be
put in PREFIX/bin/doxygen)
[default: $f_prefix]
--docdir dir Documentation is installed in DOCDIR/doxygen/
[default: PREFIX/share/doc/packages]
--docdir dir Documentation is installed in DOCDIR/
[default: PREFIX/share/doc/packages/doxygen]
--install name Use \`name' as the name of the GNU install tool
[default: autodetect]
--english-only Include support for English only.
......@@ -224,7 +224,7 @@ if test -z "$f_platform"; then
UNIX_SV:4.2*)
f_platform=unixware-g++
;;
Cygwin:*|CYGWIN:*)
Cygwin:*|CYGWIN*)
f_platform=win32-g++
;;
*MiNT:*)
......
......@@ -58,6 +58,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_abbreviate_brief ABBREVIATE_BRIEF
\refitem cfg_aliases ALIASES
\refitem cfg_allexternals ALLEXTERNALS
\refitem cfg_alphabetical_index ALPHABETICAL_INDEX
\refitem cfg_always_detailed_sec ALWAYS_DETAILED_SEC
\refitem cfg_binary_toc BINARY_TOC
\refitem cfg_builtin_stl_support BUILTIN_STL_SUPPORT
......@@ -81,6 +82,7 @@ followed by the descriptions of the tags grouped by category.
\refitem cfg_docset_feedname DOCSET_FEEDNAME
\refitem cfg_dot_fontname DOT_FONTNAME
\refitem cfg_dot_fontpath DOT_FONTPATH
\refitem cfg_dot_fontsize DOT_FONTSIZE
\refitem cfg_dot_graph_max_nodes DOT_GRAPH_MAX_NODES
\refitem cfg_dot_image_format DOT_IMAGE_FORMAT
\refitem cfg_dot_multi_targets DOT_MULTI_TARGETS
......@@ -1136,13 +1138,11 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\anchor cfg_alphabetical_index
<dl>
<!--
<dt>\c ALPHABETICAL_INDEX <dd>
\addindex ALPHABETICAL_INDEX
If the \c ALPHABETICAL_INDEX tag is set to \c YES, an alphabetical index
of all compounds will be generated. Enable this if the project contains
a lot of classes, structs, unions or interfaces.
-->
<dt>\c COLS_IN_ALPHA_INDEX <dd>
\anchor cfg_cols_in_alpha_index
......@@ -1946,6 +1946,11 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
\c DOTFONTPATH environment variable or by setting \c DOT_FONTPATH to the directory
containing the font.
\anchor cfg_dot_fontsize
<dt>\c DOT_FONTSIZE <dd>
The \c DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
The default size is 10pt.
\anchor cfg_dot_fontpath
<dt>\c DOT_FONTPATH <dd>
\addindex DOT_FONTPATH
......
......@@ -1298,13 +1298,6 @@ void Config::check()
config_err("Warning: Specifying QCH_FILE requires QHG_LOCATION to be set.\n");
}
// check INDEXLOG creation requirements
if (!Config_getBool("GENERATE_HTML") &&
Config_getBool("GENERATE_INDEXLOG"))
{
config_err("Warning: GENERATE_INDEXLOG=YES requires GENERATE_HTML=YES.\n");
}
if (Config_getBool("HAVE_DOT"))
{
QCString curFontPath = Config_getString("DOT_FONTPATH");
......@@ -2079,7 +2072,6 @@ void Config::create()
);
cs->setWidgetType(ConfigString::File);
addObsolete("DETAILS_AT_TOP");
addObsolete("ALPHABETICAL_INDEX");
//-----------------------------------------------------------------------------------------------
......@@ -2326,13 +2318,13 @@ void Config::create()
addInfo( "Index","configuration options related to the alphabetical class index");
//-----------------------------------------------------------------------------------------------
//cb = addBool(
// "ALPHABETICAL_INDEX",
// "If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index \n"
// "of all compounds will be generated. Enable this if the project \n"
// "contains a lot of classes, structs, unions or interfaces. \n",
// FALSE
// );
cb = addBool(
"ALPHABETICAL_INDEX",
"If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index \n"
"of all compounds will be generated. Enable this if the project \n"
"contains a lot of classes, structs, unions or interfaces. \n",
FALSE
);
ci = addInt(
"COLS_IN_ALPHA_INDEX",
"If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then \n"
......@@ -2655,16 +2647,6 @@ void Config::create()
8,50,10
);
ci->addDependency("GENERATE_HTML");
#if 0
cb = addBool(
"GENERATE_INDEXLOG",
"If the GENERATE_INDEXLOG tag is set to YES, an additional log file \n"
"will be generated that can be used to create new index formats using XSLT \n"
"instead of writing C++ code. \n",
FALSE
);
cb->addDependency("GENERATE_HTML");
#endif
//-----------------------------------------------------------------------------------------------
addInfo( "LaTeX","configuration options related to the LaTeX output");
......@@ -3149,12 +3131,20 @@ void Config::create()
"containing the font. \n"
);
cs->setDefaultValue("FreeSans");
cb->addDependency("HAVE_DOT");
ci = addInt( "DOT_FONTSIZE",
"The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. \n"
"The default size is 10pt. \n",
4,24,10
);
ci->addDependency("HAVE_DOT");
cs = addString( "DOT_FONTPATH",
"By default doxygen will tell dot to use the output directory to look for the \n"
"FreeSans.ttf font (which doxygen will put there itself). If you specify a \n"
"different font using DOT_FONTNAME you can set the path where dot \n"
"can find it using this tag. \n"
);
cs->addDependency("HAVE_DOT");
cb = addBool(
"CLASS_GRAPH",
"If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen \n"
......
......@@ -45,6 +45,7 @@
//#define FONTNAME "FreeSans"
#define FONTNAME getDotFontName()
#define FONTSIZE getDotFontSize()
//--------------------------------------------------------------------
......@@ -84,6 +85,13 @@ static QCString getDotFontName()
return dotFontName;
}
static int getDotFontSize()
{
static int dotFontSize = Config_getInt("DOT_FONTSIZE");
if (dotFontSize<4) dotFontSize=4;
return dotFontSize;
}
static void writeGraphHeader(QTextStream &t)
{
t << "digraph G" << endl;
......@@ -92,9 +100,12 @@ static void writeGraphHeader(QTextStream &t)
{
t << " bgcolor=\"transparent\";" << endl;
}
t << " edge [fontname=\"" << FONTNAME << "\",fontsize=10,"
"labelfontname=\"" << FONTNAME << "\",labelfontsize=10];\n";
t << " node [fontname=\"" << FONTNAME << "\",fontsize=10,shape=record];\n";
t << " edge [fontname=\"" << FONTNAME << "\","
"fontsize=\"" << FONTSIZE << "\","
"labelfontname=\"" << FONTNAME << "\","
"labelfontsize=\"" << FONTSIZE << "\"];\n";
t << " node [fontname=\"" << FONTNAME << "\","
"fontsize=\"" << FONTSIZE << "\",shape=record];\n";
}
static void writeGraphFooter(QTextStream &t)
......@@ -713,7 +724,7 @@ void DotNode::writeArrow(QTextStream &t,
t << " [";
if (pointBack) t << "dir=back,";
t << "color=\"" << edgeColorMap[ei->m_color]
<< "\",fontsize=10,style=\"" << edgeStyleMap[ei->m_style] << "\"";
<< "\",fontsize=\"" << FONTSIZE << "\",style=\"" << edgeStyleMap[ei->m_style] << "\"";
if (!ei->m_label.isEmpty())
{
t << ",label=\"" << convertLabel(ei->m_label) << "\"";
......@@ -2731,23 +2742,23 @@ void generateGraphLegend(const char *path)
}
QTextStream dotText(&dotFile);
writeGraphHeader(dotText);
dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",fillcolor=\"grey75\",style=\"filled\" fontcolor=\"black\"];\n";
dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"grey75\"];\n";
dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",fillcolor=\"grey75\",style=\"filled\" fontcolor=\"black\"];\n";
dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=\"" << FONTSIZE << "\",style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=\"" << FONTSIZE << "\",style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=\"" << FONTSIZE << "\",style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=\"" << FONTSIZE << "\",style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=\"" << FONTSIZE << "\",style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"grey75\"];\n";
dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=\"" << FONTSIZE << "\",style=\"solid\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=\"" << FONTSIZE << "\",style=\"dashed\",label=\"< int >\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n";
dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=\"" << FONTSIZE << "\",style=\"dashed\",label=\"m_usedClass\",fontname=\"" << FONTNAME << "\"];\n";
dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=\"" << FONTSIZE << "\",height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n";
writeGraphFooter(dotText);
dotFile.close();
......@@ -3287,9 +3298,9 @@ void DotGroupCollaboration::writeGraphHeader(QTextStream &t) const
{
t << " bgcolor=\"transparent\";" << endl;
}
t << " edge [fontname=\"" << FONTNAME << "\",fontsize=8,"
"labelfontname=\"" << FONTNAME << "\",labelfontsize=8];\n";
t << " node [fontname=\"" << FONTNAME << "\",fontsize=10,shape=record];\n";
t << " edge [fontname=\"" << FONTNAME << "\",fontsize=\"" << FONTSIZE << "\","
"labelfontname=\"" << FONTNAME << "\",labelfontsize=\"" << FONTSIZE << "\"];\n";
t << " node [fontname=\"" << FONTNAME << "\",fontsize=\"" << FONTSIZE << "\",shape=record];\n";
t << " rankdir=LR;\n";
}
......@@ -3301,8 +3312,8 @@ void writeDotDirDepGraph(QTextStream &t,DirDef *dd)
t << " bgcolor=transparent;\n";
}
t << " compound=true\n";
t << " node [ fontsize=10, fontname=\"" << FONTNAME << "\"];\n";
t << " edge [ labelfontsize=9, labelfontname=\"" << FONTNAME << "\"];\n";
t << " node [ fontsize=\"" << FONTSIZE << "\", fontname=\"" << FONTNAME << "\"];\n";
t << " edge [ labelfontsize=\"" << FONTSIZE << "\", labelfontname=\"" << FONTNAME << "\"];\n";
QDict<DirDef> dirsInGraph(257);
......@@ -3312,7 +3323,7 @@ void writeDotDirDepGraph(QTextStream &t,DirDef *dd)
t << " subgraph cluster" << dd->parent()->getOutputFileBase() << " {\n";
t << " graph [ bgcolor=\"#ddddee\", pencolor=\"black\", label=\""
<< dd->parent()->shortName()
<< "\" fontname=\"" << FONTNAME << "\", fontsize=10, URL=\"";
<< "\" fontname=\"" << FONTNAME << "\", fontsize=\"" << FONTSIZE << "\", URL=\"";
t << dd->parent()->getOutputFileBase() << Doxygen::htmlFileExtension;
t << "\"]\n";
}
......
......@@ -383,7 +383,7 @@ static const char tabs_css[] =
" float : left;\n"
" background : url(\"tab_r.gif\") no-repeat right top;\n"
" border-bottom : 1px solid #84B0C7;\n"
" font-size : x-small;\n"
" font-size : 8px;\n"
" font-weight : bold;\n"
" text-decoration : none;\n"
"}\n"
......@@ -417,7 +417,7 @@ static const char tabs_css[] =
"\n"
"DIV.tabs TD\n"
"{\n"
" font-size : x-small;\n"
" font-size : 8px;\n"
" font-weight : bold;\n"
" text-decoration : none;\n"
"}\n"
......
......@@ -831,8 +831,7 @@ class LayoutParser : public QXmlDefaultHandler
}
QCString baseFile = mapping[i].baseFile;
QCString title = convertToQCString(attrib.value("title"));
QCString visible = convertToQCString(attrib.value("visible"));
bool isVisible = visible.isEmpty() || (visible!="no" && visible!="0");
bool isVisible = elemIsVisible(attrib);
if (title.isEmpty()) // use default title
{
title = mapping[i].mainName; // use title for main row
......
......@@ -10,7 +10,7 @@
" </tab>\n"
" <tab type=\"classes\" visible=\"yes\" title=\"\">\n"
" <tab type=\"classes\" visible=\"yes\" title=\"\"/>\n"
" <tab type=\"classindex\" visible=\"no\" title=\"\"/> \n"
" <tab type=\"classindex\" visible=\"$ALPHABETICAL_INDEX\" title=\"\"/> \n"
" <tab type=\"hierarchy\" visible=\"yes\" title=\"\"/>\n"
" <tab type=\"classmembers\" visible=\"yes\" title=\"\"/>\n"
" </tab>\n"
......
......@@ -10,7 +10,7 @@
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classes" visible="yes" title=""/>
<tab type="classindex" visible="no" title=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title=""/>
<tab type="classmembers" visible="yes" title=""/>
</tab>
......
......@@ -111,7 +111,8 @@ DefineDict* getFileDefineDict() {
static void setFileName(const char *name)
{
bool ambig;
g_yyFileName=name;
QFileInfo fi(name);
g_yyFileName=convertToQCString(fi.absFilePath());
g_yyFileDef=findFileDef(Doxygen::inputNameDict,g_yyFileName,ambig);
if (g_yyFileDef && g_yyFileDef->isReference()) g_yyFileDef=0;
}
......
......@@ -37,8 +37,8 @@ static QCString makeRef(char const * withoutExtension, char const * anchor)
Qhp::Qhp() : m_prevSectionLevel(0), m_sectionLevel(0)
{
m_toc.setIndentLevel(0);
m_doc.setIndentLevel(2);
m_doc.setIndentLevel(0);
m_toc.setIndentLevel(2);
m_index.setIndentLevel(2);
m_files.setIndentLevel(2);
}
......
......@@ -6366,7 +6366,6 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
extLookup.insert(".idl", new int(SrcLangExt_IDL));
extLookup.insert(".ddl", new int(SrcLangExt_IDL));
extLookup.insert(".odl", new int(SrcLangExt_IDL));
extLookup.insert(".ddl", new int(SrcLangExt_IDL));
extLookup.insert(".java", new int(SrcLangExt_Java));
extLookup.insert(".as", new int(SrcLangExt_JS));
extLookup.insert(".js", new int(SrcLangExt_JS));
......
This diff is collapsed.
......@@ -75,7 +75,7 @@ static const char* g_vhdlKeyWordMap0[] =
"range", "record", "register", "reject", "report", "return","select",
"severity", "shared", "signal", "subtype", "then", "to", "transport",
"type","unaffected", "units", "until", "use","variable", "wait", "when",
"while", "with",0
"while", "with","true","false",0
};
// type
......@@ -302,11 +302,28 @@ MemberDef* VhdlDocGen::findMember(const QCString& className, const QCString& mem
(VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKBODYCLASS)
{
Definition *d = cd->getOuterScope();
if (d && d->definitionType()==Definition::TypeClass)
// searching upper/lower case names
QCString tt=d->name();
ClassDef *ecd =getClass(tt);
if (!ecd)
{
ClassDef *ecd = (ClassDef*)d;
tt=tt.upper();
ecd =getClass(tt);
}
else if (!ecd)
{
tt=tt.lower();
ecd =getClass(tt);
}
if (ecd) //d && d->definitionType()==Definition::TypeClass)
{
//ClassDef *ecd = (ClassDef*)d;
mdef=VhdlDocGen::findMemberDef(ecd,memName,MemberList::variableMembers);
if (mdef) return mdef;
mdef=VhdlDocGen::findMemberDef(cd,memName,MemberList::pubMethods);
if (mdef) return mdef;
}
//cd=getClass(getClassName(cd));
//if (!cd) return 0;
......@@ -317,11 +334,23 @@ MemberDef* VhdlDocGen::findMember(const QCString& className, const QCString& mem
if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ARCHITECTURECLASS ||
(VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKBODYCLASS)
{
//QCString tempClass=getClassName(cd);
Definition *d = cd->getOuterScope();
if (d && d->definitionType()==Definition::TypeClass)
QCString tt=d->name();
ClassDef *ecd =getClass(tt);
if (!ecd)
{
tt=tt.upper();
ecd =getClass(tt);
}
if (!ecd)
{
tt=tt.lower();
ecd =getClass(tt);
}
if (ecd) //d && d->definitionType()==Definition::TypeClass)
{
ClassDef *ecd = (ClassDef*)d;
VhdlDocGen::findAllPackages(ecd->className(),packages);
}
}
......@@ -333,6 +362,16 @@ MemberDef* VhdlDocGen::findMember(const QCString& className, const QCString& mem
if (curString)
{
cd=VhdlDocGen::getPackageName(*curString);
if (!cd)
{
*curString=curString->upper();
cd=VhdlDocGen::getPackageName(*curString);
}
if (!cd)
{
*curString=curString->lower();
cd=VhdlDocGen::getPackageName(*curString);
}
}
if (cd)
{
......@@ -1296,6 +1335,16 @@ void VhdlDocGen::writeFormatString(QCString& qcs,OutputList&ol,const MemberDef*
bool VhdlDocGen::isNumber(const QCString& s)
{
// static bool veriOpt=Config_getBool("OPTIMIZE_OUTPUT_VERILOG");
static QRegExp regg("[0-9][0-9eEfFbBcCdDaA_.#-]*");
if (s.isEmpty()) return false;
int j,len;
j = regg.match(s.data(),0,&len);
if ((j==0) && (len==(int)s.length())) return true;
return false;
#if 0
int len=s.length();
if (len==0) return FALSE;
for (int j=0;j<len;j++)
......@@ -1304,9 +1353,9 @@ bool VhdlDocGen::isNumber(const QCString& s)
return FALSE;
}
return TRUE;
#endif
}// isNumber
void VhdlDocGen::startFonts(const QCString& q, char *keyword,OutputList& ol)
{
ol.startFontClass(keyword);
......@@ -1485,7 +1534,7 @@ void VhdlDocGen::writeFunctionProto(OutputList& ol,const ArgumentList* al,const
ol.startBold();
ol.docify(" )");
const char *exp=mdef->excpString();
if(exp)
if (exp)
{
ol.insertMemberAlign();
ol.docify("[ ");
......@@ -1721,7 +1770,8 @@ void VhdlDocGen::writeVHDLTypeDocumentation(const MemberDef* mdef, const Definit
if (memdef && memdef->isLinkable())
{
ol.startBold();
ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),0,mdef->typeString());
//ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),0,mdef->typeString());
writeLink(memdef,ol);
ol.endBold();
ol.docify(" ");
}
......@@ -1736,7 +1786,8 @@ void VhdlDocGen::writeVHDLTypeDocumentation(const MemberDef* mdef, const Definit
if (mdef->isVariable())
{
ol.docify(mdef->name().data());
//ol.docify(mdef->name().data());
writeLink(mdef,ol);
ol.docify(" ");
QCString ttype=mdef->typeString();
VhdlDocGen::formatString(ttype,ol,mdef);
......
......@@ -358,7 +358,7 @@ static void parseProcessProto()
VhdlDocGen::deleteAllChars(qcs,'\n');
VhdlDocGen::parseProcessProto(qcs.data(),name,ql);
current->section=Entry::FUNCTION_SEC;
current->stat=TRUE;
//current->stat=TRUE;
current->spec=VhdlDocGen::PROCESS;
current->startLine=iFuncLine;
current->bodyLine=iFuncLine;
......@@ -517,7 +517,7 @@ void parserInit()
if (g_buf==0)
{
fprintf(stderr,"\n no enough memory");
fprintf(stderr,"\n not enough memory");
return;
}
g_buf[g_bufSize-1]='\0';
......@@ -601,7 +601,7 @@ TEXTT "--"[^\/\@\*\#][^\n]*
PROC ("function"|"procedure")
ENDE ({BR}*("end"){BR}*{PROC}*{BR}*[;]{1})
ENDEFF ("if"|"case"|"loop"|"generate"){BR}*[;]
ENDE3 ({BR}*("end"){BR}*{PROC}*{BR}*{FUNCNAME}{BR}*[;])|(ENDE)
ENDE3 ({BR}*("end"){BR}*{PROC}*{BR}*{FUNCNAME}{BR}*[;])|{ENDE}
ENDFUNC {B}*"end"{BR}*{PROC}*{BR}*{FUNCNAME}{BR}*[;]
FUNCIMPURE "impure"|"pure"
FUNCPROC ^{B}*{FUNCIMPURE}*{BR}*("function"|"procedure"){B}*
......@@ -620,9 +620,9 @@ SHARED ("shared"){BR}+("variable")
SIGTYPES ^{B}*({SHARED}|"alias"|"file"|"group"|"subtype"|"type"|"constant"|"attribute"|"signal"|"units"){BR}+
CONFIG ("configuration"){BR}+{NAME}{BR}*("of"){BR}+{NAME}{BR}+"is"
ALLTYPESMAP {B}*[_a-zA-ZA_Z0-9. ]*{B}*
MAPCOMPONENT ({ALLTYPESMAP}{BR}*[:]{BR}*{ALLTYPESMAP}{BR}*{TEXTT}*{BR}*("port"|"generic"){BR}+("map"){BR}*("("){1})
ALLTYPESMAP {B}*[_a-zA-ZA_Z0-9.() ]*{B}*
MAPCOMPONENT ({ALLTYPESMAP}{BR}*[:]{BR}*("component"|"configuration")*{ALLTYPESMAP}{BR}*{TEXTT}*{BR}*("port"|"generic"){BR}*("map"){BR}*("("){1})
MAPCOMPONENT1 ({ALLTYPESMAP}{BR}*[:]{BR}*("entity"){BR}*{ALLTYPESMAP}{BR}*("port"|"generic"){BR}*("map"){BR}*("("){1})
BRACEOPEN [(]{1}
BRACECLOSE [)]{1}
......@@ -787,7 +787,7 @@ ALLID [^;()\t ]
else if (strcmp(word.data(),"component")==0)
{
current->section=Entry::VARIABLE_SEC;
current->stat=TRUE;
// current->stat=TRUE;
current->spec=VhdlDocGen::COMPONENT;
current->bodyLine=yyLineNr;
scantype=1;
......@@ -809,18 +809,39 @@ ALLID [^;()\t ]
BEGIN(FindEntityName);
}
<Start>{MAPCOMPONENT} { // found new mapped component aaa: bbb port map
<Start>{MAPCOMPONENT}|{MAPCOMPONENT1} { // found new mapped component aaa: bbb port map
lineCount();
QCString type;
QCString tt(yytext);
QRegExp regg("[ \n\t:-]");
QRegExp regg("[ \n\t:.()-]");
QStringList qsl=QStringList::split(regg,tt,false);
// consider upper/lower-case letters
QStringList qsltemp=QStringList::split(regg,tt.lower(),false);
int index=qsltemp.findIndex(QCString("entity"))+1;
index+=qsltemp.findIndex(QCString("component"))+1;
index+=qsltemp.findIndex(QCString("configuration"))+1;
int len=qsltemp.count();
current->spec=VhdlDocGen::COMPONENT_INST;
current->section=Entry::VARIABLE_SEC;
current->startLine=yyLineNr;
current->bodyLine=yyLineNr;
current->type=QCString(qsl[1]);
if (index!=0 && tt.contains(')')==0) // found component instantiation xxx: configuration/component/entity yyy
{
current->type=(QCString)qsl[len-3];
}
else if (index!=0 && tt.contains(')')) // found component instantiation xxx: entity www.yyy(zzz)
{
current->type=(QCString)qsl[len-4];
}
else
{
current->type=(QCString)qsl[1]; // found component instantiation xxx:yyy
}
current->name=QCString(qsl[0]);
if (lastCompound)
{
......@@ -832,17 +853,8 @@ ALLID [^;()\t ]
{
newEntry();
}
lineCount();
#if 0
if (current && current->spec==VhdlDocGen::ARCHITECTURE)
{
if (!VhdlDocGen::foundInsertedComponent(name,current) && !name.isEmpty())
{
BaseInfo *bb=new BaseInfo(name,Private,Normal);
current->extends->append(bb);
}
}
#endif
}
<Start>{CR}* {
......@@ -890,19 +902,36 @@ ALLID [^;()\t ]
lineCount();
QCString qcs(yytext);
QCString qreal=QCString(yytext);
qcs=qcs.stripWhiteSpace();
if (current->spec==VhdlDocGen::USE)
if (current->spec==VhdlDocGen::USE || current->spec==VhdlDocGen::LIBRARY)
{
int j=qcs.length();
int i=qcs.find(".");
if (i>0)
qcs=qcs.right(j-i-1);
j=qcs.length();
i=qcs.find(".");
if (i>0)
qcs=qcs.left(i);
/*
-- Consider the case we have more than one entity in one file.Each entity has its own package/library
-- declaration. In this case package yyy will be added [with newEntry()] to architecture aaa !! instead to entity
-- bbb. We must place these constructs to current_root and the function mapLibPackage() will finish the rest.
-- package xxx;
-- entity aaa
-- ....
-- end entity aaa;
-- architecture aaa
-- ...
-- end architecture aaa;
-- package yyy;
-- entity bbb;
*/
current->name=qcs;
Entry *copy=new Entry(*current);
current->reset();
addSubEntry(current_root,copy); // insert into entry list with mapLibPackage()
}
else if (current->spec==VhdlDocGen::ARCHITECTURE)
{
......@@ -928,6 +957,7 @@ ALLID [^;()\t ]
{
current->name+=qcs;
}
if (!(current->spec==VhdlDocGen::USE || current->spec==VhdlDocGen::LIBRARY))
newEntry();
BEGIN(Start);
......@@ -976,6 +1006,7 @@ ALLID [^;()\t ]
lineCount();
QCString comment;
QCString zz(yytext);
VhdlDocGen::deleteAllChars(zz,';'); //delete ; in unit construct
if (zz.contains("--!"))
{
QStringList ql=QStringList::split("--!",zz,FALSE);
......
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