]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/tex2rtf/src/rtfutils.cpp
note broken code, cast hack to fix warning on pickier compilers
[wxWidgets.git] / utils / tex2rtf / src / rtfutils.cpp
index 0cb5eeecdf47e305412306874228bed8447556d0..bc033398274cba6ea3e4ba495c8c9ac2fa91270a 100644 (file)
@@ -2,7 +2,8 @@
 // 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
@@ -65,17 +66,17 @@ extern wxChar *BigBuffer;
 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
-bool inPopRefSection = FALSE;
+bool inPopRefSection = false;
 
 // Green colour?
-static bool hotSpotColour = TRUE;
-static bool hotSpotUnderline = TRUE;
+static bool hotSpotColour = true;
+static bool hotSpotUnderline = true;
 
 // 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;
@@ -109,8 +110,8 @@ int issuedNewParagraph = 0;
 
 // 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
@@ -124,10 +125,10 @@ static wxChar *CurrentTopic = NULL;
 static bool InPopups()
 {
   if (CurrentChapterName && (wxStrcmp(CurrentChapterName, _T("popups")) == 0))
-    return TRUE;
+    return true;
   if (CurrentSectionName && (wxStrcmp(CurrentSectionName, _T("popups")) == 0))
-    return TRUE;
-  return FALSE;
+    return true;
+  return false;
 }
 
 static void SetCurrentTopic(wxChar *s)
@@ -190,7 +191,7 @@ void NotifyParentHasChildren(int parentLevel)
       texTopic = new TexTopic;
       TopicTable.Put(parentTopic, texTopic);
     }
-    texTopic->hasChildren = TRUE;
+    texTopic->hasChildren = true;
   }
 }
 
@@ -206,10 +207,10 @@ void ResetContentsLevels(int l)
 {
   int i;
   for (i = l; i < 5; i++)
-    ContentsLevels[i] = FALSE;
-    
+    ContentsLevels[i] = false;
+
   // There are always books on the top level
-  ContentsLevels[0] = TRUE;
+  ContentsLevels[0] = true;
 }
 
 // Output a WinHelp section as a keyword, substituting
@@ -217,7 +218,7 @@ void ResetContentsLevels(int l)
 void OutputSectionKeyword(FILE *fd)
 {
   OutputCurrentSectionToString(wxTex2RTFBuffer);
-  
+
   unsigned int i;
   for (i = 0; i < wxStrlen(wxTex2RTFBuffer); i++)
     if (wxTex2RTFBuffer[i] == ':')
@@ -228,7 +229,7 @@ void OutputSectionKeyword(FILE *fd)
 
   wxFprintf(fd, _T("K{\\footnote {K} "));
   wxFprintf(fd, _T("%s"), wxTex2RTFBuffer);
-  
+
   wxFprintf(fd, _T("}\n"));
 }
 
@@ -241,22 +242,22 @@ void WriteWinHelpContentsFileLine(wxChar *topicName, wxChar *xitle, int level)
   int d=0;
   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++]=_T('ö');  }
+      if ((ch1==0x27)&&(ch2==0x65)&&(ch3==0x34)) { title[d++]=_T('ä');  }
+      if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x63)) { title[d++]=_T('ü');  }
+      if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x36)) { title[d++]=_T('Ö');  }
+      if ((ch1==0x27)&&(ch2==0x63)&&(ch3==0x34)) { title[d++]=_T('Ä');  }
+      if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x63)) { title[d++]=_T('Ü');  }
+    } else {
+      title[d++]=ch;
+      s++;
+    }
   }
   title[d]=0;
 
@@ -266,12 +267,9 @@ void WriteWinHelpContentsFileLine(wxChar *topicName, wxChar *xitle, int level)
 
   if (level == 0) // Means we had a Chapter in an article, oops.
     return;
-    
+
   ResetContentsLevels(level);
-  
-  if (!title)
-    return;
-    
+
   if (winHelp && winHelpContents && WinHelpContentsFile)
   {
     TexTopic *texTopic = (TexTopic *)TopicTable.Get(topicName);
@@ -292,7 +290,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.
-        ContentsLevels[level-1] = TRUE;
+        ContentsLevels[level-1] = true;
       }
       else
       {
@@ -306,7 +304,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);
-        ContentsLevels[level-1] = TRUE;
+        ContentsLevels[level-1] = true;
       }
       else
         // Probably doesn't have children if it hasn't been added to the topic table
@@ -351,7 +349,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);
-      
+
       // Check for ':' which messes up index
       unsigned int i;
       for (i = 0; i < wxStrlen(buf1) ; i++)
@@ -381,7 +379,7 @@ void GenerateKeywordsForTopic(wxChar *topic)
  * Output index entry in linear RTF
  *
  */
