]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/tex2rtf/src/tex2rtf.cpp
Correct file format errors
[wxWidgets.git] / utils / tex2rtf / src / tex2rtf.cpp
index f3f655fb19b7260ca7216705c4a978385ece63a4..86074e2fd04f6951aa903ade7c05c1a642f78579 100644 (file)
@@ -2,7 +2,8 @@
 // Name:        tex2rtf.cpp
 // Purpose:     Converts Latex to linear/WinHelp RTF, HTML, wxHelp.
 // Author:      Julian Smart
-// Modified by:
+// Modified by: Wlodzimiez ABX Skiba 2003/2004 Unicode support
+//              Ron Lee
 // Created:     7.9.93
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
@@ -34,7 +35,6 @@
 #include "wx/timer.h"
 #endif
 
-#if defined(NO_GUI) || defined(__UNIX__)
 #if wxUSE_IOSTREAMH
 #include <iostream.h>
 #include <fstream.h>
@@ -42,7 +42,6 @@
 #include <iostream>
 #include <fstream>
 #endif
-#endif
 
 #include <ctype.h>
 #include <stdlib.h>
@@ -63,10 +62,10 @@ static inline wxChar* copystring(const wxChar* s)
 const float versionNo = TEX2RTF_VERSION_NUMBER;
 
 TexChunk *currentMember = NULL;
-bool startedSections = FALSE;
+bool startedSections = false;
 wxChar *contentsString = NULL;
-bool suppressNameDecoration = FALSE;
-bool OkToClose = TRUE;
+bool suppressNameDecoration = false;
+bool OkToClose = true;
 int passNumber = 1;
 unsigned long errorCount = 0;
 
@@ -127,18 +126,16 @@ void ShowOptions(void);
 wxChar wxTex2RTFBuffer[1500];
 
 #ifdef NO_GUI
-
-int main(int argc, char **argv)
+    IMPLEMENT_APP_CONSOLE(MyApp)
 #else
-wxMenuBar *menuBar = NULL;
-MyFrame *frame = NULL;
-
-// DECLARE_APP(MyApp)
-IMPLEMENT_APP(MyApp)
+    wxMenuBar *menuBar = NULL;
+    MyFrame *frame = NULL;
+    // DECLARE_APP(MyApp)
+    IMPLEMENT_APP(MyApp)
+#endif
 
 // `Main program' equivalent, creating windows and returning main app frame
 bool MyApp::OnInit()
-#endif
 {
   // Use default list of macros defined in tex2any.cc
   DefineDefaultMacros();
@@ -151,7 +148,7 @@ bool MyApp::OnInit()
   WinHelpContentsFileName = new wxChar[300];
   RefFileName = new wxChar[300];
 
-  ColourTable.DeleteContents(TRUE);
+  ColourTable.DeleteContents(true);
 
   int n = 1;
 
@@ -181,14 +178,14 @@ bool MyApp::OnInit()
     ShowOptions();
     exit(1);
   }
-
 #endif
+
   if (InputFile)
   {
     TexPathList.EnsureFileAccessible(InputFile);
   }
   if (!InputFile || !OutputFile)
-    isInteractive = TRUE;
+    isInteractive = true;
 
   int i;
   for (i = n; i < argc;)
