3
#define xmark_kb_size 20000
4
#define xmark_kb_min 250000
6
static char *xmarkBuffer=NULL, *xmarkBufferPtr=NULL;
7
static void *xmarkSave=NULL;
9
int xmark_printf(FILE *stream, const char *format, ...) {
12
xmarkBufferPtr+=vsprintf(xmarkBufferPtr,format,ap);
16
static ObjDesc *xmarkRoot;
18
char *xmark_init(unsigned long size) {
19
scale_factor=(1.*size/10000);
20
if (correction) scale_factor=correction(scale_factor);
22
xmlprintf=xmark_printf;
25
if (size<xmark_kb_min) size=xmark_kb_min;
26
xmarkBuffer = (char*)malloc(size*sizeof(char));
27
xmarkSave = malloc(sizeof(objs));
28
if ((!xmarkBuffer)||(!xmarkSave)) {
29
fprintf(stderr,"Can't allocate memory!");
32
memcpy(xmarkSave,objs,sizeof(objs));
38
if (xmarkBuffer) free(xmarkBuffer);
39
if (xmarkSave) free(xmarkSave);
44
if (dtd) document_type=2;
46
xmarkBufferPtr=xmarkBuffer;
48
memcpy(objs,xmarkSave,sizeof(objs));
52
FixSetSize(xmarkRoot);
54
FixReferenceSets(xmarkRoot);
58
if (InitHook) InitHook();
59
Preamble(document_type);
60
GenSubtree(xmarkRoot);
61
return xmarkBufferPtr-xmarkBuffer;
65
Functions: Usage should be removed
66
Symbols: Debug should be removed