+
 void GenerateIndexEntry(wxChar *entry)
 {
   if (useWord)
@@ -404,7 +402,7 @@ void GenerateIndexEntry(wxChar *entry)
   * Write a suitable RTF header.
   *
   */
-  
+
 void WriteColourTable(FILE *fd)
 {
   wxFprintf(fd, _T("{\\colortbl"));
@@ -456,7 +454,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("{\\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
    */
@@ -473,7 +471,7 @@ void WriteRTFHeader(FILE *fd)
 
   // 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"));
@@ -521,7 +519,7 @@ void OutputNumberStyle(wxChar *numberStyle)
 /*
  * Write a Windows help project file
  */
+
 bool WriteHPJ(wxChar *filename)
 {
   wxChar hpjFilename[256];
@@ -536,15 +534,15 @@ bool WriteHPJ(wxChar *filename)
   wxStrcpy(rtfFile, helpFile);
   wxStrcat(helpFile, _T(".hlp"));
   wxStrcat(rtfFile, _T(".rtf"));
-  
+
   FILE *fd = wxFopen(hpjFilename, _T("w"));
   if (!fd)
-    return FALSE;
+    return false;
 
   wxChar *helpTitle = winHelpTitle;
   if (!helpTitle)
     helpTitle = _T("Untitled");
-    
+
   wxString thePath = wxPathOnly(InputFile);
   if (thePath.IsEmpty())
     thePath = _T(".");
@@ -580,7 +578,7 @@ bool WriteHPJ(wxChar *filename)
   wxFprintf(fd, _T("BrowseButtons()\n\n"));
   wxFprintf(fd, _T("[MAP]\n\n[BITMAPS]\n\n"));
   fclose(fd);
-  return TRUE;
+  return true;
 }
 
 
@@ -594,7 +592,7 @@ bool WriteHPJ(wxChar *filename)
 
 void ProcessText2RTF(TexChunk *chunk)
 {
-  bool changed = FALSE;
+  bool changed = false;
   int ptr = 0;
   int i = 0;
   wxChar ch = 1;
@@ -610,7 +608,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 ++;
-        changed = TRUE;
+        changed = true;
       }
       else
       {
@@ -626,7 +624,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]))))
-//        if (TRUE)
+//        if (true)
         {
           // DOS files have a 13 after the 10
           BigBuffer[ptr] = 10;
@@ -644,7 +642,7 @@ void ProcessText2RTF(TexChunk *chunk)
 
           // Note that the actual ASCII character seen is dealt with in the next
           // iteration
-          changed = TRUE;
+          changed = true;
         }
         else
         {
@@ -657,27 +655,27 @@ void ProcessText2RTF(TexChunk *chunk)
     {
       BigBuffer[ptr] = '"'; ptr ++;
       i += 2;
-      changed = TRUE;
+      changed = true;
     }
     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;
-      changed = TRUE;
+      changed = true;
     }
     else if (inVerbatim && (ch == '{' || ch == '}')) // Escape the curley bracket
     {
       BigBuffer[ptr] = '\\'; ptr ++;
       BigBuffer[ptr] = ch; ptr ++;
       i += 1;
-      changed = TRUE;
+      changed = true;
     }
     else
     {
@@ -702,7 +700,7 @@ void ProcessText2RTF(TexChunk *chunk)
  * and before TraverseDocument is called.
  *
  */
+
 void Text2RTF(TexChunk *chunk)
 {
   Tex2RTFYield();
@@ -717,7 +715,7 @@ void Text2RTF(TexChunk *chunk)
         return;
 
       if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB))
-        inVerbatim = TRUE;
+        inVerbatim = true;
 
       wxNode *node = chunk->children.GetFirst();
       while (node)
@@ -728,7 +726,7 @@ void Text2RTF(TexChunk *chunk)
       }
 
       if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB))
-        inVerbatim = FALSE;
+        inVerbatim = false;
 
       break;
     }
@@ -757,14 +755,14 @@ void Text2RTF(TexChunk *chunk)
  * Not used yet
  *
  */
+
 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++)
@@ -808,7 +806,7 @@ void WriteEnvironmentStyles(void)
   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))
@@ -843,12 +841,12 @@ void OutputRTFHeaderCommands(void)
     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
     {
-      wxSprintf(buf, _T("CHAPTER %d: "), chapterNo);
+      wxSnprintf(buf, sizeof(buf), _T("CHAPTER %d: "), chapterNo);
       TexOutput(buf);
     }
     TexOutput(_T("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
@@ -863,12 +861,12 @@ void OutputRTFHeaderCommands(void)
     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
     {
-      wxSprintf(buf, _T("CHAPTER %d"), chapterNo);
+      wxSnprintf(buf, sizeof(buf), _T("CHAPTER %d"), chapterNo);
       TexOutput(buf);
     }
     TexOutput(_T("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"));
@@ -878,7 +876,7 @@ void OutputRTFHeaderCommands(void)
   {
     int oldForbidResetPar = forbidResetPar;
     forbidResetPar = 0;
-    
+
     if (LeftHeaderEven || CentreHeaderEven || RightHeaderEven)
     {
       TexOutput(_T("{\\headerl\\fi0 "));
@@ -1075,7 +1073,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 {
 /*
   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();
 */
@@ -1146,7 +1144,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           OutputRTFHeaderCommands();
           OutputRTFFooterCommands();
         }
-        
+
         // Need to reset the current numbering style, or RTF forgets it.
         SetCurrentOutput(Chapters);
         OutputNumberStyle(currentNumberStyle);
@@ -1167,14 +1165,14 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           else SetCurrentOutput(NULL); // No entry in table of contents
         }
       }
-  
-      startedSections = TRUE;
+
+      startedSections = true;
 
       // Output heading to contents page
       if (!InPopups())
       {
         OutputCurrentSection();
-      
+
         if (winHelp)
         {
           wxFprintf(Contents, _T("}{\\v %s}\\pard\\par\n"), topicName);
@@ -1186,12 +1184,12 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         // 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());
-        
+
         OutputSectionKeyword(Chapters);
 
         GenerateKeywordsForTopic(topicName);
@@ -1317,14 +1315,14 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           }
         }
         else SetCurrentOutput(NULL);
-      } 
+      }
 
       if (startedSections)
       {
         if (winHelp)
           wxFprintf(Sections, _T("\\page\n"));
       }
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Sections, _T("\n${\\footnote "));
@@ -1348,7 +1346,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         else
           wxFprintf(Contents, _T("}\\par\\par\\pard\n"));
       }
