#endif
#ifndef WX_PRECOMP
-#include "wx/wx.h"
#endif
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
+#if !WXWIN_COMPATIBILITY_2_4
+static inline wxChar* copystring(const wxChar* s)
+ { return wxStrcpy(new wxChar[wxStrlen(s) + 1], s); }
+#endif
+
/*
* Variables accessible from clients
*
bool winHelpContents = FALSE; // Generate .cnt file for WinHelp 4
bool htmlIndex = FALSE; // Generate .htx file for HTML
bool htmlFrameContents = FALSE; // Use frames for HTML contents page
+char *htmlStylesheet = NULL; // Use this CSS stylesheet for HTML pages
bool useHeadingStyles = TRUE; // Insert \s1, s2 etc.
bool useWord = TRUE; // Insert proper Word table of contents, etc etc
int contentsDepth = 4; // Depth of Word table of contents
char *followedLinkColourString = NULL;
bool combineSubSections = FALSE;
bool htmlWorkshopFiles = FALSE;
+bool ignoreBadRefs = FALSE;
+char *htmlFaceName = NULL;
extern int passNumber;
FILE *CurrentOutput1 = NULL;
FILE *CurrentOutput2 = NULL;
FILE *Inputs[15];
-int LineNumbers[15];
+unsigned long LineNumbers[15];
char *FileNames[15];
int CurrentInputIndex = 0;
#define IncrementLineNumber() LineNumbers[CurrentInputIndex] ++
-TexRef::TexRef(char *label, char *file, char *section, char *sectionN)
+TexRef::TexRef(const char *label, const char *file,
+ const char *section, const char *sectionN)
{
refLabel = copystring(label);
refFile = file ? copystring(file) : (char*) NULL;
delete [] macroBody;
}
-void TexOutput(char *s, bool ordinaryText)
+void TexOutput(const char *s, bool ordinaryText)
{
int len = strlen(s);
}
int ch = -2;
- int bufIndex = 0;
+ unsigned long bufIndex = 0;
buf[0] = 0;
while (ch != EOF && ch != 10)
{
wxString errBuf;
errBuf.Printf("Line %lu of file %s is too long. Lines can be no longer than %lu characters. Truncated.",
- LineNumbers[CurrentInputIndex], (const char*) currentFileName.c_str(),MAX_LINE_BUFFER_SIZE);
+ LineNumbers[CurrentInputIndex], (const char*) currentFileName.c_str(), MAX_LINE_BUFFER_SIZE);
OnError((char *)errBuf.c_str());
return FALSE;
}
if (rightCurley > leftCurley)
{
wxString errBuf;
- errBuf.Printf("An extra right Curley brace ('}') was detected at line %lu inside file %s",LineNumbers[CurrentInputIndex], (const char*) currentFileName.c_str());
+ errBuf.Printf("An extra right Curley brace ('}') was detected at line %lu inside file %s", LineNumbers[CurrentInputIndex], (const char*) currentFileName.c_str());
OnError((char *)errBuf.c_str());
// Reduce the count of right Curley braces, so the mismatched count
fileNameStr.Replace("\\", "");
// Ignore some types of input files (e.g. macro definition files)
- char *fileOnly = FileNameFromPath((char*) (const char*) fileNameStr);
+ char *fileOnly = wxFileNameFromPath((char*) (const char*) fileNameStr);
currentFileName = fileOnly;
if (IgnorableInputFiles.Member(fileOnly))
return read_a_line(buf);
pos ++;
int noBraces = 1;
- wxBuffer[0] = 0;
+ wxTex2RTFBuffer[0] = 0;
int i = 0;
bool end = FALSE;
while (!end)
noBraces --;
if (noBraces == 0)
{
- wxBuffer[i] = 0;
+ wxTex2RTFBuffer[i] = 0;
end = TRUE;
}
else
{
- wxBuffer[i] = '}';
+ wxTex2RTFBuffer[i] = '}';
i ++;
}
pos ++;
}
else if (ch == '{')
{
- wxBuffer[i] = '{';
+ wxTex2RTFBuffer[i] = '{';
i ++;
pos ++;
}
else if (ch == '\\' && buffer[pos+1] == '}')
{
- wxBuffer[i] = '}';
+ wxTex2RTFBuffer[i] = '}';
pos += 2;
i++;
}
else if (ch == '\\' && buffer[pos+1] == '{')
{
- wxBuffer[i] = '{';
+ wxTex2RTFBuffer[i] = '{';
pos += 2;
i++;
}
else
{
- wxBuffer[i] = ch;
+ wxTex2RTFBuffer[i] = ch;
pos ++;
i ++;
if (ch == 0)
TexChunk *argValue = new TexChunk(CHUNK_TYPE_STRING);
arg->children.Append((wxObject *)argValue);
argValue->argn = 1;
- argValue->value = copystring(wxBuffer);
+ argValue->value = copystring(wxTex2RTFBuffer);
children.Append((wxObject *)chunk);
}
*
*/
-int ParseMacroBody(char *macro_name, TexChunk *parent,
+int ParseMacroBody(const char *macro_name, TexChunk *parent,
int no_args, char *buffer, int pos,
char *environment, bool parseToBrace,
TexChunk *customMacroArgs)
return FALSE;
}
-TexMacroDef::TexMacroDef(int the_id, char *the_name, int n, bool ig, bool forbidLevel)
+TexMacroDef::TexMacroDef(int the_id, const char *the_name, int n, bool ig, bool forbidLevel)
{
name = copystring(the_name);
no_args = n;
CurrentOutput2 = fd2;
}
-void AddMacroDef(int the_id, char *name, int n, bool ignore, bool forbid)
+void AddMacroDef(int the_id, const char *name, int n, bool ignore, bool forbid)
{
MacroDefs.Put(name, new TexMacroDef(the_id, name, n, ignore, forbid));
}