From e139c0246413d3803028572dcafe9f065f4c9eab Mon Sep 17 00:00:00 2001 From: dimitri Date: Mon, 31 Jul 2000 18:09:08 +0000 Subject: Release-1.2.0-20000731 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- addon/configgen/config_templ.l | 2 + addon/configgen/configgen.cpp | 9 +- addon/xmlread/README | 2 +- addon/xmlread/xmlread.pro.in | 4 +- doc/config.doc | 13 +- packages/rpm/doxygen.spec | 2 +- src/code.l | 42 ++-- src/config.h | 2 +- src/config.l | 425 +++++++++++++++++++++-------------------- src/formula.cpp | 2 +- src/scanner.l | 148 +++++++------- src/util.cpp | 42 ++-- 15 files changed, 394 insertions(+), 309 deletions(-) diff --git a/INSTALL b/INSTALL index 243ab89..a6943b9 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ -DOXYGEN Version 1.2.0 +DOXYGEN Version 1.2.0-20000731 Please read the installation section of the manual for instructions. -------- -Dimitri van Heesch (30 July 2000) +Dimitri van Heesch (31 July 2000) diff --git a/README b/README index 2f4c70f..6b488e0 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.2.0 +DOXYGEN Version 1.2.0-20000731 Please read INSTALL for compilation instructions. @@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at Enjoy, -Dimitri van Heesch (30 July 2000) +Dimitri van Heesch (31 July 2000) diff --git a/VERSION b/VERSION index 26aaba0..42a10c0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.0 +1.2.0-20000731 diff --git a/addon/configgen/config_templ.l b/addon/configgen/config_templ.l index ff570de..e98ace9 100644 --- a/addon/configgen/config_templ.l +++ b/addon/configgen/config_templ.l @@ -272,6 +272,8 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# All text after a hash (#) is considered a comment and will be ignored\n"; t << "# The format is:\n"; t << "# TAG = value [value, ...]\n"; + t << "# For lists items can also be appended using:\n"; + t << "# TAG += value [value, ...]\n"; t << "# Values that contain spaces should be placed between quotes (\" \")\n"; } #CONFIG Template diff --git a/addon/configgen/configgen.cpp b/addon/configgen/configgen.cpp index 3fd3c1b..eeba328 100644 --- a/addon/configgen/configgen.cpp +++ b/addon/configgen/configgen.cpp @@ -27,7 +27,7 @@ #include #include -#define MAX_OPTION_LENGTH 22 +#define MAX_OPTION_LENGTH 23 static QString spaces=" "; @@ -259,10 +259,17 @@ class ConfigList : public ConfigOption const char * short_,const char * long_,WidgetType w=String); virtual void printRules(QTextStream &t) { + // rule for assignment t << "\"" << cfgName << "\"[ \\t]*\"=\""; t << spaces.left(MAX_OPTION_LENGTH-cfgName.length()); t << "{ BEGIN(GetStrList); l=&Config::" << varName; t << "; l->clear(); elemStr=\"\"; }" << endl; + + // rule for appending + t << "\"" << cfgName << "\"[ \\t]*\"+=\""; + t << spaces.left(MAX_OPTION_LENGTH-cfgName.length()-1); + t << "{ BEGIN(GetStrList); l=&Config::" << varName; + t << "; elemStr=\"\"; }" << endl; } virtual void printInit(QTextStream &t) { diff --git a/addon/xmlread/README b/addon/xmlread/README index 104917d..9420de6 100644 --- a/addon/xmlread/README +++ b/addon/xmlread/README @@ -2,7 +2,7 @@ This is a small utility that is used to test and validate the XML output generated by doxygen (when GENERATE_XML = YES). It uses the Xerces-C XML parser/validator (see http://xml.apache.org) -and expects the environment variable XERCES_ROOT to point to the root +and expects the environment variable XERCESCROOT to point to the root of the Xerces package. Currently is reads an XML file, validates it, and prints the class diff --git a/addon/xmlread/xmlread.pro.in b/addon/xmlread/xmlread.pro.in index 61eec2e..0a59a9a 100644 --- a/addon/xmlread/xmlread.pro.in +++ b/addon/xmlread/xmlread.pro.in @@ -3,5 +3,5 @@ CONFIG = console qt warn_on debug HEADERS = saxhandler.h strx.h compounddef.h SOURCES = main.cpp \ saxhandlers.cpp -LIBS = -lxerces-c1_1 -L$(XERCES_ROOT) -INCLUDEPATH = $(XERCES_ROOT)/include +LIBS = -lxerces-c1_2 -L$(XERCESCROOT)/lib +INCLUDEPATH = $(XERCESCROOT)/include diff --git a/doc/config.doc b/doc/config.doc index 7581b99..c282896 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -30,12 +30,15 @@ line. The file essentially consists of a list of assignment statements. Each statement consists of a \c TAG_NAME written in capitals, -followed by the \c = character and one or more values. -Values are sequences of non-blanks. If the value should contain one or more -blanks it must be surrounded by quotes ("..."). +followed by the = character and one or more values. If the same tag +is assigned more than once, the last assignment overwrites any earlier +assignment. For options that take a list as their argument, +the += operator can be used instead of = to append +new values to the list. Values are sequences of non-blanks. If the value should +contain one or more blanks it must be surrounded by quotes ("..."). Multiple lines can be concatenated by inserting a backslash (\\) -as the last character of a line. -Environment variables can expanded using the pattern \c $(ENV_VARIABLE_NAME). +as the last character of a line. Environment variables can be expanded +using the pattern \c $(ENV_VARIABLE_NAME). The configuration options can be divided into several categories. Below is an alphabetical index of the tags that are recognized diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 90eb561..e44625a 100644 --- a/packages/rpm/doxygen.spec +++ b/packages/rpm/doxygen.spec @@ -1,5 +1,5 @@ Name: doxygen -Version: 1.2.0 +Version: 1.2.0-20000731 Summary: documentation system for C, C++ and IDL Release: 1 Source0: doxygen-%{version}.src.tar.gz diff --git a/src/code.l b/src/code.l index ae0beeb..be75cc3 100644 --- a/src/code.l +++ b/src/code.l @@ -281,12 +281,23 @@ static void addVariable() } else { - //printf("adding variable `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data()); + int i; if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type])) { + //printf("adding variable `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data()); g_cvd.classScope=g_classScope; g_codeVarList.append(new CodeVarDef(g_cvd)); // add it to a list } + else if ((i=g_cvd.type.find('<'))>0) + { + g_cvd.type = g_cvd.type.left(i); + if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type.left(i)])) + { + //printf("adding template type variable `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data()); + g_cvd.classScope=g_classScope; + g_codeVarList.append(new CodeVarDef(g_cvd)); + } + } } } @@ -300,12 +311,23 @@ static void addParameter() } else { - //printf("adding parameter `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data()); - if ((getClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type])) + int i; + if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type])) { + //printf("adding parameter `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data()); g_cvd.classScope=g_classScope; g_codeParmList.append(new CodeVarDef(g_cvd)); // add it to a list } + else if ((i=g_cvd.type.find('<'))>0) + { + g_cvd.type = g_cvd.type.left(i); + if ((getResolvedClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type.left(i)])) + { + //printf("adding template type parameter `%s' `%s'\n",g_cvd.type.data(),g_cvd.name.data()); + g_cvd.classScope=g_classScope; + g_codeParmList.append(new CodeVarDef(g_cvd)); + } + } } } @@ -948,15 +970,11 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" addType(); g_name+=yytext; } - /* -{SCOPETNAME}/{B}* { - int i; - generateClassLink(*g_code,yytext,&i); +{SCOPENAME}{B}*"<"[^\n\>]*">"/{B}* { // A *pt; + generateClassLink(*g_code,yytext); addType(); - QCString text=yytext; - g_name+=text.left(i); - } - */ + g_name+=yytext; + } {SCOPENAME}/{B}* { // p->func() generateClassLink(*g_code,yytext); addType(); @@ -1094,7 +1112,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" g_code->codify(yytext); endFontClass(); } -[a-z_A-Z][:a-z_A-Z0-9]* { +[a-z_A-Z][:a-z_A-Z0-9]*({B}*"<"[^\n\>]*">")? { addParmType(); g_parmName=yytext; generateClassLink(*g_code,yytext); diff --git a/src/config.h b/src/config.h index 7bd72a7..c1a4fb6 100644 --- a/src/config.h +++ b/src/config.h @@ -1,4 +1,4 @@ -/* This file was generated by configgen on Fri Jul 28 19:43:36 2000 +/* This file was generated by configgen on Mon Jul 31 16:07:18 2000 * from config_templ.h * * DO NOT EDIT! diff --git a/src/config.l b/src/config.l index 06521d3..eebe6bd 100644 --- a/src/config.l +++ b/src/config.l @@ -1,4 +1,4 @@ -/* This file was generated by configgen on Fri Jul 28 19:43:36 2000 +/* This file was generated by configgen on Mon Jul 31 16:11:27 2000 * from config_templ.l * * DO NOT EDIT! @@ -225,107 +225,124 @@ static int yyread(char *buf,int max_size) <*>\0x0d "#" { BEGIN(SkipComment); } -"PROJECT_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::projectName; s->resize(0); } -"PROJECT_NUMBER"[ \t]*"=" { BEGIN(GetString); s=&Config::projectNumber; s->resize(0); } -"OUTPUT_DIRECTORY"[ \t]*"=" { BEGIN(GetString); s=&Config::outputDir; s->resize(0); } -"OUTPUT_LANGUAGE"[ \t]*"=" { BEGIN(GetString); s=&Config::outputLanguage; s->resize(0); } -"DISABLE_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::noIndexFlag; } -"EXTRACT_ALL"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractAllFlag; } -"EXTRACT_PRIVATE"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractPrivateFlag; } -"EXTRACT_STATIC"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractStaticFlag; } -"HIDE_UNDOC_MEMBERS"[ \t]*"=" { BEGIN(GetBool); b=&Config::hideMemberFlag; } -"HIDE_UNDOC_CLASSES"[ \t]*"=" { BEGIN(GetBool); b=&Config::hideClassFlag; } -"BRIEF_MEMBER_DESC"[ \t]*"=" { BEGIN(GetBool); b=&Config::briefMemDescFlag; } -"REPEAT_BRIEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::repeatBriefFlag; } -"ALWAYS_DETAILED_SEC"[ \t]*"=" { BEGIN(GetBool); b=&Config::alwaysDetailsFlag; } -"FULL_PATH_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::fullPathNameFlag; } -"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::stripFromPath; l->clear(); elemStr=""; } -"INTERNAL_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::internalDocsFlag; } -"CLASS_DIAGRAMS"[ \t]*"=" { BEGIN(GetBool); b=&Config::classDiagramFlag; } -"SOURCE_BROWSER"[ \t]*"=" { BEGIN(GetBool); b=&Config::sourceBrowseFlag; } -"INLINE_SOURCES"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineSourceFlag; } -"STRIP_CODE_COMMENTS"[ \t]*"=" { BEGIN(GetBool); b=&Config::stripCommentsFlag; } -"CASE_SENSE_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::caseSensitiveNames; } -"HIDE_SCOPE_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::hideScopeNames; } -"VERBATIM_HEADERS"[ \t]*"=" { BEGIN(GetBool); b=&Config::verbatimHeaderFlag; } -"SHOW_INCLUDE_FILES"[ \t]*"=" { BEGIN(GetBool); b=&Config::showIncFileFlag; } -"JAVADOC_AUTOBRIEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::autoBriefFlag; } -"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; } -"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; } -"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; } -"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); } -"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; } -"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; } -"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; } -"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; } -"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; } -"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; } -"WARN_FORMAT"[ \t]*"=" { BEGIN(GetString); s=&Config::warnFormat; s->resize(0); } -"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&Config::inputSources; l->clear(); elemStr=""; } -"FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::filePatternList; l->clear(); elemStr=""; } -"RECURSIVE"[ \t]*"=" { BEGIN(GetBool); b=&Config::recursiveFlag; } -"EXCLUDE"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludeSources; l->clear(); elemStr=""; } -"EXCLUDE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludePatternList; l->clear(); elemStr=""; } -"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePath; l->clear(); elemStr=""; } -"EXAMPLE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePatternList; l->clear(); elemStr=""; } -"IMAGE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePath; l->clear(); elemStr=""; } -"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&Config::inputFilter; s->resize(0); } -"ALPHABETICAL_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::alphaIndexFlag; } -"COLS_IN_ALPHA_INDEX"[ \t]*"=" { BEGIN(GetString); s=&colsInAlphaIndexString; s->resize(0); } -"IGNORE_PREFIX"[ \t]*"=" { BEGIN(GetStrList); l=&Config::ignorePrefixList; l->clear(); elemStr=""; } -"GENERATE_HTML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateHtml; } -"HTML_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlOutputDir; s->resize(0); } -"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; s->resize(0); } -"HTML_FOOTER"[ \t]*"=" { BEGIN(GetString); s=&Config::footerFile; s->resize(0); } -"HTML_STYLESHEET"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlStyleSheet; s->resize(0); } -"HTML_ALIGN_MEMBERS"[ \t]*"=" { BEGIN(GetBool); b=&Config::htmlAlignMemberFlag; } -"GENERATE_HTMLHELP"[ \t]*"=" { BEGIN(GetBool); b=&Config::htmlHelpFlag; } -"GENERATE_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateLatex; } -"LATEX_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::latexOutputDir; s->resize(0); } -"COMPACT_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactLatexFlag; } -"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&Config::paperType; s->resize(0); } -"EXTRA_PACKAGES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extraPackageList; l->clear(); elemStr=""; } -"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; s->resize(0); } -"PDF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::pdfHyperFlag; } -"USE_PDFLATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::usePDFLatexFlag; } -"LATEX_BATCHMODE"[ \t]*"=" { BEGIN(GetBool); b=&Config::latexBatchModeFlag; } -"GENERATE_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateRTF; } -"RTF_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfOutputDir; s->resize(0); } -"COMPACT_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactRTFFlag; } -"RTF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::rtfHyperFlag; } -"RTF_STYLESHEET_FILE"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfStylesheetFile; s->resize(0); } -"GENERATE_MAN"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateMan; } -"MAN_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::manOutputDir; s->resize(0); } -"MAN_EXTENSION"[ \t]*"=" { BEGIN(GetString); s=&Config::manExtension; s->resize(0); } -"GENERATE_XML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateXML; } -"ENABLE_PREPROCESSING"[ \t]*"=" { BEGIN(GetBool); b=&Config::preprocessingFlag; } -"MACRO_EXPANSION"[ \t]*"=" { BEGIN(GetBool); b=&Config::macroExpansionFlag; } -"EXPAND_ONLY_PREDEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::onlyPredefinedFlag; } -"SEARCH_INCLUDES"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchIncludeFlag; } -"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includePath; l->clear(); elemStr=""; } -"INCLUDE_FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includeFilePatternList; l->clear(); elemStr=""; } -"PREDEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::predefined; l->clear(); elemStr=""; } -"EXPAND_AS_DEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::expandAsDefinedList; l->clear(); elemStr=""; } -"TAGFILES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::tagFileList; l->clear(); elemStr=""; } -"GENERATE_TAGFILE"[ \t]*"=" { BEGIN(GetString); s=&Config::genTagFile; s->resize(0); } -"ALLEXTERNALS"[ \t]*"=" { BEGIN(GetBool); b=&Config::allExtFlag; } -"PERL_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::perlPath; s->resize(0); } -"HAVE_DOT"[ \t]*"=" { BEGIN(GetBool); b=&Config::haveDotFlag; } -"CLASS_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::classGraphFlag; } -"COLLABORATION_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::collGraphFlag; } -"INCLUDE_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::includeGraphFlag; } -"INCLUDED_BY_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::includedByGraphFlag; } -"GRAPHICAL_HIERARCHY"[ \t]*"=" { BEGIN(GetBool); b=&Config::gfxHierarchyFlag; } -"DOT_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::dotPath; s->resize(0); } -"MAX_DOT_GRAPH_WIDTH"[ \t]*"=" { BEGIN(GetString); s=&maxDotGraphWidthString; s->resize(0); } -"MAX_DOT_GRAPH_HEIGHT"[ \t]*"=" { BEGIN(GetString); s=&maxDotGraphHeightString; s->resize(0); } -"SEARCHENGINE"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchEngineFlag; } -"CGI_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiName; s->resize(0); } -"CGI_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiURL; s->resize(0); } -"DOC_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::docURL; s->resize(0); } -"DOC_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::docAbsPath; s->resize(0); } -"BIN_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::binAbsPath; s->resize(0); } -"EXT_DOC_PATHS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extDocPathList; l->clear(); elemStr=""; } +"PROJECT_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::projectName; s->resize(0); } +"PROJECT_NUMBER"[ \t]*"=" { BEGIN(GetString); s=&Config::projectNumber; s->resize(0); } +"OUTPUT_DIRECTORY"[ \t]*"=" { BEGIN(GetString); s=&Config::outputDir; s->resize(0); } +"OUTPUT_LANGUAGE"[ \t]*"=" { BEGIN(GetString); s=&Config::outputLanguage; s->resize(0); } +"DISABLE_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::noIndexFlag; } +"EXTRACT_ALL"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractAllFlag; } +"EXTRACT_PRIVATE"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractPrivateFlag; } +"EXTRACT_STATIC"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractStaticFlag; } +"HIDE_UNDOC_MEMBERS"[ \t]*"=" { BEGIN(GetBool); b=&Config::hideMemberFlag; } +"HIDE_UNDOC_CLASSES"[ \t]*"=" { BEGIN(GetBool); b=&Config::hideClassFlag; } +"BRIEF_MEMBER_DESC"[ \t]*"=" { BEGIN(GetBool); b=&Config::briefMemDescFlag; } +"REPEAT_BRIEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::repeatBriefFlag; } +"ALWAYS_DETAILED_SEC"[ \t]*"=" { BEGIN(GetBool); b=&Config::alwaysDetailsFlag; } +"FULL_PATH_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::fullPathNameFlag; } +"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::stripFromPath; l->clear(); elemStr=""; } +"STRIP_FROM_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::stripFromPath; elemStr=""; } +"INTERNAL_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::internalDocsFlag; } +"CLASS_DIAGRAMS"[ \t]*"=" { BEGIN(GetBool); b=&Config::classDiagramFlag; } +"SOURCE_BROWSER"[ \t]*"=" { BEGIN(GetBool); b=&Config::sourceBrowseFlag; } +"INLINE_SOURCES"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineSourceFlag; } +"STRIP_CODE_COMMENTS"[ \t]*"=" { BEGIN(GetBool); b=&Config::stripCommentsFlag; } +"CASE_SENSE_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::caseSensitiveNames; } +"HIDE_SCOPE_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&Config::hideScopeNames; } +"VERBATIM_HEADERS"[ \t]*"=" { BEGIN(GetBool); b=&Config::verbatimHeaderFlag; } +"SHOW_INCLUDE_FILES"[ \t]*"=" { BEGIN(GetBool); b=&Config::showIncFileFlag; } +"JAVADOC_AUTOBRIEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::autoBriefFlag; } +"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; } +"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; } +"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; } +"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); } +"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; } +"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; } +"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; } +"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; } +"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; } +"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; } +"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; } +"WARN_FORMAT"[ \t]*"=" { BEGIN(GetString); s=&Config::warnFormat; s->resize(0); } +"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&Config::inputSources; l->clear(); elemStr=""; } +"INPUT"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::inputSources; elemStr=""; } +"FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::filePatternList; l->clear(); elemStr=""; } +"FILE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::filePatternList; elemStr=""; } +"RECURSIVE"[ \t]*"=" { BEGIN(GetBool); b=&Config::recursiveFlag; } +"EXCLUDE"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludeSources; l->clear(); elemStr=""; } +"EXCLUDE"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::excludeSources; elemStr=""; } +"EXCLUDE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludePatternList; l->clear(); elemStr=""; } +"EXCLUDE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::excludePatternList; elemStr=""; } +"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePath; l->clear(); elemStr=""; } +"EXAMPLE_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::examplePath; elemStr=""; } +"EXAMPLE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePatternList; l->clear(); elemStr=""; } +"EXAMPLE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::examplePatternList; elemStr=""; } +"IMAGE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePath; l->clear(); elemStr=""; } +"IMAGE_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::imagePath; elemStr=""; } +"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&Config::inputFilter; s->resize(0); } +"ALPHABETICAL_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::alphaIndexFlag; } +"COLS_IN_ALPHA_INDEX"[ \t]*"=" { BEGIN(GetString); s=&colsInAlphaIndexString; s->resize(0); } +"IGNORE_PREFIX"[ \t]*"=" { BEGIN(GetStrList); l=&Config::ignorePrefixList; l->clear(); elemStr=""; } +"IGNORE_PREFIX"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::ignorePrefixList; elemStr=""; } +"GENERATE_HTML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateHtml; } +"HTML_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlOutputDir; s->resize(0); } +"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; s->resize(0); } +"HTML_FOOTER"[ \t]*"=" { BEGIN(GetString); s=&Config::footerFile; s->resize(0); } +"HTML_STYLESHEET"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlStyleSheet; s->resize(0); } +"HTML_ALIGN_MEMBERS"[ \t]*"=" { BEGIN(GetBool); b=&Config::htmlAlignMemberFlag; } +"GENERATE_HTMLHELP"[ \t]*"=" { BEGIN(GetBool); b=&Config::htmlHelpFlag; } +"GENERATE_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateLatex; } +"LATEX_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::latexOutputDir; s->resize(0); } +"COMPACT_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactLatexFlag; } +"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&Config::paperType; s->resize(0); } +"EXTRA_PACKAGES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extraPackageList; l->clear(); elemStr=""; } +"EXTRA_PACKAGES"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::extraPackageList; elemStr=""; } +"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; s->resize(0); } +"PDF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::pdfHyperFlag; } +"USE_PDFLATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::usePDFLatexFlag; } +"LATEX_BATCHMODE"[ \t]*"=" { BEGIN(GetBool); b=&Config::latexBatchModeFlag; } +"GENERATE_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateRTF; } +"RTF_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfOutputDir; s->resize(0); } +"COMPACT_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactRTFFlag; } +"RTF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::rtfHyperFlag; } +"RTF_STYLESHEET_FILE"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfStylesheetFile; s->resize(0); } +"GENERATE_MAN"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateMan; } +"MAN_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::manOutputDir; s->resize(0); } +"MAN_EXTENSION"[ \t]*"=" { BEGIN(GetString); s=&Config::manExtension; s->resize(0); } +"GENERATE_XML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateXML; } +"ENABLE_PREPROCESSING"[ \t]*"=" { BEGIN(GetBool); b=&Config::preprocessingFlag; } +"MACRO_EXPANSION"[ \t]*"=" { BEGIN(GetBool); b=&Config::macroExpansionFlag; } +"EXPAND_ONLY_PREDEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::onlyPredefinedFlag; } +"SEARCH_INCLUDES"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchIncludeFlag; } +"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includePath; l->clear(); elemStr=""; } +"INCLUDE_PATH"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::includePath; elemStr=""; } +"INCLUDE_FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includeFilePatternList; l->clear(); elemStr=""; } +"INCLUDE_FILE_PATTERNS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::includeFilePatternList; elemStr=""; } +"PREDEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::predefined; l->clear(); elemStr=""; } +"PREDEFINED"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::predefined; elemStr=""; } +"EXPAND_AS_DEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::expandAsDefinedList; l->clear(); elemStr=""; } +"EXPAND_AS_DEFINED"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::expandAsDefinedList; elemStr=""; } +"TAGFILES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::tagFileList; l->clear(); elemStr=""; } +"TAGFILES"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::tagFileList; elemStr=""; } +"GENERATE_TAGFILE"[ \t]*"=" { BEGIN(GetString); s=&Config::genTagFile; s->resize(0); } +"ALLEXTERNALS"[ \t]*"=" { BEGIN(GetBool); b=&Config::allExtFlag; } +"PERL_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::perlPath; s->resize(0); } +"HAVE_DOT"[ \t]*"=" { BEGIN(GetBool); b=&Config::haveDotFlag; } +"CLASS_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::classGraphFlag; } +"COLLABORATION_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::collGraphFlag; } +"INCLUDE_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::includeGraphFlag; } +"INCLUDED_BY_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::includedByGraphFlag; } +"GRAPHICAL_HIERARCHY"[ \t]*"=" { BEGIN(GetBool); b=&Config::gfxHierarchyFlag; } +"DOT_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::dotPath; s->resize(0); } +"MAX_DOT_GRAPH_WIDTH"[ \t]*"=" { BEGIN(GetString); s=&maxDotGraphWidthString; s->resize(0); } +"MAX_DOT_GRAPH_HEIGHT"[ \t]*"=" { BEGIN(GetString); s=&maxDotGraphHeightString; s->resize(0); } +"SEARCHENGINE"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchEngineFlag; } +"CGI_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiName; s->resize(0); } +"CGI_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiURL; s->resize(0); } +"DOC_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::docURL; s->resize(0); } +"DOC_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::docAbsPath; s->resize(0); } +"BIN_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::binAbsPath; s->resize(0); } +"EXT_DOC_PATHS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extDocPathList; l->clear(); elemStr=""; } +"EXT_DOC_PATHS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::extDocPathList; elemStr=""; } [a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); } \n { yyLineNr++; BEGIN(Start); } \n { @@ -813,6 +830,8 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# All text after a hash (#) is considered a comment and will be ignored\n"; t << "# The format is:\n"; t << "# TAG = value [value, ...]\n"; + t << "# For lists items can also be appended using:\n"; + t << "# TAG += value [value, ...]\n"; t << "# Values that contain spaces should be placed between quotes (\" \")\n"; } if (!sl) @@ -829,7 +848,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# by quotes) that should identify the project. \n"; t << "\n"; } - t << "PROJECT_NAME = "; + t << "PROJECT_NAME = "; writeStringValue(t,Config::projectName); t << "\n"; if (!sl) @@ -840,7 +859,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# if some version control system is used.\n"; t << "\n"; } - t << "PROJECT_NUMBER = "; + t << "PROJECT_NUMBER = "; writeStringValue(t,Config::projectNumber); t << "\n"; if (!sl) @@ -852,7 +871,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# where doxygen was started. If left blank the current directory will be used.\n"; t << "\n"; } - t << "OUTPUT_DIRECTORY = "; + t << "OUTPUT_DIRECTORY = "; writeStringValue(t,Config::outputDir); t << "\n"; if (!sl) @@ -866,7 +885,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# Spanish, Russian, Croatian, Polish, and Portuguese.\n"; t << "\n"; } - t << "OUTPUT_LANGUAGE = "; + t << "OUTPUT_LANGUAGE = "; writeStringValue(t,Config::outputLanguage); t << "\n"; if (!sl) @@ -877,7 +896,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the value YES disables it. \n"; t << "\n"; } - t << "DISABLE_INDEX = "; + t << "DISABLE_INDEX = "; writeBoolValue(t,Config::noIndexFlag); t << "\n"; if (!sl) @@ -889,7 +908,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES \n"; t << "\n"; } - t << "EXTRACT_ALL = "; + t << "EXTRACT_ALL = "; writeBoolValue(t,Config::extractAllFlag); t << "\n"; if (!sl) @@ -899,7 +918,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# will be included in the documentation. \n"; t << "\n"; } - t << "EXTRACT_PRIVATE = "; + t << "EXTRACT_PRIVATE = "; writeBoolValue(t,Config::extractPrivateFlag); t << "\n"; if (!sl) @@ -909,7 +928,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# will be included in the documentation. \n"; t << "\n"; } - t << "EXTRACT_STATIC = "; + t << "EXTRACT_STATIC = "; writeBoolValue(t,Config::extractStaticFlag); t << "\n"; if (!sl) @@ -922,7 +941,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# This option has no effect if EXTRACT_ALL is enabled. \n"; t << "\n"; } - t << "HIDE_UNDOC_MEMBERS = "; + t << "HIDE_UNDOC_MEMBERS = "; writeBoolValue(t,Config::hideMemberFlag); t << "\n"; if (!sl) @@ -934,7 +953,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# overviews. This option has no effect if EXTRACT_ALL is enabled. \n"; t << "\n"; } - t << "HIDE_UNDOC_CLASSES = "; + t << "HIDE_UNDOC_CLASSES = "; writeBoolValue(t,Config::hideClassFlag); t << "\n"; if (!sl) @@ -946,7 +965,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# Set to NO to disable this. \n"; t << "\n"; } - t << "BRIEF_MEMBER_DESC = "; + t << "BRIEF_MEMBER_DESC = "; writeBoolValue(t,Config::briefMemDescFlag); t << "\n"; if (!sl) @@ -958,7 +977,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# brief descriptions will be completely suppressed. \n"; t << "\n"; } - t << "REPEAT_BRIEF = "; + t << "REPEAT_BRIEF = "; writeBoolValue(t,Config::repeatBriefFlag); t << "\n"; if (!sl) @@ -969,7 +988,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# description. \n"; t << "\n"; } - t << "ALWAYS_DETAILED_SEC = "; + t << "ALWAYS_DETAILED_SEC = "; writeBoolValue(t,Config::alwaysDetailsFlag); t << "\n"; if (!sl) @@ -980,7 +999,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# to NO the shortest path that makes the file name unique will be used. \n"; t << "\n"; } - t << "FULL_PATH_NAMES = "; + t << "FULL_PATH_NAMES = "; writeBoolValue(t,Config::fullPathNameFlag); t << "\n"; if (!sl) @@ -992,7 +1011,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the path. It is allowed to use relative paths in the argument list.\n"; t << "\n"; } - t << "STRIP_FROM_PATH = "; + t << "STRIP_FROM_PATH = "; writeStringList(t,Config::stripFromPath); t << "\n"; if (!sl) @@ -1004,7 +1023,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# Set it to YES to include the internal documentation. \n"; t << "\n"; } - t << "INTERNAL_DOCS = "; + t << "INTERNAL_DOCS = "; writeBoolValue(t,Config::internalDocsFlag); t << "\n"; if (!sl) @@ -1015,7 +1034,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# super classes. Setting the tag to NO turns the diagrams off. \n"; t << "\n"; } - t << "CLASS_DIAGRAMS = "; + t << "CLASS_DIAGRAMS = "; writeBoolValue(t,Config::classDiagramFlag); t << "\n"; if (!sl) @@ -1025,7 +1044,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# be generated. Documented entities will be cross-referenced with these sources. \n"; t << "\n"; } - t << "SOURCE_BROWSER = "; + t << "SOURCE_BROWSER = "; writeBoolValue(t,Config::sourceBrowseFlag); t << "\n"; if (!sl) @@ -1035,7 +1054,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# of functions and classes directly in the documentation. \n"; t << "\n"; } - t << "INLINE_SOURCES = "; + t << "INLINE_SOURCES = "; writeBoolValue(t,Config::inlineSourceFlag); t << "\n"; if (!sl) @@ -1046,7 +1065,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# fragments. Normal C and C++ comments will always remain visible. \n"; t << "\n"; } - t << "STRIP_CODE_COMMENTS = "; + t << "STRIP_CODE_COMMENTS = "; writeBoolValue(t,Config::stripCommentsFlag); t << "\n"; if (!sl) @@ -1059,7 +1078,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# supports case sensitive file names. \n"; t << "\n"; } - t << "CASE_SENSE_NAMES = "; + t << "CASE_SENSE_NAMES = "; writeBoolValue(t,Config::caseSensitiveNames); t << "\n"; if (!sl) @@ -1070,7 +1089,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# documentation. If set to YES the scope will be hidden. \n"; t << "\n"; } - t << "HIDE_SCOPE_NAMES = "; + t << "HIDE_SCOPE_NAMES = "; writeBoolValue(t,Config::hideScopeNames); t << "\n"; if (!sl) @@ -1081,7 +1100,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# which an include is specified. Set to NO to disable this. \n"; t << "\n"; } - t << "VERBATIM_HEADERS = "; + t << "VERBATIM_HEADERS = "; writeBoolValue(t,Config::verbatimHeaderFlag); t << "\n"; if (!sl) @@ -1092,7 +1111,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# of that file. \n"; t << "\n"; } - t << "SHOW_INCLUDE_FILES = "; + t << "SHOW_INCLUDE_FILES = "; writeBoolValue(t,Config::showIncFileFlag); t << "\n"; if (!sl) @@ -1104,7 +1123,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# behave just like the Qt-style comments. \n"; t << "\n"; } - t << "JAVADOC_AUTOBRIEF = "; + t << "JAVADOC_AUTOBRIEF = "; writeBoolValue(t,Config::autoBriefFlag); t << "\n"; if (!sl) @@ -1115,7 +1134,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# reimplements. \n"; t << "\n"; } - t << "INHERIT_DOCS = "; + t << "INHERIT_DOCS = "; writeBoolValue(t,Config::inheritDocsFlag); t << "\n"; if (!sl) @@ -1125,7 +1144,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# is inserted in the documentation for inline members. \n"; t << "\n"; } - t << "INLINE_INFO = "; + t << "INLINE_INFO = "; writeBoolValue(t,Config::inlineInfoFlag); t << "\n"; if (!sl) @@ -1137,7 +1156,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# declaration order. \n"; t << "\n"; } - t << "SORT_MEMBER_DOCS = "; + t << "SORT_MEMBER_DOCS = "; writeBoolValue(t,Config::sortMembersFlag); t << "\n"; if (!sl) @@ -1147,7 +1166,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# Doxygen uses this value to replace tabs by spaces in code fragments. \n"; t << "\n"; } - t << "TAB_SIZE = "; + t << "TAB_SIZE = "; writeIntValue(t,Config::tabSize); t << "\n"; if (!sl) @@ -1157,7 +1176,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# documentation sections, marked by \\if sectionname ... \\endif. \n"; t << "\n"; } - t << "ENABLED_SECTIONS = "; + t << "ENABLED_SECTIONS = "; writeStringList(t,Config::sectionFilterList); t << "\n"; if (!sl) @@ -1168,7 +1187,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# commands in the documentation.\n"; t << "\n"; } - t << "GENERATE_TODOLIST = "; + t << "GENERATE_TODOLIST = "; writeBoolValue(t,Config::generateTodoList); t << "\n"; if (!sl) @@ -1179,7 +1198,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# commands in the documentation.\n"; t << "\n"; } - t << "GENERATE_TESTLIST = "; + t << "GENERATE_TESTLIST = "; writeBoolValue(t,Config::generateTestList); t << "\n"; if (!sl) @@ -1196,7 +1215,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# by doxygen. Possible values are YES and NO. If left blank NO is used. \n"; t << "\n"; } - t << "QUIET = "; + t << "QUIET = "; writeBoolValue(t,Config::quietFlag); t << "\n"; if (!sl) @@ -1207,7 +1226,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# NO is used. \n"; t << "\n"; } - t << "WARNINGS = "; + t << "WARNINGS = "; writeBoolValue(t,Config::warningFlag); t << "\n"; if (!sl) @@ -1218,7 +1237,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# automatically be disabled. \n"; t << "\n"; } - t << "WARN_IF_UNDOCUMENTED = "; + t << "WARN_IF_UNDOCUMENTED = "; writeBoolValue(t,Config::warningUndocFlag); t << "\n"; if (!sl) @@ -1230,7 +1249,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# warning originated and the warning text. \n"; t << "\n"; } - t << "WARN_FORMAT = "; + t << "WARN_FORMAT = "; writeStringValue(t,Config::warnFormat); t << "\n"; if (!sl) @@ -1249,7 +1268,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# with spaces. \n"; t << "\n"; } - t << "INPUT = "; + t << "INPUT = "; writeStringList(t,Config::inputSources); t << "\n"; if (!sl) @@ -1261,7 +1280,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# blank all files are included. \n"; t << "\n"; } - t << "FILE_PATTERNS = "; + t << "FILE_PATTERNS = "; writeStringList(t,Config::filePatternList); t << "\n"; if (!sl) @@ -1272,7 +1291,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# If left blank NO is used. \n"; t << "\n"; } - t << "RECURSIVE = "; + t << "RECURSIVE = "; writeBoolValue(t,Config::recursiveFlag); t << "\n"; if (!sl) @@ -1283,7 +1302,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# subdirectory from a directory tree whose root is specified with the INPUT tag. \n"; t << "\n"; } - t << "EXCLUDE = "; + t << "EXCLUDE = "; writeStringList(t,Config::excludeSources); t << "\n"; if (!sl) @@ -1294,7 +1313,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# certain files from those directories. \n"; t << "\n"; } - t << "EXCLUDE_PATTERNS = "; + t << "EXCLUDE_PATTERNS = "; writeStringList(t,Config::excludePatternList); t << "\n"; if (!sl) @@ -1305,7 +1324,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the \\include command). \n"; t << "\n"; } - t << "EXAMPLE_PATH = "; + t << "EXAMPLE_PATH = "; writeStringList(t,Config::examplePath); t << "\n"; if (!sl) @@ -1317,7 +1336,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# blank all files are included. \n"; t << "\n"; } - t << "EXAMPLE_PATTERNS = "; + t << "EXAMPLE_PATTERNS = "; writeStringList(t,Config::examplePatternList); t << "\n"; if (!sl) @@ -1328,7 +1347,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the \\image command). \n"; t << "\n"; } - t << "IMAGE_PATH = "; + t << "IMAGE_PATH = "; writeStringList(t,Config::imagePath); t << "\n"; if (!sl) @@ -1342,7 +1361,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# to standard output. \n"; t << "\n"; } - t << "INPUT_FILTER = "; + t << "INPUT_FILTER = "; writeStringValue(t,Config::inputFilter); t << "\n"; if (!sl) @@ -1360,7 +1379,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# contains a lot of classes, structs, unions or interfaces. \n"; t << "\n"; } - t << "ALPHABETICAL_INDEX = "; + t << "ALPHABETICAL_INDEX = "; writeBoolValue(t,Config::alphaIndexFlag); t << "\n"; if (!sl) @@ -1371,7 +1390,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# in which this list will be split (can be a number in the range [1..20]) \n"; t << "\n"; } - t << "COLS_IN_ALPHA_INDEX = "; + t << "COLS_IN_ALPHA_INDEX = "; writeIntValue(t,Config::colsInAlphaIndex); t << "\n"; if (!sl) @@ -1383,7 +1402,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# should be ignored while generating the index headers. \n"; t << "\n"; } - t << "IGNORE_PREFIX = "; + t << "IGNORE_PREFIX = "; writeStringList(t,Config::ignorePrefixList); t << "\n"; if (!sl) @@ -1400,7 +1419,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# generate HTML output. \n"; t << "\n"; } - t << "GENERATE_HTML = "; + t << "GENERATE_HTML = "; writeBoolValue(t,Config::generateHtml); t << "\n"; if (!sl) @@ -1411,7 +1430,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# put in front of it. If left blank `html' will be used as the default path. \n"; t << "\n"; } - t << "HTML_OUTPUT = "; + t << "HTML_OUTPUT = "; writeStringValue(t,Config::htmlOutputDir); t << "\n"; if (!sl) @@ -1422,7 +1441,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# standard header.\n"; t << "\n"; } - t << "HTML_HEADER = "; + t << "HTML_HEADER = "; writeStringValue(t,Config::headerFile); t << "\n"; if (!sl) @@ -1433,7 +1452,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# standard footer.\n"; t << "\n"; } - t << "HTML_FOOTER = "; + t << "HTML_FOOTER = "; writeStringValue(t,Config::footerFile); t << "\n"; if (!sl) @@ -1445,7 +1464,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# will generate a default style sheet \n"; t << "\n"; } - t << "HTML_STYLESHEET = "; + t << "HTML_STYLESHEET = "; writeStringValue(t,Config::htmlStyleSheet); t << "\n"; if (!sl) @@ -1456,7 +1475,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# NO a bullet list will be used. \n"; t << "\n"; } - t << "HTML_ALIGN_MEMBERS = "; + t << "HTML_ALIGN_MEMBERS = "; writeBoolValue(t,Config::htmlAlignMemberFlag); t << "\n"; if (!sl) @@ -1468,7 +1487,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# of the generated HTML documentation. \n"; t << "\n"; } - t << "GENERATE_HTMLHELP = "; + t << "GENERATE_HTMLHELP = "; writeBoolValue(t,Config::htmlHelpFlag); t << "\n"; if (!sl) @@ -1485,7 +1504,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# generate Latex output. \n"; t << "\n"; } - t << "GENERATE_LATEX = "; + t << "GENERATE_LATEX = "; writeBoolValue(t,Config::generateLatex); t << "\n"; if (!sl) @@ -1496,7 +1515,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# put in front of it. If left blank `latex' will be used as the default path. \n"; t << "\n"; } - t << "LATEX_OUTPUT = "; + t << "LATEX_OUTPUT = "; writeStringValue(t,Config::latexOutputDir); t << "\n"; if (!sl) @@ -1507,7 +1526,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# save some trees in general. \n"; t << "\n"; } - t << "COMPACT_LATEX = "; + t << "COMPACT_LATEX = "; writeBoolValue(t,Config::compactLatexFlag); t << "\n"; if (!sl) @@ -1518,7 +1537,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# executive. If left blank a4wide will be used. \n"; t << "\n"; } - t << "PAPER_TYPE = "; + t << "PAPER_TYPE = "; writeStringValue(t,Config::paperType); t << "\n"; if (!sl) @@ -1528,7 +1547,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# packages that should be included in the LaTeX output. \n"; t << "\n"; } - t << "EXTRA_PACKAGES = "; + t << "EXTRA_PACKAGES = "; writeStringList(t,Config::extraPackageList); t << "\n"; if (!sl) @@ -1540,7 +1559,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# standard header. Notice: only use this tag if you know what you are doing! \n"; t << "\n"; } - t << "LATEX_HEADER = "; + t << "LATEX_HEADER = "; writeStringValue(t,Config::latexHeaderFile); t << "\n"; if (!sl) @@ -1552,7 +1571,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# This makes the output suitable for online browsing using a pdf viewer. \n"; t << "\n"; } - t << "PDF_HYPERLINKS = "; + t << "PDF_HYPERLINKS = "; writeBoolValue(t,Config::pdfHyperFlag); t << "\n"; if (!sl) @@ -1563,7 +1582,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# higher quality PDF documentation. \n"; t << "\n"; } - t << "USE_PDFLATEX = "; + t << "USE_PDFLATEX = "; writeBoolValue(t,Config::usePDFLatexFlag); t << "\n"; if (!sl) @@ -1575,7 +1594,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# This option is also used when generating formulas in HTML. \n"; t << "\n"; } - t << "LATEX_BATCHMODE = "; + t << "LATEX_BATCHMODE = "; writeBoolValue(t,Config::latexBatchModeFlag); t << "\n"; if (!sl) @@ -1593,7 +1612,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# other RTF readers or editors.\n"; t << "\n"; } - t << "GENERATE_RTF = "; + t << "GENERATE_RTF = "; writeBoolValue(t,Config::generateRTF); t << "\n"; if (!sl) @@ -1604,7 +1623,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# put in front of it. If left blank `rtf' will be used as the default path. \n"; t << "\n"; } - t << "RTF_OUTPUT = "; + t << "RTF_OUTPUT = "; writeStringValue(t,Config::rtfOutputDir); t << "\n"; if (!sl) @@ -1615,7 +1634,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# save some trees in general. \n"; t << "\n"; } - t << "COMPACT_RTF = "; + t << "COMPACT_RTF = "; writeBoolValue(t,Config::compactRTFFlag); t << "\n"; if (!sl) @@ -1629,7 +1648,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# Note: wordpad (write) and others do not support links. \n"; t << "\n"; } - t << "RTF_HYPERLINKS = "; + t << "RTF_HYPERLINKS = "; writeBoolValue(t,Config::rtfHyperFlag); t << "\n"; if (!sl) @@ -1640,7 +1659,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# replacements, missing definitions are set to their default value. \n"; t << "\n"; } - t << "RTF_STYLESHEET_FILE = "; + t << "RTF_STYLESHEET_FILE = "; writeStringValue(t,Config::rtfStylesheetFile); t << "\n"; if (!sl) @@ -1657,7 +1676,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# generate man pages \n"; t << "\n"; } - t << "GENERATE_MAN = "; + t << "GENERATE_MAN = "; writeBoolValue(t,Config::generateMan); t << "\n"; if (!sl) @@ -1668,7 +1687,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# put in front of it. If left blank `man' will be used as the default path. \n"; t << "\n"; } - t << "MAN_OUTPUT = "; + t << "MAN_OUTPUT = "; writeStringValue(t,Config::manOutputDir); t << "\n"; if (!sl) @@ -1678,7 +1697,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the generated man pages (default is the subroutine's section .3) \n"; t << "\n"; } - t << "MAN_EXTENSION = "; + t << "MAN_EXTENSION = "; writeStringValue(t,Config::manExtension); t << "\n"; if (!sl) @@ -1697,7 +1716,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# is still experimental and very incomplete.\n"; t << "\n"; } - t << "GENERATE_XML = "; + t << "GENERATE_XML = "; writeBoolValue(t,Config::generateXML); t << "\n"; if (!sl) @@ -1715,7 +1734,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# files. \n"; t << "\n"; } - t << "ENABLE_PREPROCESSING = "; + t << "ENABLE_PREPROCESSING = "; writeBoolValue(t,Config::preprocessingFlag); t << "\n"; if (!sl) @@ -1727,7 +1746,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# way by setting EXPAND_ONLY_PREDEF to YES. \n"; t << "\n"; } - t << "MACRO_EXPANSION = "; + t << "MACRO_EXPANSION = "; writeBoolValue(t,Config::macroExpansionFlag); t << "\n"; if (!sl) @@ -1738,7 +1757,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# PREDEFINED and EXPAND_AS_PREDEFINED tags. \n"; t << "\n"; } - t << "EXPAND_ONLY_PREDEF = "; + t << "EXPAND_ONLY_PREDEF = "; writeBoolValue(t,Config::onlyPredefinedFlag); t << "\n"; if (!sl) @@ -1748,7 +1767,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# in the INCLUDE_PATH (see below) will be search if a #include is found. \n"; t << "\n"; } - t << "SEARCH_INCLUDES = "; + t << "SEARCH_INCLUDES = "; writeBoolValue(t,Config::searchIncludeFlag); t << "\n"; if (!sl) @@ -1759,7 +1778,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the preprocessor. \n"; t << "\n"; } - t << "INCLUDE_PATH = "; + t << "INCLUDE_PATH = "; writeStringList(t,Config::includePath); t << "\n"; if (!sl) @@ -1771,7 +1790,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# be used. \n"; t << "\n"; } - t << "INCLUDE_FILE_PATTERNS = "; + t << "INCLUDE_FILE_PATTERNS = "; writeStringList(t,Config::includeFilePatternList); t << "\n"; if (!sl) @@ -1784,7 +1803,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# omitted =1 is assumed. \n"; t << "\n"; } - t << "PREDEFINED = "; + t << "PREDEFINED = "; writeStringList(t,Config::predefined); t << "\n"; if (!sl) @@ -1796,7 +1815,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# Use the PREDEFINED tag if you want to use a different macro definition. \n"; t << "\n"; } - t << "EXPAND_AS_DEFINED = "; + t << "EXPAND_AS_DEFINED = "; writeStringList(t,Config::expandAsDefinedList); t << "\n"; if (!sl) @@ -1812,7 +1831,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# The TAGFILES tag can be used to specify one or more tagfiles. \n"; t << "\n"; } - t << "TAGFILES = "; + t << "TAGFILES = "; writeStringList(t,Config::tagFileList); t << "\n"; if (!sl) @@ -1822,7 +1841,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# a tag file that is based on the input files it reads. \n"; t << "\n"; } - t << "GENERATE_TAGFILE = "; + t << "GENERATE_TAGFILE = "; writeStringValue(t,Config::genTagFile); t << "\n"; if (!sl) @@ -1833,7 +1852,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# will be listed. \n"; t << "\n"; } - t << "ALLEXTERNALS = "; + t << "ALLEXTERNALS = "; writeBoolValue(t,Config::allExtFlag); t << "\n"; if (!sl) @@ -1843,7 +1862,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# interpreter (i.e. the result of `which perl'). \n"; t << "\n"; } - t << "PERL_PATH = "; + t << "PERL_PATH = "; writeStringValue(t,Config::perlPath); t << "\n"; if (!sl) @@ -1862,7 +1881,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# have no effect if this option is set to NO (the default) \n"; t << "\n"; } - t << "HAVE_DOT = "; + t << "HAVE_DOT = "; writeBoolValue(t,Config::haveDotFlag); t << "\n"; if (!sl) @@ -1874,7 +1893,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the CLASS_DIAGRAMS tag to NO.\n"; t << "\n"; } - t << "CLASS_GRAPH = "; + t << "CLASS_GRAPH = "; writeBoolValue(t,Config::classGraphFlag); t << "\n"; if (!sl) @@ -1886,7 +1905,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# class references variables) of the class with other documented classes. \n"; t << "\n"; } - t << "COLLABORATION_GRAPH = "; + t << "COLLABORATION_GRAPH = "; writeBoolValue(t,Config::collGraphFlag); t << "\n"; if (!sl) @@ -1898,7 +1917,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# documented files. \n"; t << "\n"; } - t << "INCLUDE_GRAPH = "; + t << "INCLUDE_GRAPH = "; writeBoolValue(t,Config::includeGraphFlag); t << "\n"; if (!sl) @@ -1909,7 +1928,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the documented files that directly or indirectly include this file \n"; t << "\n"; } - t << "INCLUDED_BY_GRAPH = "; + t << "INCLUDED_BY_GRAPH = "; writeBoolValue(t,Config::includedByGraphFlag); t << "\n"; if (!sl) @@ -1919,7 +1938,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# will graphical hierarchy of all classes instead of a textual one. \n"; t << "\n"; } - t << "GRAPHICAL_HIERARCHY = "; + t << "GRAPHICAL_HIERARCHY = "; writeBoolValue(t,Config::gfxHierarchyFlag); t << "\n"; if (!sl) @@ -1929,7 +1948,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# found. If left blank, it is assumed the dot tool can be found on the path. \n"; t << "\n"; } - t << "DOT_PATH = "; + t << "DOT_PATH = "; writeStringValue(t,Config::dotPath); t << "\n"; if (!sl) @@ -1942,7 +1961,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# large images. \n"; t << "\n"; } - t << "MAX_DOT_GRAPH_WIDTH = "; + t << "MAX_DOT_GRAPH_WIDTH = "; writeIntValue(t,Config::maxDotGraphWidth); t << "\n"; if (!sl) @@ -1955,7 +1974,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# large images. \n"; t << "\n"; } - t << "MAX_DOT_GRAPH_HEIGHT = "; + t << "MAX_DOT_GRAPH_HEIGHT = "; writeIntValue(t,Config::maxDotGraphHeight); t << "\n"; if (!sl) @@ -1972,7 +1991,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# used. If set to NO the values of all tags below this one will be ignored. \n"; t << "\n"; } - t << "SEARCHENGINE = "; + t << "SEARCHENGINE = "; writeBoolValue(t,Config::searchEngineFlag); t << "\n"; if (!sl) @@ -1983,7 +2002,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# A script with this name will be generated by doxygen. \n"; t << "\n"; } - t << "CGI_NAME = "; + t << "CGI_NAME = "; writeStringValue(t,Config::cgiName); t << "\n"; if (!sl) @@ -1994,7 +2013,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# details. \n"; t << "\n"; } - t << "CGI_URL = "; + t << "CGI_URL = "; writeStringValue(t,Config::cgiURL); t << "\n"; if (!sl) @@ -2005,7 +2024,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# documentation, with file:// prepended to it, will be used. \n"; t << "\n"; } - t << "DOC_URL = "; + t << "DOC_URL = "; writeStringValue(t,Config::docURL); t << "\n"; if (!sl) @@ -2016,7 +2035,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# will be used. \n"; t << "\n"; } - t << "DOC_ABSPATH = "; + t << "DOC_ABSPATH = "; writeStringValue(t,Config::docAbsPath); t << "\n"; if (!sl) @@ -2026,7 +2045,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# is installed. \n"; t << "\n"; } - t << "BIN_ABSPATH = "; + t << "BIN_ABSPATH = "; writeStringValue(t,Config::binAbsPath); t << "\n"; if (!sl) @@ -2037,7 +2056,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# the documentation for these projects as well. \n"; t << "\n"; } - t << "EXT_DOC_PATHS = "; + t << "EXT_DOC_PATHS = "; writeStringList(t,Config::extDocPathList); t << "\n"; } diff --git a/src/formula.cpp b/src/formula.cpp index f35fd47..16626fd 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -189,7 +189,7 @@ void FormulaList::generateBitmaps(const char *path) "gswin32.exe", /* file to execute */ gsArgs, /* argument list */ NULL, /* use current working dir */ - SW_HIDE /* minimize on start-up */ + SW_HIDE, /* minimize on start-up */ 0, /* application instance handle */ NULL, /* ignored: id list */ NULL, /* ignored: class name */ diff --git a/src/scanner.l b/src/scanner.l index 33a4f07..986b3b2 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -586,18 +586,38 @@ static void newDocState(); //----------------------------------------------------------------- -static QStack listIndentStack; +struct IndentInfo +{ + public: + IndentInfo(int i,bool e) : indent(i), enumerated(e) {}; + ~IndentInfo() {} + void startList() + { + if (enumerated) outDoc->startEnumList(); else outDoc->startItemList(); + } + void endList() + { + if (enumerated) outDoc->endEnumList(); else outDoc->endItemList(); + } + void writeItem() + { + outDoc->writeListItem(); + } + int indent; + bool enumerated; +}; + +static QStack listIndentStack; static bool insideItemList = FALSE; -static void addListItemMarker(const char *marker) +static void addListItemMarker(const char *marker,int dashPos,bool enumerated) { // find the actual position at which the bullet was found + int i; int indent=0; - const char *p=marker; - char c; - while ((c=*p++)) + for (i=0;istartItemList(); - outDoc->writeListItem(); - listIndentStack.push(new int(indent)); + listIndentStack.push(new IndentInfo(indent,enumerated)); + listIndentStack.top()->startList(); + listIndentStack.top()->writeItem(); insideItemList=TRUE; } else { - int *pPrevIndent = listIndentStack.top(); - if (*pPrevIndent==indent) // new item at the same indent level + IndentInfo *pPrevInfo = listIndentStack.top(); + if (pPrevInfo->indent==indent && pPrevInfo->enumerated==enumerated) + // new item of same kind at the same indent level { - outDoc->writeListItem(); + pPrevInfo->writeItem(); } - else if (*pPrevIndentindent==indent) + // new item of diffent kind at the same indent level { - outDoc->startItemList(); - outDoc->writeListItem(); - listIndentStack.push(new int(indent)); + // switch to a diffent list type + pPrevInfo->endList(); + pPrevInfo->enumerated=enumerated; + pPrevInfo->startList(); + pPrevInfo->writeItem(); + } + else if (pPrevInfo->indentstartList(); + listIndentStack.top()->writeItem(); } else // end sub item list { + pPrevInfo->endList(); listIndentStack.pop(); - delete pPrevIndent; - outDoc->endItemList(); + delete pPrevInfo; // safe guard against wrong indenting if (listIndentStack.isEmpty()) { @@ -641,35 +671,24 @@ static void addListItemMarker(const char *marker) } else { - outDoc->writeListItem(); + listIndentStack.top()->writeItem(); } } } } +// end the current (nested) list regardless of the nesting level. static void forceEndItemList() { - int *indent; - while ((indent=listIndentStack.pop())!=0) + IndentInfo *info; + while ((info=listIndentStack.pop())!=0) { - outDoc->endItemList(); - delete indent; + info->endList(); + delete info; } insideItemList=FALSE; } -#if 0 -static void tryEndItemList() -{ - if (listIndentStack.count()==1) // no subitems => end list - { - outDoc->endItemList(); - delete listIndentStack.pop(); - insideItemList=FALSE; - } -} -#endif - //----------------------------------------------------------------- static bool inBlock() @@ -1144,25 +1163,19 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") BEGIN( FindMembers ); } <*>\x0d - /* -^{BL} { - if (insideArgumentList) - { - insideArgumentList=FALSE; - outDoc->endItemList(); - } - else - { - outDoc->newParagraph(); - } - if (inBlock()) endBlock(); - } - */ -^{B}*(("//"{B}*)?)"*"*{B}*"-"{B}+ { /* found list item marker */ - addListItemMarker(yytext); - } -\n{B}*(("//"{B}*)?)"*"*{B}*"-"{B}+ { - addListItemMarker(yytext+1); +^{B}*(("//"{B}*)?)"*"*{B}*"-"("#")?{B}+ { /* found list item marker */ + QCString text=yytext; + int dashPos = text.findRev('-'); + //printf("dashPos=%d char='%c'\n",dashPos,text.at(dashPos+1)); + bool isEnumerated = text.at(dashPos+1)=='#'; + addListItemMarker(yytext,dashPos,isEnumerated); + } +\n{B}*(("//"{B}*)?)"*"*{B}*"-"("#")?{B}+ { /* found list item marker */ + QCString text=yytext; + int dashPos = text.findRev('-'); + //printf("dashPos=%d char='%c'\n",dashPos,text.at(dashPos+1)); + bool isEnumerated = text.at(dashPos+1)=='#'; + addListItemMarker(yytext+1,dashPos,isEnumerated); } "©" { outDoc->writeCopyright(); } """ { outDoc->writeQuote(); } @@ -2222,19 +2235,19 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") "%"[a-zA-Z_0-9\-]+ { outDoc->docify(yytext+1); } -{WORD} { +[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" { outDoc->startEmphasis(); - linkifyText(TextGeneratorOLImpl(*outDoc),className,0,yytext,FALSE,FALSE); + generateRef(*outDoc,className,yytext,inSeeBlock); outDoc->endEmphasis(); BEGIN( DocScan ); - } -[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"()" { + } +{WORD} { outDoc->startEmphasis(); - generateRef(*outDoc,className,yytext,inSeeBlock); + linkifyText(TextGeneratorOLImpl(*outDoc),className,0,yytext,FALSE,FALSE); outDoc->endEmphasis(); BEGIN( DocScan ); - } -[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"()" { + } +[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" { outDoc->startBold(); generateRef(*outDoc,className,yytext,inSeeBlock); outDoc->endBold(); @@ -2246,7 +2259,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") outDoc->endBold(); BEGIN( DocScan ); } -[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"()" { +[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()!\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" { outDoc->startTypewriter(); generateRef(*outDoc,className,yytext,inSeeBlock); outDoc->endTypewriter(); @@ -2278,7 +2291,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") outDoc->docify(yytext); } "\n" { outDoc->writeChar('\n'); } -({B}*"\n"){2,}{B}*"*"*{B}*"-"{B}+ { // new paragraph & start of a list +({B}*"\n"){2,}{B}*"*"*{B}*"-"("#")?{B}+ { // new paragraph & start of a list + QCString text=yytext; + int dashPos = text.findRev('-'); + bool isEnumerated = text.at(dashPos+1)=='#'; if (insideArgumentList) { insideArgumentList=FALSE; @@ -2293,7 +2309,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") outDoc->newParagraph(); } if (inBlock()) endBlock(); - addListItemMarker(strrchr(yytext,'\n')+1); + addListItemMarker(strrchr(yytext,'\n')+1,dashPos,isEnumerated); } ({B}*"\n"){2,}{B}* { // new paragraph if (insideArgumentList) @@ -5163,7 +5179,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") unput('/');unput('*'); BEGIN( tmpDocType ); } -^{B}*(("//"{B}*)?)"*"+[ \t]*"-"{B}+ { +^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { current->doc += yytext; } ^{B}*(("//"{B}*)?)"*"+/[^/] diff --git a/src/util.cpp b/src/util.cpp index 1870400..5158031 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -838,6 +838,23 @@ QCString fileToString(const char *name) if (name[0]=='-' && name[1]==0) // read from stdin { fileOpened=f.open(IO_ReadOnly,stdin); + if (fileOpened) + { + const int bSize=4096; + QCString contents(bSize); + int totalSize=0; + int size; + while ((size=f.readBlock(contents.data()+totalSize,bSize))==bSize) + { + totalSize+=bSize; + contents.resize(totalSize+bSize); + } + totalSize+=size+2; + contents.resize(totalSize); + contents.at(totalSize-2)='\n'; // to help the scanner + contents.at(totalSize-1)='\0'; + return contents; + } } else // read from file { @@ -849,22 +866,25 @@ QCString fileToString(const char *name) } f.setName(name); fileOpened=f.open(IO_ReadOnly); + if (fileOpened) + { + int fsize=f.size(); + QCString contents(fsize+2); + f.readBlock(contents.data(),fsize); + if (fsize==0 || contents[fsize-1]=='\n') + contents[fsize]='\0'; + else + contents[fsize]='\n'; // to help the scanner + contents[fsize+1]='\0'; + f.close(); + return contents; + } } if (!fileOpened) { err("Error: cannot open file `%s' for reading\n",name); - return ""; } - int fsize=f.size(); - QCString contents(fsize+2); - f.readBlock(contents.data(),fsize); - if (fsize==0 || contents[fsize-1]=='\n') - contents[fsize]='\0'; - else - contents[fsize]='\n'; - contents[fsize+1]='\0'; - f.close(); - return contents; + return ""; } QCString dateToString(bool includeTime) -- cgit v0.12