]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/tex2rtf/src/rtfutils.cpp
Make _dist_dir a shadow directory of symlinks rather then copied files, and add
[wxWidgets.git] / utils / tex2rtf / src / rtfutils.cpp
index b09bfd403e92a942905c76e80558ffda46d266fb..5b0b6386519395befa3cf9e971990744cdba02c5 100644 (file)
@@ -2,17 +2,14 @@
 // Name:        rtfutils.cpp
 // Purpose:     Converts Latex to Word RTF/WinHelp RTF
 // Author:      Julian Smart
 // Name:        rtfutils.cpp
 // Purpose:     Converts Latex to Word RTF/WinHelp RTF
 // 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
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Created:     7.9.93
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -65,17 +62,17 @@ extern wxChar *BigBuffer;
 extern wxHashTable TexReferences;
 
 // Are we in verbatim mode? If so, format differently.
 extern wxHashTable TexReferences;
 
 // Are we in verbatim mode? If so, format differently.
-static bool inVerbatim = FALSE;
+static bool inVerbatim = false;
 
 // We're in a series of PopRef topics, so don't output section headings
 
 // We're in a series of PopRef topics, so don't output section headings
-bool inPopRefSection = FALSE;
+bool inPopRefSection = false;
 
 // Green colour?
 
 // Green colour?
-static bool hotSpotColour = TRUE;
-static bool hotSpotUnderline = TRUE;
+static bool hotSpotColour = true;
+static bool hotSpotUnderline = true;
 
 // Transparency (WHITE = transparent)
 
 // Transparency (WHITE = transparent)
-static bool bitmapTransparency = TRUE;
+static bool bitmapTransparency = true;
 
 // Linear RTF requires us to set the style per section.
 static wxChar *currentNumberStyle = NULL;
 
 // Linear RTF requires us to set the style per section.
 static wxChar *currentNumberStyle = NULL;
@@ -109,8 +106,8 @@ int issuedNewParagraph = 0;
 
 // Need to know whether we're in a table or figure for benefit
 // of listoffigures/listoftables
 
 // Need to know whether we're in a table or figure for benefit
 // of listoffigures/listoftables
-static bool inFigure = FALSE;
-static bool inTable = FALSE;
+static bool inFigure = false;
+static bool inTable = false;
 
 /*
  * Current topics
 
 /*
  * Current topics
@@ -124,10 +121,10 @@ static wxChar *CurrentTopic = NULL;
 static bool InPopups()
 {
   if (CurrentChapterName && (wxStrcmp(CurrentChapterName, _T("popups")) == 0))
 static bool InPopups()
 {
   if (CurrentChapterName && (wxStrcmp(CurrentChapterName, _T("popups")) == 0))
-    return TRUE;
+    return true;
   if (CurrentSectionName && (wxStrcmp(CurrentSectionName, _T("popups")) == 0))
   if (CurrentSectionName && (wxStrcmp(CurrentSectionName, _T("popups")) == 0))
-    return TRUE;
-  return FALSE;
+    return true;
+  return false;
 }
 
 static void SetCurrentTopic(wxChar *s)
 }
 
 static void SetCurrentTopic(wxChar *s)
@@ -190,7 +187,7 @@ void NotifyParentHasChildren(int parentLevel)
       texTopic = new TexTopic;
       TopicTable.Put(parentTopic, texTopic);
     }
       texTopic = new TexTopic;
       TopicTable.Put(parentTopic, texTopic);
     }
-    texTopic->hasChildren = TRUE;
+    texTopic->hasChildren = true;
   }
 }
 
   }
 }
 
@@ -206,10 +203,10 @@ void ResetContentsLevels(int l)
 {
   int i;
   for (i = l; i < 5; i++)
 {
   int i;
   for (i = l; i < 5; i++)
-    ContentsLevels[i] = FALSE;
-    
+    ContentsLevels[i] = false;
+
   // There are always books on the top level
   // There are always books on the top level
-  ContentsLevels[0] = TRUE;
+  ContentsLevels[0] = true;
 }
 
 // Output a WinHelp section as a keyword, substituting
 }
 
 // Output a WinHelp section as a keyword, substituting
@@ -217,7 +214,7 @@ void ResetContentsLevels(int l)
 void OutputSectionKeyword(FILE *fd)
 {
   OutputCurrentSectionToString(wxTex2RTFBuffer);
 void OutputSectionKeyword(FILE *fd)
 {
   OutputCurrentSectionToString(wxTex2RTFBuffer);
-  
+
   unsigned int i;
   for (i = 0; i < wxStrlen(wxTex2RTFBuffer); i++)
     if (wxTex2RTFBuffer[i] == ':')
   unsigned int i;
   for (i = 0; i < wxStrlen(wxTex2RTFBuffer); i++)
     if (wxTex2RTFBuffer[i] == ':')
@@ -228,7 +225,7 @@ void OutputSectionKeyword(FILE *fd)
 
   wxFprintf(fd, _T("K{\\footnote {K} "));
   wxFprintf(fd, _T("%s"), wxTex2RTFBuffer);
 
   wxFprintf(fd, _T("K{\\footnote {K} "));
   wxFprintf(fd, _T("%s"), wxTex2RTFBuffer);
-  
+
   wxFprintf(fd, _T("}\n"));
 }
 
   wxFprintf(fd, _T("}\n"));
 }
 
@@ -239,24 +236,25 @@ void WriteWinHelpContentsFileLine(wxChar *topicName, wxChar *xitle, int level)
   wxChar title[255];
   int s=0;
   int d=0;
   wxChar title[255];
   int s=0;
   int d=0;
+  // assuming iso-8859-1 here even in Unicode build (FIXME?)
   while ( (xitle[s]!=0)&&(d<255) )
   {
   while ( (xitle[s]!=0)&&(d<255) )
   {
-         wxChar ch=xitle[s]&0xff;
-         if (ch==0x5c) {
-                 wxChar ch1=xitle[s+1]&0xff;
-                 wxChar ch2=xitle[s+2]&0xff;
-                 wxChar ch3=xitle[s+3]&0xff;
-                 s+=4; // next character                 
-                 if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x36)) { title[d++]='ö';  }
-                 if ((ch1==0x27)&&(ch2==0x65)&&(ch3==0x34)) { title[d++]='ä';  }
-                 if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x63)) { title[d++]='ü';  }
-                 if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x36)) { title[d++]='Ö';  }
-                 if ((ch1==0x27)&&(ch2==0x63)&&(ch3==0x34)) { title[d++]='Ä';  }
-                 if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x63)) { title[d++]='Ü';  }
-         } else {
-               title[d++]=ch;
-               s++;
-         }       
+    wxChar ch=wxChar(xitle[s]&0xff);
+    if (ch==0x5c) {
+      wxChar ch1=wxChar(xitle[s+1]&0xff);
+      wxChar ch2=wxChar(xitle[s+2]&0xff);
+      wxChar ch3=wxChar(xitle[s+3]&0xff);
+      s+=4; // next character
+      if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x36)) { title[d++]=wxChar('ö');  }
+      if ((ch1==0x27)&&(ch2==0x65)&&(ch3==0x34)) { title[d++]=wxChar('ä');  }
+      if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x63)) { title[d++]=wxChar('ü');  }
+      if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x36)) { title[d++]=wxChar('Ö');  }
+      if ((ch1==0x27)&&(ch2==0x63)&&(ch3==0x34)) { title[d++]=wxChar('Ä');  }
+      if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x63)) { title[d++]=wxChar('Ü');  }
+    } else {
+      title[d++]=ch;
+      s++;
+    }
   }
   title[d]=0;
 
   }
   title[d]=0;
 
@@ -266,12 +264,9 @@ void WriteWinHelpContentsFileLine(wxChar *topicName, wxChar *xitle, int level)
 
   if (level == 0) // Means we had a Chapter in an article, oops.
     return;
 
   if (level == 0) // Means we had a Chapter in an article, oops.
     return;
-    
+
   ResetContentsLevels(level);
   ResetContentsLevels(level);
-  
-  if (!title)
-    return;
-    
+
   if (winHelp && winHelpContents && WinHelpContentsFile)
   {
     TexTopic *texTopic = (TexTopic *)TopicTable.Get(topicName);
   if (winHelp && winHelpContents && WinHelpContentsFile)
   {
     TexTopic *texTopic = (TexTopic *)TopicTable.Get(topicName);
@@ -292,7 +287,7 @@ void WriteWinHelpContentsFileLine(wxChar *topicName, wxChar *xitle, int level)
 
         // Remember that at this level, we had a book and *must* for the
         // remainder of sections at this level.
 
         // Remember that at this level, we had a book and *must* for the
         // remainder of sections at this level.
-        ContentsLevels[level-1] = TRUE;
+        ContentsLevels[level-1] = true;
       }
       else
       {
       }
       else
       {
@@ -306,7 +301,7 @@ void WriteWinHelpContentsFileLine(wxChar *topicName, wxChar *xitle, int level)
         // Always have a book at level 1
         wxFprintf(WinHelpContentsFile, _T("%d %s\n"), level, title);
         wxFprintf(WinHelpContentsFile, _T("%d %s=%s\n"), level+1, title, topicName);
         // Always have a book at level 1
         wxFprintf(WinHelpContentsFile, _T("%d %s\n"), level, title);
         wxFprintf(WinHelpContentsFile, _T("%d %s=%s\n"), level+1, title, topicName);
-        ContentsLevels[level-1] = TRUE;
+        ContentsLevels[level-1] = true;
       }
       else
         // Probably doesn't have children if it hasn't been added to the topic table
       }
       else
         // Probably doesn't have children if it hasn't been added to the topic table
@@ -351,7 +346,7 @@ void GenerateKeywordsForTopic(wxChar *topic)
       // Must separate out main entry form subentry (only 1 subentry allowed)
       wxChar buf1[100]; wxChar buf2[100];
       SplitIndexEntry(s, buf1, buf2);
       // Must separate out main entry form subentry (only 1 subentry allowed)
       wxChar buf1[100]; wxChar buf2[100];
       SplitIndexEntry(s, buf1, buf2);
-      
+
       // Check for ':' which messes up index
       unsigned int i;
       for (i = 0; i < wxStrlen(buf1) ; i++)
       // Check for ':' which messes up index
       unsigned int i;
       for (i = 0; i < wxStrlen(buf1) ; i++)
@@ -381,7 +376,7 @@ void GenerateKeywordsForTopic(wxChar *topic)
  * Output index entry in linear RTF
  *
  */
  * Output index entry in linear RTF
  *
  */