@@ -197,19 +194,19 @@ bool MyApp::OnInit()
     {
       i ++;
       convertMode = TEX_RTF;
-      winHelp = TRUE;
+      winHelp = true;
     }
 #ifndef NO_GUI
     else if (wxStrcmp(argv[i], _T("-interactive")) == 0)
     {
       i ++;
-      isInteractive = TRUE;
+      isInteractive = true;
     }
 #endif
     else if (wxStrcmp(argv[i], _T("-sync")) == 0)  // Don't yield
     {
       i ++;
-      isSync = TRUE;
+      isSync = true;
     }
     else if (wxStrcmp(argv[i], _T("-rtf")) == 0)
     {
@@ -229,7 +226,7 @@ bool MyApp::OnInit()
     else if (wxStrcmp(argv[i], _T("-twice")) == 0)
     {
       i ++;
-      runTwice = TRUE;
+      runTwice = true;
     }
     else if (wxStrcmp(argv[i], _T("-macros")) == 0)
     {
@@ -262,19 +259,19 @@ bool MyApp::OnInit()
         else
         {
           OnError(_T("Incorrect argument for -charset"));
-          return FALSE;
+          return false;
         }
       }
     }
     else if (wxStrcmp(argv[i], _T("-checkcurleybraces")) == 0)
     {
       i ++;
-      checkCurleyBraces = TRUE;
+      checkCurleyBraces = true;
     }
     else if (wxStrcmp(argv[i], _T("-checksyntax")) == 0)
     {
       i ++;
-      checkSyntax = TRUE;
+      checkSyntax = true;
     }
     else
     {
@@ -285,7 +282,7 @@ bool MyApp::OnInit()
       ShowOptions();
       exit(1);
 #endif
-      return FALSE;
+      return false;
     }
   }
 
@@ -311,7 +308,7 @@ bool MyApp::OnInit()
     wxChar buf[100];
 
     // Create the main frame window
-    frame = new MyFrame(NULL, -1, _T("Tex2RTF"), wxPoint(-1, -1), wxSize(400, 300));
+    frame = new MyFrame(NULL, wxID_ANY, _T("Tex2RTF"), wxDefaultPosition, wxSize(400, 300));
     frame->CreateStatusBar(2);
 
     // Give it an icon
@@ -320,7 +317,7 @@ bool MyApp::OnInit()
 
     if (InputFile)
     {
-      wxSprintf(buf, _T("Tex2RTF [%s]"), wxFileNameFromPath(InputFile));
+      wxSnprintf(buf, sizeof(buf), _T("Tex2RTF [%s]"), wxFileNameFromPath(InputFile));
       frame->SetTitle(buf);
     }
 
@@ -350,8 +347,8 @@ bool MyApp::OnInit()
 
     wxMenu *options_menu = new wxMenu;
 
-    options_menu->Append(TEX_OPTIONS_CURELY_BRACE, _T("Curley brace matching"), _T("Checks for mismatched curley braces"),TRUE);
-    options_menu->Append(TEX_OPTIONS_SYNTAX_CHECKING, _T("Syntax checking"), _T("Syntax checking for common errors"),TRUE);
+    options_menu->Append(TEX_OPTIONS_CURELY_BRACE, _T("Curley brace matching"), _T("Checks for mismatched curley braces"),true);
+    options_menu->Append(TEX_OPTIONS_SYNTAX_CHECKING, _T("Syntax checking"), _T("Syntax checking for common errors"),true);
 
     options_menu->Check(TEX_OPTIONS_CURELY_BRACE, checkCurleyBraces);
     options_menu->Check(TEX_OPTIONS_SYNTAX_CHECKING, checkSyntax);
@@ -369,7 +366,7 @@ bool MyApp::OnInit()
     menuBar->Append(help_menu, _T("&Help"));
 
     frame->SetMenuBar(menuBar);
-    frame->textWindow = new wxTextCtrl(frame, -1, _T(""), wxPoint(-1, -1), wxSize(-1, -1), wxTE_READONLY|wxTE_MULTILINE);
+    frame->textWindow = new wxTextCtrl(frame, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_MULTILINE);
 
     (*frame->textWindow) << _T("Welcome to Tex2RTF.\n");
 //    ShowOptions();
@@ -399,8 +396,8 @@ bool MyApp::OnInit()
       wxStrcat(buf, _T(" mode."));
     frame->SetStatusText(buf, 1);
 
-    frame->Show(TRUE);
-    return TRUE;
+    frame->Show(true);
+    return true;
   }
   else
 #endif // NO_GUI
