Commit c3a03d5c authored by dimitri's avatar dimitri

Release-1.8.0

parent 709a80a7
......@@ -121,7 +121,20 @@ EXCLUDE = src/code.cpp \
src/doxygen_php.h \
src/compound_xsd.h \
src/layout_default.h \
src/bib2xhtml.h
src/bib2xhtml.h \
src/doxygen_bst.h \
src/header_html.h \
src/index_xsd.h \
src/jquery_js.h \
src/jquery_fx_js.h \
src/jquery_ui_js.h \
src/navtree_css.h \
src/navtree_hs.h \
src/search_css.h \
src/search_functions_php.h \
src/search_opensearch_php.h \
src/search_js.h \
src/sizzle_js.h
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
......
DOXYGEN Version 1.7.6.1-20120220
DOXYGEN Version 1.8.0
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (20 February 2012)
Dimitri van Heesch (25 February 2012)
DOXYGEN Version 1.7.6.1_20120220
DOXYGEN Version 1.8.0
Please read INSTALL for compilation instructions.
......@@ -26,4 +26,4 @@ forum.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (20 February 2012)
Dimitri van Heesch (dimitri@stack.nl) (25 February 2012)
......@@ -16,11 +16,11 @@
# shell script to configure doxygen
doxygen_version_major=1
doxygen_version_minor=7
doxygen_version_revision=6.1
doxygen_version_minor=8
doxygen_version_revision=0
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20120220
doxygen_version_mmn=NO
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......
......@@ -539,8 +539,8 @@ Structural indicators
this command in a comment block of a define or variable, the
initializer is always hidden. The maximum number of initialization lines
can be changed by means of the configuration parameter
\ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is
30.
\ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default
value is 30.
\sa section \ref cmdshowinitializer "\\showinitializer".
......
......@@ -169,10 +169,8 @@ Examples:
__double underscores__
Note that unlike standard Markdown, doxygen will not touch internal underscores or
stars, so the following will appear as-is:
a_nice_identifier
See section \ref mddox_emph_spans for more info how doxygen handles
emphasis spans slightly different than standard Markdown.
\subsection md_codespan code spans
......@@ -505,6 +503,24 @@ For Item1 the indentation is 4 (when treating the list marker as whitespace),
so the next paragraph "More text..." starts at the same indentation level
and is therefore not seen as a code block.
\subsection mddox_emph_spans Emphasis limits
Unlike standard Markdown, doxygen will not touch internal underscores or
stars, so the following will appear as-is:
a_nice_identifier
Futhermore, a `*` or `_` only starts an emphasis if
- it is followed by an alphanumberical character, and
- it is preceded by a space, newline, or one the following characters `<{([,:;`
An emphasis ends if
- it is not following by an alphanumerical character, and
- it is not preceded by a space, newline, or one the following characters `({[<=+-\@`
Lastly, the span of the emphasis is limited to a single paragraph.
\subsection mddox_code_spans Code Spans Limits
Note that unlike standard Markdown, doxygen leaves the following untouched.
......
......@@ -82,12 +82,12 @@ QString QDir::canonicalPath() const
char cur[PATH_MAX];
char tmp[PATH_MAX];
GETCWD( cur, PATH_MAX );
(void)GETCWD( cur, PATH_MAX );
if ( CHDIR(QFile::encodeName(dPath)) >= 0 ) {
GETCWD( tmp, PATH_MAX );
(void)GETCWD( tmp, PATH_MAX );
r = QFile::decodeName(tmp);
}
CHDIR( cur );
(void)CHDIR( cur );
slashify( r );
return r;
......
......@@ -1515,7 +1515,7 @@ bool QXmlDefaultHandler::unparsedEntityDecl( const QString&, const QString&,
provided in the XML document.
*/
bool QXmlDefaultHandler::resolveEntity( const QString&, const QString&,
QXmlInputSource* ret )
QXmlInputSource* &ret )
{
ret = 0;
return TRUE;
......
......@@ -440,7 +440,7 @@ class QM_EXPORT QXmlEntityResolver
{
public:
virtual ~QXmlEntityResolver() {}
virtual bool resolveEntity( const QString& publicId, const QString& systemId, QXmlInputSource* ret ) = 0;
virtual bool resolveEntity( const QString& publicId, const QString& systemId, QXmlInputSource* &ret ) = 0;
virtual QString errorString() = 0;
};
......@@ -494,7 +494,7 @@ public:
bool notationDecl( const QString& name, const QString& publicId, const QString& systemId );
bool unparsedEntityDecl( const QString& name, const QString& publicId, const QString& systemId, const QString& notationName );
bool resolveEntity( const QString& publicId, const QString& systemId, QXmlInputSource* ret );
bool resolveEntity( const QString& publicId, const QString& systemId, QXmlInputSource* &ret );
bool startDTD( const QString& name, const QString& publicId, const QString& systemId );
bool endDTD();
......
......@@ -82,21 +82,22 @@ static void replaceCommentMarker(const char *s,int len)
{
const char *p=s;
char c;
// copy blanks
// copy leading blanks
while ((c=*p) && (c==' ' || c=='\t' || c=='\n'))
{
ADDCHAR(c);
g_lineNr += c=='\n';
p++;
}
// replace start of comment marker by spaces
// replace start of comment marker by blanks and the last character by a *
int blanks=0;
while ((c=*p) && (c=='/' || c=='!' || c=='#'))
{
ADDCHAR(' ');
blanks++;
p++;
if (*p=='<') // comment-after-item marker
{
ADDCHAR(' ');
blanks++;
p++;
}
if (c=='!') // end after first !
......@@ -104,6 +105,15 @@ static void replaceCommentMarker(const char *s,int len)
break;
}
}
if (blanks>0)
{
while (blanks>1)
{
ADDCHAR(' ');
blanks--;
}
ADDCHAR('*');
}
// copy comment line to output
ADDARRAY(p,len-(p-s));
}
......
......@@ -454,7 +454,7 @@ static QCString configStringRecode(
QCString outputEncoding = toEncoding;
if (inputEncoding.isEmpty() || outputEncoding.isEmpty() || inputEncoding==outputEncoding) return str;
int inputSize=str.length();
size_t outputSize=inputSize*4+1;
int outputSize=inputSize*4+1;
QCString output(outputSize);
void *cd = portable_iconv_open(outputEncoding,inputEncoding);
if (cd==(void *)(-1))
......@@ -463,13 +463,13 @@ static QCString configStringRecode(
inputEncoding.data(),outputEncoding.data());
exit(1);
}
size_t iLeft=inputSize;
size_t oLeft=outputSize;
size_t iLeft=(size_t)inputSize;
size_t oLeft=(size_t)outputSize;
const char *inputPtr = str.data();
char *outputPtr = output.data();
if (!portable_iconv(cd, &inputPtr, &iLeft, &outputPtr, &oLeft))
{
outputSize-=oLeft;
outputSize-=(int)oLeft;
output.resize(outputSize+1);
output.at(outputSize)='\0';
//printf("iconv: input size=%d output size=%d\n[%s]\n",size,newSize,srcBuf.data());
......
......@@ -2275,7 +2275,7 @@ void DocInternalRef::parse()
//---------------------------------------------------------------------------
DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) :
m_refToSection(FALSE), m_refToAnchor(FALSE)
m_refToSection(FALSE), m_refToAnchor(FALSE), m_isSubPage(FALSE)
{
m_parent = parent;
Definition *compound = 0;
......@@ -2286,14 +2286,20 @@ DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) :
SectionInfo *sec = Doxygen::sectionDict[target];
if (sec) // ref to section or anchor
{
PageDef *pd = 0;
if (sec->type==SectionInfo::Page)
{
pd = Doxygen::pageSDict->find(target);
}
m_text = sec->title;
if (m_text.isEmpty()) m_text = sec->label;
m_ref = sec->ref;
m_file = stripKnownExtensions(sec->fileName);
if (sec->type!=SectionInfo::Page) m_anchor = sec->label;
m_refToAnchor = sec->type==SectionInfo::Anchor;
m_refToSection = sec->type!=SectionInfo::Anchor;
m_isSubPage = pd && pd->hasParentPage();
if (sec->type!=SectionInfo::Page || m_isSubPage) m_anchor = sec->label;
//printf("m_text=%s,m_ref=%s,m_file=%s,m_refToAnchor=%d type=%d\n",
// m_text.data(),m_ref.data(),m_file.data(),m_refToAnchor,sec->type);
return;
......
......@@ -721,11 +721,13 @@ class DocRef : public CompAccept<DocRef>, public DocNode
bool hasLinkText() const { return !m_children.isEmpty(); }
bool refToAnchor() const { return m_refToAnchor; }
bool refToSection() const { return m_refToSection; }
bool isSubPage() const { return m_isSubPage; }
void accept(DocVisitor *v) { CompAccept<DocRef>::accept(this,v); }
private:
bool m_refToSection;
bool m_refToAnchor;
bool m_isSubPage;
QCString m_file;
QCString m_relPath;
QCString m_ref;
......
......@@ -525,7 +525,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
<St_Para>{SPCMD3} {
g_token->name = "form";
bool ok;
g_token->id = QCString(yytext).right(yyleng-6).toInt(&ok);
g_token->id = QCString(yytext).right((int)yyleng-6).toInt(&ok);
ASSERT(ok);
return TK_COMMAND;
}
......@@ -633,7 +633,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
<St_Para>{LNKWORD1}{FUNCARG}{CVSPEC}[^a-z_A-Z0-9] {
g_token->name = yytext;
g_token->name = g_token->name.left(g_token->name.length()-1);
unput(yytext[yyleng-1]);
unput(yytext[(int)yyleng-1]);
return TK_LNKWORD;
}
/********* patterns for normal words ******************/
......@@ -684,7 +684,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
}
else // found end of a paragraph
{
g_token->indent=computeIndent(yytext,yyleng-1);
g_token->indent=computeIndent(yytext,(int)yyleng-1);
int i;
// put back the indentation (needed for list items)
for (i=0;i<g_token->indent;i++)
......@@ -946,7 +946,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
}
<St_XRefItem2>[0-9]+"." {
QCString numStr=yytext;
numStr=numStr.left(yyleng-1);
numStr=numStr.left((int)yyleng-1);
g_token->id=numStr.toInt();
return RetVal_OK;
}
......@@ -956,7 +956,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}
}
<St_Param>"\""[^\n\"]+"\"" {
g_token->name = yytext+1;
g_token->name = g_token->name.left(yyleng-2);
g_token->name = g_token->name.left((int)yyleng-2);
return TK_WORD;
}
<St_Param>({PHPTYPE}{BLANK}*"|"{BLANK}*)*{PHPTYPE}{WS}+("&")?"$"{LABELID} {
......
......@@ -250,7 +250,7 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
{
// search for href="...", store ... part in link
QCString href = "href";
bool isXLink=FALSE;
//bool isXLink=FALSE;
int len = 6;
int indexS = buf.find("href=\""), indexE;
if (indexS>5 && buf.find("xlink:href=\"")!=-1) // XLink href (for SVG)
......@@ -258,7 +258,7 @@ static QCString replaceRef(const QCString &buf,const QCString relPath,
indexS-=6;
len+=6;
href.prepend("xlink:");
isXLink=TRUE;
//isXLink=TRUE;
}
if (indexS>=0 && (indexE=buf.find('"',indexS+len))!=-1)
{
......@@ -1601,13 +1601,16 @@ void DotNode::writeBox(FTextStream &t,
// add names shown as relation to a dictionary, so we don't show
// them as attributes as well
QDict<void> arrowNames(17);
QListIterator<EdgeInfo> li(*m_edgeInfo);
EdgeInfo *ei;
for (li.toFirst();(ei=li.current());++li)
if (m_edgeInfo)
{
if (!ei->m_label.isEmpty())
QListIterator<EdgeInfo> li(*m_edgeInfo);
EdgeInfo *ei;
for (li.toFirst();(ei=li.current());++li)
{
arrowNames.insert(ei->m_label,(void*)0x8);
if (!ei->m_label.isEmpty())
{
arrowNames.insert(ei->m_label,(void*)0x8);
}
}
}
......
......@@ -2729,7 +2729,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1)
//int indentDepth=0;
int si=scope.find('@');
//int anonyScopes = 0;
bool added=FALSE;
//bool added=FALSE;
static bool inlineSimpleStructs = Config_getBool("INLINE_SIMPLE_STRUCTS");
if (si!=-1 && !inlineSimpleStructs) // anonymous scope or type
......@@ -2754,7 +2754,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1)
root->protection,
isMemberOf ? Foreign : isRelated ? Related : Member
);
added=TRUE;
//added=TRUE;
}
else // anonymous scope inside namespace or file => put variable in the global scope
{
......@@ -2762,7 +2762,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1)
{
md=addVariableToFile(rootNav,mtype,pScope,name,TRUE,0);
}
added=TRUE;
//added=TRUE;
}
}
}
......@@ -9319,8 +9319,6 @@ static const char *getArg(int argc,char **argv,int &optind)
//----------------------------------------------------------------------------
extern void commentScanTest();
void initDoxygen()
{
const char *lang = portable_getenv("LC_ALL");
......
......@@ -31,7 +31,7 @@ class FileDef;
class FileStorage;
class StorageIntf;
class ArgumentList;
class ListItemInfo;
struct ListItemInfo;
/*! \brief This class stores information about an inheritance relation
*/
......
......@@ -652,6 +652,7 @@ ARGS_L2 "("({ARGS_L0}|[^()]|{ARGS_L1a}|{ARGS_L1})*")"
ARGS {BS}({ARGS_L0}|{ARGS_L1}|{ARGS_L2})
NUM_TYPE (complex|integer|logical|real)
LOG_OPER (\.and\.|\.eq\.|\.eqv\.|\.ge\.|\.gt\.|\.le\.|\.lt\.|\.ne\.|\.neqv\.|\.or\.|\.not\.)
KIND {ARGS}
CHAR (CHARACTER{ARGS}?|CHARACTER{BS}"*"({BS}[0-9]+|{ARGS}))
TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS_}COMPLEX|DOUBLE{BS_}PRECISION|{CHAR}|TYPE{ARGS})
......@@ -979,6 +980,9 @@ IGNORE (CALL)
<*>. {
g_code->codify(yytext);
}
<*>{LOG_OPER} { // Fortran logical comparison keywords
g_code->codify(yytext);
}
%%
/*@ ----------------------------------------------------------------------------
......
......@@ -249,6 +249,7 @@ ARGS {BS}({ARGS_L0}|{ARGS_L1}|{ARGS_L2})
NOARGS {BS}"\n"
NUM_TYPE (complex|integer|logical|real)
LOG_OPER (\.and\.|\.eq\.|\.eqv\.|\.ge\.|\.gt\.|\.le\.|\.lt\.|\.ne\.|\.neqv\.|\.or\.|\.not\.)
KIND {ARGS}
CHAR (CHARACTER{ARGS}?|CHARACTER{BS}"*"({BS}[0-9]+|{ARGS}))
TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS_}COMPLEX|DOUBLE{BS_}PRECISION|{CHAR}|TYPE{ARGS}|CLASS{ARGS}|PROCEDURE{ARGS}?)
......@@ -1102,7 +1103,9 @@ private {
popBuffer();
}
}
<*>. {
<*>{LOG_OPER} { // Fortran logical comparison keywords
}
<*>. {
//debugStr+=yytext;
//printf("I:%c\n", *yytext);
} // ignore remaining text
......@@ -2070,16 +2073,16 @@ static void subrHandleCommentBlock(const QCString &doc,bool brief)
current = subrCurrent.first(); // temporarily switch to the entry of the subroutine / function
if (docBlock.stripWhiteSpace().find("\\param") == 0)
{
handleCommentBlock(doc,brief);
handleCommentBlock("\n\n"+doc,brief);
}
else if (docBlock.stripWhiteSpace().find("@param") == 0)
{
handleCommentBlock(doc,brief);
handleCommentBlock("\n\n"+doc,brief);
}
else
{
int dir1 = modifiers[current_root][argName.lower()].direction;
handleCommentBlock(QCString("@param ") + directionParam[dir1] + " " +
handleCommentBlock(QCString("\n\n@param ") + directionParam[dir1] + " " +
argName + " " + doc,brief);
}
current=tmp_entry;
......@@ -2122,8 +2125,9 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt)
{
isFixedForm = recognizeFixedForm(fileBuf);
if (isFixedForm) {
printf("Prepassing fixed form of %s\n", fileName);
if (isFixedForm)
{
msg("Prepassing fixed form of %s\n", fileName);
//printf("---strlen=%d\n", strlen(fileBuf));
//clock_t start=clock();
......
......@@ -1374,7 +1374,9 @@ void HtmlDocVisitor::visitPre(DocRef *ref)
if (m_hide) return;
if (!ref->file().isEmpty())
{
startLink(ref->ref(),ref->file(),ref->relPath(),ref->anchor());
// when ref->isSubPage()==TRUE we use ref->file() for HTML and
// ref->anchor() for LaTeX/RTF
startLink(ref->ref(),ref->file(),ref->relPath(),ref->isSubPage() ? 0 : ref->anchor());
}
if (!ref->hasLinkText()) filter(ref->targetTitle());
}
......
......@@ -29,7 +29,8 @@ d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3)
0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,
a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
;/*
;
/*
* jQuery UI Effects Highlight 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
......
......@@ -29,7 +29,8 @@
"0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;\n"
"if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,\n"
"a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);\n"
";/*\n"
";\n"
"/*\n"
" * jQuery UI Effects Highlight 1.8.16\n"
" *\n"
" * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n"
......
......@@ -1126,14 +1126,30 @@ void LatexDocVisitor::visitPost(DocLink *lnk)
void LatexDocVisitor::visitPre(DocRef *ref)
{
if (m_hide) return;
if (!ref->file().isEmpty()) startLink(ref->ref(),ref->file(),ref->anchor());
// when ref->isSubPage()==TRUE we use ref->file() for HTML and
// ref->anchor() for LaTeX/RTF
if (ref->isSubPage())
{
startLink(ref->ref(),0,ref->anchor());
}
else
{
if (!ref->file().isEmpty()) startLink(ref->ref(),ref->file(),ref->anchor());
}
if (!ref->hasLinkText()) filter(ref->targetTitle());
}
void LatexDocVisitor::visitPost(DocRef *ref)
{
if (m_hide) return;
if (!ref->file().isEmpty()) endLink(ref->ref(),ref->file(),ref->anchor());
if (ref->isSubPage())
{
endLink(ref->ref(),0,ref->anchor());
}
else
{
if (!ref->file().isEmpty()) endLink(ref->ref(),ref->file(),ref->anchor());
}
}
void LatexDocVisitor::visitPre(DocSecRefItem *)
......
......@@ -942,7 +942,7 @@ static int processSpecialCommand(GrowBuf &out, const char *data, int offset, int
static void processInline(GrowBuf &out,const char *data,int size)
{
int i=0, end=0;
action_t action;
action_t action = 0;
while (i<size)
{
while (end<size && ((action=g_actions[(uchar)data[end]])==0)) end++;
......
......@@ -125,10 +125,13 @@ function newNode(o, po, text, link, childrenData, lastNode)
var targetPage = stripPath(link.split('#')[0]);
a.href = srcPage!=targetPage ? url : '#';
a.onclick = function(){
$('.item').removeClass('selected');
$('.item').removeAttr('id');
$(a).parent().parent().addClass('selected');
$(a).parent().parent().attr('id','selected');
if (!$(a).parent().parent().hasClass('selected'))
{
$('.item').removeClass('selected');
$('.item').removeAttr('id');
$(a).parent().parent().addClass('selected');
$(a).parent().parent().attr('id','selected');
}
var pos, anchor = $(aname), docContent = $('#doc-content');
if (anchor.parent().attr('class')=='memItemLeft') {
pos = anchor.parent().position().top;
......@@ -229,7 +232,7 @@ function highlightAnchor()
function showNode(o, node, index)
{
if (node.childrenData && !node.expanded) {
if (node.childrenData /*&& !node.expanded*/) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
......@@ -276,6 +279,7 @@ function showNode(o, node, index)
$(n.itemDiv).addClass('selected');
$(n.itemDiv).attr('id','selected');
}
showRoot();
}
}
}
......@@ -293,6 +297,20 @@ function getNode(o, po)
}
}
function navTo(o,root,hash,relpath)
{
getScript(relpath+"navtreeindex",function(){
var navTreeIndex = eval('NAVTREEINDEX');
if (navTreeIndex) {
var nti = navTreeIndex[root+hash];
o.breadcrumbs = nti ? nti : navTreeIndex[root];
if (o.breadcrumbs==null) o.breadcrumbs = navTreeIndex["index.html"];
o.breadcrumbs.unshift(0);
showNode(o, o.node, 0);
}
},true);
}
function initNavTree(toroot,relpath)
{
var o = new Object();
......@@ -313,35 +331,22 @@ function initNavTree(toroot,relpath)
o.node.plus_img.width = 16;
o.node.plus_img.height = 22;
getScript(relpath+"navtreeindex",function(){
var navTreeIndex = eval('NAVTREEINDEX');
if (navTreeIndex) {
var nti = navTreeIndex[toroot+window.location.hash];
o.breadcrumbs = nti ? nti : navTreeIndex[toroot];
if (o.breadcrumbs==null) o.breadcrumbs = navTreeIndex["index.html"];
o.breadcrumbs.unshift(0);
showNode(o, o.node, 0);
}
},true);
navTo(o,toroot,window.location.hash,relpath);
$(window).bind('hashchange', function(){
if (window.location.hash && window.location.hash.length>1){
highlightAnchor();
var a;
if ($(location).attr('hash')){
var link=stripPath($(location).attr('pathname'))+':'+
$(location).attr('hash').substring(1);
a=$('.item a[class$=\""'+link+'"\"]');
var clslink=stripPath($(location).attr('pathname'))+':'+
$(location).attr('hash').substring(1);
a=$('.item a[class$=\""'+clslink+'"\"]');
}
if (a && a.length){
if (a==null || !$(a).parent().parent().hasClass('selected')){
$('.item').removeClass('selected');
$('.item').removeAttr('id');
a.parent().parent().addClass('selected');
a.parent().parent().attr('id','selected');
var anchor = $($(location).attr('hash'));
var targetDiv = anchor.next();
showRoot();
}
var link=stripPath($(location).attr('pathname'));
navTo(o,link,$(location).attr('hash'),relpath);
}
})
......
......@@ -125,10 +125,13 @@
" var targetPage = stripPath(link.split('#')[0]);\n"
" a.href = srcPage!=targetPage ? url : '#';\n"
" a.onclick = function(){\n"
" $('.item').removeClass('selected');\n"
" $('.item').removeAttr('id');\n"
" $(a).parent().parent().addClass('selected');\n"
" $(a).parent().parent().attr('id','selected');\n"
" if (!$(a).parent().parent().hasClass('selected'))\n"
" {\n"
" $('.item').removeClass('selected');\n"
" $('.item').removeAttr('id');\n"
" $(a).parent().parent().addClass('selected');\n"
" $(a).parent().parent().attr('id','selected');\n"
" }\n"
" var pos, anchor = $(aname), docContent = $('#doc-content');\n"
" if (anchor.parent().attr('class')=='memItemLeft') {\n"
" pos = anchor.parent().position().top;\n"
......@@ -229,7 +232,7 @@
"\n"
"function showNode(o, node, index)\n"
"{\n"
" if (node.childrenData && !node.expanded) {\n"
" if (node.childrenData /*&& !node.expanded*/) {\n"
" if (typeof(node.childrenData)==='string') {\n"
" var varName = node.childrenData;\n"
" getScript(node.relpath+varName,function(){\n"
......@@ -276,6 +279,7 @@
" $(n.itemDiv).addClass('selected');\n"
" $(n.itemDiv).attr('id','selected');\n"
" }\n"
" showRoot();\n"
" }\n"
" }\n"
" }\n"
......@@ -293,6 +297,20 @@
" }\n"
"}\n"
"\n"
"function navTo(o,root,hash,relpath)\n"
"{\n"
" getScript(relpath+\"navtreeindex\",function(){\n"
" var navTreeIndex = eval('NAVTREEINDEX');\n"
" if (navTreeIndex) {\n"
" var nti = navTreeIndex[root+hash];\n"
" o.breadcrumbs = nti ? nti : navTreeIndex[root];\n"
" if (o.breadcrumbs==null) o.breadcrumbs = navTreeIndex[\"index.html\"];\n"
" o.breadcrumbs.unshift(0);\n"
" showNode(o, o.node, 0);\n"
" }\n"
" },true);\n"
"}\n"
"\n"
"function initNavTree(toroot,relpath)\n"
"{\n"
" var o = new Object();\n"
......@@ -313,35 +331,22 @@
" o.node.plus_img.width = 16;\n"
" o.node.plus_img.height = 22;\n"
"\n"
" getScript(relpath+\"navtreeindex\",function(){\n"
" var navTreeIndex = eval('NAVTREEINDEX');\n"
" if (navTreeIndex) {\n"
" var nti = navTreeIndex[toroot+window.location.hash];\n"
" o.breadcrumbs = nti ? nti : navTreeIndex[toroot];\n"
" if (o.breadcrumbs==null) o.breadcrumbs = navTreeIndex[\"index.html\"];\n"
" o.breadcrumbs.unshift(0);\n"
" showNode(o, o.node, 0);\n"
" }\n"
" },true);\n"
" navTo(o,toroot,window.location.hash,relpath);\n"
"\n"
" $(window).bind('hashchange', function(){\n"
" if (window.location.hash && window.location.hash.length>1){\n"
" highlightAnchor();\n"
" var a;\n"
" if ($(location).attr('hash')){\n"
" var link=stripPath($(location).attr('pathname'))+':'+\n"
" $(location).attr('hash').substring(1);\n"
" a=$('.item a[class$=\\\"\"'+link+'\"\\\"]');\n"
" var clslink=stripPath($(location).attr('pathname'))+':'+\n"
" $(location).attr('hash').substring(1);\n"
" a=$('.item a[class$=\\\"\"'+clslink+'\"\\\"]');\n"
" }\n"
" if (a && a.length){\n"
" if (a==null || !$(a).parent().parent().hasClass('selected')){\n"
" $('.item').removeClass('selected');\n"
" $('.item').removeAttr('id');\n"
" a.parent().parent().addClass('selected');\n"
" a.parent().parent().attr('id','selected');\n"
" var anchor = $($(location).attr('hash'));\n"
" var targetDiv = anchor.next();\n"
" showRoot();\n"
" }\n"
" var link=stripPath($(location).attr('pathname'));\n"
" navTo(o,link,$(location).attr('hash'),relpath);\n"
" }\n"
" })\n"
"\n"
......
......@@ -78,8 +78,6 @@ void PageDef::writeDocumentation(OutputList &ol)
//printf("PageDef::writeDocumentation: %s\n",getOutputFileBase().data());
startFile(ol,getOutputFileBase(),pageName,title(),HLI_Pages,!generateTreeView);
ol.pushGeneratorState();
//1.{
......@@ -95,6 +93,8 @@ void PageDef::writeDocumentation(OutputList &ol)
ol.enable(OutputGenerator::Html);
}
startFile(ol,getOutputFileBase(),pageName,title(),HLI_Pages,!generateTreeView);
if (!generateTreeView)
{
if (getOuterScope()!=Doxygen::globalScope && !Config_getBool("DISABLE_INDEX"))
......@@ -147,9 +147,6 @@ void PageDef::writeDocumentation(OutputList &ol)
writePageDocumentation(ol);
ol.popGeneratorState();
//1.}
if (generateTreeView && getOuterScope()!=Doxygen::globalScope && !Config_getBool("DISABLE_INDEX"))
{
ol.endContents();
......@@ -160,6 +157,9 @@ void PageDef::writeDocumentation(OutputList &ol)
endFile(ol);
}
ol.popGeneratorState();
//1.}
if (!Config_getString("GENERATE_TAGFILE").isEmpty())
{
bool found=FALSE;
......
......@@ -2206,11 +2206,15 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(SkipString);
}
<SkipLine>.
<SkipLine,SkipCommand,SkipCPPBlock,SkipString>"//"[^\n]* {
<SkipString>"//"/[^\n]* {
}
<SkipLine,SkipCommand,SkipCPPBlock>"//"[^\n]* {
g_lastCPPContext=YY_START;
BEGIN(RemoveCPPComment);
}
<SkipLine,SkipCommand,SkipCPPBlock,SkipString>"/*"/[^\n]* {
<SkipString>"/*"/[^\n]* {
}
<SkipLine,SkipCommand,SkipCPPBlock>"/*"/[^\n]* {
g_lastCContext=YY_START;
BEGIN(RemoveCComment);
}
......
......@@ -576,7 +576,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
ClassDef *cd=0,*lcd=0; /** Class def that we may find */
MemberDef *md=0; /** Member def that we may find */
bool isLocal=FALSE;
//bool isLocal=FALSE;
if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable
{
......@@ -611,7 +611,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
{
g_theCallContext.setClass(lcd);
}
isLocal=TRUE;
//isLocal=TRUE;
//fprintf(stderr,"is a local variable cd=%p!\n",cd);
}
......@@ -1426,19 +1426,14 @@ static void adjustScopesAndSuites(unsigned indentLength)
}
}
void parsePythonCode(CodeOutputInterface &od,const char *className,
void parsePythonCode(CodeOutputInterface &od,const char * /*className*/,
const QCString &s,bool exBlock, const char *exName,
FileDef *fd,int startLine,int endLine,bool inlineFragment,
FileDef *fd,int startLine,int endLine,bool /*inlineFragment*/,
MemberDef *,bool)
{
//printf("***parseCode()\n");
//--- some code to eliminate warnings---
className = "";
exBlock = FALSE;
exName = "";
inlineFragment = "";
//--------------------------------------
if (s.isEmpty()) return;
g_code = &od;
......
......@@ -1185,7 +1185,16 @@ void RTFDocVisitor::visitPre(DocRef *ref)
{
if (m_hide) return;
DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocRef)}\n");
if (!ref->file().isEmpty()) startLink(ref->ref(),ref->file(),ref->anchor());
// when ref->isSubPage()==TRUE we use ref->file() for HTML and
// ref->anchor() for LaTeX/RTF
if (ref->isSubPage())
{
startLink(ref->ref(),0,ref->anchor());
}
else
{
if (!ref->file().isEmpty()) startLink(ref->ref(),ref->file(),ref->anchor());
}
if (!ref->hasLinkText()) filter(ref->targetTitle());
}
......@@ -1448,11 +1457,11 @@ void RTFDocVisitor::visitPost(DocParamList *pl)
DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocParamList)}\n");
DocParamSect::Type parentType = DocParamSect::Unknown;
DocParamSect *sect = 0;
//DocParamSect *sect = 0;
if (pl->parent() && pl->parent()->kind()==DocNode::Kind_ParamSect)
{
parentType = ((DocParamSect*)pl->parent())->type();
sect=(DocParamSect*)pl->parent();
//sect=(DocParamSect*)pl->parent();
}
bool useTable = parentType==DocParamSect::Param ||
parentType==DocParamSect::RetVal ||
......@@ -1652,9 +1661,12 @@ void RTFDocVisitor::startLink(const QCString &ref,const QCString &file,const QCS
{
refName+=file;
}
if (anchor)
if (!file.isEmpty() && anchor)
{
refName+='_';
}
if (anchor)
{
refName+=anchor;
}
......
......@@ -1713,7 +1713,7 @@ void RTFGenerator::docify(const char *str)
{
const unsigned char *p=(const unsigned char *)str;
unsigned char c;
unsigned char pc='\0';
//unsigned char pc='\0';
while (*p)
{
//static bool MultiByte = FALSE;
......@@ -1746,7 +1746,7 @@ void RTFGenerator::docify(const char *str)
t << (char)c;
}
}
pc = c;
//pc = c;
m_omitParagraph = FALSE;
}
}
......
......@@ -402,7 +402,7 @@ void Store::dumpBlock(portable_off_t s,portable_off_t e)
portable_fseek(m_file,s,SEEK_SET);
int size = (int)(e-s);
uchar *buf = new uchar[size];
fread(buf,size,1,m_file);
(void)fread(buf,size,1,m_file);
int i,j;
for (i=0;i<size;i+=16)
{
......
......@@ -304,13 +304,13 @@ function handlePrint(evt)
'xmlns:svg="http://www.w3.org/2000/svg" '+
'xmlns:xlink="http://www.w3.org/1999/xlink">');
d.write('<head><title>Print SVG</title></head>');
d.write('<body style="margin: 0px; padding: 0px;" onload="window.print(); window.close();">');
d.write('<body style="margin: 0px; padding: 0px;" onload="window.print();">');
d.write('<div id="svg" style="width:'+windowWidth+'px; height:'+windowHeight+'px;">'+xs+'</div>');
d.write('</body>');
d.write('</html>');
d.close();
} catch(e) {
alert('Print function not supported by this browser!');
alert('Failed to open popup window needed for printing!\n'+e.message);
}
}
......
......@@ -304,13 +304,13 @@
" 'xmlns:svg=\"http://www.w3.org/2000/svg\" '+\n"
" 'xmlns:xlink=\"http://www.w3.org/1999/xlink\">');\n"
" d.write('<head><title>Print SVG</title></head>');\n"
" d.write('<body style=\"margin: 0px; padding: 0px;\" onload=\"window.print(); window.close();\">');\n"
" d.write('<body style=\"margin: 0px; padding: 0px;\" onload=\"window.print();\">');\n"
" d.write('<div id=\"svg\" style=\"width:'+windowWidth+'px; height:'+windowHeight+'px;\">'+xs+'</div>');\n"
" d.write('</body>');\n"
" d.write('</html>');\n"
" d.close();\n"
" } catch(e) {\n"
" alert('Print function not supported by this browser!');\n"
" alert('Failed to open popup window needed for printing!\\n'+e.message);\n"
" }\n"
"}\n"
"\n"
......
......@@ -618,12 +618,12 @@ static void codifyMapLines(char *text)
int wordCounter=0;
QCString ctemp;
//printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text);
char *p=text,*sp=p;
char *p=text; //,*sp=p;
char c;
bool done=FALSE;
while (!done)
{
sp=p;
//sp=p;
while ((c=*p++) && c!='\n' && c!=':' && c != ' ' && c != '(' && c!='\0' && c!='\t')
{
if (c!=0x9)
......
......@@ -403,17 +403,17 @@ void VhdlDocGen::findAllPackages(const QCString& className,QDict<QCString>& qdic
MemberDef* VhdlDocGen::findFunction(const QList<Argument> &ql,
const QCString& funcname,
const QCString& package, bool type)
const QCString& package, bool /*type*/)
{
MemberDef* mdef=0;
int funcType;
//int funcType;
ClassDef *cdef=getClass(package.data());
if (cdef==0) return 0;
if (type)
funcType=VhdlDocGen::PROCEDURE;
else
funcType=VhdlDocGen::FUNCTION;
//if (type)
// funcType=VhdlDocGen::PROCEDURE;
//else
// funcType=VhdlDocGen::FUNCTION;
MemberList *mem=cdef->getMemberList(MemberList::pubMethods);
......@@ -1194,7 +1194,7 @@ void VhdlDocGen::writeFuncProcDocu(
bool /*type*/)
{
if (al==0) return;
bool sem=FALSE;
//bool sem=FALSE;
ol.enableAll();
ArgumentListIterator ali(*al);
......@@ -1263,7 +1263,7 @@ void VhdlDocGen::writeFuncProcDocu(
}
ol.endParameterName(FALSE,FALSE,FALSE);
sem=TRUE;
//sem=TRUE;
first=FALSE;
}
//ol.endParameterList();
......
......@@ -35,7 +35,7 @@ class FileStorage;
class EntryNav;
class ClassDef;
class MemberDef;
class Argument;
struct Argument;
// wrapper class for the vhdl parser
class MyParserVhdl
......
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