diff options
Diffstat (limited to 'src/config.l')
-rw-r--r-- | src/config.l | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/config.l b/src/config.l index 4953d16..2f2c9da 100644 --- a/src/config.l +++ b/src/config.l @@ -88,7 +88,7 @@ static QCString convertToComment(const QCString &s, const QCString &u) if (!s.isEmpty()) { QCString tmp=s.stripWhiteSpace(); - char *p=tmp.data(); + const char *p=tmp.data(); char c; result+="#"; if (*p && *p!='\n') @@ -434,19 +434,11 @@ static bool *b=0; static QStrList *l=0; static int lastState; static QCString elemStr; -static QCString includeName; static QStrList includePathList; static QStack<ConfigFileState> includeStack; static int includeDepth; static bool config_upd = FALSE; -static QCString tabSizeString; -static QCString maxInitLinesString; -static QCString colsInAlphaIndexString; -static QCString enumValuesPerLineString; -static QCString treeViewWidthString; -static QCString maxDotGraphWidthString; -static QCString maxDotGraphHeightString; static QCString encoding; static Config *config; @@ -498,8 +490,8 @@ static QCString configStringRecode( } size_t iLeft=(size_t)inputSize; size_t oLeft=(size_t)outputSize; - char *inputPtr = str.data(); - char *outputPtr = output.data(); + char *inputPtr = str.rawData(); + char *outputPtr = output.rawData(); if (!portable_iconv(cd, &inputPtr, &iLeft, &outputPtr, &oLeft)) { outputSize-=(int)oLeft; @@ -612,9 +604,9 @@ static void readIncludeFile(const char *incName) %} -%option nounput %option noyywrap +%x PreStart %x Start %x SkipComment %x SkipInvalid @@ -628,6 +620,11 @@ static void readIncludeFile(const char *incName) %% <*>\0x0d +<PreStart>"##".*"\n" { config->appendStartComment(yytext);} +<PreStart>. { + BEGIN(Start); + unput(*yytext); + } <Start,GetString,GetStrList,GetBool,SkipInvalid>"##".*"\n" { config->appendUserComment(yytext);} <Start,GetString,GetStrList,GetBool,SkipInvalid>"#" { BEGIN(SkipComment); } <Start>[a-z_A-Z][a-z_A-Z0-9]*[ \t]*"=" { QCString cmd=yytext; @@ -862,6 +859,11 @@ static void readIncludeFile(const char *incName) void Config::writeTemplate(FTextStream &t,bool sl,bool upd) { + /* print first lines of user comment that were at the beginning of the file, might have special meaning for editors */ + if (m_startComment) + { + t << takeStartComment() << endl; + } t << "# Doxyfile " << versionString << endl << endl; if (!sl) { @@ -1504,6 +1506,7 @@ void Config::check() !Config_getBool("GENERATE_XML") && !Config_getBool("GENERATE_PERLMOD") && !Config_getBool("GENERATE_RTF") && + !Config_getBool("GENERATE_DOCBOOK") && !Config_getBool("GENERATE_AUTOGEN_DEF") && Config_getString("GENERATE_TAGFILE").isEmpty() ) @@ -1713,7 +1716,7 @@ static QCString configFileToString(const char *name) QCString contents(bSize); int totalSize=0; int size; - while ((size=f.readBlock(contents.data()+totalSize,bSize))==bSize) + while ((size=f.readBlock(contents.rawData()+totalSize,bSize))==bSize) { totalSize+=bSize; contents.resize(totalSize+bSize); @@ -1739,7 +1742,7 @@ static QCString configFileToString(const char *name) { int fsize=f.size(); QCString contents(fsize+2); - f.readBlock(contents.data(),fsize); + f.readBlock(contents.rawData(),fsize); f.close(); if (fsize==0 || contents[fsize-1]=='\n') contents[fsize]='\0'; @@ -1767,7 +1770,7 @@ bool Config::parseString(const char *fn,const char *str,bool update) includeStack.clear(); includeDepth = 0; configYYrestart( configYYin ); - BEGIN( Start ); + BEGIN( PreStart ); config_upd = update; configYYlex(); config_upd = FALSE; |