summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/omegafonts/print_routines.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/omegafonts/print_routines.c')
-rw-r--r--Build/source/texk/web2c/omegafonts/print_routines.c411
1 files changed, 411 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/omegafonts/print_routines.c b/Build/source/texk/web2c/omegafonts/print_routines.c
new file mode 100644
index 00000000000..2a17e955f4f
--- /dev/null
+++ b/Build/source/texk/web2c/omegafonts/print_routines.c
@@ -0,0 +1,411 @@
+/* print_routines.c: higher-level routines for printing OPL and OVP files.
+
+This file is part of Omega,
+which is based on the web2c distribution of TeX,
+
+Copyright (c) 1994--2001 John Plaice and Yannis Haralambous
+
+Omega is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Omega is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Omega; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+*/
+
+#include "cpascal.h"
+#include "list_routines.h"
+#include "manifests.h"
+#include "print_routines.h"
+#include "header_routines.h"
+#include "out_routines.h"
+#include "error_routines.h"
+#include "omfonts.h"
+
+void
+print_check_sum(void)
+{
+ left();
+ out("CHECKSUM");
+ out(" "); out_num(check_sum);
+ right();
+}
+
+void
+print_design_size(void)
+{
+ left();
+ out("DESIGNSIZE");
+ out(" "); out_fix(design_size);
+ right();
+}
+
+void
+print_coding_scheme(void)
+{
+ left();
+ out("CODINGSCHEME");
+ out(" "); out(coding_scheme);
+ right();
+}
+
+void
+print_family(void)
+{
+ left();
+ out("FAMILY");
+ out(" "); out(family);
+ right();
+}
+
+void
+print_face(void)
+{
+ left();
+ out("FACE");
+ out(" ");
+ if ((face >= F_MIN) && (face <= F_MAX)) print_xerox_face(face);
+ else out_num(face);
+ right();
+}
+
+void
+print_seven_bit_safe_flag(void)
+{
+ left();
+ out("SEVENBITSAFEFLAG"); out(" ");
+ if (seven_bit == 1) out("TRUE");
+ else if (seven_bit == 0) out("FALSE");
+ else internal_error_1("print_seven_bit_safe_flag (seven_bit=%d)", seven_bit);
+ right();
+
+}
+
+void
+print_font_dimension(void)
+{
+ left();
+ out("FONTDIMEN"); out_ln();
+}
+
+void
+print_boundary_char(unsigned val)
+{
+ left();
+ out("BOUNDARYCHAR");
+ out(" "); out_char(val); right();
+}
+
+void
+print_ligature_table(void)
+{
+ left();
+ out("LIGTABLE"); out_ln();
+}
+
+void
+print_character(unsigned val)
+{
+ left();
+ out("CHARACTER");
+ out(" "); out_char(val); out_ln();
+}
+
+void
+print_parameter(unsigned parameter, fix fval)
+{
+ left();
+ if ((font_type==FT_MATHSY) &&
+ (parameter>=P_MATHSY_MIN) &&
+ (parameter<=P_MATHSY_MAX)) {
+ out_named_mathsy_parameter(parameter);
+ } else if ((font_type==FT_MATHEX) &&
+ (parameter>=P_MATHEX_MIN) &&
+ (parameter<=P_MATHEX_MAX)) {
+ out_named_mathex_parameter(parameter);
+ } else if (parameter<=P_MAX) {
+ out_named_parameter(parameter);
+ } else {
+ out("PARAMETER"); out(" "); out_int(parameter,10);
+ }
+ out(" "); out_fix(fval);
+ right();
+}
+
+void
+print_label_command(unsigned val)
+{
+ left();
+ out("LABEL"); out(" ");
+ if (val == -1) out("BOUNDARYCHAR");
+ else out_char(val);
+ right();
+}
+
+void
+print_ligature_command(unsigned command, unsigned val1, unsigned val2)
+{
+ left();
+ out_ligature_command(command);
+ out(" "); out_char(val1);
+ out(" "); out_char(val2);
+ right();
+}
+
+void
+print_kerning_command(unsigned val, fix fval)
+{
+ left();
+ out("KRN");
+ out(" "); out_char(val);
+ out(" "); out_fix(fval);
+ right();
+}
+
+void
+print_stop_command(void)
+{
+ left();
+ out("STOP");
+ right();
+}
+
+void
+print_skip_command(unsigned val)
+{
+ left();
+ out("SKIP");
+ out(" "); out_int(val,10);
+ right();
+}
+
+void
+print_character_measure(unsigned measure, fix fval)
+{
+ left();
+ out_character_measure(measure);
+ out(" "); out_fix(fval);
+ right();
+}
+
+void
+print_next_larger(unsigned val)
+{
+ left();
+ out("NEXTLARGER");
+ out(" "); out_char(val);
+ right();
+}
+
+void
+print_var_character(void)
+{
+ left(); out("VARCHAR"); out_ln();
+}
+
+void
+print_extensible_piece(unsigned piece, unsigned val)
+{
+ left();
+ out_extensible_piece(piece);
+ out(" "); out_char(val);
+ right();
+}
+
+/* Primitives used in VF and OVF files */
+
+void
+print_vtitle(string sval)
+{
+ left();
+ out("VTITLE");
+ out(" "); out(sval);
+ right();
+}
+
+void
+print_map_font(unsigned val)
+{
+ left();
+ out("MAPFONT");
+ out(" "); out_int(val,10); out_ln();
+}
+
+void
+print_font_name(string sval)
+{
+ left();
+ out("FONTNAME");
+ out(" "); out(sval);
+ right();
+}
+
+void
+print_font_area(string sval)
+{
+ left();
+ out("FONTAREA");
+ out(" "); out(sval);
+ right();
+}
+
+void
+print_font_check_sum(unsigned val)
+{
+ left();
+ out("FONTCHECKSUM");
+ out(" "); out_num(val);
+ right();
+}
+
+void
+print_font_at(fix fval)
+{
+ left();
+ out("FONTAT");
+ out(" "); out_fix(fval);
+ right();
+}
+
+void
+print_font_design_size(fix fval)
+{
+ left();
+ out("FONTDSIZE");
+ out(" "); out_fix(fval);
+ right();
+}
+
+void
+print_map(void)
+{
+ left(); out("MAP"); out_ln();
+}
+
+void
+print_select_font(unsigned val)
+{
+ left();
+ out("SELECTFONT");
+ out(" "); out_int(val,10);
+ right();
+}
+
+void
+print_set_char(unsigned val)
+{
+ left();
+ out("SETCHAR");
+ out(" "); out_char(val);
+ right();
+}
+
+void
+print_put_char(unsigned val)
+{
+ left();
+ out("PUTCHAR");
+ out(" "); out_char(val);
+ right();
+}
+
+void
+print_set_rule(fix fval1, fix fval2)
+{
+ left();
+ out("SETRULE");
+ out(" "); out_fix(fval1);
+ out(" "); out_fix(fval2);
+ right();
+}
+
+void
+print_put_rule(fix fval1, fix fval2)
+{
+ left();
+ out("PUTRULE");
+ out(" "); out_fix(fval1);
+ out(" "); out_fix(fval2);
+ right();
+}
+
+void
+print_push(void)
+{
+ left(); out("PUSH"); right();
+}
+
+void
+print_pop(void)
+{
+ left(); out("POP"); right();
+}
+
+void
+print_move(unsigned direction, fix fval)
+{
+ left();
+ out_move_direction(direction);
+ out(" "); out_fix(fval);
+ right();
+}
+
+void
+print_special(string sval)
+{
+ left();
+ out("SPECIAL");
+ out(" "); out(sval);
+ right();
+}
+
+void
+print_special_hex(unsigned char *special, int k)
+{
+ left();
+ out("SPECIALHEX ");
+ for (; k > 0; k--, special++) {
+ if ((k & 0x1f) == 0)
+ out_ln();
+ else if ((k & 0x03) == 0)
+ out(" ");
+ out_hex(*special);
+ }
+ right();
+}
+
+/* Primitives used in OPL and OVF files */
+
+void
+print_character_repeat(unsigned val1, unsigned val2)
+{
+ left();
+ out("CHARREPEAT");
+ out(" "); out_char(val1);
+ out(" "); out_char(val2); out_ln();
+}
+
+void
+print_ofm_level(unsigned val)
+{
+ left();
+ out("OFMLEVEL");
+ out(" "); out_int(val,16);
+ right();
+}
+
+void
+print_font_dir(unsigned val)
+{
+ left();
+ out_type_direction(val);
+ right();
+}