Commit 16c33ced authored by Petr Prikryl's avatar Petr Prikryl

Merge branch 'master' of https://github.com/doxygen/doxygen.git

parents e7d6ef37 d65f3313
...@@ -523,7 +523,8 @@ void addConfigDocs(DocIntf *doc) ...@@ -523,7 +523,8 @@ void addConfigDocs(DocIntf *doc)
"SORT_BRIEF_DOCS", "SORT_BRIEF_DOCS",
"If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n" "If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n"
"descriptions of file, namespace and class members alphabetically by member\n" "descriptions of file, namespace and class members alphabetically by member\n"
"name. If set to NO the members will appear in declaration order.\n" "name. If set to NO the members will appear in declaration order. Note the this\n"
"will also influence the order of the classes in the class list.\n"
"The default value is: NO." "The default value is: NO."
); );
doc->add( doc->add(
......
...@@ -1056,7 +1056,8 @@ The default value is: <code>YES</code>. ...@@ -1056,7 +1056,8 @@ The default value is: <code>YES</code>.
If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the
brief descriptions of file, namespace and class members alphabetically brief descriptions of file, namespace and class members alphabetically
by member name. If set to \c NO the members will appear in by member name. If set to \c NO the members will appear in
declaration order. declaration order. Note the this will also influence the order of the
classes in the class list.
The default value is: <code>NO</code>. The default value is: <code>NO</code>.
......
...@@ -80,7 +80,7 @@ rm -rf $RPM_BUILD_ROOT ...@@ -80,7 +80,7 @@ rm -rf $RPM_BUILD_ROOT
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc README LICENSE LANGUAGE.HOWTO examples ./latex/*.pdf %doc README.md LICENSE LANGUAGE.HOWTO examples ./latex/*.pdf
%doc /usr/man/man1/doxygen.1.gz %doc /usr/man/man1/doxygen.1.gz
%{_bindir}/doxygen %{_bindir}/doxygen
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <qstrlist.h> #include <qstrlist.h>
#include <qdict.h> #include <qdict.h>
#include <qlist.h> #include <qlist.h>
#include <qregexp.h>
#include "ftextstream.h" #include "ftextstream.h"
...@@ -518,7 +519,7 @@ class Config ...@@ -518,7 +519,7 @@ class Config
{ {
QCString result=m_userComment; QCString result=m_userComment;
m_userComment.resize(0); m_userComment.resize(0);
return result; return result.replace(QRegExp("\r"),"");
} }
protected: protected:
......
...@@ -856,7 +856,7 @@ void Config::writeTemplate(FTextStream &t,bool sl,bool upd) ...@@ -856,7 +856,7 @@ void Config::writeTemplate(FTextStream &t,bool sl,bool upd)
if (m_userComment) if (m_userComment)
{ {
t << "\n"; t << "\n";
t << m_userComment; t << takeUserComment();
} }
} }
......
...@@ -911,7 +911,8 @@ Go to the <a href="commands.html">next</a> section or return to the ...@@ -911,7 +911,8 @@ Go to the <a href="commands.html">next</a> section or return to the
If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the
brief descriptions of file, namespace and class members alphabetically brief descriptions of file, namespace and class members alphabetically
by member name. If set to \c NO the members will appear in by member name. If set to \c NO the members will appear in
declaration order. declaration order. Note the this will also influence the order of the
classes in the class list.
]]> ]]>
</docs> </docs>
</option> </option>
......
...@@ -705,7 +705,8 @@ void addConfigOptions(Config *cfg) ...@@ -705,7 +705,8 @@ void addConfigOptions(Config *cfg)
"SORT_BRIEF_DOCS", "SORT_BRIEF_DOCS",
"If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n" "If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n"
"descriptions of file, namespace and class members alphabetically by member\n" "descriptions of file, namespace and class members alphabetically by member\n"
"name. If set to NO the members will appear in declaration order.\n" "name. If set to NO the members will appear in declaration order. Note the this\n"
"will also influence the order of the classes in the class list.\n"
"The default value is: NO.", "The default value is: NO.",
FALSE FALSE
); );
......
...@@ -9780,7 +9780,7 @@ static void usage(const char *name) ...@@ -9780,7 +9780,7 @@ static void usage(const char *name)
msg(" RTF: %s -w rtf styleSheetFile\n",name); msg(" RTF: %s -w rtf styleSheetFile\n",name);
msg(" HTML: %s -w html headerFile footerFile styleSheetFile [configFile]\n",name); msg(" HTML: %s -w html headerFile footerFile styleSheetFile [configFile]\n",name);
msg(" LaTeX: %s -w latex headerFile footerFile styleSheetFile [configFile]\n\n",name); msg(" LaTeX: %s -w latex headerFile footerFile styleSheetFile [configFile]\n\n",name);
msg("6) Use doxygen to generate an rtf extensions file\n"); msg("6) Use doxygen to generate a rtf extensions file\n");
msg(" RTF: %s -e rtf extensionsFile\n\n",name); msg(" RTF: %s -e rtf extensionsFile\n\n",name);
msg("If -s is specified the comments of the configuration items in the config file will be omitted.\n"); msg("If -s is specified the comments of the configuration items in the config file will be omitted.\n");
msg("If configName is omitted `Doxyfile' will be used as a default.\n\n"); msg("If configName is omitted `Doxyfile' will be used as a default.\n\n");
......
...@@ -1998,7 +1998,7 @@ static void addSubprogram(const char *text) ...@@ -1998,7 +1998,7 @@ static void addSubprogram(const char *text)
subrCurrent.prepend(current); subrCurrent.prepend(current);
current->section = Entry::FUNCTION_SEC ; current->section = Entry::FUNCTION_SEC ;
QCString subtype = text; subtype=subtype.lower().stripWhiteSpace(); QCString subtype = text; subtype=subtype.lower().stripWhiteSpace();
functionLine = subtype=="function"; functionLine = (subtype.find("function") != -1);
current->type += " " + subtype; current->type += " " + subtype;
current->type = current->type.stripWhiteSpace(); current->type = current->type.stripWhiteSpace();
current->fileName = yyFileName; current->fileName = yyFileName;
......
...@@ -1296,15 +1296,25 @@ void LatexDocVisitor::visitPost(DocRef *ref) ...@@ -1296,15 +1296,25 @@ void LatexDocVisitor::visitPost(DocRef *ref)
} }
} }
void LatexDocVisitor::visitPre(DocSecRefItem *) void LatexDocVisitor::visitPre(DocSecRefItem *ref)
{ {
if (m_hide) return; if (m_hide) return;
m_t << "\\item \\contentsline{section}{"; m_t << "\\item \\contentsline{section}{";
static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS");
if (pdfHyperlinks)
{
m_t << "\\hyperlink{" << ref->file() << "_" << ref->anchor() << "}{" ;
}
} }
void LatexDocVisitor::visitPost(DocSecRefItem *ref) void LatexDocVisitor::visitPost(DocSecRefItem *ref)
{ {
if (m_hide) return; if (m_hide) return;
static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS");
if (pdfHyperlinks)
{
m_t << "}";
}
m_t << "}{\\ref{" << ref->file() << "_" << ref->anchor() << "}}{}" << endl; m_t << "}{\\ref{" << ref->file() << "_" << ref->anchor() << "}}{}" << endl;
} }
......
...@@ -1769,8 +1769,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1769,8 +1769,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
} }
BEGIN(CopyLine); BEGIN(CopyLine);
} }
<Start>^{B}*[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]+{B}*"("[^\(\)\n]*"("[^\)\n]*")"[^\)\n]*")"{B}*\n | // function list macro with one (...) argument, e.g. for K_GLOBAL_STATIC_WITH_ARGS <Start>^{B}*[_A-Z][_A-Z0-9]+{B}*"("[^\(\)\n]*"("[^\)\n]*")"[^\)\n]*")"{B}*\n | // function list macro with one (...) argument, e.g. for K_GLOBAL_STATIC_WITH_ARGS
<Start>^{B}*[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]+{B}*"("[^\)\n]*")"{B}*\n { // function like macro <Start>^{B}*[_A-Z][_A-Z0-9]+{B}*"("[^\)\n]*")"{B}*\n { // function like macro
static bool skipFuncMacros = Config_getBool("SKIP_FUNCTION_MACROS"); static bool skipFuncMacros = Config_getBool("SKIP_FUNCTION_MACROS");
QCString name(yytext); QCString name(yytext);
name=name.left(name.find('(')).stripWhiteSpace(); name=name.left(name.find('(')).stripWhiteSpace();
......
...@@ -7682,6 +7682,7 @@ QCString extractBlock(const QCString text,const QCString marker) ...@@ -7682,6 +7682,7 @@ QCString extractBlock(const QCString text,const QCString marker)
p=i+1; p=i+1;
} }
l1=p; l1=p;
int lp=i;
if (found) if (found)
{ {
while ((i=text.find('\n',p))!=-1) while ((i=text.find('\n',p))!=-1)
...@@ -7692,10 +7693,15 @@ QCString extractBlock(const QCString text,const QCString marker) ...@@ -7692,10 +7693,15 @@ QCString extractBlock(const QCString text,const QCString marker)
break; break;
} }
p=i+1; p=i+1;
lp=i;
} }
} }
if (l2==-1) // marker at last line without newline (see bug706874)
{
l2=lp;
}
//printf("text=[%s]\n",text.mid(l1,l2-l1).data()); //printf("text=[%s]\n",text.mid(l1,l2-l1).data());
return text.mid(l1,l2-l1); return l2>l1 ? text.mid(l1,l2-l1) : QCString();
} }
/** Returns a string representation of \a lang. */ /** Returns a string representation of \a lang. */
......
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