#define char_box(f, c) char_box_((internal_font_number) (f), (quarterword) (c))
void stack_into_box_(halfword, internal_font_number, quarterword);
#define stack_into_box(b, f, c) stack_into_box_((halfword) (b), (internal_font_number) (f), (quarterword) (c))
-scaled height_plus_depth_(internal_font_number, fquarterword);
-#define height_plus_depth(f, c) height_plus_depth_((internal_font_number) (f), (fquarterword) (c))
+scaled height_plus_depth_(internal_font_number, quarterword);
+#define height_plus_depth(f, c) height_plus_depth_((internal_font_number) (f), (quarterword) (c))
halfword var_delimiter_(halfword, small_number, scaled);
#define var_delimiter(d, s, v) var_delimiter_((halfword) (d), (small_number) (s), (scaled) (v))
halfword rebox_(halfword, scaled);
adjust_tail = 0;
last_badness = 0;
pack_begin_line = 0;
- empty_field.v.RH = 0;
- empty_field.v.LH = 0;
+ empty_field.rh = 0;
+ empty_field.lh = 0;
null_delimiter.b0 = 0;
null_delimiter.b1 = 0;
null_delimiter.b2 = 0;
}
if (cur_cmd >= call)
- incr(mem[cur_chr].hh.v.LH);
+ incr(mem[cur_chr].hh.lh);
if ((a >= 4))
geq_define(p, cur_cmd, cur_chr);
eq_define(p, undefined_cs, 0);
else
{
- incr(mem[q].hh.v.LH);
+ incr(mem[q].hh.lh);
if ((a >= 4))
geq_define(p, call, q);
after_token = 0;
}
}
-
-void bad_formator_pool (char *name, char *defaultname, char *envvar)
-{
- if (name == NULL)
- name = defaultname;
-
- sprintf(log_line, "(Perhaps %s is for an older version of TeX)\n", name);
- show_line(log_line, 0);
- name_of_file[name_length + 1] = '\0';
- sprintf(log_line, "(Alternatively, %s may have been corrupted)\n", name_of_file + 1);
- show_line(log_line, 0);
- name_of_file[name_length + 1] = ' ';
- sprintf(log_line, "(Perhaps your %s environment variable is not set correctly)\n", envvar);
- show_line(log_line, 0);
-
- {
- char *s;
-
- if ((s = grabenv(envvar)) != NULL)
- {
- sprintf(log_line, "(%s=%s)\n", envvar, s);
- show_line(log_line, 0);
- }
- else
- {
- sprintf(log_line, "%s environment variable not set\n", envvar);
- show_line(log_line, 0);
- }
- }
-
-#ifndef _WINDOWS
- fflush(stdout);
-#endif
-}
/* sec 1303 */
bool load_fmt_file (void)
{
sprintf(log_line, "(Fatal format file error; I'm stymied)\n");
show_line(log_line, 1);
- if (!knuth_flag)
- bad_formator_pool(format_file, "the format file", "TEXFORMATS");
-
return false;
}
/* sec 1335 */
if_line = mem[cond_ptr + 1].cint;
cur_if = mem[cond_ptr].hh.b1;
temp_ptr = cond_ptr;
- cond_ptr = mem[cond_ptr].hh.v.RH;
+ cond_ptr = mem[cond_ptr].hh.rh;
free_node(temp_ptr, 2);
}
"---case ", (long) bad);
show_line(log_line, 1);
- if (!knuth_flag)
- bad_formator_pool(format_file, "the format file", "TEXFORMATS");
-
goto lab9999;
}
while (p != 0)
{
decr(dyn_used);
- p = mem[p].hh.v.RH;
+ p = mem[p].hh.rh;
}
dump_int(var_used);
int current_font_mem_size = 0;
/* fmemoryword can be either halfword or memory_word */
-fmemoryword * realloc_font_info (int size)
+memory_word * realloc_font_info (int size)
{
- fmemoryword *newfontinfo = NULL;
+ memory_word *newfontinfo = NULL;
int k, minsize;
int newsize = 0;
int n = 0;
newsize = font_mem_size; /* bump against limit */
/* important + 1 since fmemoryword font_info[font_mem_size + 1] original */
- n = (newsize + 1) * sizeof (fmemoryword);
+ n = (newsize + 1) * sizeof (memory_word);
if (trace_flag)
trace_memory("font_info", n);
- newfontinfo = (fmemoryword *) REALLOC (font_info, n);
+ newfontinfo = (memory_word *) REALLOC (font_info, n);
if (newfontinfo != NULL)
break; /* did we get it ? */
show_line(log_line, 0);
}
- update_statistics ((int) font_info, n, current_font_mem_size * sizeof(fmemoryword));
+ update_statistics ((int) font_info, n, current_font_mem_size * sizeof(memory_word));
current_font_mem_size = newsize;
if (trace_flag)
show_line(log_line, 0);
}
- if (current_buf_size == buf_size) /* arbitrary limit */
+ if (current_buf_size == buf_size)
{
/* memory_error ("buffer", buf_size); */
/* exit (1); */
if (newsize > buf_size)
newsize = buf_size;
- n = (newsize + 1) * sizeof(ASCII_code); /* buffer[buf_size + 1] */
+ n = (newsize + 1) * sizeof(ASCII_code);
if (trace_flag)
trace_memory("buffer", n);
if (current_buf_size == 0)
break; /* initial allocation must work */
- size = size / 2; /* else can retry smaller */
+ size = size / 2;
}
if (newbuffer == NULL)
interaction = error_stop_mode; /* tex mode */
break;
case 'K':
- backwardflag = true; /* 94/Jun/15 */
- knuthify(); /* revert to `standard' Knuth TeX */
+ backwardflag = true;
+ knuthify(); /* revert to `standard' Knuth TeX */
break;
case 'L':
c_style_flag = true; /* C style error msg 94/Mar/21 */
kpse_set_program_name(av[0], NULL);
xputenv("engine", "yandytex");
- if (sizeof(memory_word) != sizeof(integer) * 2)
+ if (sizeof(memory_word) != sizeof(halfword) * 2)
{
sprintf(log_line, "ERROR: Bad word size %d!\n", sizeof(memory_word));
show_line(log_line, 1);
memset(log_line, 0, sizeof(log_line));
- textof = hash[h].v.RH;
+ textof = hash[h].rh;
if (textof == 0)
return;
c1 = *(int *)cp1;
c2 = *(int *)cp2;
- textof1 = hash[c1].v.RH;
- textof2 = hash[c2].v.RH;
+ textof1 = hash[c1].rh;
+ textof2 = hash[c2].rh;
l1 = length(textof1);
l2 = length(textof2);
k1 = str_start[textof1];
if (pass == 1 && csused[h])
continue;
- if (hash[h].v.RH != 0)
+ if (hash[h].rh != 0)
{
if (pass == 0)
csused[h] = 1;
if (pass == 1 && csused[h])
continue;
- if (hash[h].v.RH != 0)
+ if (hash[h].rh != 0)
cnumtable[ccount++] = h;
}
print_char(' ');
print_scaled(round(65536L * w.gr));
print_ln();
- print_int(w.hh.v.LH);
+ print_int(w.hh.lh);
print_char('=');
print_int(w.hh.b0);
print_char(':');
print_int(w.hh.b1);
print_char(';');
- print_int(w.hh.v.RH);
+ print_int(w.hh.rh);
print_char(' ');
print_int(w.qqqq.b0);
print_char(':');
print_int(w.qqqq.b3);
}
/* need this version only if SHORTFONTINFO defined */
-void zprintfword(fmemoryword w)
+void zprintfword(memory_word w)
{
print_int(w.cint);
print_char(' ');
print_char(' ');
print_scaled(round(65536L * w.gr));
print_ln();
- print_int(w.hh.v.LH);
+ print_int(w.hh.lh);
print_char('=');
print_int(w.hh.b0);
print_char(':');
print_int(w .hh.b1);
print_char(';');
- print_int(w.hh.v.RH);
+ print_int(w.hh.rh);
print_char(' ');
print_int(w.qqqq.b0);
print_char(':');
{
q = p + node_size(p);
- while ((mem[q].hh.v.RH == empty_flag))
+ while ((mem[q].hh.rh == empty_flag))
{
t = rlink(q);
str_pool[pool_ptr] = 46;
incr(pool_ptr);
}
- show_node_list(mem[p + 5].hh.v.RH);
+ show_node_list(mem[p + 5].hh.rh);
decr(pool_ptr);
}
}
str_pool[pool_ptr] = 46;
incr(pool_ptr);
}
- show_node_list(mem[p + 4].hh.v.LH);
+ show_node_list(mem[p + 4].hh.lh);
decr(pool_ptr);
}
}
str_pool[pool_ptr] = 46;
incr(pool_ptr);
}
- show_node_list(mem[p + 1].hh.v.RH);
+ show_node_list(mem[p + 1].hh.rh);
decr(pool_ptr);
}
}
str_pool[pool_ptr] = 46;
incr(pool_ptr);
}
- show_node_list(mem[p + 1].hh.v.LH);
+ show_node_list(mem[p + 1].hh.lh);
decr(pool_ptr);
}
{
str_pool[pool_ptr]= 124;
incr(pool_ptr);
}
- show_node_list(mem[p + 1].hh.v.RH);
+ show_node_list(mem[p + 1].hh.rh);
decr(pool_ptr);
}
break;
break;
case glue_node:
{
- if (mem[mem[p + 1].hh.v.LH].hh.v.RH == 0)
- free_node(mem[p + 1].hh.v.LH, 4);
+ if (mem[mem[p + 1].hh.lh].hh.rh == 0)
+ free_node(mem[p + 1].hh.lh, 4);
else
- decr(mem[mem[p + 1].hh.v.LH].hh.v.RH);
+ decr(mem[mem[p + 1].hh.lh].hh.rh);
}
if (leader_ptr(p) != 0)
case 1:
{
print_nl("spacefactor ");
- print_int(a.hh.v.LH);
+ print_int(a.hh.lh);
if (m > 0)
{
- if (a.hh.v.RH > 0)
+ if (a.hh.rh > 0)
{
print_string(", current language ");
- print_int(a.hh.v.RH);
+ print_int(a.hh.rh);
}
}
}
print_char('=');
print_esc("");
- print(hash[font_id_base + equiv(n)].v.RH);
+ print(hash[font_id_base + equiv(n)].rh);
}
else
if (n < math_code_base)
{
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = mem[t].hh.v.LH;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = mem[t].hh.lh;
p = q;
}
q = get_avail();
else
{
- avail = mem[q].hh.v.RH;
- mem[q].hh.v.RH = 0;
+ avail = mem[q].hh.rh;
+ mem[q].hh.rh = 0;
#ifdef STAT
incr(dyn_used);
#endif /* STAT */
}
}
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
}
{
q = get_avail();
- mem[p].hh.v.RH = q; /* p may be used without having ... */
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q; /* p may be used without having ... */
+ mem[q].hh.lh = cur_tok;
p = q;
}
}
if (cur_cs == 0)
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
}
{
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
if (cur_val == fmem_ptr)
{
print_err("Font ");
-/* print_esc(hash[(hash_size + 524) + f].v.RH); */
+/* print_esc(hash[(hash_size + 524) + f].rh); */
print_esc(""); print(font_id_text(f));
print_string(" has only ");
print_int(font_params[f]);
}
{
- cur_val = eqtb[m].hh.v.RH;
+ cur_val = eqtb[m].hh.rh;
cur_val_level = tok_val;
}
}
case assign_glue:
{
- cur_val = eqtb[m].hh.v.RH;
+ cur_val = eqtb[m].hh.rh;
cur_val_level = glue_val;
}
break;
case assign_mu_glue:
{
- cur_val = eqtb[m].hh.v.RH;
+ cur_val = eqtb[m].hh.rh;
cur_val_level = mu_val;
}
break;
q = get_avail();
else
{
- avail = mem[q].hh.v.RH;
- mem[q].hh.v.RH = 0;
+ avail = mem[q].hh.rh;
+ mem[q].hh.rh = 0;
#ifdef STAT
incr(dyn_used);
#endif /* STAT */
}
}
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = t;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = t;
p = q;
}
incr(k);
if (cur_val_level == ident_val)
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cs_token_flag + cur_val;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cs_token_flag + cur_val;
p = q;
}
else if (cur_val != 0)
q = get_avail();
else
{
- avail = mem[q].hh.v.RH;
- mem[q].hh.v.RH = 0;
+ avail = mem[q].hh.rh;
+ mem[q].hh.rh = 0;
#ifdef STAT
incr(dyn_used);
#endif /* STAT */
}
}
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = mem[r].hh.v.LH;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = mem[r].hh.lh;
p = q;
}
r = link(r);
hashbrace = cur_tok;
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = end_match_token;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = end_match_token;
p = q;
}
goto lab30;
}
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
}
lab31:
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = end_match_token;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = end_match_token;
p = q;
}
}
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
}
if (hashbrace != 0)
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = hashbrace;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = hashbrace;
p = q;
}
Result = p;
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = end_match_token;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = end_match_token;
p = q;
}
{
q = get_avail();
- mem[p].hh.v.RH = q;
- mem[q].hh.v.LH = cur_tok;
+ mem[p].hh.rh = q;
+ mem[q].hh.lh = cur_tok;
p = q;
}
}
internal_font_number f;
internal_font_number g;
eight_bits a, b, c, d;
- ffour_quarters qw;
+ four_quarters qw;
scaled sw;
integer bch_label;
short bchar;
/* glue_ord o; */
int o; /* 95/Jan/7 */
internal_font_number f;
- ffour_quarters i;
+ four_quarters i;
eight_bits hd;
last_badness = 0;
/* sec 0709 */
halfword char_box_(internal_font_number f, quarterword c)
{
- ffour_quarters q;
+ four_quarters q;
eight_bits hd;
halfword b, p;
height(b) = height(p);
}
/* sec 0712 */
-scaled height_plus_depth_(internal_font_number f, fquarterword c)
+scaled height_plus_depth_(internal_font_number f, quarterword c)
{
- ffour_quarters q;
+ four_quarters q;
eight_bits hd;
q = char_info(f, c);
integer m, n;
scaled u;
scaled w;
- ffour_quarters q;
- ffour_quarters r;
+ four_quarters q;
+ four_quarters r;
eight_bits hd;
/* small_number z; */
int z; /* 95/Jan/7 */
integer a;
quarterword c;
internal_font_number f;
- ffour_quarters i;
+ four_quarters i;
scaled s;
scaled h;
scaled delta;
scaled delta;
halfword p, v, x, y, z;
quarterword c;
- ffour_quarters i;
+ four_quarters i;
scaled shift_up, shift_down;
if ((subtype(q) == normal) && (cur_style < text_style))
{
halfword p;
halfword t;
- ffour_quarters q;
+ four_quarters q;
halfword cur_rh;
halfword test_char;
scaled w;
{
if (ligature_present)
{
- p = new_ligature(hf, cur_l, mem[cur_q].hh.v.RH);
+ p = new_ligature(hf, cur_l, mem[cur_q].hh.rh);
if (lft_hit)
{
incr(mem[p].hh.b1);
rt_hit = false;
} */ /* removed 99/Jan/6 */
- mem[cur_q].hh.v.RH = p;
+ mem[cur_q].hh.rh = p;
t = p;
ligature_present = false;
}
if (lig_stack != 0) /* BUG FIX */
{
- if (mem[lig_stack + 1].hh.v.RH != 0) /* l.17828 ? */
+ if (mem[lig_stack + 1].hh.rh != 0) /* l.17828 ? */
{
- mem[t].hh.v.RH = mem[lig_stack + 1].hh.v.RH;
- t = mem[t].hh.v.RH;
+ mem[t].hh.rh = mem[lig_stack + 1].hh.rh;
+ t = mem[t].hh.rh;
incr(j);
}
p = lig_stack;
- lig_stack = mem[p].hh.v.RH;
+ lig_stack = mem[p].hh.rh;
free_node(p, 2);
if (lig_stack == 0) /* if lig_stack=null ? */
{
major_tail = r;
r_count = 0;
- while (mem[major_tail].hh.v.RH != 0)
+ while (mem[major_tail].hh.rh != 0)
{
major_tail = link(major_tail);
incr(r_count);
j = reconstitute(j, hn, bchar, non_char) + 1;
link(major_tail) = link(hold_head);
- while (mem[major_tail].hh.v.RH != 0)
+ while (mem[major_tail].hh.rh != 0)
{
major_tail = link(major_tail);
incr(r_count);
halfword p, q, r;
internal_font_number f;
scaled a, h, x, w, delta;
- ffour_quarters i;
+ four_quarters i;
scan_char_num();
f = cur_font;
lig_stack = get_avail();
else
{
- avail = mem[lig_stack].hh.v.RH;
- mem[lig_stack].hh.v.RH = 0;
+ avail = mem[lig_stack].hh.rh;
+ mem[lig_stack].hh.rh = 0;
#ifdef STAT
incr(dyn_used);
#endif /* STAT */
lig_stack = get_avail();
else
{
- avail = mem[lig_stack].hh.v.RH;
- mem[lig_stack].hh.v.RH = 0;
+ avail = mem[lig_stack].hh.rh;
+ mem[lig_stack].hh.rh = 0;
#ifdef STAT
incr(dyn_used);
#endif /* STAT */
print_word(mem[n]);
break;
case 2 :
- print_int(mem[n].hh.v.LH);
+ print_int(mem[n].hh.lh);
break;
case 3 :
- print_int(mem[n].hh.v.RH);
+ print_int(mem[n].hh.rh);
break;
case 4 :
print_word(eqtb[n]);
#define max_quarterword 255
#endif
-/* #define default_mem_top 262140L */ /* usual big TeX allocation 2 Meg bytes */
+#define default_mem_top 262140L /* usual big TeX allocation 2 Meg bytes */
/* #define default_mem_top 131070L */ /* usual big TeX allocation 1 Meg bytes */
-#define default_mem_top 65534L /* usual small TeX allocation 0.5 Meg */
+/* #define default_mem_top 65534L */ /* usual small TeX allocation 0.5 Meg */
-/* mem_bot smallest index in mem array dumped by iniTeX mem_top >= mem_min */
#define mem_bot 0
#ifdef ALLOCATEMAIN
#define mem_top 262140L
#endif
-/* *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** */
-/* mem_max == mem_top in iniTeX, otherwise mem_max >= mem_top */
-/* if ALLOCATEMAIN is true, then mem_max is a variable */
-/* otherwise it is a pre-processor defined constant */
#ifdef ALLOCATEMAIN
EXTERN integer mem_max;
#else
-/* #define mem_max 262140L */
#define mem_max mem_top
#endif
-/* *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** */
-/* if ALLOCATEMAIN is true, then mem_min is a variable */
-/* otherwise it is a pre-processor defined constant */
-/* mem_min == mem_bot in iniTeX, otherwise mem_min <= mem_bot */
#ifdef ALLOCATEMAIN
EXTERN integer mem_min;
#else
#ifdef ALLOCATEBUFFER
#define initial_buf_size 1000
#define increment_buf_size 2000
- #define buf_size 2000000L /* arbitrary limit <= max_halfword */
+ #define buf_size 2000000L
EXTERN ASCII_code * buffer;
#else
#define buf_size 20000
- EXTERN ASCII_code buffer[buf_size + 4]; /* padded out to ... + 4 */
+ EXTERN ASCII_code buffer[buf_size + 4];
#endif
+
EXTERN integer first;
EXTERN integer last;
EXTERN integer max_buf_stack;
#define max_in_open 15
#endif
-/* maximum internal font number - cannot be greated than max_quarterword! */
#ifdef INCREASEFONTS
#define font_max 1023
#else
#define font_max 255
#endif
-/* *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** */
-/* free the limit on font memory ! */
#ifdef ALLOCATEFONT
#define font_mem_size (max_halfword / sizeof(memory_word) - 1)
#else
#define font_mem_size 100000L
#endif
-/* below is new dynamic allocation - bkph 93/Nov/28 */
#ifdef ALLOCATEFONT
#define initial_font_mem_size 20000
#define increment_font_mem_size 40000
#define trie_size 30000
#endif
-/* increase trie_op to accomadate more hyphenation patterns 96/OCt/12 */
#ifdef INCREASETRIEOP
#define trie_op_size 3001
#define neg_trie_op_size -3001
#define max_trie_op 500
#endif
-/* dvi_buf_size must be multiple of 8 - half is written out at a time */
#ifdef ALLOCATEDVIBUF
#define default_dvi_buf_size 16384
EXTERN int dvi_buf_size;
#define dvi_buf_size 16384
#endif
-/* size of hash table for control sequence name < (mem_max - mem_min) / 10 */
/* #define hash_size 9500 */
/* #define hash_size 25000 */
#define hash_size 32768
/* min_halfword = 0 and double max_halfword ? */
/* typedef unsigned long halfword; NO NO: since mem_min may be < 0 */
/* sec 0113 */
-typedef integer halfword;
+typedef long halfword;
typedef char two_choices;
typedef char four_choices;
/* sec 0113 */
EXTERN char * pdf_file_name;
EXTERN char * log_file_name;
-
-#ifdef SHORTFONTINFO
-#else
- /* go back to original definition as TeX memory word */
- #undef fmemoryword
- #define fmemoryword memory_word
- /* go back to original definition as four_quarters of a TeX word */
- #undef ffour_quarters
- #define ffour_quarters four_quarters
- /* go back to original definition as quaterword */
- #undef fquarterword
- #define fquarterword quarterword
-#endif
-
#ifdef ALLOCATEFONT
- EXTERN fmemoryword * font_info;
+ EXTERN memory_word * font_info;
#else
- EXTERN fmemoryword font_info[font_mem_size + 1];
+ EXTERN memory_word font_info[font_mem_size + 1];
#endif
EXTERN font_index fmem_ptr;
EXTERN internal_font_number font_ptr;
EXTERN internal_font_number frozen_font_ptr;
-EXTERN ffour_quarters font_check[font_max + 1];
+EXTERN four_quarters font_check[font_max + 1];
EXTERN scaled font_size[font_max + 1];
EXTERN scaled font_dsize[font_max + 1];
EXTERN font_index font_params[font_max + 1];
EXTERN integer kern_base[font_max + 1];
EXTERN integer exten_base[font_max + 1];
EXTERN integer param_base[font_max + 1];
-EXTERN ffour_quarters null_character;
+EXTERN four_quarters null_character;
EXTERN integer total_pages;
EXTERN scaled max_v;
EXTERN scaled max_h;
EXTERN bool mlist_penalties;
EXTERN internal_font_number cur_f;
EXTERN int cur_c;
-EXTERN ffour_quarters cur_i;
+EXTERN four_quarters cur_i;
EXTERN integer magic_offset;
EXTERN halfword cur_align;
EXTERN halfword cur_span;
EXTERN bool output_active;
EXTERN internal_font_number main_f;
-EXTERN ffour_quarters main_i;
-EXTERN ffour_quarters main_j;
+EXTERN four_quarters main_i;
+EXTERN four_quarters main_j;
EXTERN font_index main_k;
EXTERN halfword main_p;
in_state_record * realloc_input_stack (int);
halfword * realloc_param_stack (int);
ASCII_code * realloc_buffer (int);
-fmemoryword * realloc_font_info (int);
+memory_word * realloc_font_info (int);
int realloc_hyphen (int);
int allocate_tries (int);
*/
/*
- meaning structure @TeX @draft
+ meaning structure TeX Y&Y TeX
----------------------------------------------------------------------
integer | int || 4: long | 8: long long | min_quarterword 0
---------------------------------------------------------------------- max_quarterword FFFF
- scaled | sc || 4: long | 8: long long | min_halfword
+ scaled | sc || 4: long | 8: long long | min_halfword
----------------------------------------------------------------------
glue_ratio | gr || 4: float | 8: double |
----------------------------------------------------------------------
----------------------------------------------------------------------
*/
-typedef union
+typedef struct
{
- struct
- {
#ifdef WORDS_BIGENDIAN
- halfword RH, LH;
-#else
- halfword LH, RH;
-#endif
- } v;
+ halfword rh;
- struct
+ union
{
-#ifdef WORDS_BIGENDIAN
- halfword junk;
- quarterword B0, B1;
-#else /* not WORDS_BIGENDIAN */
- /* If 32-bit TeX/MF, have to have an extra two bytes of junk.
- I would like to break this line, but I'm afraid that some
- preprocessors don't properly handle backslash-newline in # commands. */
-#if (defined (TeX) && !defined (SMALLTeX)) || !defined (TeX) && !defined (SMALLMF)
- quarterword junkx, junky;
-#endif /* big TeX or big MF */
- quarterword B1, B0;
-#endif /* not WORDS_BIGENDIAN */
- } u;
-} two_halves;
+ halfword lh;
-/* new in Y&Y TeX 1.3 1996/Jan/18 used for hash [...] if SHORTHASH defined */
-typedef struct {
- struct
- {
-#ifdef WORDS_BIGENDIAN
- quarterword RH, LH;
-#else
- quarterword LH, RH;
+ struct
+ {
+ quarterword b0, b1;
+ };
+ };
#endif
- } v;
-} htwo_halves;
+} two_halves;
typedef struct
{
- struct
- {
#ifdef WORDS_BIGENDIAN
- quarterword B0, B1, B2, B3;
+ quarterword b0, b1, b2, b3;
#else
- quarterword B3, B2, B1, B0;
+ quarterword b3, b2, b1, b0;
#endif
- } u;
} four_quarters;
-
typedef union
{
-#ifdef TeX
glue_ratio gr;
two_halves hh;
-#else
- two_halves hhfield;
-#endif
#ifdef WORDS_BIGENDIAN
integer cint;
four_quarters qqqq;
#endif /* not WORDS_BIGENDIAN */
} memory_word;
-/* Attempt to reduce size of font_info array ... (and hence format files) */
-
-typedef struct
-{
- struct
- {
-#ifdef WORDS_BIGENDIAN
- unsigned char B0, B1, B2, B3;
-#else
- unsigned char B3, B2, B1, B0;
-#endif
- } u;
-} ffour_quarters;
-
-#define fquarterword unsigned char
-
-typedef union
-{
- integer cint;
- ffour_quarters qqqq;
-} fmemoryword;
-
-/* To keep the original structure accesses working, we must go through
- the extra names C forced us to introduce. */
-#define b0 u.B0
-#define b1 u.B1
-#define b2 u.B2
-#define b3 u.B3
-
#ifndef WORDS_BIGENDIAN
#define cint u.CINT
#define qqqq v.QQQQ
#define pointer halfword
#define null min_halfword
/* sec 0118 */
-#define link(p) mem[(p)].hh.v.RH
-#define info(p) mem[(p)].hh.v.LH
+#define link(p) mem[(p)].hh.rh
+#define info(p) mem[(p)].hh.lh
/* sec 0124 */
#define empty_flag max_halfword
#define is_empty(a) (link(a) = empty_flag)
#define tail cur_list.tail_field
#define aux cur_list.aux_field
#define prev_depth aux.cint
-#define space_factor aux.hh.v.LH
-#define clang aux.hh.v.RH
+#define space_factor aux.hh.lh
+#define clang aux.hh.rh
#define incompleat_noad aux.cint
#define prev_graf cur_list.pg_field
#define mode_line cur_list.ml_field
/* sec 0221 */
#define eq_level_field(a) a.hh.b1
#define eq_type_field(a) a.hh.b0
-#define equiv_field(a) a.hh.v.RH
+#define equiv_field(a) a.hh.rh
#define eq_level(a) eq_level_field(eqtb[a])
#define eq_type(a) eq_type_field(eqtb[a])
#define equiv(a) equiv_field(eqtb[a])
#define v_offset dimen_par(v_offset_code)
#define emergency_stretch dimen_par(emergency_stretch_code)
/* sec 0256 */
-#define text(a) hash[a].v.RH
-#define next(a) hash[a].v.LH
+#define text(a) hash[a].rh
+#define next(a) hash[a].lh
#define hash_is_full (hash_used == hash_base)
#define font_id_text(a) text(font_id_base + a)
/* sec 0268 */
#define save_type(a) save_stack[a].hh.b0
#define save_level(a) save_stack[a].hh.b1
-#define save_index(a) save_stack[a].hh.v.RH
+#define save_index(a) save_stack[a].hh.rh
#define restore_old_value 0
#define restore_zero 1
#define insert_token 2
#define WORDS_BIGENDIAN 0
//#pragma warning(disable:4032)
+#pragma warning(disable:4201)
#pragma warning(disable:4996) //
#pragma warning(disable:4701) //
//#pragma warning(disable:4100)
#include "hpdf.h"
#include "hpdf_utils.h"
-typedef int integer;
+typedef long long integer;
typedef double glue_ratio;
typedef boolean bool;
typedef double real;
#define a_open_out(f) open_output (&(f), FOPEN_W_MODE)
#define a_close(f) check_fclose (f)
-#define MAXLINE 256 // for log_line buffer
+#define MAXLINE 256
extern bool trace_flag;
extern bool open_trace_flag;