extern char *RTFCharset;
// This is defined in the Tex2Any library and isn't in use after parsing
extern char *BigBuffer;
+
+
+extern wxHashTable TexReferences;
+
+
// Are we in verbatim mode? If so, format differently.
static bool inVerbatim = FALSE;
{
OutputCurrentSectionToString(wxBuffer);
- int i;
+ unsigned int i;
for (i = 0; i < strlen(wxBuffer); i++)
if (wxBuffer[i] == ':')
wxBuffer[i] = ' ';
SplitIndexEntry(s, buf1, buf2);
// Check for ':' which messes up index
- int i;
+ unsigned int i;
for (i = 0; i < strlen(buf1) ; i++)
if (buf1[i] == ':')
buf1[i] = ' ';
i += 1;
changed = TRUE;
}
- else if (inVerbatim && (ch == '{' || ch == '}')) // Escape the curly bracket
+ else if (inVerbatim && (ch == '{' || ch == '}')) // Escape the curley bracket
{
BigBuffer[ptr] = '\\'; ptr ++;
BigBuffer[ptr] = ch; ptr ++;
else
{
TexOutput("??");
- sprintf(buf, "Warning: unresolved reference %s.", refName);
+ sprintf(buf, "Warning: unresolved reference '%s'", refName);
OnInform(buf);
}
}
// Convert points to TWIPS (1 twip = 1/20th of point)
imageWidth = (int)(20*(tok1 ? ParseUnitArgument(tok1) : 0));
imageHeight = (int)(20*(tok2 ? ParseUnitArgument(tok2) : 0));
+ if (imageDimensions) // glt
+ delete [] imageDimensions;
return FALSE;
}
else if (start && (arg_no == 2 ))
sprintf(buf, "Warning: could not find a BMP or WMF equivalent for %s.", filename);
OnInform(buf);
}
+ if (filename) // glt
+ delete [] filename;
}
else // linear RTF
{
bool RTFGo(void)
{
+ if (stopRunning)
+ return FALSE;
+
// Reset variables
indentLevel = 0;
forbidParindent = 0;
SetCurrentOutput(Chapters);
+ if (stopRunning)
+ return FALSE;
+
OnInform("Converting...");
TraverseDocument();
{
wxConcatFiles("header.rtf", "chapters.rtf", "tmp1.rtf");
Tex2RTFYield(TRUE);
- if (FileExists(OutputFile)) wxRemoveFile(OutputFile);
- wxCopyFile("tmp1.rtf", OutputFile);
+ if (FileExists(OutputFile))
+ wxRemoveFile(OutputFile);
+
+ char *cwdStr;
+ cwdStr = wxGetWorkingDirectory();
+
+ wxString outputDirStr;
+ outputDirStr = wxPathOnly(OutputFile);
+
+ // Determine if the temp file and the output file are in the same directory,
+ // and if they are, then just rename the temp file rather than copying
+ // it, as this is much faster when working with large (multi-megabyte files)
+ if ((wxStrcmp(outputDirStr.c_str(),"") == 0) || // no path specified on output file
+ (wxStrcmp(cwdStr,outputDirStr.c_str()) == 0)) // paths do not match
+ {
+ wxRenameFile("tmp1.rtf", OutputFile);
+ }
+ else
+ {
+ wxCopyFile("tmp1.rtf", OutputFile);
+ }
+ delete [] cwdStr;
Tex2RTFYield(TRUE);
wxRemoveFile("tmp1.rtf");
}