-        
+
       SetCurrentOutput(winHelp ? Sections : Chapters);
 
       if (winHelp)
@@ -1385,7 +1383,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       wxChar *keep = _T("");
       if (winHelp && (macroId != ltGLOSS) && !InPopups())
         keep = _T("\\keepn\\sa140\\sb140");
-        
+
       wxFprintf(winHelp ? Sections : Chapters, _T("\\pard{%s%s"),
          keep, styleCommand);
 
@@ -1489,9 +1487,9 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 #if 0
         else
           wxFprintf(Chapters, _T("\\par\n"));
-#endif        
+#endif
       }
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Subsections, _T("\n${\\footnote "));
@@ -1584,7 +1582,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         }
       }
       OutputCurrentSection(); // Repeat section header
-      
+
       // Experimental JACS
       TexOutput(_T("\\par\\pard}\n"));
       // TexOutput(_T("\\par\\pard}\\par\n"));
@@ -1636,11 +1634,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
       }
-      
+
       if (startedSections)
       {
         if (winHelp)
@@ -1649,10 +1647,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 #if 0
         else
           wxFprintf(Chapters, _T("\\par\n"));
-#endif        
+#endif
       }
 
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Subsubsections, _T("\n${\\footnote "));
@@ -1667,7 +1665,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       }
       else if ((DocumentStyle == LATEX_ARTICLE) && (macroId != ltSUBSUBSECTIONSTAR))
         wxFprintf(Contents, _T("\\par\\pard\n"));
-        
+
       SetCurrentOutput(winHelp ? Subsubsections : Chapters);
       if (winHelp)
       {
@@ -1707,7 +1705,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       WriteHeadingStyle((winHelp ? Subsubsections : Chapters),
                         (DocumentStyle == LATEX_ARTICLE ? 3 : 4));
       wxFprintf(winHelp ? Subsubsections : Chapters, _T(" "));
-         
+
       if (!winHelp)
       {
         if ((macroId != ltSUBSUBSECTIONSTAR))
@@ -1764,13 +1762,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         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
-            wxSprintf(figBuf, _T("%s %d: "), FigureNameString, figureNo);
+            wxSnprintf(figBuf, sizeof(figBuf), _T("%s %d: "), FigureNameString, figureNo);
         }
         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);
         }
       }
@@ -1781,13 +1779,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         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
-            wxSprintf(figBuf, _T("%s %d: "), TableNameString, tableNo);
+            wxSnprintf(figBuf, sizeof(figBuf), _T("%s %d: "), TableNameString, tableNo);
         }
         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);
         }
       }
@@ -1824,18 +1822,18 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       if (winHelp)
       {
         TexOutput(_T("K{\\footnote {K} "));
-        suppressNameDecoration = TRUE;
+        suppressNameDecoration = true;
         TraverseChildrenFromChunk(currentMember);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         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);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}}"));
       }
     }
@@ -1854,18 +1852,18 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       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);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         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);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}}"));
       }
     }
@@ -1891,9 +1889,9 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       {
         // 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);
-        suppressNameDecoration = FALSE;
+        suppressNameDecoration = false;
         TexOutput(_T("}}"));
       }
     }
@@ -1915,10 +1913,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         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);
-        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"));
       }
@@ -1930,7 +1928,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           int ch = getc(fd);
           while (ch != EOF)
           {
-            putc(ch, Chapters);
+            wxPutc(ch, Chapters);
             ch = getc(fd);
           }
           fclose(fd);
@@ -1977,10 +1975,11 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
-      if (TRUE) // (inVerbatim)
+      #if 1 // if(inVerbatim)
         TexOutput(_T("~"));
-      else
+      #else
         TexOutput(_T(" "));
+      #endif
     }
     break;
   }
@@ -2001,8 +2000,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
           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"));
@@ -2070,8 +2069,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
       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
@@ -2089,8 +2088,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)
       {
-        OnMacro(ltPAR, 0, TRUE);
-        OnMacro(ltPAR, 0, FALSE);
+        OnMacro(ltPAR, 0, true);
+        OnMacro(ltPAR, 0, false);
         issuedNewParagraph = 2;
       }
 */