+
 void GenerateIndexEntry(wxChar *entry)
 {
   if (useWord)
 void GenerateIndexEntry(wxChar *entry)
 {
   if (useWord)
@@ -404,7 +399,7 @@ void GenerateIndexEntry(wxChar *entry)
   * Write a suitable RTF header.
   *
   */
   * Write a suitable RTF header.
   *
   */
-  
+
 void WriteColourTable(FILE *fd)
 {
   wxFprintf(fd, _T("{\\colortbl"));
 void WriteColourTable(FILE *fd)
 {
   wxFprintf(fd, _T("{\\colortbl"));
@@ -456,7 +451,7 @@ void WriteRTFHeader(FILE *fd)
 {
   wxFprintf(fd, _T("{\\rtf1\\%s \\deff0\n"), RTFCharset);
   wxFprintf(fd, _T("{\\fonttbl{\\f0\\froman Times New Roman;}{\\f1\\ftech Symbol;}{\\f2\\fswiss Arial;}\n"));
 {
   wxFprintf(fd, _T("{\\rtf1\\%s \\deff0\n"), RTFCharset);
   wxFprintf(fd, _T("{\\fonttbl{\\f0\\froman Times New Roman;}{\\f1\\ftech Symbol;}{\\f2\\fswiss Arial;}\n"));
-  wxFprintf(fd, _T("{\\f3\\fmodern Courier;}{\\f4\\ftech Wingdings;}{\\f5\\ftech Monotype Sorts;}\n}"));
+  wxFprintf(fd, _T("{\\f3\\fmodern Courier New;}{\\f4\\ftech Wingdings;}{\\f5\\ftech Monotype Sorts;}\n}"));
   /*
    * Style sheet
    */
   /*
    * Style sheet
    */
@@ -473,7 +468,7 @@ void WriteRTFHeader(FILE *fd)
 
   // Table of contents styles
   wxFprintf(fd, _T("{\\s20\\sb300\\tqr\\tldot\\tx8640 \\b\\f2 \\sbasedon0\\snext0 toc 1;}\n"));
 
   // Table of contents styles
   wxFprintf(fd, _T("{\\s20\\sb300\\tqr\\tldot\\tx8640 \\b\\f2 \\sbasedon0\\snext0 toc 1;}\n"));
-  
+
   wxFprintf(fd, _T("{\\s21\\sb90\\tqr\\tldot\\li400\\tqr\\tx8640 \\f2\\fs20\\sbasedon0\\snext0 toc 2;}\n"));
   wxFprintf(fd, _T("{\\s22\\sb90\\tqr\\tldot\\li800\\tx8640 \\f2\\fs20 \\sbasedon0\\snext0 toc 3;}\n"));
   wxFprintf(fd, _T("{\\s23\\sb90\\tqr\\tldot\\li1200\\tx8640 \\f2\\fs20 \\sbasedon0\\snext0 toc 4;}\n"));
   wxFprintf(fd, _T("{\\s21\\sb90\\tqr\\tldot\\li400\\tqr\\tx8640 \\f2\\fs20\\sbasedon0\\snext0 toc 2;}\n"));
   wxFprintf(fd, _T("{\\s22\\sb90\\tqr\\tldot\\li800\\tx8640 \\f2\\fs20 \\sbasedon0\\snext0 toc 3;}\n"));
   wxFprintf(fd, _T("{\\s23\\sb90\\tqr\\tldot\\li1200\\tx8640 \\f2\\fs20 \\sbasedon0\\snext0 toc 4;}\n"));
@@ -521,66 +516,66 @@ void OutputNumberStyle(wxChar *numberStyle)
 /*
  * Write a Windows help project file
  */
 /*
  * Write a Windows help project file
  */
-bool WriteHPJ(wxChar *filename)
-{
-  wxChar hpjFilename[256];
-  wxChar helpFile[50];
-  wxChar rtfFile[50];
-  wxStrcpy(hpjFilename, filename);
-  StripExtension(hpjFilename);
-  wxStrcat(hpjFilename, _T(".hpj"));
-
-  wxStrcpy(helpFile, wxFileNameFromPath(filename));
-  StripExtension(helpFile);
-  wxStrcpy(rtfFile, helpFile);
-  wxStrcat(helpFile, _T(".hlp"));
-  wxStrcat(rtfFile, _T(".rtf"));
-  
-  FILE *fd = wxFopen(hpjFilename, _T("w"));
-  if (!fd)
-    return FALSE;
-
-  wxChar *helpTitle = winHelpTitle;
-  if (!helpTitle)
-    helpTitle = _T("Untitled");
-    
-  wxString thePath = wxPathOnly(InputFile);
-  if (thePath.IsEmpty())
-    thePath = _T(".");
-  wxFprintf(fd, _T("[OPTIONS]\n"));
-  wxFprintf(fd, _T("BMROOT=%s ; Assume that bitmaps are where the source is\n"), thePath.c_str());
-  wxFprintf(fd, _T("TITLE=%s\n"), helpTitle);
-  wxFprintf(fd, _T("CONTENTS=Contents\n"));
-
-  if (winHelpVersion > 3)
-  {
-    wxFprintf(fd, _T("; COMPRESS=12 Hall Zeck ; Max compression, but needs lots of memory\n"));
-    wxFprintf(fd, _T("COMPRESS=8 Zeck\n"));
-    wxFprintf(fd, _T("LCID=0x809 0x0 0x0 ;English (British)\n"));
-    wxFprintf(fd, _T("HLP=.\\%s.hlp\n"), wxFileNameFromPath(FileRoot));
-  }
-  else
-  {
-    wxFprintf(fd, _T("COMPRESS=HIGH\n"));
-  }
-  wxFprintf(fd, _T("\n"));
 
 
-  if (winHelpVersion > 3)
-  {
-    wxFprintf(fd, _T("[WINDOWS]\n"));
-    wxFprintf(fd, _T("Main=\"\",(553,102,400,600),20736,(r14876671),(r12632256),f3\n"));
+bool WriteHPJ(const wxString& filename)
+{
+    wxChar hpjFilename[256];
+    wxChar helpFile[50];
+    wxChar rtfFile[50];
+    wxStrcpy(hpjFilename, filename);
+    StripExtension(hpjFilename);
+    wxStrcat(hpjFilename, _T(".hpj"));
+
+    wxStrcpy(helpFile, wxFileNameFromPath(filename));
+    StripExtension(helpFile);
+    wxStrcpy(rtfFile, helpFile);
+    wxStrcat(helpFile, _T(".hlp"));
+    wxStrcat(rtfFile, _T(".rtf"));
+
+    FILE *fd = wxFopen(hpjFilename, _T("w"));
+    if (!fd)
+        return false;
+
+    wxChar *helpTitle = winHelpTitle;
+    if (!helpTitle)
+        helpTitle = _T("Untitled");
+
+    wxString thePath = wxPathOnly(InputFile);
+    if (thePath.empty())
+        thePath = _T(".");
+    wxFprintf(fd, _T("[OPTIONS]\n"));
+    wxFprintf(fd, _T("BMROOT=%s ; Assume that bitmaps are where the source is\n"), thePath.c_str());
+    wxFprintf(fd, _T("TITLE=%s\n"), helpTitle);
+    wxFprintf(fd, _T("CONTENTS=Contents\n"));
+
+    if (winHelpVersion > 3)
+    {
+        wxFprintf(fd, _T("; COMPRESS=12 Hall Zeck ; Max compression, but needs lots of memory\n"));
+        wxFprintf(fd, _T("COMPRESS=8 Zeck\n"));
+        wxFprintf(fd, _T("LCID=0x809 0x0 0x0 ;English (British)\n"));
+        wxFprintf(fd, _T("HLP=.\\%s.hlp\n"), wxFileNameFromPath(FileRoot));
+    }
+    else
+    {
+        wxFprintf(fd, _T("COMPRESS=HIGH\n"));
+    }
     wxFprintf(fd, _T("\n"));
     wxFprintf(fd, _T("\n"));
-  }
 
 
-  wxFprintf(fd, _T("[FILES]\n%s\n\n"), rtfFile);
-  wxFprintf(fd, _T("[CONFIG]\n"));
-  if (useUpButton)
-    wxFprintf(fd, _T("CreateButton(\"Up\", \"&Up\", \"JumpId(`%s', `Contents')\")\n"), helpFile);
-  wxFprintf(fd, _T("BrowseButtons()\n\n"));
-  wxFprintf(fd, _T("[MAP]\n\n[BITMAPS]\n\n"));
-  fclose(fd);
-  return TRUE;
+    if (winHelpVersion > 3)
+    {
+        wxFprintf(fd, _T("[WINDOWS]\n"));
+        wxFprintf(fd, _T("Main=\"\",(553,102,400,600),20736,(r14876671),(r12632256),f3\n"));
+        wxFprintf(fd, _T("\n"));
+    }
+
+    wxFprintf(fd, _T("[FILES]\n%s\n\n"), rtfFile);
+    wxFprintf(fd, _T("[CONFIG]\n"));
+    if (useUpButton)
+        wxFprintf(fd, _T("CreateButton(\"Up\", \"&Up\", \"JumpId(`%s', `Contents')\")\n"), helpFile);
+    wxFprintf(fd, _T("BrowseButtons()\n\n"));
+    wxFprintf(fd, _T("[MAP]\n\n[BITMAPS]\n\n"));
+    fclose(fd);
+    return true;
 }
 
 
 }
 
 
@@ -594,7 +589,7 @@ bool WriteHPJ(wxChar *filename)
 
 void ProcessText2RTF(TexChunk *chunk)
 {
 
 void ProcessText2RTF(TexChunk *chunk)
 {
-  bool changed = FALSE;
+  bool changed = false;
   int ptr = 0;
   int i = 0;
   wxChar ch = 1;
   int ptr = 0;
   int i = 0;
   wxChar ch = 1;
@@ -610,7 +605,7 @@ void ProcessText2RTF(TexChunk *chunk)
         BigBuffer[ptr] = 0; wxStrcat(BigBuffer, _T("\\par\n")); ptr += 5;
 //        BigBuffer[ptr] = 0; wxStrcat(BigBuffer, _T("\\par{\\v this was verbatim}\n")); ptr += 5;
         i ++;
         BigBuffer[ptr] = 0; wxStrcat(BigBuffer, _T("\\par\n")); ptr += 5;
 //        BigBuffer[ptr] = 0; wxStrcat(BigBuffer, _T("\\par{\\v this was verbatim}\n")); ptr += 5;
         i ++;
-        changed = TRUE;
+        changed = true;
       }
       else
       {
       }
       else
       {
@@ -626,7 +621,7 @@ void ProcessText2RTF(TexChunk *chunk)
             ((len > i+1 && chunk->value[i+1] == 13) &&
              (len > i+2 && isascii(chunk->value[i+2]) &&
               !isspace(chunk->value[i+2]))))
             ((len > i+1 && chunk->value[i+1] == 13) &&
              (len > i+2 && isascii(chunk->value[i+2]) &&
               !isspace(chunk->value[i+2]))))
-//        if (TRUE)
+//        if (true)
         {
           // DOS files have a 13 after the 10
           BigBuffer[ptr] = 10;
         {
           // DOS files have a 13 after the 10
           BigBuffer[ptr] = 10;
@@ -644,7 +639,7 @@ void ProcessText2RTF(TexChunk *chunk)
 
           // Note that the actual ASCII character seen is dealt with in the next
           // iteration
 
           // Note that the actual ASCII character seen is dealt with in the next
           // iteration
-          changed = TRUE;
+          changed = true;
         }
         else
         {
         }
         else
         {
@@ -657,27 +652,27 @@ void ProcessText2RTF(TexChunk *chunk)
     {
       BigBuffer[ptr] = '"'; ptr ++;
       i += 2;
     {
       BigBuffer[ptr] = '"'; ptr ++;
       i += 2;
-      changed = TRUE;
+      changed = true;
     }
     else if (!inVerbatim && ch == '`') // Change ` to '
     {
       BigBuffer[ptr] = 39; ptr ++;
       i += 1;
     }
     else if (!inVerbatim && ch == '`') // Change ` to '
     {
       BigBuffer[ptr] = 39; ptr ++;
       i += 1;
-      changed = TRUE;
+      changed = true;
     }
     else if (inVerbatim && ch == '\\') // Change backslash to two backslashes
     {
       BigBuffer[ptr] = '\\'; ptr ++;
       BigBuffer[ptr] = '\\'; ptr ++;
       i += 1;
     }
     else if (inVerbatim && ch == '\\') // Change backslash to two backslashes
     {
       BigBuffer[ptr] = '\\'; ptr ++;
       BigBuffer[ptr] = '\\'; ptr ++;
       i += 1;
-      changed = TRUE;
+      changed = true;
     }
     }
-    else if (inVerbatim && (ch == '{' || ch == '}')) // Escape the curley bracket
+    else if (inVerbatim && (ch == '{' || ch == '}')) // Escape the curly bracket
     {
       BigBuffer[ptr] = '\\'; ptr ++;
       BigBuffer[ptr] = ch; ptr ++;
       i += 1;
     {
       BigBuffer[ptr] = '\\'; ptr ++;
       BigBuffer[ptr] = ch; ptr ++;
       i += 1;
-      changed = TRUE;
+      changed = true;
     }
     else
     {
     }
     else
     {
@@ -702,7 +697,7 @@ void ProcessText2RTF(TexChunk *chunk)
  * and before TraverseDocument is called.
  *
  */
  * and before TraverseDocument is called.
  *
  */
+
 void Text2RTF(TexChunk *chunk)
 {
   Tex2RTFYield();
 void Text2RTF(TexChunk *chunk)
 {
   Tex2RTFYield();
@@ -717,7 +712,7 @@ void Text2RTF(TexChunk *chunk)
         return;
 
       if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB))
         return;
 
       if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB))
-        inVerbatim = TRUE;
+        inVerbatim = true;
 
       wxNode *node = chunk->children.GetFirst();
       while (node)
 
       wxNode *node = chunk->children.GetFirst();
       while (node)
@@ -728,7 +723,7 @@ void Text2RTF(TexChunk *chunk)
       }
 
       if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB))
       }
 
       if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB))
-        inVerbatim = FALSE;
+        inVerbatim = false;
 
       break;
     }
 
       break;
     }
@@ -757,14 +752,14 @@ void Text2RTF(TexChunk *chunk)
  * Not used yet
  *
  */
  * Not used yet
  *
  */
