diff options
Diffstat (limited to 'src/cite.cpp')
-rw-r--r-- | src/cite.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/cite.cpp b/src/cite.cpp index 612ddc1..dac2bcd 100644 --- a/src/cite.cpp +++ b/src/cite.cpp @@ -94,7 +94,7 @@ void CitationManager::clear() bool CitationManager::isEmpty() const { - int numFiles = Config_getList(CITE_BIB_FILES).count(); + uint numFiles = Config_getList(CITE_BIB_FILES).count(); return (numFiles==0 || p->entries.empty()); } @@ -135,15 +135,15 @@ void CitationManager::generatePage() err("could not open file %s for reading\n",bibFile.data()); } QCString doc; - QFileInfo fi(bibFile); QCString input(fi.size()+1); f.readBlock(input.rawData(),fi.size()); f.close(); input.at(fi.size())='\0'; - int pos=0,s; + int pos=0; + int s; while ((s=input.find('\n',pos))!=-1) { - QCString line = input.mid(pos,s-pos); + QCString line = input.mid((uint)pos,(uint)(s-pos)); pos=s+1; int i; @@ -153,7 +153,7 @@ void CitationManager::generatePage() int k=line.find("}",i); if (j!=-1 && k!=-1) { - QCString label = line.mid(j+1,k-j-1); + QCString label = line.mid((uint)(j+1),(uint)(k-j-1)); if (p->entries.find(label.data())==p->entries.end()) // not found yet { insert(label); @@ -246,25 +246,25 @@ void CitationManager::generatePage() { err("could not open file %s for reading\n",citeListFile.data()); } - bool insideBib=FALSE; - + QCString doc; QFileInfo fi(citeListFile); QCString input(fi.size()+1); f.readBlock(input.rawData(),fi.size()); f.close(); input.at(fi.size())='\0'; + + bool insideBib=FALSE; int pos=0,s; //printf("input=[%s]\n",input.data()); while ((s=input.find('\n',pos))!=-1) { - QCString line = input.mid(pos,s-pos); + QCString line = input.mid((uint)pos,(uint)(s-pos)); //printf("pos=%d s=%d line=[%s]\n",pos,s,line.data()); pos=s+1; if (line.find("<!-- BEGIN BIBLIOGRAPHY")!=-1) insideBib=TRUE; else if (line.find("<!-- END BIBLIOGRAPH")!=-1) insideBib=FALSE; - int i; // determine text to use at the location of the @cite command if (insideBib && (i=line.find("name=\"CITEREF_"))!=-1) { @@ -272,10 +272,13 @@ void CitationManager::generatePage() int k=line.find("]</a>"); if (j!=-1 && k!=-1) { - QCString label = line.mid(i+14,j-i-14); - QCString number = line.mid(j+2,k-j-1); + uint ui=(uint)i; + uint uj=(uint)j; + uint uk=(uint)k; + QCString label = line.mid(ui+14,uj-ui-14); + QCString number = line.mid(uj+2,uk-uj-1); label = substitute(substitute(label,"–","--"),"—","---"); - line = line.left(i+14) + label + line.right(line.length()-j); + line = line.left(ui+14) + label + line.right(line.length()-uj); auto it = p->entries.find(label.data()); //printf("label='%s' number='%s' => %p\n",label.data(),number.data(),it->second.get()); if (it!=p->entries.end()) @@ -296,15 +299,14 @@ void CitationManager::generatePage() if (Config_getBool(GENERATE_LATEX)) { // copy bib files to the latex output dir - const QStrList &citeDataList = Config_getList(CITE_BIB_FILES); QCString latexOutputDir = Config_getString(LATEX_OUTPUT)+"/"; - int i = 0; + i = 0; for (li.toFirst() ; (bibdata = li.current()) ; ++li) { QCString bibFile = bibdata; // Note: file can now have multiple dots if (!bibFile.isEmpty() && bibFile.right(4)!=".bib") bibFile+=".bib"; - QFileInfo fi(bibFile); + fi.setFile(bibFile); if (fi.exists()) { if (!bibFile.isEmpty()) |