]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/tex2rtf/src/texutils.cpp
Added some WXDLLEXPORTs
[wxWidgets.git] / utils / tex2rtf / src / texutils.cpp
index 35ff57107ea51fb93607c33ba160406d5df94198..ad52f44ef070d201c2af88d949aa15e221cd31a5 100644 (file)
 
 #include <wx/hash.h>
 
 
 #include <wx/hash.h>
 
+#ifdef new
+#undef new
+#endif
+
 #if wxUSE_IOSTREAMH
 #include <iostream.h>
 #include <fstream.h>
 #if wxUSE_IOSTREAMH
 #include <iostream.h>
 #include <fstream.h>
@@ -378,7 +382,7 @@ void AddTexRef(char *name, char *file, char *sectionName,
 
 void WriteTexReferences(char *filename)
 {
 
 void WriteTexReferences(char *filename)
 {
-  ofstream ostr(filename);
+  wxSTD ofstream ostr(filename);
   if (ostr.bad()) return;
   char buf[200];
   
   if (ostr.bad()) return;
   char buf[200];
   
@@ -405,7 +409,7 @@ void ReadTexReferences(char *filename)
   if (!wxFileExists(filename))
       return;
 
   if (!wxFileExists(filename))
       return;
 
-  ifstream istr(filename, ios::in);
+  wxSTD ifstream istr(filename, ios::in);
 
   if (istr.bad()) return;
 
 
   if (istr.bad()) return;
 
@@ -432,7 +436,14 @@ void ReadTexReferences(char *filename)
         istr.get(ch);
       }
       section[i] = 0;
         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.Put(label, new TexRef(label, file, section, sectionName));
+      TexReferences.DeleteContents(FALSE);
     }
   }
 }
     }
   }
 }
@@ -443,7 +454,7 @@ void ReadTexReferences(char *filename)
  *
  */
 
  *
  */
 
-void BibEatWhiteSpace(istream& str)
+void BibEatWhiteSpace(wxSTD istream& str)
 {
   char ch = str.peek();
   
 {
   char ch = str.peek();
   
@@ -471,7 +482,7 @@ void BibEatWhiteSpace(istream& str)
 }
 
 // Read word up to { or , or space
 }
 
 // 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;
 {
   int i = 0;
   buffer[i] = 0;
@@ -488,7 +499,7 @@ void BibReadWord(istream& istr, char *buffer)
 }
 
 // Read string (double-quoted or not) to end quote or EOL
 }
 
 // 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;
 {
   int i = 0;
   buffer[i] = 0;
@@ -517,7 +528,7 @@ void BibReadToEOL(istream& istr, char *buffer)
 }
 
 // Read }-terminated value, taking nested braces into account.
 }
 
 // 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;
                   bool quotesMayTerminate = TRUE)
 {
   int braceCount = 1;
@@ -573,7 +584,7 @@ bool ReadBib(char *filename)
       return FALSE;
 
   char buf[300];
       return FALSE;
 
   char buf[300];
-  ifstream istr(filename, ios::in);
+  wxSTD ifstream istr(filename, ios::in);
   if (istr.bad()) return FALSE;
 
   BibLine = 1;
   if (istr.bad()) return FALSE;
 
   BibLine = 1;
@@ -1295,7 +1306,7 @@ bool ReadCustomMacros(char *filename)
   if (!wxFileExists(filename))
       return FALSE;
 
   if (!wxFileExists(filename))
       return FALSE;
 
-  ifstream istr(filename, ios::in);
+  wxSTD ifstream istr(filename, ios::in);
 
   if (istr.bad()) return FALSE;
 
 
   if (istr.bad()) return FALSE;