+
 wxChar browseBuf[10];
 static long browseId = 0;
 wxChar *GetBrowseString(void)
 {
   wxChar buf[10];
   browseId ++;
 wxChar browseBuf[10];
 static long browseId = 0;
 wxChar *GetBrowseString(void)
 {
   wxChar buf[10];
   browseId ++;
-  wxSprintf(buf, _T("%ld"), browseId);
+  wxSnprintf(buf, sizeof(buf), _T("%ld"), browseId);
   int noZeroes = 5-wxStrlen(buf);
   wxStrcpy(browseBuf, _T("browse"));
   for (int i = 0; i < noZeroes; i++)
   int noZeroes = 5-wxStrlen(buf);
   wxStrcpy(browseBuf, _T("browse"));
   for (int i = 0; i < noZeroes; i++)
@@ -808,7 +803,7 @@ void WriteEnvironmentStyles(void)
   if (!inTabular && (ParIndent > 0) && (forbidParindent == 0))
   {
     wxChar buf[15];
   if (!inTabular && (ParIndent > 0) && (forbidParindent == 0))
   {
     wxChar buf[15];
-    wxSprintf(buf, _T("\\fi%d"), ParIndent*20); // Convert points to TWIPS
+    wxSnprintf(buf, sizeof(buf), _T("\\fi%d"), ParIndent*20); // Convert points to TWIPS
     TexOutput(buf);
   }
   if (environmentStack.GetCount() > 0 || (ParIndent > 0))
     TexOutput(buf);
   }
   if (environmentStack.GetCount() > 0 || (ParIndent > 0))
@@ -843,12 +838,12 @@ void OutputRTFHeaderCommands(void)
     TexOutput(_T("{\\i \\qr "));
     if (DocumentStyle == LATEX_ARTICLE)
     {
     TexOutput(_T("{\\i \\qr "));
     if (DocumentStyle == LATEX_ARTICLE)
     {
-      wxSprintf(buf, _T("SECTION %d"), sectionNo);
+      wxSnprintf(buf, sizeof(buf), _T("SECTION %d"), sectionNo);
       TexOutput(buf);
     }
     else
     {
       TexOutput(buf);
     }
     else
     {
-      wxSprintf(buf, _T("CHAPTER %d: "), chapterNo);
+      wxSnprintf(buf, sizeof(buf), _T("CHAPTER %d: "), chapterNo);
       TexOutput(buf);
     }
     TexOutput(_T("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
       TexOutput(buf);
     }
     TexOutput(_T("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
@@ -863,12 +858,12 @@ void OutputRTFHeaderCommands(void)
     TexOutput(_T("{\\i \\qc "));
     if (DocumentStyle == LATEX_ARTICLE)
     {
     TexOutput(_T("{\\i \\qc "));
     if (DocumentStyle == LATEX_ARTICLE)
     {
-      wxSprintf(buf, _T("SECTION %d"), sectionNo);
+      wxSnprintf(buf, sizeof(buf), _T("SECTION %d"), sectionNo);
       TexOutput(buf);
     }
     else
     {
       TexOutput(buf);
     }
     else
     {
-      wxSprintf(buf, _T("CHAPTER %d"), chapterNo);
+      wxSnprintf(buf, sizeof(buf), _T("CHAPTER %d"), chapterNo);
       TexOutput(buf);
     }
     TexOutput(_T("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
       TexOutput(buf);
     }
     TexOutput(_T("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
@@ -878,7 +873,7 @@ void OutputRTFHeaderCommands(void)
   {
     int oldForbidResetPar = forbidResetPar;
     forbidResetPar = 0;
   {
     int oldForbidResetPar = forbidResetPar;
     forbidResetPar = 0;
-    
+
     if (LeftHeaderEven || CentreHeaderEven || RightHeaderEven)
     {
       TexOutput(_T("{\\headerl\\fi0 "));
     if (LeftHeaderEven || CentreHeaderEven || RightHeaderEven)
     {
       TexOutput(_T("{\\headerl\\fi0 "));
@@ -1075,7 +1070,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 {
 /*
   wxChar tmpBuf[40];
 {
 /*
   wxChar tmpBuf[40];
-  wxSprintf(tmpBuf, _T("%d (%d)"), macroId, (int)start);
+  wxSnprintf(tmpBuf, sizeof(tmpBuf), _T("%d (%d)"), macroId, (int)start);
   OutputDebugString("RTFOnMacro Start "); OutputDebugString(tmpBuf);
   OutputDebugString("\n"); wxYield();
 */
   OutputDebugString("RTFOnMacro Start "); OutputDebugString(tmpBuf);
   OutputDebugString("\n"); wxYield();
 */
@@ -1146,7 +1141,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           OutputRTFHeaderCommands();
           OutputRTFFooterCommands();
         }
           OutputRTFHeaderCommands();
           OutputRTFFooterCommands();
         }
-        
+
         // Need to reset the current numbering style, or RTF forgets it.
         SetCurrentOutput(Chapters);
         OutputNumberStyle(currentNumberStyle);
         // Need to reset the current numbering style, or RTF forgets it.
         SetCurrentOutput(Chapters);
         OutputNumberStyle(currentNumberStyle);
@@ -1167,28 +1162,31 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           else SetCurrentOutput(NULL); // No entry in table of contents
         }
       }
           else SetCurrentOutput(NULL); // No entry in table of contents
         }
       }
-  
-      startedSections = TRUE;
+
+      startedSections = true;
 
       // Output heading to contents page
       if (!InPopups())
       {
         OutputCurrentSection();
 
       // Output heading to contents page
       if (!InPopups())
       {
         OutputCurrentSection();
-      
+
         if (winHelp)
         if (winHelp)
-          wxFprintf(Contents, _T("}{\\v %s}\\par\\pard\n"), topicName);
+        {
+          wxFprintf(Contents, _T("}{\\v %s}\\pard\\par\n"), topicName);
+          //WriteEnvironmentStyles();
+        }
         else if ((macroId == ltCHAPTER) || (macroId == ltCHAPTERHEADING))
           wxFprintf(Contents, _T("}\\par\\par\\pard\n"));
 
         // From here, just output to chapter
         SetCurrentOutput(Chapters);
       }
         else if ((macroId == ltCHAPTER) || (macroId == ltCHAPTERHEADING))
           wxFprintf(Contents, _T("}\\par\\par\\pard\n"));
 
         // From here, just output to chapter
         SetCurrentOutput(Chapters);
       }
-     
+
       if (winHelp)
       {
         wxFprintf(Chapters, _T("}\n#{\\footnote %s}\n"), topicName);
         wxFprintf(Chapters, _T("+{\\footnote %s}\n"), GetBrowseString());
       if (winHelp)
       {
         wxFprintf(Chapters, _T("}\n#{\\footnote %s}\n"), topicName);
         wxFprintf(Chapters, _T("+{\\footnote %s}\n"), GetBrowseString());
-        
+
         OutputSectionKeyword(Chapters);
 
         GenerateKeywordsForTopic(topicName);
         OutputSectionKeyword(Chapters);
 
         GenerateKeywordsForTopic(topicName);
@@ -1314,14 +1312,14 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           }
         }
         else SetCurrentOutput(NULL);
           }
         }
         else SetCurrentOutput(NULL);
-      } 
+      }
 
       if (startedSections)
       {
         if (winHelp)
           wxFprintf(Sections, _T("\\page\n"));
       }
 
       if (startedSections)
       {
         if (winHelp)
           wxFprintf(Sections, _T("\\page\n"));
       }
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Sections, _T("\n${\\footnote "));
 
       if (winHelp)
         wxFprintf(Sections, _T("\n${\\footnote "));
@@ -1333,7 +1331,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (winHelp)
       {
         if (!InPopups())
       if (winHelp)
       {
         if (!InPopups())
-          wxFprintf(jumpFrom, _T("}{\\v %s}\\par\\pard\n"), topicName);
+        {
+          wxFprintf(jumpFrom, _T("}{\\v %s}\\pard\\par\n"), topicName);
+          //WriteEnvironmentStyles();
+        }
       }
       else if ((macroId != ltSECTIONSTAR) && (macroId != ltGLOSS))
       {
       }
       else if ((macroId != ltSECTIONSTAR) && (macroId != ltGLOSS))
       {
@@ -1342,7 +1343,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         else
           wxFprintf(Contents, _T("}\\par\\par\\pard\n"));
       }
         else
           wxFprintf(Contents, _T("}\\par\\par\\pard\n"));
       }
-        
+
       SetCurrentOutput(winHelp ? Sections : Chapters);
 
       if (winHelp)
       SetCurrentOutput(winHelp ? Sections : Chapters);
 
       if (winHelp)
@@ -1379,7 +1380,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       wxChar *keep = _T("");
       if (winHelp && (macroId != ltGLOSS) && !InPopups())
         keep = _T("\\keepn\\sa140\\sb140");
       wxChar *keep = _T("");
       if (winHelp && (macroId != ltGLOSS) && !InPopups())
         keep = _T("\\keepn\\sa140\\sb140");
-        
+
       wxFprintf(winHelp ? Sections : Chapters, _T("\\pard{%s%s"),
          keep, styleCommand);
 
       wxFprintf(winHelp ? Sections : Chapters, _T("\\pard{%s%s"),
          keep, styleCommand);
 
@@ -1483,9 +1484,9 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 #if 0
         else
           wxFprintf(Chapters, _T("\\par\n"));
 #if 0
         else
           wxFprintf(Chapters, _T("\\par\n"));
-#endif        
+#endif
       }
       }
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Subsections, _T("\n${\\footnote "));
 
       if (winHelp)
         wxFprintf(Subsections, _T("\n${\\footnote "));
@@ -1497,7 +1498,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (winHelp)
       {
         if (!InPopups())
       if (winHelp)
       {
         if (!InPopups())
-          wxFprintf(Sections, _T("}{\\v %s}\\par\\pard\n"), topicName);
+        {
+          wxFprintf(Sections, _T("}{\\v %s}\\pard\\par\n"), topicName);
+          //WriteEnvironmentStyles();
+        }
       }
       else if ((macroId != ltSUBSECTIONSTAR) && (macroId != ltMEMBERSECTION) &&
          (macroId != ltFUNCTIONSECTION))
       }
       else if ((macroId != ltSUBSECTIONSTAR) && (macroId != ltMEMBERSECTION) &&
          (macroId != ltFUNCTIONSECTION))
@@ -1575,7 +1579,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         }
       }
       OutputCurrentSection(); // Repeat section header
         }
       }
       OutputCurrentSection(); // Repeat section header
-      
+
       // Experimental JACS
       TexOutput(_T("\\par\\pard}\n"));
       // TexOutput(_T("\\par\\pard}\\par\n"));
       // Experimental JACS
       TexOutput(_T("\\par\\pard}\n"));
       // TexOutput(_T("\\par\\pard}\\par\n"));
@@ -1627,11 +1631,11 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           }
           else
             SetCurrentOutput(NULL); // Don't write it into the contents, or anywhere else
           }
           else
             SetCurrentOutput(NULL); // Don't write it into the contents, or anywhere else
-       }
+        }
         else
           SetCurrentOutput(NULL); // Don't write it into the contents, or anywhere else
       }
         else
           SetCurrentOutput(NULL); // Don't write it into the contents, or anywhere else
       }
-      
+
       if (startedSections)
       {
         if (winHelp)
       if (startedSections)
       {
         if (winHelp)
@@ -1640,10 +1644,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 #if 0
         else
           wxFprintf(Chapters, _T("\\par\n"));
 #if 0
         else
           wxFprintf(Chapters, _T("\\par\n"));
-#endif        
+#endif
       }
 
       }
 
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Subsubsections, _T("\n${\\footnote "));
 
       if (winHelp)
         wxFprintf(Subsubsections, _T("\n${\\footnote "));
@@ -1652,10 +1656,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       OutputCurrentSection();
 
       if (winHelp)
       OutputCurrentSection();
 
       if (winHelp)
-        wxFprintf(Subsections, _T("}{\\v %s}\\par\\pard\n"), topicName);
+      {
+        wxFprintf(Subsections, _T("}{\\v %s}\\pard\\par\n"), topicName);
+        //WriteEnvironmentStyles();
+      }
       else if ((DocumentStyle == LATEX_ARTICLE) && (macroId != ltSUBSUBSECTIONSTAR))
         wxFprintf(Contents, _T("\\par\\pard\n"));
       else if ((DocumentStyle == LATEX_ARTICLE) && (macroId != ltSUBSUBSECTIONSTAR))
         wxFprintf(Contents, _T("\\par\\pard\n"));
-        
+
       SetCurrentOutput(winHelp ? Subsubsections : Chapters);
       if (winHelp)
       {
       SetCurrentOutput(winHelp ? Subsubsections : Chapters);
       if (winHelp)
       {
@@ -1695,7 +1702,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       WriteHeadingStyle((winHelp ? Subsubsections : Chapters),
                         (DocumentStyle == LATEX_ARTICLE ? 3 : 4));
       wxFprintf(winHelp ? Subsubsections : Chapters, _T(" "));
       WriteHeadingStyle((winHelp ? Subsubsections : Chapters),
                         (DocumentStyle == LATEX_ARTICLE ? 3 : 4));
       wxFprintf(winHelp ? Subsubsections : Chapters, _T(" "));
-         
+
       if (!winHelp)
       {
         if ((macroId != ltSUBSUBSECTIONSTAR))
       if (!winHelp)
       {
         if ((macroId != ltSUBSUBSECTIONSTAR))
@@ -1752,13 +1759,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         if (winHelp || !useWord)
         {
           if (DocumentStyle != LATEX_ARTICLE)
         if (winHelp || !useWord)
         {
           if (DocumentStyle != LATEX_ARTICLE)
-            wxSprintf(figBuf, _T("%s %d.%d: "), FigureNameString, chapterNo, figureNo);
+            wxSnprintf(figBuf, sizeof(figBuf), _T("%s %d.%d: "), FigureNameString, chapterNo, figureNo);
           else
           else
-            wxSprintf(figBuf, _T("%s %d: "), FigureNameString, figureNo);
+            wxSnprintf(figBuf, sizeof(figBuf), _T("%s %d: "), FigureNameString, figureNo);
         }
         else
         {
         }
         else
         {
-          wxSprintf(figBuf, _T("%s {\\field\\flddirty{\\*\\fldinst  SEQ Figure \\\\* ARABIC }{\\fldrslt {\\bkmkstart %s}??{\\bkmkend %s}}}: "),
+          wxSnprintf(figBuf, sizeof(figBuf), _T("%s {\\field\\flddirty{\\*\\fldinst  SEQ Figure \\\\* ARABIC }{\\fldrslt {\\bkmkstart %s}??{\\bkmkend %s}}}: "),
                FigureNameString, topicName, topicName);
         }
       }
                FigureNameString, topicName, topicName);
         }
       }
@@ -1769,13 +1776,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         if (winHelp || !useWord)
         {
           if (DocumentStyle != LATEX_ARTICLE)
         if (winHelp || !useWord)
         {
           if (DocumentStyle != LATEX_ARTICLE)
-            wxSprintf(figBuf, _T("%s %d.%d: "), TableNameString, chapterNo, tableNo);
+            wxSnprintf(figBuf, sizeof(figBuf), _T("%s %d.%d: "), TableNameString, chapterNo, tableNo);
           else
           else
-            wxSprintf(figBuf, _T("%s %d: "), TableNameString, tableNo);
+            wxSnprintf(figBuf, sizeof(figBuf), _T("%s %d: "), TableNameString, tableNo);
         }
         else
         {
         }
         else
         {
-          wxSprintf(figBuf, _T("%s {\\field\\flddirty{\\*\\fldinst  SEQ Table \\\\* ARABIC }{\\fldrslt {\\bkmkstart %s}??{\\bkmkend %s}}}: "),
+          wxSnprintf(figBuf, sizeof(figBuf), _T("%s {\\field\\flddirty{\\*\\fldinst  SEQ Table \\\\* ARABIC }{\\fldrslt {\\bkmkstart %s}??{\\bkmkend %s}}}: "),
                TableNameString, topicName, topicName);
         }
       }
                TableNameString, topicName, topicName);
         }
       }
@@ -1812,18 +1819,18 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (winHelp)
       {
         TexOutput(_T("K{\\footnote {K} "));
       if (winHelp)
       {
         TexOutput(_T("K{\\footnote {K} "));
-        suppressNameDecoration = TRUE;
+        suppressNameDecoration = true;
         TraverseChildrenFromChunk(currentMember);
         TraverseChildrenFromChunk(currentMember);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}\n"));
       }
       if (!winHelp && useWord)
       {
         // Insert index entry for this function
         TexOutput(_T("{\\xe\\v {"));
         TexOutput(_T("}\n"));
       }
       if (!winHelp && useWord)
       {
         // Insert index entry for this function
         TexOutput(_T("{\\xe\\v {"));
-        suppressNameDecoration = TRUE;  // Necessary so don't print "(\\bf" etc.
+        suppressNameDecoration = true;  // Necessary so don't print "(\\bf" etc.
         TraverseChildrenFromChunk(currentMember);
         TraverseChildrenFromChunk(currentMember);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}}"));
       }
     }
         TexOutput(_T("}}"));
       }
     }