@@ -2111,9 +2110,9 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
       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
@@ -2138,10 +2137,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       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;
   }
@@ -2171,7 +2170,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 //          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);
 
@@ -2185,10 +2184,10 @@ void RTFOnMacro(int macroId, int no_args, bool start)
               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;
@@ -2201,20 +2200,20 @@ void RTFOnMacro(int macroId, int no_args, bool start)
               TraverseChildrenFromChunk(descriptionItemArg);
               TexOutput(_T("}\\tab"));
               descriptionItemArg = NULL;
-           }
-           else
-           {
+            }
+          else
+            {
               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
-                  wxSprintf(indentBuf, _T("\\tab\\{bmc %s\\}\\tab"), bulletFile);
+                  wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab\\{bmc %s\\}\\tab"), bulletFile);
               }
               else if (winHelp)
-                wxSprintf(indentBuf, _T("\\tab{\\b o}\\tab"));
+                wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab{\\b o}\\tab"));
               else
-                wxSprintf(indentBuf, _T("\\tab{\\f1\\'b7}\\tab"));
+                wxSnprintf(indentBuf, sizeof(indentBuf), _T("\\tab{\\f1\\'b7}\\tab"));
               TexOutput(indentBuf);
             }
             break;
@@ -2231,7 +2230,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
             }
             break;
           }
-       }
+        }
       }
     }
     break;
@@ -2264,15 +2263,15 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 
 //          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);
 /*
-        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);
 */
-        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);
       }
@@ -2297,11 +2296,11 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         else issuedNewParagraph = 0;
       }
 #endif
-      
+
       if (macroId == ltVERBATIM)
-        wxSprintf(buf, _T("{\\f3\\s10\\fs20\\li720\\sa0 "));
+        wxSnprintf(buf, sizeof(buf), _T("{\\f3\\s10\\fs20\\li720\\sa0 "));
       else
-        wxSprintf(buf, _T("{\\f3\\fs20 "));
+        wxSnprintf(buf, sizeof(buf), _T("{\\f3\\fs20 "));
       TexOutput(buf);
     }
     else
@@ -2315,7 +2314,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
 #if 0
         TexOutput(_T("\\par\n"));
         issuedNewParagraph = 1;
-#endif        
+#endif
       }
     }
     break;