@@ -420,21 +417,12 @@ bool MyApp::OnInit()
         Go();
     }
 #ifdef NO_GUI
-    return 0;
+    return true;
 #else
-    return FALSE;
+    OnExit(); // Do cleanup since OnExit won't be called now
+    return false;
 #endif
   }
-
-#if 0
-  // it already returned something, no need to cause warning
-#ifndef NO_GUI
-  // Return the main frame window
-  return TRUE;
-#else
-  return 0;
-#endif
-#endif
 }
 
 #ifndef NO_GUI
@@ -573,7 +561,7 @@ int MyApp::OnExit()
 void ShowOptions(void)
 {
     wxChar buf[100];
-    wxSprintf(buf, _T("Tex2RTF version %.2f"), versionNo);
+    wxSnprintf(buf, sizeof(buf), _T("Tex2RTF version %.2f"), versionNo);
     OnInform(buf);
     OnInform(_T("Usage: tex2rtf [input] [output] [switches]\n"));
     OnInform(_T("where valid switches are"));
@@ -625,8 +613,8 @@ void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
 {
   if (!stopRunning && !OkToClose)
   {
-    stopRunning = TRUE;
-    runTwice = FALSE;
+    stopRunning = true;
+    runTwice = false;
     return;
   }
   else if (OkToClose)
@@ -645,12 +633,12 @@ void MyFrame::OnGo(wxCommandEvent& WXUNUSED(event))
 {
       passNumber = 1;
       errorCount = 0;
-      menuBar->EnableTop(0, FALSE);
-      menuBar->EnableTop(1, FALSE);
-      menuBar->EnableTop(2, FALSE);
-      menuBar->EnableTop(3, FALSE);
+      menuBar->EnableTop(0, false);
+      menuBar->EnableTop(1, false);
+      menuBar->EnableTop(2, false);
+      menuBar->EnableTop(3, false);
       textWindow->Clear();
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       Go();
 
       if (stopRunning)
@@ -664,23 +652,23 @@ void MyFrame::OnGo(wxCommandEvent& WXUNUSED(event))
 
       if (runTwice && !stopRunning)
       {
-        Tex2RTFYield(TRUE);
+        Tex2RTFYield(true);
         Go();
       }
-      menuBar->EnableTop(0, TRUE);
-      menuBar->EnableTop(1, TRUE);
-      menuBar->EnableTop(2, TRUE);
-      menuBar->EnableTop(3, TRUE);
+      menuBar->EnableTop(0, true);
+      menuBar->EnableTop(1, true);
+      menuBar->EnableTop(2, true);
+      menuBar->EnableTop(3, true);
 }
 
 void MyFrame::OnSetInput(wxCommandEvent& WXUNUSED(event))
 {
-      ChooseInputFile(TRUE);
+      ChooseInputFile(true);
 }
 
 void MyFrame::OnSetOutput(wxCommandEvent& WXUNUSED(event))
 {
-      ChooseOutputFile(TRUE);
+      ChooseOutputFile(true);
 }
 
 void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event))
@@ -690,7 +678,7 @@ void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event))
       {
         textWindow->SaveFile(s);
         wxChar buf[350];
-        wxSprintf(buf, _T("Saved text to %s"), (const wxChar*) s.c_str());
+        wxSnprintf(buf, sizeof(buf), _T("Saved text to %s"), (const wxChar*) s.c_str());
         frame->SetStatusText(buf, 0);
       }
 }
@@ -703,7 +691,7 @@ void MyFrame::OnViewOutput(wxCommandEvent& WXUNUSED(event))
         textWindow->LoadFile(OutputFile);
         wxChar buf[300];
         wxString str(wxFileNameFromPath(OutputFile));
-        wxSprintf(buf, _T("Tex2RTF [%s]"), (const wxChar*) str.c_str());
+        wxSnprintf(buf, sizeof(buf), _T("Tex2RTF [%s]"), (const wxChar*) str.c_str());
         frame->SetTitle(buf);
       }
 }