@@ -1842,18 +1849,18 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (winHelp)
       {
         TexOutput(_T("K{\\footnote {K} "));
       if (winHelp)
       {
         TexOutput(_T("K{\\footnote {K} "));
-        suppressNameDecoration = TRUE;  // Necessary so don't print "(\\bf" etc.
+        suppressNameDecoration = true;  // Necessary so don't print "(\\bf" etc.
         TraverseChildrenFromChunk(currentMember);
         TraverseChildrenFromChunk(currentMember);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}\n"));
       }
       if (!winHelp && useWord)
       {
         // Insert index entry for this function
         TexOutput(_T("{\\xe\\v {"));
         TexOutput(_T("}\n"));
       }
       if (!winHelp && useWord)
       {
         // Insert index entry for this function
         TexOutput(_T("{\\xe\\v {"));
-        suppressNameDecoration = TRUE;  // Necessary so don't print "(\\bf" etc.
+        suppressNameDecoration = true;  // Necessary so don't print "(\\bf" etc.
         TraverseChildrenFromChunk(currentMember);
         TraverseChildrenFromChunk(currentMember);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}}"));
       }
     }
         TexOutput(_T("}}"));
       }
     }
@@ -1879,9 +1886,9 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       {
         // Insert index entry for this function
         TexOutput(_T("{\\xe\\v {"));
       {
         // Insert index entry for this function
         TexOutput(_T("{\\xe\\v {"));
-        suppressNameDecoration = TRUE;  // Necessary so don't print "(\\bf" etc.
+        suppressNameDecoration = true;  // Necessary so don't print "(\\bf" etc.
         TraverseChildrenFromChunk(currentMember);
         TraverseChildrenFromChunk(currentMember);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}}"));
       }
     }
         TexOutput(_T("}}"));
       }
     }
@@ -1903,10 +1910,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         TexOutput(_T("\\par\\pard\\pgnrestart\\sect\\titlepg"));
 
        // In linear RTF, same as chapter headings.
         TexOutput(_T("\\par\\pard\\pgnrestart\\sect\\titlepg"));
 
        // In linear RTF, same as chapter headings.
-        wxSprintf(buf, _T("{\\b\\fs%d %s}\\par\\par\\pard\n\n"), chapterFont*2, ContentsNameString);
+        wxSnprintf(buf, sizeof(buf), _T("{\\b\\fs%d %s}\\par\\par\\pard\n\n"), chapterFont*2, ContentsNameString);
 
         TexOutput(buf);
 
         TexOutput(buf);
-        wxSprintf(buf, _T("{\\field{\\*\\fldinst TOC \\\\o \"1-%d\" }{\\fldrslt PRESS F9 TO REFORMAT CONTENTS}}\n"), contentsDepth);
+        wxSnprintf(buf, sizeof(buf), _T("{\\field{\\*\\fldinst TOC \\\\o \"1-%d\" }{\\fldrslt PRESS F9 TO REFORMAT CONTENTS}}\n"), contentsDepth);
         TexOutput(buf);
 //        TexOutput(_T("\\sect\\sectd"));
       }
         TexOutput(buf);
 //        TexOutput(_T("\\sect\\sectd"));
       }
@@ -1918,7 +1925,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           int ch = getc(fd);
           while (ch != EOF)
           {
           int ch = getc(fd);
           while (ch != EOF)
           {
-            putc(ch, Chapters);
+            wxPutc(ch, Chapters);
             ch = getc(fd);
           }
           fclose(fd);
             ch = getc(fd);
           }
           fclose(fd);
@@ -1965,10 +1972,11 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      if (TRUE) // (inVerbatim)
+      #if 1 // if(inVerbatim)
         TexOutput(_T("~"));
         TexOutput(_T("~"));
-      else
+      #else
         TexOutput(_T(" "));
         TexOutput(_T(" "));
+      #endif
     }
     break;
   }
     }
     break;
   }
@@ -1989,8 +1997,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
           if (TableData[i].leftBorder)
             TexOutput(_T("\\clbrdrl\\brdrs\\brdrw15"));
 
           if (TableData[i].leftBorder)
             TexOutput(_T("\\clbrdrl\\brdrs\\brdrw15"));
-          
-          wxSprintf(buf, _T("\\cellx%d"), currentWidth);
+
+          wxSnprintf(buf, sizeof(buf), _T("\\cellx%d"), currentWidth);
           TexOutput(buf);
         }
         TexOutput(_T("\\pard\\intbl\n"));
           TexOutput(buf);
         }
         TexOutput(_T("\\pard\\intbl\n"));
@@ -2058,8 +2066,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
       ItemizeStruc *struc = new ItemizeStruc(listType, indentSize2, indentSize1);
       itemizeStack.Insert(struc);
 
       ItemizeStruc *struc = new ItemizeStruc(listType, indentSize2, indentSize1);
       itemizeStack.Insert(struc);
-      
-      wxSprintf(buf, _T("\\tx%d\\tx%d\\li%d\\sa200"), indentSize1, indentSize2, indentSize2);
+
+      wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\tx%d\\li%d\\sa200"), indentSize1, indentSize2, indentSize2);
       PushEnvironmentStyle(buf);
     }
     else
       PushEnvironmentStyle(buf);
     }
     else
@@ -2077,8 +2085,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 /* Change 18/7/97 - don't know why we wish to do this
       if (itemizeStack.Number() == 0)
       {
 /* Change 18/7/97 - don't know why we wish to do this
       if (itemizeStack.Number() == 0)
       {
-        OnMacro(ltPAR, 0, TRUE);
-        OnMacro(ltPAR, 0, FALSE);
+        OnMacro(ltPAR, 0, true);
+        OnMacro(ltPAR, 0, false);
         issuedNewParagraph = 2;
       }
 */
         issuedNewParagraph = 2;
       }
 */
@@ -2099,9 +2107,9 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
       ItemizeStruc *struc = new ItemizeStruc(LATEX_TWOCOL, indentSize);
       itemizeStack.Insert(struc);
 
       ItemizeStruc *struc = new ItemizeStruc(LATEX_TWOCOL, indentSize);
       itemizeStack.Insert(struc);
-      
-//      wxSprintf(buf, _T("\\tx%d\\li%d\\ri%d"), indentSize, indentSize, TwoColWidthA+TwoColWidthB+oldIndent);
-      wxSprintf(buf, _T("\\tx%d\\li%d\\sa200"), indentSize, indentSize);
+
+//      wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\ri%d"), indentSize, indentSize, TwoColWidthA+TwoColWidthB+oldIndent);
+      wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\sa200"), indentSize, indentSize);
       PushEnvironmentStyle(buf);
     }
     else
       PushEnvironmentStyle(buf);
     }
     else
@@ -2126,10 +2134,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (itemizeStack.GetCount() == 0)
       {
         issuedNewParagraph = 0;
       if (itemizeStack.GetCount() == 0)
       {
         issuedNewParagraph = 0;
-        OnMacro(ltPAR, 0, TRUE);
-        OnMacro(ltPAR, 0, FALSE);
+        OnMacro(ltPAR, 0, true);
+        OnMacro(ltPAR, 0, false);
       }
       }
-#endif      
+#endif
     }
     break;
   }
     }
     break;
   }
@@ -2159,7 +2167,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 //          WriteEnvironmentStyles();
         }
 
 //          WriteEnvironmentStyles();
         }
 
-        wxSprintf(buf, _T("\\tx%d\\tx%d\\li%d\\fi-%d\n"), indentSize1, indentSize2,
+        wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\tx%d\\li%d\\fi-%d\n"), indentSize1, indentSize2,
                   indentSize2, 20*itemIndentTab);
         TexOutput(buf);
 
                   indentSize2, 20*itemIndentTab);
         TexOutput(buf);
 
@@ -2173,10 +2181,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
               TraverseChildrenFromChunk(descriptionItemArg);
               TexOutput(_T("}\\tab"));
               descriptionItemArg = NULL;
               TraverseChildrenFromChunk(descriptionItemArg);
               TexOutput(_T("}\\tab"));
               descriptionItemArg = NULL;
-           }
-           else
-           {
-              wxSprintf(indentBuf, _T("\\tab{\\b %d.}\\tab"), struc->currentItem);
+            }
+            else
+            {
+              wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab{\\b %d.}\\tab"), struc->currentItem);
               TexOutput(indentBuf);
             }
             break;
               TexOutput(indentBuf);
             }
             break;
@@ -2189,20 +2197,20 @@ void RTFOnMacro(int macroId, int no_args, bool start)
               TraverseChildrenFromChunk(descriptionItemArg);
               TexOutput(_T("}\\tab"));
               descriptionItemArg = NULL;
               TraverseChildrenFromChunk(descriptionItemArg);
               TexOutput(_T("}\\tab"));
               descriptionItemArg = NULL;
-           }
-           else
-           {
+            }
+          else
+            {
               if (bulletFile && winHelp)
               {
                 if (winHelpVersion > 3) // Transparent bitmap
               if (bulletFile && winHelp)
               {
                 if (winHelpVersion > 3) // Transparent bitmap
-                  wxSprintf(indentBuf, _T("\\tab\\{bmct %s\\}\\tab"), bulletFile);
+                  wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab\\{bmct %s\\}\\tab"), bulletFile);
                 else
                 else
-                  wxSprintf(indentBuf, _T("\\tab\\{bmc %s\\}\\tab"), bulletFile);
+                  wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab\\{bmc %s\\}\\tab"), bulletFile);
               }
               else if (winHelp)
               }
               else if (winHelp)
-                wxSprintf(indentBuf, _T("\\tab{\\b o}\\tab"));
+                wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab{\\b o}\\tab"));
               else
               else
-                wxSprintf(indentBuf, _T("\\tab{\\f1\\'b7}\\tab"));
+                wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab{\\f1\\'b7}\\tab"));
               TexOutput(indentBuf);
             }
             break;
               TexOutput(indentBuf);
             }
             break;
@@ -2219,7 +2227,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
             }
             break;
           }
             }
             break;
           }
-       }
+        }
       }
     }
     break;
       }
     }
     break;
@@ -2252,15 +2260,15 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
 //          WriteEnvironmentStyles();
         }
 
 //          WriteEnvironmentStyles();
         }
-#endif        
+#endif
 
 
-//        wxSprintf(buf, _T("\\tx%d\\li%d\\fi-%d\\ri%d\n"), TwoColWidthA,
+//        wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\fi-%d\\ri%d\n"), TwoColWidthA,
 //             TwoColWidthA, TwoColWidthA, TwoColWidthA+TwoColWidthB+oldIndent);
 /*
 //             TwoColWidthA, TwoColWidthA, TwoColWidthA+TwoColWidthB+oldIndent);
 /*
-        wxSprintf(buf, _T("\\tx%d\\li%d\\fi-%d\n"), TwoColWidthA,
+        wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\fi-%d\n"), TwoColWidthA,
              TwoColWidthA, TwoColWidthA);
 */
              TwoColWidthA, TwoColWidthA);
 */
-        wxSprintf(buf, _T("\\tx%d\\li%d\\fi-%d\n"), TwoColWidthA + oldIndent,
+        wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\fi-%d\n"), TwoColWidthA + oldIndent,
              TwoColWidthA + oldIndent, TwoColWidthA);
         TexOutput(buf);
       }
              TwoColWidthA + oldIndent, TwoColWidthA);
         TexOutput(buf);
       }
@@ -2285,11 +2293,11 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         else issuedNewParagraph = 0;
       }
 #endif
         else issuedNewParagraph = 0;
       }
 #endif
-      
+
       if (macroId == ltVERBATIM)
       if (macroId == ltVERBATIM)
-        wxSprintf(buf, _T("{\\f3\\s10\\fs20\\li720\\sa0 "));
+        wxSnprintf(buf, sizeof(buf), _T("{\\f3\\s10\\fs20\\li720\\sa0 "));
       else
       else
-        wxSprintf(buf, _T("{\\f3\\fs20 "));
+        wxSnprintf(buf, sizeof(buf), _T("{\\f3\\fs20 "));
       TexOutput(buf);
     }
     else
       TexOutput(buf);
     }
     else
@@ -2303,7 +2311,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 #if 0
         TexOutput(_T("\\par\n"));
         issuedNewParagraph = 1;
 #if 0
         TexOutput(_T("\\par\n"));
         issuedNewParagraph = 1;
-#endif        
+#endif
       }
     }
     break;
       }
     }
     break;
@@ -2368,7 +2376,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), smallFont*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), smallFont*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2379,7 +2387,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), tinyFont*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), tinyFont*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2389,7 +2397,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), normalFont*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), normalFont*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2399,7 +2407,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), largeFont1*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), largeFont1*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2409,7 +2417,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), LargeFont2*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), LargeFont2*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2419,7 +2427,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), LARGEFont3*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), LARGEFont3*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2429,7 +2437,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), hugeFont1*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), hugeFont1*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2439,7 +2447,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), HugeFont2*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), HugeFont2*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2449,7 +2457,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("{\\fs%d\n"), HUGEFont3*2);
+      wxSnprintf(buf, sizeof(buf), _T("{\\fs%d\n"), HUGEFont3*2);
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
       TexOutput(buf);
     }
     else TexOutput(_T("}\n"));