@@ -2380,7 +2379,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2391,7 +2390,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2401,7 +2400,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2411,7 +2410,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2421,7 +2420,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2431,7 +2430,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2441,7 +2440,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2451,7 +2450,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2461,7 +2460,7 @@ void RTFOnMacro(int macroId, int no_args, bool 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"));
@@ -2506,7 +2505,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   case ltRMFAMILY:
   case ltRM:
   {
-/*    
+/*
     if (start)
     {
       TexOutput(_T("{\\plain "));
@@ -2579,40 +2578,39 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     if (start)
     {
-               if ( issuedNewParagraph == 0 )
-               {
+      if ( issuedNewParagraph == 0 )
+      {
           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.
 #if 0
           if (winHelp && !inTabular && (ParSkip > 0))
-                 {
+          {
             TexOutput(_T("\\par"));
             issuedNewParagraph ++;
-                 }
-#endif          
+          }
+#endif
           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))
-                 {
+          {
             TexOutput(_T("\\par"));
             issuedNewParagraph ++;
-                 }
-#endif          
+          }
+#endif
           WriteEnvironmentStyles();
-               }
+      }
 /*
       if (!issuedNewParagraph || (issuedNewParagraph > 1))
       {
@@ -2644,7 +2642,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       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"));
@@ -2653,7 +2651,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       {
         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("}"));
@@ -2662,7 +2660,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
       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"));
@@ -2746,7 +2744,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     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;
@@ -2756,7 +2754,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     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;
@@ -2782,8 +2780,8 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     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;
@@ -2792,13 +2790,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     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];
-      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);
     }
@@ -2808,13 +2806,13 @@ void RTFOnMacro(int macroId, int no_args, bool start)
   {
     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];
-      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);
     }
@@ -3169,14 +3167,14 @@ void RTFOnMacro(int macroId, int no_args, bool start)
     break;
   case ltFIGURE:
   {
-    if (start) inFigure = TRUE;
-    else inFigure = FALSE;
+    if (start) inFigure = true;
+    else inFigure = false;
     break;
   }
   case ltTABLE:
   {
-    if (start) inTable = TRUE;
-    else inTable = FALSE;
+    if (start) inTable = true;
+    else inTable = false;
     break;
   }
   default:
@@ -3211,7 +3209,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   {
     if (!start && (arg_no == 1))
       currentSection = GetArgChunk();
-    return FALSE;
+    return false;
   }
   case ltFUNC:
   {
@@ -3230,7 +3228,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       if (!suppressNameDecoration) TexOutput(_T("}"));
     }
-    
+
     if (start && (arg_no == 3))
       TexOutput(_T("("));
     if (!start && (arg_no == 3))
@@ -3338,7 +3336,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     if (start)
     {
       wxChar *sec = NULL;
-      
+
       wxChar *refName = GetArgData();
       if (winHelp || !useWord)
       {
@@ -3360,7 +3358,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         wxFprintf(Chapters, _T("{\\field{\\*\\fldinst  REF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}"),
                 refName);
       }
-      return FALSE;
+      return false;
     }
     break;
   }
@@ -3405,7 +3403,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         if (start)
           helpRefText = GetArgChunk();
 
-        return TRUE;
+        return true;
       }
       else if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional
       {
@@ -3444,7 +3442,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
                     {
                       if (!ignoreBadRefs)
                         TexOutput(_T("??"));
-                      wxSprintf(buf, _T("Warning: unresolved reference '%s'"), refName);
+                      wxSnprintf(buf, sizeof(buf), _T("Warning: unresolved reference '%s'"), refName);
                       OnInform(buf);
                     }
                   }
@@ -3458,7 +3456,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
               TexOutput(_T(")"));
           }
         }
-        return FALSE;
+        return false;
       }
     }
     break;
@@ -3467,21 +3465,21 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   {
     if (arg_no == 1)
     {
-      return TRUE;
+      return true;
     }
     else if (arg_no == 2)
     {
       if (start)
       {
-        inVerbatim = TRUE;
+        inVerbatim = true;
         TexOutput(_T(" ({\\f3 "));
       }
       else
       {
         TexOutput(_T("})"));
-        inVerbatim = FALSE;
+        inVerbatim = false;
       }
-      return TRUE;
+      return true;
     }
     break;
   }
@@ -3520,9 +3518,9 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           TexOutput(_T("{\\i "));
         else
           TexOutput(_T("}"));
-        return TRUE;
+        return true;
       }
-      else return FALSE;
+      else return false;
     }
     break;
   }
@@ -3534,9 +3532,9 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         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:
@@ -3545,11 +3543,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
   case ltPSBOXTO:
   {
     if (arg_no == 3)
-      return FALSE;
-      
+      return false;
+
     static int imageWidth = 0;
     static int imageHeight = 0;
-    
+
     if (start && (arg_no == 1))
     {
       wxChar *imageDimensions = copystring(GetArgData());
@@ -3579,8 +3577,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
       if (imageDimensions)  // glt
           delete [] imageDimensions;
-      return FALSE;
-    }  
+      return false;
+    }
     else if (start && (arg_no == 2 ))
     {
       wxChar *filename = copystring(GetArgData());
@@ -3650,7 +3648,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           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
@@ -3672,7 +3670,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
               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);
@@ -3694,28 +3692,28 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
               }
               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
             {
-#endif            
+#endif
               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
         }
       }
-      return FALSE;
+      return false;
     }
     else
-      return FALSE;
+      return false;
   }
   case ltTABULAR:
   case ltSUPERTABULAR:
@@ -3725,10 +3723,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       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());
@@ -3744,21 +3742,21 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           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;
 
-        return FALSE;
+        return false;
       }
     }
     else if (arg_no == 2 && !start)
     {
       TexOutput(_T("\\pard\n"));
       WriteEnvironmentStyles();
-      inTabular = FALSE;
+      inTabular = false;
     }
     break;
   }
@@ -3776,8 +3774,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       forbidParindent --;
       PopEnvironmentStyle();
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
     }
     break;
   }
@@ -3791,8 +3789,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
     {
       PopEnvironmentStyle();
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
     }
     break;
   }
@@ -3804,15 +3802,15 @@ bool RTFOnArgument(int macroId, int arg_no, bool 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();
-      OnMacro(ltPAR, 0, TRUE);
-      OnMacro(ltPAR, 0, FALSE);
+      OnMacro(ltPAR, 0, true);
+      OnMacro(ltPAR, 0, false);
     }
     break;
   }
@@ -3827,10 +3825,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         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);
-      return FALSE;
+      return false;
     }
     break;
   }
@@ -3846,7 +3844,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       else if (wxStrcmp(data, _T("Times")) == 0)
         TexOutput(_T("\\f0\n"));
 
-      return FALSE;
+      return false;
     }
     break;
   }
@@ -3858,10 +3856,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       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);
       }
-      return FALSE;
+      return false;
     }
     break;
   }
@@ -3870,7 +3868,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     if (start && IsArgOptional())
     {
       descriptionItemArg = GetArgChunk();
-      return FALSE;
+      return false;
     }
     break;
   }
@@ -3898,7 +3896,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         break;
       }
     }
-    return TRUE;
+    return true;
   }
   /*
    * Accents
@@ -3948,7 +3946,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_ACUTE:
   {
@@ -4000,7 +3998,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_CARET:
   {
@@ -4046,7 +4044,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_TILDE:
   {
@@ -4083,7 +4081,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_UMLAUT:
   {
@@ -4138,7 +4136,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_DOT:
   {
@@ -4160,7 +4158,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltACCENT_CADILLA:
   {
@@ -4182,7 +4180,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         }
       }
     }
-    return FALSE;
+    return false;
   }
   case ltFOOTNOTE:
   {
@@ -4197,7 +4195,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           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);
@@ -4220,26 +4218,26 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           wxFprintf(Popups, _T("+{\\footnote %s}\n"), GetBrowseString());
           savedOutput = CurrentOutput1;
           SetCurrentOutput(Popups);
-       }
-       else
-       {
+      }
+      else
+      {
           SetCurrentOutput(savedOutput);
-       }
-       return TRUE;
       }
-      return TRUE;
+        return true;
+      }
+      return true;
     }
     else
     {
       if (start)
       {
-        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), TRUE);
+        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), true);
       }
       else
       {
-        TexOutput(_T("}}"), TRUE);
+        TexOutput(_T("}}"), true);
       }
-      return TRUE;
+      return true;
     }
   }
   case ltFOOTNOTEPOPUP:
@@ -4253,9 +4251,12 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         if (start)
         {
           TexOutput(_T("{\\ul "));
-       }
-       else TexOutput(_T("}"));
-       return TRUE;
+      }
+        else
+        {
+          TexOutput(_T("}"));
+        }
+        return true;
       }
       else if (arg_no == 2)
       {
@@ -4284,31 +4285,31 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         {
           SetCurrentOutput(savedOutput);
         }
-        return TRUE;
+        return true;
       }
     }
     else
     {
       if (arg_no == 1)
-        return TRUE;
+        return true;
       if (start)
       {
-        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), TRUE);
+        TexOutput(_T(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}"), true);
       }
       else
       {
-        TexOutput(_T("}}"), TRUE);
+        TexOutput(_T("}}"), true);
       }
-      return TRUE;
+      return true;
     }
     break;
   }
   case ltFANCYPLAIN:
   {
     if (start && (arg_no == 1))
-      return FALSE;
+      return false;
     else
-      return TRUE;
+      return true;
   }
   case ltSETHEADER:
   {
@@ -4317,7 +4318,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
       forbidResetPar --;
 
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     {
       switch (arg_no)
@@ -4357,7 +4358,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           break;
       }
     }
-    return FALSE;
+    return false;
   }
   case ltSETFOOTER:
   {
@@ -4366,7 +4367,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
       forbidResetPar --;
 
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     {
       switch (arg_no)
@@ -4406,11 +4407,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           break;
       }
     }
-    return FALSE;
+    return false;
   }
   case ltMARKRIGHT:
   {
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     // Fake a SetHeader command
     if (start)
     {
@@ -4425,11 +4426,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     RTFOnArgument(ltSETHEADER, 4, start);
     if (!start)
       OutputRTFHeaderCommands();
-    return FALSE;
+    return false;
   }
   case ltMARKBOTH:
   {
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     // Fake a SetHeader command
     switch (arg_no)
     {
@@ -4452,7 +4453,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         RTFOnArgument(ltSETHEADER, 4, start);
         if (!start)
           OutputRTFHeaderCommands();
-        return FALSE;
+        return false;
       }
     }
     break;
@@ -4464,7 +4465,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     else
       forbidResetPar --;
 
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
     {
       TexOutput(_T("\\pgnrestart"));
@@ -4472,16 +4473,16 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       if (currentNumberStyle) delete[] currentNumberStyle;
       currentNumberStyle = copystring(data);
       OutputNumberStyle(currentNumberStyle);
-      
+
       TexOutput(_T("\n"));
     }
-    return FALSE;
+    return false;
   }
   case ltTWOCOLUMN:
   {
-    if (winHelp) return FALSE;
+    if (winHelp) return false;
     if (start)
-      return TRUE;
+      return true;
     break;
   }
   case ltITEMSEP:
@@ -4490,13 +4491,13 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       wxChar *val = GetArgData();
       currentItemSep = ParseUnitArgument(val);
-      return FALSE;
+      return false;
     }
     break;
   }
   case ltEVENSIDEMARGIN:
   {
-    return FALSE;
+    return false;
   }
   case ltODDSIDEMARGIN:
   {
@@ -4507,12 +4508,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;
-      wxSprintf(buf, _T("\\margl%d\n"), twips);
+      wxSnprintf(buf, sizeof(buf), _T("\\margl%d\n"), twips);
       TexOutput(buf);
 
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPARWIDTH:
   {
@@ -4522,7 +4523,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       int twips = (int)(20*ParseUnitArgument(val));
       CurrentMarginParWidth = twips;
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPARSEP:
   {
@@ -4533,7 +4534,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       CurrentMarginParSep = twips;
       CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep;
     }
-    return FALSE;
+    return false;
   }
   case ltTEXTWIDTH:
   {
@@ -4547,10 +4548,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       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);
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPAR:
   case ltMARGINPARODD:
@@ -4564,10 +4565,10 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       }
       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);
       }
-      return TRUE;
+      return true;
     }
     else
     {
@@ -4581,7 +4582,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         TexOutput(_T("\\par\\pard\n"));
       issuedNewParagraph = 1;
     }
-    return FALSE;
+    return false;
   }
   case ltMARGINPAREVEN:
   {
@@ -4600,16 +4601,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;
-          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
         {
-          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);
         }
       }
-      return TRUE;
+      return true;
     }
     else
     {
@@ -4623,7 +4624,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         issuedNewParagraph = 1;
       TexOutput(_T("\\par\\pard\n"));
     }
-    return FALSE;
+    return false;
   }
   case ltTWOCOLWIDTHA:
   {
@@ -4633,7 +4634,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       int twips = (int)(20*ParseUnitArgument(val));
       TwoColWidthA = twips;
     }
-    return FALSE;
+    return false;
   }
   case ltTWOCOLWIDTHB:
   {
@@ -4643,7 +4644,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       int twips = (int)(20*ParseUnitArgument(val));
       TwoColWidthB = twips;
     }
-    return FALSE;
+    return false;
   }
   case ltROW:
   case ltRULEDROW:
@@ -4683,8 +4684,8 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
         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"));
@@ -4692,7 +4693,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       ruleTop = 0;
       ruleBottom = 0;
       currentRowNumber ++;
-      return TRUE;
+      return true;
     }
     else
     {
@@ -4711,15 +4712,15 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         case 1:
         {
           noMultiColumns = wxAtoi(GetArgData());
-          return FALSE;
+          return false;
         }
         case 2:
         {
-          return FALSE;
+          return false;
         }
         case 3:
         {
-          return TRUE;
+          return true;
         }
       }
     }
@@ -4749,11 +4750,11 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
       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);
-      return FALSE;
+      return false;
     }
     if (!start && (arg_no == 2))
     {
@@ -4771,7 +4772,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         WriteEnvironmentStyles();
       }
     }
-    return TRUE;
+    return true;
   }
 /*
   case ltSIZEDBOX:
@@ -4792,12 +4793,12 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
 
       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);
-      return FALSE;
+      return false;
     }
     if (!start && (arg_no == 2))
     {
@@ -4815,7 +4816,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         WriteEnvironmentStyles();
       }
     }
-    return TRUE;
+    return true;
     break;
   }
 */
@@ -4834,7 +4835,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       }
       TexOutput(_T("\n"));
     }