@@ -716,7 +704,7 @@ void MyFrame::OnViewLatex(wxCommandEvent& WXUNUSED(event))
         textWindow->LoadFile(InputFile);
         wxChar buf[300];
         wxString str(wxFileNameFromPath(OutputFile));
-        wxSprintf(buf, _T("Tex2RTF [%s]"), (const wxChar*) str.c_str());
+        wxSnprintf(buf, sizeof(buf), _T("Tex2RTF [%s]"), (const wxChar*) str.c_str());
         frame->SetTitle(buf);
       }
 }
@@ -736,14 +724,14 @@ void MyFrame::OnLoadMacros(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnShowMacros(wxCommandEvent& WXUNUSED(event))
 {
       textWindow->Clear();
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       ShowCustomMacros();
 }
 
 void MyFrame::OnModeRTF(wxCommandEvent& WXUNUSED(event))
 {
       convertMode = TEX_RTF;
-      winHelp = FALSE;
+      winHelp = false;
       InputFile = NULL;
       OutputFile = NULL;
       SetStatusText(_T("In linear RTF mode."), 1);
@@ -752,7 +740,7 @@ void MyFrame::OnModeRTF(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnModeWinHelp(wxCommandEvent& WXUNUSED(event))
 {
       convertMode = TEX_RTF;
-      winHelp = TRUE;
+      winHelp = true;
       InputFile = NULL;
       OutputFile = NULL;
       SetStatusText(_T("In WinHelp RTF mode."), 1);
@@ -761,7 +749,7 @@ void MyFrame::OnModeWinHelp(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnModeHTML(wxCommandEvent& WXUNUSED(event))
 {
       convertMode = TEX_HTML;
-      winHelp = FALSE;
+      winHelp = false;
       InputFile = NULL;
       OutputFile = NULL;
       SetStatusText(_T("In HTML mode."), 1);
@@ -823,7 +811,7 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
       wxChar *platform = _T("");
 #endif
 #endif
-      wxSprintf(buf, _T("Tex2RTF Version %.2f%s\nLaTeX to RTF, WinHelp, and HTML Conversion\n\n(c) Julian Smart, George Tasker and others, 1999-2002"), versionNo, platform);
+      wxSnprintf(buf, sizeof(buf), _T("Tex2RTF Version %.2f%s\nLaTeX to RTF, WinHelp, and HTML Conversion\n\n(c) Julian Smart, George Tasker and others, 1999-2002"), versionNo, platform);
       wxMessageBox(buf, _T("About Tex2RTF"));
 }
 
@@ -905,7 +893,7 @@ bool Go(void)
 #endif
 
   if (!InputFile || !OutputFile || stopRunning)
-    return FALSE;
+    return false;
 
 #ifndef NO_GUI
   if (isInteractive)
@@ -913,7 +901,7 @@ bool Go(void)
     wxChar buf[300];
     wxString str = wxFileNameFromPath(InputFile);
 
-    wxSprintf(buf, _T("Tex2RTF [%s]"), (const wxChar*) str);
+    wxSnprintf(buf, sizeof(buf), _T("Tex2RTF [%s]"), (const wxChar*) str);
     frame->SetTitle(buf);
   }
 
@@ -936,11 +924,11 @@ bool Go(void)
         sName[5] = '\0';  // that should do!
   }
 
-  wxSprintf(ContentsName, _T("%s.con"), FileRoot);
-  wxSprintf(TmpContentsName, _T("%s.cn1"), FileRoot);
-  wxSprintf(TmpFrameContentsName, _T("%s.frc"), FileRoot);
-  wxSprintf(WinHelpContentsFileName, _T("%s.cnt"), FileRoot);
-  wxSprintf(RefFileName, _T("%s.ref"), FileRoot);
+  wxSnprintf(ContentsName, 300, _T("%s.con"), FileRoot);
+  wxSnprintf(TmpContentsName, 300, _T("%s.cn1"), FileRoot);
+  wxSnprintf(TmpFrameContentsName, 300, _T("%s.frc"), FileRoot);
+  wxSnprintf(WinHelpContentsFileName, 300, _T("%s.cnt"), FileRoot);
+  wxSnprintf(RefFileName, 300, _T("%s.ref"), FileRoot);
 
   TexPathList.EnsureFileAccessible(InputFile);
   if (!bulletFile)
@@ -956,7 +944,7 @@ bool Go(void)
   if (wxFileExists(RefFileName))
     ReadTexReferences(RefFileName);
 
-  bool success = FALSE;
+  bool success = false;
 
   if (InputFile && OutputFile)
   {
@@ -964,7 +952,7 @@ bool Go(void)
     {
       OnError(_T("Cannot open input file!"));
       TexCleanUp();
-      return FALSE;
+      return false;
     }
 #ifndef NO_GUI
     if (isInteractive)
@@ -974,14 +962,14 @@ bool Go(void)
       frame->SetStatusText((wxChar *)buf.c_str());
     }
 #endif
-    OkToClose = FALSE;
+    OkToClose = false;
     OnInform(_T("Reading LaTeX file..."));
     TexLoadFile(InputFile);
 
     if (stopRunning)
     {
-        OkToClose = TRUE;
-        return FALSE;
+        OkToClose = true;
+        return false;
     }
 
     switch (convertMode)
@@ -1006,16 +994,16 @@ bool Go(void)
   if (stopRunning)
   {
     OnInform(_T("*** Aborted by user."));
-    success = FALSE;
-    stopRunning = FALSE;
-    OkToClose = TRUE;
+    success = false;
+    stopRunning = false;
+    OkToClose = true;
   }
 
   if (success)
   {
     WriteTexReferences(RefFileName);
     TexCleanUp();
-    startedSections = FALSE;
+    startedSections = false;
 
     wxString buf;
 #ifndef NO_GUI
@@ -1045,28 +1033,29 @@ bool Go(void)
 #endif
     passNumber ++;
     errorCount = 0;
-    OkToClose = TRUE;
-    return TRUE;
+    OkToClose = true;
+    return true;
   }
 
   TexCleanUp();
-  startedSections = FALSE;
+  startedSections = false;
 
 #ifndef NO_GUI
   frame->SetStatusText(_T("Aborted by user."));
 #endif // GUI
 
   OnInform(_T("Sorry, unsuccessful."));
-  OkToClose = TRUE;
-  return FALSE;
+  OkToClose = true;
+  return false;
 }
 
 void OnError(const wxChar *msg)
 {
+  wxString msg_string = msg;
   errorCount++;
 
 #ifdef NO_GUI
-  wxSTD cerr << "Error: " << msg << "\n";
+  wxSTD cerr << "Error: " << msg_string.mb_str() << "\n";
   wxSTD cerr.flush();
 #else
   if (isInteractive && frame)
@@ -1074,7 +1063,7 @@ void OnError(const wxChar *msg)
   else
 #ifdef __UNIX__
   {
-    wxSTD cerr << "Error: " << msg << "\n";
+    wxSTD cerr << "Error: " << msg_string.mb_str() << "\n";
     wxSTD cerr.flush();
   }
 #endif
@@ -1082,14 +1071,15 @@ void OnError(const wxChar *msg)
 #ifdef __WXMSW__
     wxLogError(msg);
 #endif
-  Tex2RTFYield(TRUE);
+  Tex2RTFYield(true);
 #endif // NO_GUI
 }
 
 void OnInform(const wxChar *msg)
 {
+  wxString msg_string = msg;
 #ifdef NO_GUI
-  wxSTD cout << msg << "\n";
+  wxSTD cout << msg_string.mb_str() << "\n";
   wxSTD cout.flush();
 #else
   if (isInteractive && frame)
@@ -1102,7 +1092,7 @@ void OnInform(const wxChar *msg)
   else
 #ifdef __WXMSW__
   {
-    wxSTD cout << msg << "\n";
+    wxSTD cout << msg_string.mb_str() << "\n";
     wxSTD cout.flush();
   }
 #endif
@@ -1112,7 +1102,7 @@ void OnInform(const wxChar *msg)
 */
   if (isInteractive)
   {
-    Tex2RTFYield(TRUE);
+    Tex2RTFYield(true);
   }
 #endif // NO_GUI
 }
@@ -1159,7 +1149,7 @@ bool OnArgument(int macroId, int arg_no, bool start)
       // break;
     }
   }
