Back to index

tetex-bin  3.0
char_routines.h
Go to the documentation of this file.
00001 /* char_routines.h: Data structures for character information
00002 
00003 This file is part of Omega,
00004 which is based on the web2c distribution of TeX,
00005 
00006 Copyright (c) 1994--2001 John Plaice and Yannis Haralambous
00007 
00008 Omega is free software; you can redistribute it and/or modify
00009 it under the terms of the GNU General Public License as published by
00010 the Free Software Foundation; either version 2 of the License, or
00011 (at your option) any later version.
00012 
00013 Omega is distributed in the hope that it will be useful,
00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 GNU General Public License for more details.
00017 
00018 You should have received a copy of the GNU General Public License
00019 along with Omega; if not, write to the Free Software Foundation, Inc.,
00020 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
00021 
00022 */
00023 
00024 typedef struct char_entry_struct {
00025     in_list indices[C_MAX+1];
00026     unsigned index_indices[C_MAX+1];
00027     unsigned c;
00028     unsigned copies;
00029     unsigned tag;
00030     unsigned remainder;
00031     unsigned defined;
00032     unsigned accent;
00033     unsigned *extens;
00034     unsigned ovf_packet_length;
00035     unsigned char *ovf_packet;
00036 } char_entry;
00037 
00038 extern char_entry *current_character;
00039 extern char_entry *current_secondary_character;
00040 
00041 extern void print_characters(boolean);
00042 extern void init_character(unsigned, char_entry *);
00043 extern void copy_characters(unsigned, unsigned);
00044 extern void init_planes(void);
00045 
00046 extern void ensure_existence(unsigned);
00047 extern void check_char_tag(unsigned);
00048 extern void set_char_tag(unsigned,unsigned);
00049 extern void set_char_remainder(unsigned,unsigned);
00050 extern void set_next_larger(unsigned);
00051 extern void init_var_character(void);
00052 
00053 typedef struct label_entry_struct {
00054     int rr;
00055     int cc;
00056 } label_entry;
00057 
00058 extern unsigned no_labels;
00059 extern label_entry *label_table;
00060 extern int label_ptr, sort_ptr;
00061 extern int lk_offset;
00062 extern boolean extra_loc_needed;
00063 
00064 
00065 extern void check_and_correct(void);
00066 extern void finalize_dimension_lists(void);
00067 extern void check_existence_all_character_fields(void);
00068 extern void check_charlist_infinite_loops(void);
00069 
00070 extern void adjust_labels(boolean);
00071 extern void print_labels(void);
00072 extern void set_extensible_piece(unsigned,unsigned);
00073 extern void check_existence_and_safety(unsigned,unsigned,string,string);
00074 extern void clear_ligature_entries(void);
00075 extern void doublecheck_extens(void);
00076 extern void print_extens(void);
00077 extern void build_exten_table(void);
00078 extern void retrieve_exten_table(unsigned char *);
00079 extern void doublecheck_existence(unsigned, string,string);
00080 extern void output_ovf_chars(void);
00081 extern void print_packet(unsigned char *, unsigned);
00082 
00083 extern unsigned bc;
00084 extern unsigned ec;
00085 extern unsigned ne;
00086 
00087 extern void compute_ligkern_offset(void);
00088 extern void compute_character_info_size(void);
00089 extern void output_ofm_extensible(void);
00090 extern void compute_ofm_character_info(void);
00091 extern void output_ofm_character_info(void);