-    return FALSE;
+    return false;
   }
   case ltSETHOTSPOTCOLOUR:
   case ltSETHOTSPOTCOLOR:
@@ -4843,11 +4844,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)
-        hotSpotColour = TRUE;
+        hotSpotColour = true;
       else
-        hotSpotColour = FALSE;
+        hotSpotColour = false;
     }
-    return FALSE;
+    return false;
   }
   case ltSETTRANSPARENCY:
   {
@@ -4855,11 +4856,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)
-        bitmapTransparency = TRUE;
+        bitmapTransparency = true;
       else
-        bitmapTransparency = FALSE;
+        bitmapTransparency = false;
     }
-    return FALSE;
+    return false;
   }
   case ltSETHOTSPOTUNDERLINE:
   {
@@ -4867,11 +4868,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)
-        hotSpotUnderline = TRUE;
+        hotSpotUnderline = true;
       else
-        hotSpotUnderline = FALSE;
+        hotSpotUnderline = false;
     }
-    return FALSE;
+    return false;
   }
   case ltBIBITEM:
   {
@@ -4882,19 +4883,19 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       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
-      wxSprintf(buf, _T("{\\b [%d]} "), citeCount);
+      wxSnprintf(buf, sizeof(buf), _T("{\\b [%d]} "), citeCount);
       TexOutput(buf);
       citeCount ++;
-      return FALSE;
+      return false;
     }
     if (arg_no == 2 && !start)
       TexOutput(_T("\\par\\pard\\par\n\n"));
