#include <wx/hash.h>
+#ifdef new
+#undef new
+#endif
+
#if wxUSE_IOSTREAMH
#include <iostream.h>
#include <fstream.h>
void WriteTexReferences(char *filename)
{
- ofstream ostr(filename);
+ wxSTD ofstream ostr(filename);
if (ostr.bad()) return;
char buf[200];
if (!wxFileExists(filename))
return;
- ifstream istr(filename, ios::in);
+ wxSTD ifstream istr(filename, ios::in);
if (istr.bad()) return;
istr.get(ch);
}
section[i] = 0;
+
+ // gt - needed to trick the hash table "TexReferences" into deleting the key
+ // strings it creates in the Put() function, but not the item that is
+ // created here, as that is destroyed elsewhere. Without doing this, there
+ // were massive memory leaks
+ TexReferences.DeleteContents(TRUE);
TexReferences.Put(label, new TexRef(label, file, section, sectionName));
+ TexReferences.DeleteContents(FALSE);
}
}
}
*
*/
-void BibEatWhiteSpace(istream& str)
+void BibEatWhiteSpace(wxSTD istream& str)
{
char ch = str.peek();
}
// Read word up to { or , or space
-void BibReadWord(istream& istr, char *buffer)
+void BibReadWord(wxSTD istream& istr, char *buffer)
{
int i = 0;
buffer[i] = 0;
}
// Read string (double-quoted or not) to end quote or EOL
-void BibReadToEOL(istream& istr, char *buffer)
+void BibReadToEOL(wxSTD istream& istr, char *buffer)
{
int i = 0;
buffer[i] = 0;
}
// Read }-terminated value, taking nested braces into account.
-void BibReadValue(istream& istr, char *buffer, bool ignoreBraces = TRUE,
+void BibReadValue(wxSTD istream& istr, char *buffer, bool ignoreBraces = TRUE,
bool quotesMayTerminate = TRUE)
{
int braceCount = 1;
while (!istr.eof() && !stopping)
{
// i ++;
- if (i >= 2000)
+ if (i >= 4000)
{
char buf[100];
- sprintf(buf, "Sorry, value > 2000 chars in bib file at line %ld, terminating.", BibLine);
+ sprintf(buf, "Sorry, value > 4000 chars in bib file at line %ld, terminating.", BibLine);
wxFatalError(buf, "Tex2RTF Fatal Error");
}
istr.get(ch);
return FALSE;
char buf[300];
- ifstream istr(filename, ios::in);
+ wxSTD ifstream istr(filename, ios::in);
if (istr.bad()) return FALSE;
BibLine = 1;
OnInform("Reading .bib file...");
char ch;
- char fieldValue[2000];
+ char fieldValue[4000];
char recordType[100];
char recordKey[100];
char recordField[100];
if (!wxFileExists(filename))
return FALSE;
- ifstream istr(filename, ios::in);
+ wxSTD ifstream istr(filename, ios::in);
if (istr.bad()) return FALSE;