Loading addon/doxywizard/doxywizard.cpp +6 −2 Original line number Original line Diff line number Diff line Loading @@ -224,9 +224,13 @@ void MainWindow::updateConfigFileName(const QString &fileName) void MainWindow::loadConfigFromFile(const QString & fileName) void MainWindow::loadConfigFromFile(const QString & fileName) { { m_expert->loadConfig(fileName); // save full path info of original file m_wizard->refresh(); QString absFileName = QFileInfo(fileName).absoluteFilePath(); // updates the current directory updateConfigFileName(fileName); updateConfigFileName(fileName); // open the specified configuration file m_expert->loadConfig(absFileName); m_wizard->refresh(); updateLaunchButtonState(); updateLaunchButtonState(); m_modified = false; m_modified = false; updateTitle(); updateTitle(); Loading src/fortranscanner.l 100644 → 100755 +31 −1 Original line number Original line Diff line number Diff line Loading @@ -1366,7 +1366,7 @@ static const char* prepassFixedForm(const char* contents) int prevLineLength=0; int prevLineLength=0; int prevLineAmpOrExclIndex=-1; int prevLineAmpOrExclIndex=-1; bool emptyLabel=TRUE; bool emptyLabel=TRUE; int newContentsSize = strlen(contents)+2; // \000 and one spare character (to avoid reallocation) int newContentsSize = strlen(contents)+3; // \000, \n (when necessary) and one spare character (to avoid reallocation) char* newContents = (char*)malloc(newContentsSize); char* newContents = (char*)malloc(newContentsSize); for(int i=0, j=0;;i++,j++) { for(int i=0, j=0;;i++,j++) { Loading @@ -1390,6 +1390,14 @@ static const char* prepassFixedForm(const char* contents) break; break; case '\000': case '\000': newContents[j]='\000'; newContents[j]='\000'; newContentsSize = strlen(newContents); if (newContents[newContentsSize - 1] != '\n') { // to be on the safe side newContents = (char*)realloc(newContents, newContentsSize+2); newContents[newContentsSize] = '\n'; newContents[newContentsSize + 1] = '\000'; } return newContents; return newContents; case 'C': case 'C': case 'c': case 'c': Loading Loading @@ -1425,6 +1433,15 @@ static const char* prepassFixedForm(const char* contents) break; break; } } } } newContentsSize = strlen(newContents); if (newContents[newContentsSize - 1] != '\n') { // to be on the safe side newContents = (char*)realloc(newContents, newContentsSize+2); newContents[newContentsSize] = '\n'; newContents[newContentsSize + 1] = '\000'; } return newContents; return newContents; } } Loading Loading @@ -2228,6 +2245,7 @@ level--; static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) { { char *tmpBuf = NULL; initParser(); initParser(); defaultProtection = Public; defaultProtection = Public; Loading Loading @@ -2258,6 +2276,14 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) //clock_t end=clock(); //clock_t end=clock(); //printf("CPU time used=%f\n", ((double) (end-start))/CLOCKS_PER_SEC); //printf("CPU time used=%f\n", ((double) (end-start))/CLOCKS_PER_SEC); } } else if (inputString[strlen(fileBuf)-1] != '\n') { tmpBuf = (char *)malloc(strlen(fileBuf)+2); strcpy(tmpBuf,fileBuf); tmpBuf[strlen(fileBuf)]= '\n'; tmpBuf[strlen(fileBuf)+1]= '\000'; inputString = tmpBuf; } yyLineNr= 1 ; yyLineNr= 1 ; yyFileName = fileName; yyFileName = fileName; Loading Loading @@ -2291,6 +2317,10 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) rt->program.resize(0); rt->program.resize(0); delete current; current=0; delete current; current=0; moduleProcedures.clear(); moduleProcedures.clear(); if (tmpBuf) { free((char*)tmpBuf); inputString=NULL; } if (isFixedForm) { if (isFixedForm) { free((char*)inputString); free((char*)inputString); inputString=NULL; inputString=NULL; Loading Loading
addon/doxywizard/doxywizard.cpp +6 −2 Original line number Original line Diff line number Diff line Loading @@ -224,9 +224,13 @@ void MainWindow::updateConfigFileName(const QString &fileName) void MainWindow::loadConfigFromFile(const QString & fileName) void MainWindow::loadConfigFromFile(const QString & fileName) { { m_expert->loadConfig(fileName); // save full path info of original file m_wizard->refresh(); QString absFileName = QFileInfo(fileName).absoluteFilePath(); // updates the current directory updateConfigFileName(fileName); updateConfigFileName(fileName); // open the specified configuration file m_expert->loadConfig(absFileName); m_wizard->refresh(); updateLaunchButtonState(); updateLaunchButtonState(); m_modified = false; m_modified = false; updateTitle(); updateTitle(); Loading
src/fortranscanner.l 100644 → 100755 +31 −1 Original line number Original line Diff line number Diff line Loading @@ -1366,7 +1366,7 @@ static const char* prepassFixedForm(const char* contents) int prevLineLength=0; int prevLineLength=0; int prevLineAmpOrExclIndex=-1; int prevLineAmpOrExclIndex=-1; bool emptyLabel=TRUE; bool emptyLabel=TRUE; int newContentsSize = strlen(contents)+2; // \000 and one spare character (to avoid reallocation) int newContentsSize = strlen(contents)+3; // \000, \n (when necessary) and one spare character (to avoid reallocation) char* newContents = (char*)malloc(newContentsSize); char* newContents = (char*)malloc(newContentsSize); for(int i=0, j=0;;i++,j++) { for(int i=0, j=0;;i++,j++) { Loading @@ -1390,6 +1390,14 @@ static const char* prepassFixedForm(const char* contents) break; break; case '\000': case '\000': newContents[j]='\000'; newContents[j]='\000'; newContentsSize = strlen(newContents); if (newContents[newContentsSize - 1] != '\n') { // to be on the safe side newContents = (char*)realloc(newContents, newContentsSize+2); newContents[newContentsSize] = '\n'; newContents[newContentsSize + 1] = '\000'; } return newContents; return newContents; case 'C': case 'C': case 'c': case 'c': Loading Loading @@ -1425,6 +1433,15 @@ static const char* prepassFixedForm(const char* contents) break; break; } } } } newContentsSize = strlen(newContents); if (newContents[newContentsSize - 1] != '\n') { // to be on the safe side newContents = (char*)realloc(newContents, newContentsSize+2); newContents[newContentsSize] = '\n'; newContents[newContentsSize + 1] = '\000'; } return newContents; return newContents; } } Loading Loading @@ -2228,6 +2245,7 @@ level--; static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) { { char *tmpBuf = NULL; initParser(); initParser(); defaultProtection = Public; defaultProtection = Public; Loading Loading @@ -2258,6 +2276,14 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) //clock_t end=clock(); //clock_t end=clock(); //printf("CPU time used=%f\n", ((double) (end-start))/CLOCKS_PER_SEC); //printf("CPU time used=%f\n", ((double) (end-start))/CLOCKS_PER_SEC); } } else if (inputString[strlen(fileBuf)-1] != '\n') { tmpBuf = (char *)malloc(strlen(fileBuf)+2); strcpy(tmpBuf,fileBuf); tmpBuf[strlen(fileBuf)]= '\n'; tmpBuf[strlen(fileBuf)+1]= '\000'; inputString = tmpBuf; } yyLineNr= 1 ; yyLineNr= 1 ; yyFileName = fileName; yyFileName = fileName; Loading Loading @@ -2291,6 +2317,10 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) rt->program.resize(0); rt->program.resize(0); delete current; current=0; delete current; current=0; moduleProcedures.clear(); moduleProcedures.clear(); if (tmpBuf) { free((char*)tmpBuf); inputString=NULL; } if (isFixedForm) { if (isFixedForm) { free((char*)inputString); free((char*)inputString); inputString=NULL; inputString=NULL; Loading