-    return TRUE;
+    return true;
   }
   case ltTHEBIBLIOGRAPHY:
   {
@@ -4916,7 +4917,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           OutputRTFHeaderCommands();
           OutputRTFFooterCommands();
         }
-        
+
         // Need to reset the current numbering style, or RTF forgets it.
         OutputNumberStyle(currentNumberStyle);
         SetCurrentOutput(Contents);
@@ -4929,7 +4930,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       else
         wxFprintf(Contents, _T("\\par\n\\pard{\\b %s}"), ReferencesNameString);
 
-      startedSections = TRUE;
+      startedSections = true;
 
       if (winHelp)
         wxFprintf(Chapters, _T("\n${\\footnote %s}"), ReferencesNameString);
@@ -4956,7 +4957,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
                wxFileNameFromPath(FileRoot), "Contents");
         }
       }
-      
+
       SetCurrentOutput(Chapters);
       wxChar *styleCommand = _T("");
       if (!winHelp && useHeadingStyles)
@@ -4964,9 +4965,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"));
 
-      return FALSE;
+      return false;
     }
-    return TRUE;
+    return true;
   }
   case ltINDEX:
   {
@@ -4993,7 +4994,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       }
       else GenerateIndexEntry(buf);
     }
-    return FALSE;
+    return false;
   }
   case ltFCOL:
   case ltBCOL:
@@ -5008,19 +5009,19 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           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);
           }
-                 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);
-                 }
+          }
           break;
         }
         case 2:
         {
-          return TRUE;
+          return true;
         }
         default:
           break;
@@ -5030,7 +5031,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
     {
       if (arg_no == 2) TexOutput(_T("}"));
     }