@@ -2494,7 +2502,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   case ltRMFAMILY:
   case ltRM:
   {
   case ltRMFAMILY:
   case ltRM:
   {
-/*    
+/*
     if (start)
     {
       TexOutput(_T("{\\plain "));
     if (start)
     {
       TexOutput(_T("{\\plain "));
@@ -2567,36 +2575,39 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-               if ( issuedNewParagraph == 0 )
-               {
+      if ( issuedNewParagraph == 0 )
+      {
           TexOutput(_T("\\par\\pard"));
           issuedNewParagraph ++;
           TexOutput(_T("\\par\\pard"));
           issuedNewParagraph ++;
-          
+
           // Extra par if parskip is more than zero (usually looks best.)
           // N.B. JACS 2004-02-21: shouldn't need this for linear RTF if
           // we have a suitable set of styles.
           // Extra par if parskip is more than zero (usually looks best.)
           // N.B. JACS 2004-02-21: shouldn't need this for linear RTF if
           // we have a suitable set of styles.
+#if 0
           if (winHelp && !inTabular && (ParSkip > 0))
           if (winHelp && !inTabular && (ParSkip > 0))
-                 {
+          {
             TexOutput(_T("\\par"));
             issuedNewParagraph ++;
             TexOutput(_T("\\par"));
             issuedNewParagraph ++;
-                 }
+          }
+#endif
           WriteEnvironmentStyles();
           WriteEnvironmentStyles();
-               }
-               // 1 is a whole paragraph if ParSkip == 0,
-               // half a paragraph if ParSkip > 0
-               else if ( issuedNewParagraph == 1 )
-               {
-                 // Don't need a par at all if we've already had one,
-                 // and ParSkip == 0.
-
+      }
+      // 1 is a whole paragraph if ParSkip == 0,
+      // half a paragraph if ParSkip > 0
+      else if ( issuedNewParagraph == 1 )
+      {
+        // Don't need a par at all if we've already had one,
+        // and ParSkip == 0.
+#if 0
           // Extra par if parskip is more than zero (usually looks best.)
           if (winHelp && !inTabular && (ParSkip > 0))
           // Extra par if parskip is more than zero (usually looks best.)
           if (winHelp && !inTabular && (ParSkip > 0))
-                 {
+          {
             TexOutput(_T("\\par"));
             issuedNewParagraph ++;
             TexOutput(_T("\\par"));
             issuedNewParagraph ++;
-                 }
+          }
+#endif
           WriteEnvironmentStyles();
           WriteEnvironmentStyles();
-               }
+      }
 /*
       if (!issuedNewParagraph || (issuedNewParagraph > 1))
       {
 /*
       if (!issuedNewParagraph || (issuedNewParagraph > 1))
       {
@@ -2628,7 +2639,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       TexOutput(_T("\\par\\pard"));
       if (!winHelp)
         TexOutput(_T("\\par"));
       TexOutput(_T("\\par\\pard"));
       if (!winHelp)
         TexOutput(_T("\\par"));
-      wxSprintf(buf, _T("\\qc{\\fs%d\\b "), titleFont*2);
+      wxSnprintf(buf, sizeof(buf), _T("\\qc{\\fs%d\\b "), titleFont*2);
       TexOutput(buf);
       TraverseChildrenFromChunk(DocumentTitle);
       TexOutput(_T("}\\par\\pard\n"));
       TexOutput(buf);
       TraverseChildrenFromChunk(DocumentTitle);
       TexOutput(_T("}\\par\\pard\n"));
@@ -2637,7 +2648,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       {
         if (!winHelp)
           TexOutput(_T("\\par"));
       {
         if (!winHelp)
           TexOutput(_T("\\par"));
-        wxSprintf(buf, _T("\\par\\qc{\\fs%d "), authorFont*2);
+        wxSnprintf(buf, sizeof(buf), _T("\\par\\qc{\\fs%d "), authorFont*2);
         TexOutput(buf);
         TraverseChildrenFromChunk(DocumentAuthor);
         TexOutput(_T("}"));
         TexOutput(buf);
         TraverseChildrenFromChunk(DocumentAuthor);
         TexOutput(_T("}"));
@@ -2646,7 +2657,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (DocumentDate)
       {
         TexOutput(_T("\\par"));
       if (DocumentDate)
       {
         TexOutput(_T("\\par"));
-        wxSprintf(buf, _T("\\qc{\\fs%d "), authorFont*2);
+        wxSnprintf(buf, sizeof(buf), _T("\\qc{\\fs%d "), authorFont*2);
         TexOutput(buf);
         TraverseChildrenFromChunk(DocumentDate);
         TexOutput(_T("}\\par\\pard\n"));
         TexOutput(buf);
         TraverseChildrenFromChunk(DocumentDate);
         TexOutput(_T("}\\par\\pard\n"));
@@ -2730,7 +2741,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     if (start)
     {
 //      TexOutput(_T("{\\field{\\*\\fldinst SECTION \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
     if (start)
     {
 //      TexOutput(_T("{\\field{\\*\\fldinst SECTION \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
-      wxSprintf(buf, _T("%d"), chapterNo);
+      wxSnprintf(buf, sizeof(buf), _T("%d"), chapterNo);
       TexOutput(buf);
     }
     break;
       TexOutput(buf);
     }
     break;
@@ -2740,7 +2751,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     if (start)
     {
 //      TexOutput(_T("{\\field{\\*\\fldinst SECTION \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
     if (start)
     {
 //      TexOutput(_T("{\\field{\\*\\fldinst SECTION \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
-      wxSprintf(buf, _T("%d"), sectionNo);
+      wxSnprintf(buf, sizeof(buf), _T("%d"), sectionNo);
       TexOutput(buf);
     }
     break;
       TexOutput(buf);
     }
     break;
@@ -2766,8 +2777,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     if (start && useWord && !winHelp)
     {
       FakeCurrentSection(_T("Index"));
     if (start && useWord && !winHelp)
     {
       FakeCurrentSection(_T("Index"));
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
       TexOutput(_T("\\par{\\field{\\*\\fldinst INDEX \\\\h \"\\emdash A\\emdash \"\\\\c \"2\"}{\\fldrslt PRESS F9 TO REFORMAT INDEX}}\n"));
     }
     break;
       TexOutput(_T("\\par{\\field{\\*\\fldinst INDEX \\\\h \"\\emdash A\\emdash \"\\\\c \"2\"}{\\fldrslt PRESS F9 TO REFORMAT INDEX}}\n"));
     }
     break;
@@ -2776,13 +2787,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start && useWord && !winHelp)
     {
   {
     if (start && useWord && !winHelp)
     {
-      FakeCurrentSection(FiguresNameString, FALSE);
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      FakeCurrentSection(FiguresNameString, false);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
       wxChar buf[200];
       wxChar buf[200];
-      wxSprintf(buf, _T("{\\field\\fldedit{\\*\\fldinst  TOC \\\\c \"%s\" }{\\fldrslt PRESS F9 TO REFORMAT LIST OF FIGURES}}\n"),
+      wxSnprintf(buf, sizeof(buf), _T("{\\field\\fldedit{\\*\\fldinst  TOC \\\\c \"%s\" }{\\fldrslt PRESS F9 TO REFORMAT LIST OF FIGURES}}\n"),
                FigureNameString);
       TexOutput(buf);
     }
                FigureNameString);
       TexOutput(buf);
     }
@@ -2792,13 +2803,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start && useWord && !winHelp)
     {
   {
     if (start && useWord && !winHelp)
     {
-      FakeCurrentSection(TablesNameString, FALSE);
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      FakeCurrentSection(TablesNameString, false);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
       wxChar buf[200];
       wxChar buf[200];
-      wxSprintf(buf, _T("{\\field\\fldedit{\\*\\fldinst  TOC \\\\c \"%s\" }{\\fldrslt PRESS F9 TO REFORMAT LIST OF TABLES}}\n"),
+      wxSnprintf(buf, sizeof(buf), _T("{\\field\\fldedit{\\*\\fldinst  TOC \\\\c \"%s\" }{\\fldrslt PRESS F9 TO REFORMAT LIST OF TABLES}}\n"),
                 TablesNameString);
       TexOutput(buf);
     }
                 TablesNameString);
       TexOutput(buf);
     }
@@ -3153,14 +3164,14 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     break;
   case ltFIGURE:
   {
     break;
   case ltFIGURE:
   {
-    if (start) inFigure = TRUE;
-    else inFigure = FALSE;
+    if (start) inFigure = true;
+    else inFigure = false;
     break;
   }
   case ltTABLE:
   {
     break;
   }
   case ltTABLE:
   {
-    if (start) inTable = TRUE;
-    else inTable = FALSE;
+    if (start) inTable = true;
+    else inTable = false;
     break;
   }
   default:
     break;
   }
   default:
@@ -3195,7 +3206,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   {
     if (!start && (arg_no == 1))
       currentSection = GetArgChunk();
   {
     if (!start && (arg_no == 1))
       currentSection = GetArgChunk();
-    return FALSE;
+    return false;
   }
   case ltFUNC:
   {
   }
   case ltFUNC:
   {
@@ -3214,7 +3225,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       if (!suppressNameDecoration) TexOutput(_T("}"));
     }
     {
       if (!suppressNameDecoration) TexOutput(_T("}"));
     }
-    
+
     if (start && (arg_no == 3))
       TexOutput(_T("("));
     if (!start && (arg_no == 3))
     if (start && (arg_no == 3))
       TexOutput(_T("("));
     if (!start && (arg_no == 3))
@@ -3322,7 +3333,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     if (start)
     {
       wxChar *sec = NULL;
     if (start)
     {
       wxChar *sec = NULL;
-      
+
       wxChar *refName = GetArgData();
       if (winHelp || !useWord)
       {
       wxChar *refName = GetArgData();
       if (winHelp || !useWord)
       {
@@ -3344,7 +3355,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         wxFprintf(Chapters, _T("{\\field{\\*\\fldinst  REF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}"),
                 refName);
       }
         wxFprintf(Chapters, _T("{\\field{\\*\\fldinst  REF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}"),
                 refName);
       }
-      return FALSE;
+      return false;
     }
     break;
   }
     }
     break;
   }
@@ -3389,7 +3400,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         if (start)
           helpRefText = GetArgChunk();
 
         if (start)
           helpRefText = GetArgChunk();
 
-        return TRUE;
+        return true;
       }
       else if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional
       {
       }
       else if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional
       {
@@ -3428,7 +3439,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
                     {
                       if (!ignoreBadRefs)
                         TexOutput(_T("??"));
                     {
                       if (!ignoreBadRefs)
                         TexOutput(_T("??"));
-                      wxSprintf(buf, _T("Warning: unresolved reference '%s'"), refName);
+                      wxSnprintf(buf, sizeof(buf), _T("Warning: unresolved reference '%s'"), refName);
                       OnInform(buf);
                     }
                   }
                       OnInform(buf);
                     }
                   }
@@ -3442,7 +3453,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
               TexOutput(_T(")"));
           }
         }
               TexOutput(_T(")"));
           }
         }
-        return FALSE;
+        return false;
       }
     }
     break;
       }
     }
     break;
@@ -3451,21 +3462,21 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   {
     if (arg_no == 1)
     {
   {
     if (arg_no == 1)
     {
-      return TRUE;
+      return true;
     }
     else if (arg_no == 2)
     {
       if (start)
       {
     }
     else if (arg_no == 2)
     {
       if (start)
       {
-        inVerbatim = TRUE;
+        inVerbatim = true;
         TexOutput(_T(" ({\\f3 "));
       }
       else
       {
         TexOutput(_T("})"));
         TexOutput(_T(" ({\\f3 "));
       }
       else
       {
         TexOutput(_T("})"));
-        inVerbatim = FALSE;
+        inVerbatim = false;
       }
       }
-      return TRUE;
+      return true;
     }
     break;
   }
     }
     break;
   }
@@ -3504,9 +3515,9 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           TexOutput(_T("{\\i "));
         else
           TexOutput(_T("}"));
           TexOutput(_T("{\\i "));
         else
           TexOutput(_T("}"));
-        return TRUE;
+        return true;
       }
       }
-      else return FALSE;
+      else return false;
     }
     break;
   }
     }
     break;
   }
@@ -3518,9 +3529,9 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         contentsLineSection = copystring(GetArgData());
       else if (arg_no == 3)
         contentsLineValue = copystring(GetArgData());
         contentsLineSection = copystring(GetArgData());
       else if (arg_no == 3)
         contentsLineValue = copystring(GetArgData());
-      return FALSE;
+      return false;
     }
     }
-    else return FALSE;
+    else return false;
   }
   case ltIMAGE:
   case ltIMAGEL:
   }
   case ltIMAGE:
   case ltIMAGEL:
@@ -3529,11 +3540,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   case ltPSBOXTO:
   {
     if (arg_no == 3)
   case ltPSBOXTO:
   {
     if (arg_no == 3)
-      return FALSE;
-      
+      return false;
+
     static int imageWidth = 0;
     static int imageHeight = 0;
     static int imageWidth = 0;
     static int imageHeight = 0;
-    
+
     if (start && (arg_no == 1))
     {
       wxChar *imageDimensions = copystring(GetArgData());
     if (start && (arg_no == 1))
     {
       wxChar *imageDimensions = copystring(GetArgData());
@@ -3563,8 +3574,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
       if (imageDimensions)  // glt
           delete [] imageDimensions;
 
       if (imageDimensions)  // glt
           delete [] imageDimensions;
-      return FALSE;
-    }  
+      return false;
+    }
     else if (start && (arg_no == 2 ))
     {
       wxChar *filename = copystring(GetArgData());
     else if (start && (arg_no == 2 ))
     {
       wxChar *filename = copystring(GetArgData());
@@ -3634,7 +3645,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           TexOutput(_T("[No BMP or WMF for image file "));
           TexOutput(filename);
           TexOutput(_T("]"));
           TexOutput(_T("[No BMP or WMF for image file "));
           TexOutput(filename);
           TexOutput(_T("]"));
-          wxSprintf(buf, _T("Warning: could not find a BMP or WMF equivalent for %s."), filename);
+          wxSnprintf(buf, sizeof(buf), _T("Warning: could not find a BMP or WMF equivalent for %s."), filename);
           OnInform(buf);
         }
         if (filename)  // glt
           OnInform(buf);
         }
         if (filename)  // glt
@@ -3656,7 +3667,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
               OutputBitmapData(fd);
             else
             {
               OutputBitmapData(fd);
             else
             {
-              wxSprintf(buf, _T("Could not read bitmap %s.\nMay be in wrong format (needs RGB-encoded Windows BMP)."), f.c_str());
+              wxSnprintf(buf, sizeof(buf), _T("Could not read bitmap %s.\nMay be in wrong format (needs RGB-encoded Windows BMP)."), f.c_str());
               OnError(buf);
             }
             fclose(fd);
               OnError(buf);
             }
             fclose(fd);
@@ -3678,28 +3689,28 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
               }
               else
               {
               }
               else
               {
-                wxSprintf(buf, _T("Could not read metafile %s. Perhaps it's not a placeable metafile?"), f.c_str());
+                wxSnprintf(buf, sizeof(buf), _T("Could not read metafile %s. Perhaps it's not a placeable metafile?"), f.c_str());
                 OnError(buf);
               }
               fclose(fd);
             }
             else
             {
                 OnError(buf);
               }
               fclose(fd);
             }
             else
             {
-#endif            
+#endif
               TexOutput(_T("[No BMP or WMF for image file "));
               TexOutput(filename);
               TexOutput(_T("]"));
               TexOutput(_T("[No BMP or WMF for image file "));
               TexOutput(filename);
               TexOutput(_T("]"));
-              wxSprintf(buf, _T("Warning: could not find a BMP or WMF equivalent for %s."), filename);
+              wxSnprintf(buf, sizeof(buf), _T("Warning: could not find a BMP or WMF equivalent for %s."), filename);
               OnInform(buf);
 #ifdef __WXMSW__
             }
 #endif
         }
       }
               OnInform(buf);
 #ifdef __WXMSW__
             }
 #endif
         }
       }
-      return FALSE;
+      return false;
     }
     else
     }
     else
-      return FALSE;
+      return false;
   }
   case ltTABULAR:
   case ltSUPERTABULAR:
   }
   case ltTABULAR:
   case ltSUPERTABULAR:
@@ -3709,10 +3720,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       if (start)
       {
         currentRowNumber = 0;
       if (start)
       {
         currentRowNumber = 0;
-        inTabular = TRUE;
-        startRows = TRUE;
-        tableVerticalLineLeft = FALSE;
-        tableVerticalLineRight = FALSE;
+        inTabular = true;
+        startRows = true;
+        tableVerticalLineLeft = false;
+        tableVerticalLineRight = false;
         int currentWidth = 0;
 
         wxChar *alignString = copystring(GetArgData());
         int currentWidth = 0;
 
         wxChar *alignString = copystring(GetArgData());
@@ -3728,21 +3739,21 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           for (int i = 0; i < noColumns; i++)
           {
             currentWidth += TableData[i].width;
           for (int i = 0; i < noColumns; i++)
           {
             currentWidth += TableData[i].width;
-            wxSprintf(buf, _T("\\cellx%d"), currentWidth);
+            wxSnprintf(buf, sizeof(buf), _T("\\cellx%d"), currentWidth);
             TexOutput(buf);
           }
           TexOutput(_T("\\pard\\intbl\n"));
         }
         delete[] alignString;
 
             TexOutput(buf);
           }
           TexOutput(_T("\\pard\\intbl\n"));
         }
         delete[] alignString;
 
-        return FALSE;
+        return false;
       }
     }
     else if (arg_no == 2 && !start)
     {
       TexOutput(_T("\\pard\n"));
       WriteEnvironmentStyles();
       }
     }
     else if (arg_no == 2 && !start)
     {
       TexOutput(_T("\\pard\n"));
       WriteEnvironmentStyles();
-      inTabular = FALSE;
+      inTabular = false;
     }
     break;
   }
     }
     break;
   }
@@ -3760,8 +3771,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       forbidParindent --;
       PopEnvironmentStyle();
     {
       forbidParindent --;
       PopEnvironmentStyle();
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
     }
     break;
   }
     }
     break;
   }
@@ -3775,8 +3786,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
     {
       PopEnvironmentStyle();
     else
     {
       PopEnvironmentStyle();
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
     }
     break;
   }
     }
     break;
   }
@@ -3788,15 +3799,15 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   {
     if (start)
     {
   {
     if (start)
     {
-      wxSprintf(buf, _T("\\sa200\\box\\trgaph108%s\n"), ((macroId == ltNORMALBOXD) ? _T("\\brdrdb") : _T("\\brdrs")));
+      wxSnprintf(buf, sizeof(buf), _T("\\sa200\\box\\trgaph108%s\n"), ((macroId == ltNORMALBOXD) ? _T("\\brdrdb") : _T("\\brdrs")));
       TexOutput(buf);
       PushEnvironmentStyle(buf);
     }
     else
     {
       PopEnvironmentStyle();
       TexOutput(buf);
       PushEnvironmentStyle(buf);
     }
     else
     {
       PopEnvironmentStyle();
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
     }
     break;
   }
     }
     break;
   }
@@ -3811,10 +3822,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         SetFontSizes(11);
       else if (wxStrcmp(data, _T("12")) == 0)
         SetFontSizes(12);
         SetFontSizes(11);
       else if (wxStrcmp(data, _T("12")) == 0)
         SetFontSizes(12);
-      wxSprintf(buf, _T("\\fs%d\n"), normalFont*2);
+      wxSnprintf(buf, sizeof(buf), _T("\\fs%d\n"), normalFont*2);
       TexOutput(buf);
       TexOutput(buf);
       TexOutput(buf);
       TexOutput(buf);
-      return FALSE;
+      return false;
     }
     break;
   }
     }
     break;
   }
@@ -3830,7 +3841,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       else if (wxStrcmp(data, _T("Times")) == 0)
         TexOutput(_T("\\f0\n"));
 
       else if (wxStrcmp(data, _T("Times")) == 0)
         TexOutput(_T("\\f0\n"));
 
-      return FALSE;
+      return false;
     }
     break;
   }
     }
     break;
   }
@@ -3842,10 +3853,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       ParIndent = ParseUnitArgument(data);
       if (ParIndent == 0 || forbidParindent == 0)
       {
       ParIndent = ParseUnitArgument(data);
       if (ParIndent == 0 || forbidParindent == 0)
       {
-        wxSprintf(buf, _T("\\fi%d\n"), ParIndent*20);
+        wxSnprintf(buf, sizeof(buf), _T("\\fi%d\n"), ParIndent*20);
         TexOutput(buf);
       }
         TexOutput(buf);
       }
-      return FALSE;
+      return false;
     }
     break;
   }
     }
     break;
   }
@@ -3854,7 +3865,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     if (start && IsArgOptional())
     {
       descriptionItemArg = GetArgChunk();
     if (start && IsArgOptional())
     {
       descriptionItemArg = GetArgChunk();
-      return FALSE;
+      return false;
     }
     break;
   }
     }
     break;
   }
@@ -3882,7 +3893,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         break;
       }
     }
         break;
       }
     }
-    return TRUE;
+    return true;
   }
   /*
    * Accents
   }
   /*
    * Accents
@@ -3932,7 +3943,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_ACUTE:
   {
   }
   case ltACCENT_ACUTE:
   {
@@ -3984,7 +3995,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_CARET:
   {
   }
   case ltACCENT_CARET:
   {
@@ -4030,7 +4041,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_TILDE:
   {
   }
   case ltACCENT_TILDE:
   {
@@ -4067,7 +4078,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_UMLAUT:
   {
   }
   case ltACCENT_UMLAUT:
   {
@@ -4122,7 +4133,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_DOT:
   {
   }
   case ltACCENT_DOT:
   {
@@ -4144,7 +4155,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_CADILLA:
   {
   }
   case ltACCENT_CADILLA:
   {
@@ -4166,7 +4177,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltFOOTNOTE:
   {
   }
   case ltFOOTNOTE:
   {
@@ -4181,7 +4192,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           OnInform(_T("Consider using \\footnotepopup instead of \\footnote."));
           footnoteCount ++;
           wxChar footBuf[20];
           OnInform(_T("Consider using \\footnotepopup instead of \\footnote."));
           footnoteCount ++;
           wxChar footBuf[20];
-          wxSprintf(footBuf, _T("(%d)"), footnoteCount);
+          wxSnprintf(footBuf, sizeof(footBuf), _T("(%d)"), footnoteCount);
 
           TexOutput(_T(" {\\ul "));
           TexOutput(footBuf);
 
           TexOutput(_T(" {\\ul "));
           TexOutput(footBuf);
@@ -4204,26 +4215,26 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           wxFprintf(Popups, _T("+{\\footnote %s}\n"), GetBrowseString());
           savedOutput = CurrentOutput1;
           SetCurrentOutput(Popups);
           wxFprintf(Popups, _T("+{\\footnote %s}\n"), GetBrowseString());
           savedOutput = CurrentOutput1;
           SetCurrentOutput(Popups);
-       }
-       else
-       {
+      }
+      else
+      {
           SetCurrentOutput(savedOutput);
           SetCurrentOutput(savedOutput);
-       }
-       return TRUE;
       }
       }
-      return TRUE;
+        return true;
+      }
+      return true;
     }
     else
     {
       if (start)
       {
     }
     else
     {
       if (start)
       {
-        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), TRUE);
+        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), true);
       }
       else
       {
       }
       else
       {
-        TexOutput(_T("}}"), TRUE);
+        TexOutput(_T("}}"), true);
       }
       }
-      return TRUE;
+      return true;
     }
   }
   case ltFOOTNOTEPOPUP:
     }
   }
   case ltFOOTNOTEPOPUP:
@@ -4237,9 +4248,12 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         if (start)
         {
           TexOutput(_T("{\\ul "));
         if (start)
         {
           TexOutput(_T("{\\ul "));
-       }
-       else TexOutput(_T("}"));
-       return TRUE;
+      }
+        else
+        {
+          TexOutput(_T("}"));
+        }
+        return true;
       }
       else if (arg_no == 2)
       {
       }
       else if (arg_no == 2)
       {
@@ -4268,31 +4282,31 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         {
           SetCurrentOutput(savedOutput);
         }
         {
           SetCurrentOutput(savedOutput);
         }
-        return TRUE;
+        return true;
       }
     }
     else
     {
       if (arg_no == 1)
       }
     }
     else
     {
       if (arg_no == 1)
-        return TRUE;
+        return true;
       if (start)
       {
       if (start)
       {
-        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), TRUE);
+        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), true);
       }
       else
       {
       }
       else
       {
-        TexOutput(_T("}}"), TRUE);
+        TexOutput(_T("}}"), true);
       }
       }
-      return TRUE;
+      return true;
     }
     break;
   }
   case ltFANCYPLAIN:
   {
     if (start && (arg_no == 1))
     }
     break;
   }
   case ltFANCYPLAIN:
   {
     if (start && (arg_no == 1))
-      return FALSE;
+      return false;
     else
     else
-      return TRUE;
+      return true;
   }
   case ltSETHEADER:
   {
   }
   case ltSETHEADER:
   {
@@ -4301,7 +4315,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
       forbidResetPar --;
 
     else
       forbidResetPar --;
 
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     {
       switch (arg_no)
     if (start)
     {
       switch (arg_no)
@@ -4341,7 +4355,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           break;
       }
     }
           break;
       }
     }
-    return FALSE;
+    return false;
   }
   case ltSETFOOTER:
   {
   }
   case ltSETFOOTER:
   {
@@ -4350,7 +4364,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
       forbidResetPar --;
 
     else
       forbidResetPar --;
 
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     {
       switch (arg_no)
     if (start)
     {
       switch (arg_no)
@@ -4390,11 +4404,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           break;
       }
     }
           break;
       }
     }
-    return FALSE;
+    return false;
   }
   case ltMARKRIGHT:
   {
   }
   case ltMARKRIGHT:
   {
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     // Fake a SetHeader command
     if (start)
     {
     // Fake a SetHeader command
     if (start)
     {
@@ -4409,11 +4423,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     RTFOnArgument(ltSETHEADER, 4, start);
     if (!start)
       OutputRTFHeaderCommands();
     RTFOnArgument(ltSETHEADER, 4, start);
     if (!start)
       OutputRTFHeaderCommands();
-    return FALSE;
+    return false;
   }
   case ltMARKBOTH:
   {
   }
   case ltMARKBOTH:
   {
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     // Fake a SetHeader command
     switch (arg_no)
     {
     // Fake a SetHeader command
     switch (arg_no)
     {
@@ -4436,7 +4450,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         RTFOnArgument(ltSETHEADER, 4, start);
         if (!start)
           OutputRTFHeaderCommands();
         RTFOnArgument(ltSETHEADER, 4, start);
         if (!start)
           OutputRTFHeaderCommands();
-        return FALSE;
+        return false;
       }
     }
     break;
       }
     }
     break;
@@ -4448,7 +4462,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
       forbidResetPar --;
 
     else
       forbidResetPar --;
 
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     {
       TexOutput(_T("\\pgnrestart"));
     if (start)
     {
       TexOutput(_T("\\pgnrestart"));
@@ -4456,16 +4470,16 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       if (currentNumberStyle) delete[] currentNumberStyle;
       currentNumberStyle = copystring(data);
       OutputNumberStyle(currentNumberStyle);
       if (currentNumberStyle) delete[] currentNumberStyle;
       currentNumberStyle = copystring(data);
       OutputNumberStyle(currentNumberStyle);
-      
+
       TexOutput(_T("\n"));
     }
       TexOutput(_T("\n"));
     }
-    return FALSE;
+    return false;
   }
   case ltTWOCOLUMN:
   {
   }
   case ltTWOCOLUMN:
   {
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     if (start)
-      return TRUE;
+      return true;
     break;
   }
   case ltITEMSEP:
     break;
   }
   case ltITEMSEP:
@@ -4474,13 +4488,13 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       wxChar *val = GetArgData();
       currentItemSep = ParseUnitArgument(val);
     {
       wxChar *val = GetArgData();
       currentItemSep = ParseUnitArgument(val);
-      return FALSE;
+      return false;
     }
     break;
   }
   case ltEVENSIDEMARGIN:
   {
     }
     break;
   }
   case ltEVENSIDEMARGIN:
   {
-    return FALSE;
+    return false;
   }
   case ltODDSIDEMARGIN:
   {
   }
   case ltODDSIDEMARGIN:
   {
@@ -4491,12 +4505,12 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       // Add an inch since in LaTeX it's specified minus an inch
       twips += 1440;
       CurrentLeftMarginOdd = twips;
       // Add an inch since in LaTeX it's specified minus an inch
       twips += 1440;
       CurrentLeftMarginOdd = twips;
-      wxSprintf(buf, _T("\\margl%d\n"), twips);
+      wxSnprintf(buf, sizeof(buf), _T("\\margl%d\n"), twips);
       TexOutput(buf);
 
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
     }
       TexOutput(buf);
 
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPARWIDTH:
   {
   }
   case ltMARGINPARWIDTH:
   {
@@ -4506,7 +4520,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       int twips = (int)(20*ParseUnitArgument(val));
       CurrentMarginParWidth = twips;
     }
       int twips = (int)(20*ParseUnitArgument(val));
       CurrentMarginParWidth = twips;
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPARSEP:
   {
   }
   case ltMARGINPARSEP:
   {
@@ -4517,7 +4531,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       CurrentMarginParSep = twips;
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
     }
       CurrentMarginParSep = twips;
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
     }
-    return FALSE;
+    return false;
   }
   case ltTEXTWIDTH:
   {
   }
   case ltTEXTWIDTH:
   {
@@ -4531,10 +4545,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       CurrentRightMarginOdd = PageWidth - CurrentTextWidth - CurrentLeftMarginOdd;
       CurrentRightMarginEven = PageWidth - CurrentTextWidth - CurrentLeftMarginEven;
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
       CurrentRightMarginOdd = PageWidth - CurrentTextWidth - CurrentLeftMarginOdd;
       CurrentRightMarginEven = PageWidth - CurrentTextWidth - CurrentLeftMarginEven;
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
-      wxSprintf(buf, _T("\\margr%d\n"), CurrentRightMarginOdd);
+      wxSnprintf(buf, sizeof(buf), _T("\\margr%d\n"), CurrentRightMarginOdd);
       TexOutput(buf);
     }
       TexOutput(buf);
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPAR:
   case ltMARGINPARODD:
   }
   case ltMARGINPAR:
   case ltMARGINPARODD:
@@ -4548,10 +4562,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       }
       else
       {
       }
       else
       {
-        wxSprintf(buf, _T("\\phpg\\posx%d\\absw%d\n"), CurrentMarginParX, CurrentMarginParWidth);
+        wxSnprintf(buf, sizeof(buf), _T("\\phpg\\posx%d\\absw%d\n"), CurrentMarginParX, CurrentMarginParWidth);
         TexOutput(buf);
       }
         TexOutput(buf);
       }
-      return TRUE;
+      return true;
     }
     else
     {
     }
     else
     {
@@ -4565,7 +4579,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         TexOutput(_T("\\par\\pard\n"));
       issuedNewParagraph = 1;
     }
         TexOutput(_T("\\par\\pard\n"));
       issuedNewParagraph = 1;
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPAREVEN:
   {
   }
   case ltMARGINPAREVEN:
   {
@@ -4584,16 +4598,16 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           // mirror mode, on an even (left-hand) page.
           int x = PageWidth - CurrentRightMarginOdd - CurrentMarginParWidth - CurrentMarginParSep
                     - CurrentTextWidth + GutterWidth;
           // mirror mode, on an even (left-hand) page.
           int x = PageWidth - CurrentRightMarginOdd - CurrentMarginParWidth - CurrentMarginParSep
                     - CurrentTextWidth + GutterWidth;
-          wxSprintf(buf, _T("\\phpg\\posx%d\\absw%d\n"), x, CurrentMarginParWidth);
+          wxSnprintf(buf, sizeof(buf), _T("\\phpg\\posx%d\\absw%d\n"), x, CurrentMarginParWidth);
           TexOutput(buf);
         }
         else
         {
           TexOutput(buf);
         }
         else
         {
-          wxSprintf(buf, _T("\\phpg\\posx%d\\absw%d\n"), CurrentMarginParX, CurrentMarginParWidth);
+          wxSnprintf(buf, sizeof(buf), _T("\\phpg\\posx%d\\absw%d\n"), CurrentMarginParX, CurrentMarginParWidth);
           TexOutput(buf);
         }
       }
           TexOutput(buf);
         }
       }
-      return TRUE;
+      return true;
     }
     else
     {
     }
     else
     {
@@ -4607,7 +4621,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         issuedNewParagraph = 1;
       TexOutput(_T("\\par\\pard\n"));
     }
         issuedNewParagraph = 1;
       TexOutput(_T("\\par\\pard\n"));
     }
-    return FALSE;
+    return false;
   }
   case ltTWOCOLWIDTHA:
   {
   }
   case ltTWOCOLWIDTHA:
   {
@@ -4617,7 +4631,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       int twips = (int)(20*ParseUnitArgument(val));
       TwoColWidthA = twips;
     }
       int twips = (int)(20*ParseUnitArgument(val));
       TwoColWidthA = twips;
     }
-    return FALSE;
+    return false;
   }
   case ltTWOCOLWIDTHB:
   {
   }
   case ltTWOCOLWIDTHB:
   {
@@ -4627,7 +4641,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       int twips = (int)(20*ParseUnitArgument(val));
       TwoColWidthB = twips;
     }
       int twips = (int)(20*ParseUnitArgument(val));
       TwoColWidthB = twips;
     }
-    return FALSE;
+    return false;
   }
   case ltROW:
   case ltRULEDROW:
   }
   case ltROW:
   case ltRULEDROW:
@@ -4667,8 +4681,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
         if (TableData[i].leftBorder)
           TexOutput(_T("\\clbrdrl\\brdrs\\brdrw15"));
 
         if (TableData[i].leftBorder)
           TexOutput(_T("\\clbrdrl\\brdrs\\brdrw15"));
-          
-        wxSprintf(buf, _T("\\cellx%d"), currentWidth);
+
+        wxSnprintf(buf, sizeof(buf), _T("\\cellx%d"), currentWidth);
         TexOutput(buf);
       }
       TexOutput(_T("\\pard\\intbl\n"));
         TexOutput(buf);
       }
       TexOutput(_T("\\pard\\intbl\n"));
@@ -4676,7 +4690,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       ruleTop = 0;
       ruleBottom = 0;
       currentRowNumber ++;
       ruleTop = 0;
       ruleBottom = 0;
       currentRowNumber ++;
-      return TRUE;
+      return true;
     }
     else
     {
     }
     else
     {
@@ -4695,15 +4709,15 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         case 1:
         {
           noMultiColumns = wxAtoi(GetArgData());
         case 1:
         {
           noMultiColumns = wxAtoi(GetArgData());
-          return FALSE;
+          return false;
         }
         case 2:
         {
         }
         case 2:
         {
-          return FALSE;
+          return false;
         }
         case 3:
         {
         }
         case 3:
         {
-          return TRUE;
+          return true;
         }
       }
     }
         }
       }
     }
@@ -4733,11 +4747,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
       ItemizeStruc *struc = new ItemizeStruc(LATEX_INDENT, indentSize);
       itemizeStack.Insert(struc);
 
       ItemizeStruc *struc = new ItemizeStruc(LATEX_INDENT, indentSize);
       itemizeStack.Insert(struc);
-      
-      wxSprintf(buf, _T("\\tx%d\\li%d\\sa200 "), indentSize, indentSize);
+
+      wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\sa200 "), indentSize, indentSize);
       PushEnvironmentStyle(buf);
       TexOutput(buf);
       PushEnvironmentStyle(buf);
       TexOutput(buf);
-      return FALSE;
+      return false;
     }
     if (!start && (arg_no == 2))
     {
     }
     if (!start && (arg_no == 2))
     {
@@ -4755,7 +4769,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         WriteEnvironmentStyles();
       }
     }
         WriteEnvironmentStyles();
       }
     }
-    return TRUE;
+    return true;
   }
 /*
   case ltSIZEDBOX:
   }
 /*
   case ltSIZEDBOX:
@@ -4776,12 +4790,12 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
       ItemizeStruc *struc = new ItemizeStruc(LATEX_INDENT, indentSize);
       itemizeStack.Insert(struc);
 
       ItemizeStruc *struc = new ItemizeStruc(LATEX_INDENT, indentSize);
       itemizeStack.Insert(struc);
-      
-      wxSprintf(buf, _T("\\tx%d\\li%d\\lr%d\\sa200\\box%s "), indentSize, indentSize, indentSizeRight,
+
+      wxSnprintf(buf, sizeof(buf), _T("\\tx%d\\li%d\\lr%d\\sa200\\box%s "), indentSize, indentSize, indentSizeRight,
         ((macroId == ltCENTEREDBOX) ? _T("\\brdrs") : _T("\\brdrdb")));
       PushEnvironmentStyle(buf);
       TexOutput(buf);
         ((macroId == ltCENTEREDBOX) ? _T("\\brdrs") : _T("\\brdrdb")));
       PushEnvironmentStyle(buf);
       TexOutput(buf);
-      return FALSE;
+      return false;
     }
     if (!start && (arg_no == 2))
     {
     }
     if (!start && (arg_no == 2))
     {
@@ -4799,7 +4813,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         WriteEnvironmentStyles();
       }
     }
         WriteEnvironmentStyles();
       }
     }
-    return TRUE;
+    return true;
     break;
   }
 */
     break;
   }
 */
@@ -4818,7 +4832,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       }
       TexOutput(_T("\n"));
     }
       }
       TexOutput(_T("\n"));
     }