-  return TRUE;
+  return true;
 }
 
 /*
@@ -1201,12 +1191,12 @@ bool SplitCommand(wxChar *data, wxChar *firstArg, wxChar *secondArg)
   firstArg[0] = 0;
   secondArg[0] = 0;
   int i = 0;
-  bool stop = FALSE;
+  bool stop = false;
   // Find first argument (command name)
   while (!stop)
   {
     if (data[i] == ' ' || data[i] == 0)
-      stop = TRUE;
+      stop = true;
     else
     {
       firstArg[i] = data[i];
@@ -1227,7 +1217,7 @@ bool SplitCommand(wxChar *data, wxChar *firstArg, wxChar *secondArg)
     }
     secondArg[j] = 0;
   }
-  return TRUE;
+  return true;
 }
 
 bool Tex2RTFConnection::OnExecute(const wxString& WXUNUSED(topic), wxChar *data, int WXUNUSED(size), wxIPCFormat WXUNUSED(format))
@@ -1247,7 +1237,7 @@ bool Tex2RTFConnection::OnExecute(const wxString& WXUNUSED(topic), wxChar *data,
       {
         wxChar buf[100];
         wxString str = wxFileNameFromPath(InputFile);
-        wxSprintf(buf, _T("Tex2RTF [%s]"), (const wxChar*) str);
+        wxSnprintf(buf, sizeof(buf), _T("Tex2RTF [%s]"), (const wxChar*) str);
         frame->SetTitle(buf);
       }
     }
@@ -1271,20 +1261,20 @@ bool Tex2RTFConnection::OnExecute(const wxString& WXUNUSED(topic), wxChar *data,
     else if (wxStrcmp(firstArg, _T("MINIMIZE")) == 0 || wxStrcmp(firstArg, _T("ICONIZE")) == 0)
     {
       if (frame)
-        frame->Iconize(TRUE);
+        frame->Iconize(true);
     }
     else if (wxStrcmp(firstArg, _T("SHOW")) == 0 || wxStrcmp(firstArg, _T("RESTORE")) == 0)
     {
       if (frame)
       {
-        frame->Iconize(FALSE);
-        frame->Show(TRUE);
+        frame->Iconize(false);
+        frame->Show(true);
       }
     }
     else
     {
       // Try for a setting
-      wxStrcpy(Tex2RTFLastStatus, RegisterSetting(firstArg, secondArg, FALSE));
+      wxStrcpy(Tex2RTFLastStatus, RegisterSetting(firstArg, secondArg, false));
 #ifndef NO_GUI
       if (frame && wxStrcmp(firstArg, _T("conversionMode")) == 0)
       {
@@ -1303,7 +1293,7 @@ bool Tex2RTFConnection::OnExecute(const wxString& WXUNUSED(topic), wxChar *data,
 #endif
     }
   }
-  return TRUE;
+  return true;
 }
 
 wxChar *Tex2RTFConnection::OnRequest(const wxString& WXUNUSED(topic), const wxString& WXUNUSED(item), int *WXUNUSED(size), wxIPCFormat WXUNUSED(format))