-    return FALSE;
+    return false;
   }
   case ltLABEL:
   {
@@ -5050,7 +5051,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           wxFprintf(Chapters, _T("{\\bkmkstart %s}{\\bkmkend %s}"), s,s);
       }
     }
-    return FALSE;
+    return false;
   }
   case ltPAGEREF:
   {
@@ -5060,14 +5061,14 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
       wxFprintf(Chapters, _T("{\\field{\\*\\fldinst  PAGEREF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}"),
               s);
     }
-    return FALSE;
+    return false;
   }
   case ltPOPREFONLY:
   {
     if (start)
-      inPopRefSection = TRUE;
+      inPopRefSection = true;
     else
-      inPopRefSection = FALSE;
+      inPopRefSection = false;
     break;
   }
   case ltINSERTATLEVEL:
@@ -5075,7 +5076,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)
-        return FALSE;
+        return false;
     static int currentLevelNo = 1;
     static FILE* oldLevelFile = Chapters;
     if (start)
@@ -5120,16 +5121,16 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
           }
           if (outputFile)
             CurrentOutput1 = outputFile;
-          return FALSE;
+          return false;
         }
         case 2:
         {
-          return TRUE;
+          return true;
         }
         default:
           break;
       }
-      return TRUE;
+      return true;
     }
     else
     {
@@ -5137,19 +5138,19 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         {
             CurrentOutput1 = oldLevelFile;
         }
-        return TRUE;
+        return true;
     }
   }
   default:
     return DefaultOnArgument(macroId, arg_no, start);
   }
-  return TRUE;
+  return true;
 }
 
 bool RTFGo(void)
 {
   if (stopRunning)
-      return FALSE;
+      return false;
 
   // Reset variables
   indentLevel = 0;
@@ -5157,17 +5158,17 @@ bool RTFGo(void)
   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;
-  startedSections = FALSE;
-  inVerbatim = FALSE;
+  startedSections = false;
+  inVerbatim = false;
   browseId = 0;
-  
+
   if (InputFile && OutputFile)
   {
     // Do some RTF-specific transformations on all the strings,
@@ -5192,13 +5193,13 @@ bool RTFGo(void)
       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."));
-      return FALSE;
+      return false;
     }
 
     if (winHelp)
@@ -5214,7 +5215,7 @@ bool RTFGo(void)
       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"),
@@ -5222,13 +5223,13 @@ bool RTFGo(void)
 
     // By default, Swiss, 11 point.
     wxFprintf(Chapters, _T("\\f2\\fs22\n"));
-    
+
     PushEnvironmentStyle(_T("\\f2\\fs22\\sa200"));
 
     SetCurrentOutput(Chapters);
 
     if (stopRunning)
-        return FALSE;
+        return false;
 
     OnInform(_T("Converting..."));
 
@@ -5238,14 +5239,14 @@ bool RTFGo(void)
     if (!Header)
     {
       OnError(_T("Ouch! Could not open temporary file header.rtf for writing."));
-      return FALSE;
+      return false;
     }
     WriteRTFHeader(Header);
     fclose(Header);
 
     PopEnvironmentStyle();
-    
-    Tex2RTFYield(TRUE);
+
+    Tex2RTFYield(true);
     if (winHelp)
     {
 //      wxFprintf(Contents, _T("\\page\n"));
@@ -5276,15 +5277,15 @@ bool RTFGo(void)
     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"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp2.rtf"), _T("subsections.rtf"), _T("tmp3.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp3.rtf"), _T("subsubsections.rtf"), _T("tmp4.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxConcatFiles(_T("tmp4.rtf"), _T("popups.rtf"), OutputFile);
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
 
       wxRemoveFile(_T("tmp1.rtf"));
       wxRemoveFile(_T("tmp2.rtf"));
@@ -5294,7 +5295,7 @@ bool RTFGo(void)
     else
     {
       wxConcatFiles(_T("header.rtf"), _T("chapters.rtf"), _T("tmp1.rtf"));
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       if (wxFileExists(OutputFile))
           wxRemoveFile(OutputFile);
 
@@ -5317,10 +5318,10 @@ bool RTFGo(void)
         wxCopyFile(_T("tmp1.rtf"), OutputFile);
       }
       delete [] cwdStr;
-      Tex2RTFYield(TRUE);
+      Tex2RTFYield(true);
       wxRemoveFile(_T("tmp1.rtf"));
     }
-    
+
     if (wxFileExists(ContentsName)) wxRemoveFile(ContentsName);
 
     if (!wxRenameFile(TmpContentsName, ContentsName))
@@ -5331,7 +5332,7 @@ bool RTFGo(void)
 
     wxRemoveFile(_T("chapters.rtf"));
     wxRemoveFile(_T("header.rtf"));
-      
+
     if (winHelp)
     {
       wxRemoveFile(_T("sections.rtf"));
@@ -5341,7 +5342,7 @@ bool RTFGo(void)
     }
     if (winHelp && generateHPJ)
       WriteHPJ(OutputFile);
-    return TRUE;
+    return true;
   }
-  return FALSE;
+  return false;
 }