-    return FALSE;
+    return false;
   }
   case ltSETHOTSPOTCOLOUR:
   case ltSETHOTSPOTCOLOR:
   }
   case ltSETHOTSPOTCOLOUR:
   case ltSETHOTSPOTCOLOR:
@@ -4827,11 +4841,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       wxChar *text = GetArgData();
       if (wxStrcmp(text, _T("yes")) == 0 || wxStrcmp(text, _T("on")) == 0 || wxStrcmp(text, _T("ok")) == 0)
     {
       wxChar *text = GetArgData();
       if (wxStrcmp(text, _T("yes")) == 0 || wxStrcmp(text, _T("on")) == 0 || wxStrcmp(text, _T("ok")) == 0)
-        hotSpotColour = TRUE;
+        hotSpotColour = true;
       else
       else
-        hotSpotColour = FALSE;
+        hotSpotColour = false;
     }
     }
-    return FALSE;
+    return false;
   }
   case ltSETTRANSPARENCY:
   {
   }
   case ltSETTRANSPARENCY:
   {
@@ -4839,11 +4853,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       wxChar *text = GetArgData();
       if (wxStrcmp(text, _T("yes")) == 0 || wxStrcmp(text, _T("on")) == 0 || wxStrcmp(text, _T("ok")) == 0)
     {
       wxChar *text = GetArgData();
       if (wxStrcmp(text, _T("yes")) == 0 || wxStrcmp(text, _T("on")) == 0 || wxStrcmp(text, _T("ok")) == 0)
-        bitmapTransparency = TRUE;
+        bitmapTransparency = true;
       else
       else
-        bitmapTransparency = FALSE;
+        bitmapTransparency = false;
     }
     }
