summaryrefslogtreecommitdiffstats
path: root/src/config.l
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.l')
-rw-r--r--src/config.l33
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;