-    return FALSE;
+    return false;
   }
   case ltSETHOTSPOTUNDERLINE:
   {
   }
   case ltSETHOTSPOTUNDERLINE:
   {
@@ -4851,11 +4865,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       wxChar *text = GetArgData();
       if (wxStrcmp(text, _T("yes")) == 0 || wxStrcmp(text, _T("on")) == 0 || wxStrcmp(text, _T("ok")) == 0)
     {
       wxChar *text = GetArgData();
       if (wxStrcmp(text, _T("yes")) == 0 || wxStrcmp(text, _T("on")) == 0 || wxStrcmp(text, _T("ok")) == 0)
-        hotSpotUnderline = TRUE;
+        hotSpotUnderline = true;
       else
       else
-        hotSpotUnderline = FALSE;
+        hotSpotUnderline = false;
     }
     }
-    return FALSE;
+    return false;
   }
   case ltBIBITEM:
   {
   }
   case ltBIBITEM:
   {
@@ -4866,19 +4880,19 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       if (ref)
       {
         if (ref->sectionNumber) delete[] ref->sectionNumber;
       if (ref)
       {
         if (ref->sectionNumber) delete[] ref->sectionNumber;
-        wxSprintf(buf, _T("[%d]"), citeCount);
+        wxSnprintf(buf, sizeof(buf), _T("[%d]"), citeCount);
         ref->sectionNumber = copystring(buf);
       }
 
       TexOutput(_T("\\li260\\fi-260 ")); // Indent from 2nd line
         ref->sectionNumber = copystring(buf);
       }
 
       TexOutput(_T("\\li260\\fi-260 ")); // Indent from 2nd line
-      wxSprintf(buf, _T("{\\b [%d]} "), citeCount);
+      wxSnprintf(buf, sizeof(buf), _T("{\\b [%d]} "), citeCount);
       TexOutput(buf);
       citeCount ++;
       TexOutput(buf);
       citeCount ++;
-      return FALSE;
+      return false;
     }
     if (arg_no == 2 && !start)
       TexOutput(_T("\\par\\pard\\par\n\n"));
     }
     if (arg_no == 2 && !start)
       TexOutput(_T("\\par\\pard\\par\n\n"));
-    return TRUE;
+    return true;
   }
   case ltTHEBIBLIOGRAPHY:
   {
   }
   case ltTHEBIBLIOGRAPHY:
   {
@@ -4900,7 +4914,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           OutputRTFHeaderCommands();
           OutputRTFFooterCommands();
         }
           OutputRTFHeaderCommands();
           OutputRTFFooterCommands();
         }
-        
+
         // Need to reset the current numbering style, or RTF forgets it.
         OutputNumberStyle(currentNumberStyle);
         SetCurrentOutput(Contents);
         // Need to reset the current numbering style, or RTF forgets it.
         OutputNumberStyle(currentNumberStyle);
         SetCurrentOutput(Contents);
@@ -4913,7 +4927,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       else
         wxFprintf(Contents, _T("\\par\n\\pard{\\b %s}"), ReferencesNameString);
 
       else
         wxFprintf(Contents, _T("\\par\n\\pard{\\b %s}"), ReferencesNameString);
 
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Chapters, _T("\n${\\footnote %s}"), ReferencesNameString);
 
       if (winHelp)
         wxFprintf(Chapters, _T("\n${\\footnote %s}"), ReferencesNameString);
@@ -4921,7 +4935,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       wxChar *topicName = _T("bibliography");
 
       if (winHelp)
       wxChar *topicName = _T("bibliography");
 
       if (winHelp)
+      {
         wxFprintf(Contents, _T("{\\v %s}\\par\\pard\n"), topicName);
         wxFprintf(Contents, _T("{\\v %s}\\par\\pard\n"), topicName);
+        WriteEnvironmentStyles();
+      }
       else
         wxFprintf(Contents, _T("\\par\\par\\pard\n"));
 
       else
         wxFprintf(Contents, _T("\\par\\par\\pard\n"));
 
@@ -4937,7 +4954,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
                wxFileNameFromPath(FileRoot), "Contents");
         }
       }
                wxFileNameFromPath(FileRoot), "Contents");
         }
       }
-      
+
       SetCurrentOutput(Chapters);
       wxChar *styleCommand = _T("");
       if (!winHelp && useHeadingStyles)
       SetCurrentOutput(Chapters);
       wxChar *styleCommand = _T("");
       if (!winHelp && useHeadingStyles)
@@ -4945,9 +4962,9 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       wxFprintf(Chapters, _T("\\pard{%s"), (winHelp ? _T("\\keepn\\sa140\\sb140") : styleCommand));
       WriteHeadingStyle(Chapters, 1);  wxFprintf(Chapters, _T(" References\\par\\pard}\n"));
 
       wxFprintf(Chapters, _T("\\pard{%s"), (winHelp ? _T("\\keepn\\sa140\\sb140") : styleCommand));
       WriteHeadingStyle(Chapters, 1);  wxFprintf(Chapters, _T(" References\\par\\pard}\n"));
 
-      return FALSE;
+      return false;
     }
     }
-    return TRUE;
+    return true;
   }
   case ltINDEX:
   {
   }
   case ltINDEX:
   {
@@ -4974,7 +4991,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       }
       else GenerateIndexEntry(buf);
     }
       }
       else GenerateIndexEntry(buf);
     }
-    return FALSE;
+    return false;
   }
   case ltFCOL:
   case ltBCOL:
   }
   case ltFCOL:
   case ltBCOL:
@@ -4989,19 +5006,19 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           int pos = FindColourPosition(name);
           if (pos > -1)
           {
           int pos = FindColourPosition(name);
           if (pos > -1)
           {
-            wxSprintf(buf, _T("{%s%d "), ((macroId == ltFCOL) ? _T("\\cf") : _T("\\cb")), pos);
+            wxSnprintf(buf, sizeof(buf), _T("{%s%d "), ((macroId == ltFCOL) ? _T("\\cf") : _T("\\cb")), pos);
             TexOutput(buf);
           }
             TexOutput(buf);
           }
-                 else
-                 {
-                       wxSprintf(buf, _T("Could not find colour name %s"), name);
+          else
+          {
+            wxSnprintf(buf, sizeof(buf), _T("Could not find colour name %s"), name);
             OnError(buf);
             OnError(buf);
-                 }
+          }
           break;
         }
         case 2:
         {
           break;
         }
         case 2:
         {
-          return TRUE;
+          return true;
         }
         default:
           break;
         }
         default:
           break;
@@ -5011,7 +5028,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       if (arg_no == 2) TexOutput(_T("}"));
     }
     {
       if (arg_no == 2) TexOutput(_T("}"));
     }
-    return FALSE;
+    return false;
   }
   case ltLABEL:
   {
   }
   case ltLABEL:
   {
@@ -5031,7 +5048,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           wxFprintf(Chapters, _T("{\\bkmkstart %s}{\\bkmkend %s}"), s,s);
       }
     }
           wxFprintf(Chapters, _T("{\\bkmkstart %s}{\\bkmkend %s}"), s,s);
       }
     }
-    return FALSE;
+    return false;
   }
   case ltPAGEREF:
   {
   }
   case ltPAGEREF:
   {
@@ -5041,14 +5058,14 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       wxFprintf(Chapters, _T("{\\field{\\*\\fldinst  PAGEREF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}"),
               s);
     }
       wxFprintf(Chapters, _T("{\\field{\\*\\fldinst  PAGEREF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}"),
               s);
     }
-    return FALSE;
+    return false;
   }
   case ltPOPREFONLY:
   {
     if (start)
   }
   case ltPOPREFONLY:
   {
     if (start)
-      inPopRefSection = TRUE;
+      inPopRefSection = true;
     else
     else
-      inPopRefSection = FALSE;
+      inPopRefSection = false;
     break;
   }
   case ltINSERTATLEVEL:
     break;
   }
   case ltINSERTATLEVEL:
@@ -5056,7 +5073,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     // This macro allows you to insert text at a different level
     // from the current level, e.g. into the Sections from within a subsubsection.
     if (!winHelp & useWord)
     // This macro allows you to insert text at a different level
     // from the current level, e.g. into the Sections from within a subsubsection.
     if (!winHelp & useWord)
-        return FALSE;
+        return false;
     static int currentLevelNo = 1;
     static FILE* oldLevelFile = Chapters;
     if (start)
     static int currentLevelNo = 1;
     static FILE* oldLevelFile = Chapters;
     if (start)
@@ -5101,16 +5118,16 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           }
           if (outputFile)
             CurrentOutput1 = outputFile;
           }
           if (outputFile)
             CurrentOutput1 = outputFile;
-          return FALSE;
+          return false;
         }
         case 2:
         {
         }
         case 2:
         {
-          return TRUE;
+          return true;
         }
         default:
           break;
       }
         }
         default:
           break;
       }
-      return TRUE;
+      return true;
     }
     else
     {
     }
     else
     {
@@ -5118,19 +5135,19 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         {
             CurrentOutput1 = oldLevelFile;
         }
         {
             CurrentOutput1 = oldLevelFile;
         }
-        return TRUE;
+        return true;
     }
   }
   default:
     return DefaultOnArgument(macroId, arg_no, start);
   }
     }
   }
   default:
     return DefaultOnArgument(macroId, arg_no, start);
   }
-  return TRUE;
+  return true;
 }
 
 bool RTFGo(void)
 {
   if (stopRunning)
 }
 
 bool RTFGo(void)
 {
   if (stopRunning)
-      return FALSE;
+      return false;
 
   // Reset variables
   indentLevel = 0;
 
   // Reset variables
   indentLevel = 0;
@@ -5138,18 +5155,18 @@ bool RTFGo(void)
   contentsLineSection = NULL;
   contentsLineValue = NULL;
   descriptionItemArg = NULL;
   contentsLineSection = NULL;
   contentsLineValue = NULL;
   descriptionItemArg = NULL;
-  inTabular = FALSE;
-  inTable = FALSE;
-  inFigure = FALSE;
-  startRows = FALSE;
-  tableVerticalLineLeft = FALSE;
-  tableVerticalLineRight = FALSE;
+  inTabular = false;
+  inTable = false;
+  inFigure = false;
+  startRows = false;
+  tableVerticalLineLeft = false;
+  tableVerticalLineRight = false;
   noColumns = 0;
   noColumns = 0;
-  startedSections = FALSE;
-  inVerbatim = FALSE;
+  startedSections = false;
+  inVerbatim = false;
   browseId = 0;
   browseId = 0;
-  
-  if (InputFile && OutputFile)
+
+  if (!InputFile.empty() && !OutputFile.empty())
   {
     // Do some RTF-specific transformations on all the strings,
     // recursively
   {
     // Do some RTF-specific transformations on all the strings,
     // recursively
@@ -5173,13 +5190,13 @@ bool RTFGo(void)
       if (!Sections || !Subsections || !Subsubsections || !Popups || (winHelpContents && !WinHelpContentsFile))
       {
         OnError(_T("Ouch! Could not open temporary file(s) for writing."));
       if (!Sections || !Subsections || !Subsubsections || !Popups || (winHelpContents && !WinHelpContentsFile))
       {
         OnError(_T("Ouch! Could not open temporary file(s) for writing."));
-        return FALSE;
+        return false;
       }
     }
     if (!Contents || !Chapters)
     {
       OnError(_T("Ouch! Could not open temporary file(s) for writing."));
       }
     }
     if (!Contents || !Chapters)
     {
       OnError(_T("Ouch! Could not open temporary file(s) for writing."));
-      return FALSE;
+      return false;
     }
 
     if (winHelp)
     }
 
     if (winHelp)
@@ -5195,7 +5212,7 @@ bool RTFGo(void)
       wxFprintf(Chapters, _T("\\titlepg\n"));
       wxFprintf(Contents, _T("\\par\\pard\\pgnrestart\\sect\\titlepg"));
     }
       wxFprintf(Chapters, _T("\\titlepg\n"));
       wxFprintf(Contents, _T("\\par\\pard\\pgnrestart\\sect\\titlepg"));
     }
-    
+
     // In WinHelp, Contents title takes font of title.
     // In linear RTF, same as chapter headings.
     wxFprintf(Contents, _T("{\\b\\fs%d %s}\\par\\par\\pard\n\n"),
     // In WinHelp, Contents title takes font of title.
     // In linear RTF, same as chapter headings.
     wxFprintf(Contents, _T("{\\b\\fs%d %s}\\par\\par\\pard\n\n"),
@@ -5203,13 +5220,13 @@ bool RTFGo(void)
 
     // By default, Swiss, 11 point.
     wxFprintf(Chapters, _T("\\f2\\fs22\n"));
 
     // By default, Swiss, 11 point.
     wxFprintf(Chapters, _T("\\f2\\fs22\n"));
-    
+
     PushEnvironmentStyle(_T("\\f2\\fs22\\sa200"));
 
     SetCurrentOutput(Chapters);
 
     if (stopRunning)
     PushEnvironmentStyle(_T("\\f2\\fs22\\sa200"));
 
     SetCurrentOutput(Chapters);
 
     if (stopRunning)
-        return FALSE;
+        return false;
 
     OnInform(_T("Converting..."));
 
 
     OnInform(_T("Converting..."));
 
@@ -5219,14 +5236,14 @@ bool RTFGo(void)
     if (!Header)
     {
       OnError(_T("Ouch! Could not open temporary file header.rtf for writing."));
     if (!Header)
     {
       OnError(_T("Ouch! Could not open temporary file header.rtf for writing."));
-      return FALSE;
+      return false;
     }
     WriteRTFHeader(Header);
     fclose(Header);
 
     PopEnvironmentStyle();
     }
     WriteRTFHeader(Header);
     fclose(Header);
 
     PopEnvironmentStyle();
-    
-    Tex2RTFYield(TRUE);
+
+    Tex2RTFYield(true);
     if (winHelp)
     {
 //      wxFprintf(Contents, _T("\\page\n"));
     if (winHelp)
     {
 //      wxFprintf(Contents, _T("\\page\n"));
@@ -5257,15 +5274,15 @@ bool RTFGo(void)
     if (winHelp)
     {
       wxConcatFiles(_T("header.rtf"), _T("chapters.rtf"), _T("tmp1.rtf"));
     if (winHelp)
     {
       wxConcatFiles(_T("header.rtf"), _T("chapters.rtf"), _T("tmp1.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp1.rtf"), _T("sections.rtf"), _T("tmp2.rtf"));
       wxConcatFiles(_T("tmp1.rtf"), _T("sections.rtf"), _T("tmp2.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp2.rtf"), _T("subsections.rtf"), _T("tmp3.rtf"));
       wxConcatFiles(_T("tmp2.rtf"), _T("subsections.rtf"), _T("tmp3.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp3.rtf"), _T("subsubsections.rtf"), _T("tmp4.rtf"));
       wxConcatFiles(_T("tmp3.rtf"), _T("subsubsections.rtf"), _T("tmp4.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp4.rtf"), _T("popups.rtf"), OutputFile);
       wxConcatFiles(_T("tmp4.rtf"), _T("popups.rtf"), OutputFile);
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
 
       wxRemoveFile(_T("tmp1.rtf"));
       wxRemoveFile(_T("tmp2.rtf"));
 
       wxRemoveFile(_T("tmp1.rtf"));
       wxRemoveFile(_T("tmp2.rtf"));
@@ -5275,7 +5292,7 @@ bool RTFGo(void)
     else
     {
       wxConcatFiles(_T("header.rtf"), _T("chapters.rtf"), _T("tmp1.rtf"));
     else
     {
       wxConcatFiles(_T("header.rtf"), _T("chapters.rtf"), _T("tmp1.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       if (wxFileExists(OutputFile))
           wxRemoveFile(OutputFile);
 
       if (wxFileExists(OutputFile))
           wxRemoveFile(OutputFile);
 
@@ -5291,17 +5308,17 @@ bool RTFGo(void)
       if ((wxStrcmp(outputDirStr.c_str(),_T("")) == 0) ||  // no path specified on output file
           (wxStrcmp(cwdStr,outputDirStr.c_str()) == 0)) // paths do not match
       {
       if ((wxStrcmp(outputDirStr.c_str(),_T("")) == 0) ||  // no path specified on output file
           (wxStrcmp(cwdStr,outputDirStr.c_str()) == 0)) // paths do not match
       {
-        wxRenameFile(_T("tmp1.rtf"), OutputFile);
+          wxRenameFile(_T("tmp1.rtf"), OutputFile);
       }
       else
       {
       }
       else
       {
-        wxCopyFile(_T("tmp1.rtf"), OutputFile);
+          wxCopyFile(_T("tmp1.rtf"), OutputFile);
       }
       delete [] cwdStr;
       }
       delete [] cwdStr;
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxRemoveFile(_T("tmp1.rtf"));
     }
       wxRemoveFile(_T("tmp1.rtf"));
     }
-    
+
     if (wxFileExists(ContentsName)) wxRemoveFile(ContentsName);
 
     if (!wxRenameFile(TmpContentsName, ContentsName))
     if (wxFileExists(ContentsName)) wxRemoveFile(ContentsName);
 
     if (!wxRenameFile(TmpContentsName, ContentsName))
@@ -5312,7 +5329,7 @@ bool RTFGo(void)
 
     wxRemoveFile(_T("chapters.rtf"));
     wxRemoveFile(_T("header.rtf"));
 
     wxRemoveFile(_T("chapters.rtf"));
     wxRemoveFile(_T("header.rtf"));
-      
+
     if (winHelp)
     {
       wxRemoveFile(_T("sections.rtf"));
     if (winHelp)
     {
       wxRemoveFile(_T("sections.rtf"));
@@ -5321,8 +5338,8 @@ bool RTFGo(void)
       wxRemoveFile(_T("popups.rtf"));
     }
     if (winHelp && generateHPJ)
       wxRemoveFile(_T("popups.rtf"));
     }
     if (winHelp && generateHPJ)
-      WriteHPJ(OutputFile);
-    return TRUE;
+        WriteHPJ(OutputFile);
+    return true;
   }
   }
-  return FALSE;
+  return false;
 }
 }