1 /* char_routines.h: Data structures for character information 2 3 This file is part of Omega, 4 which is based on the web2c distribution of TeX, 5 6 Copyright (c) 1994--2001 John Plaice and Yannis Haralambous 7 8 Omega is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2 of the License, or 11 (at your option) any later version. 12 13 Omega is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with Omega; if not, write to the Free Software Foundation, Inc., 20 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 21 22 */ 23 24 typedef struct char_entry_struct { 25 in_list indices[C_MAX+1]; 26 unsigned index_indices[C_MAX+1]; 27 unsigned c; 28 unsigned copies; 29 unsigned tag; 30 unsigned remainder; 31 unsigned defined; 32 unsigned accent; 33 unsigned *extens; 34 unsigned ovf_packet_length; 35 unsigned char *ovf_packet; 36 } char_entry; 37 38 extern char_entry *current_character; 39 extern char_entry *current_secondary_character; 40 41 extern unsigned num_char_info, words_per_entry; 42 43 extern void print_characters(boolean); 44 extern void init_character(unsigned, char_entry *); 45 extern void copy_characters(unsigned, unsigned); 46 extern void init_planes(void); 47 48 extern void ensure_existence(unsigned); 49 extern void check_char_tag(unsigned); 50 extern void set_char_tag(unsigned,unsigned); 51 extern void set_char_remainder(unsigned,unsigned); 52 extern void set_next_larger(unsigned); 53 extern void init_var_character(void); 54 55 typedef struct label_entry_struct { 56 int rr; 57 int cc; 58 } label_entry; 59 60 extern unsigned no_labels; 61 extern label_entry *label_table; 62 extern int label_ptr, sort_ptr; 63 extern int lk_offset; 64 extern boolean extra_loc_needed; 65 66 67 extern void check_and_correct(void); 68 69 extern void adjust_labels(boolean); 70 extern void print_labels(void); 71 extern void set_extensible_piece(unsigned,unsigned); 72 extern void check_existence_and_safety(unsigned,unsigned,const_string,const_string); 73 extern void clear_ligature_entries(void); 74 extern void print_extens(void); 75 extern void retrieve_exten_table(unsigned char *); 76 extern void doublecheck_existence(unsigned, const_string,const_string); 77 extern void output_ovf_chars(void); 78 79 extern unsigned bc; 80 extern unsigned ec; 81 extern unsigned ne; 82 83 extern void compute_ligkern_offset(void); 84 extern void output_ofm_extensible(void); 85 extern void compute_ofm_character_info(void); 86 extern void output_ofm_character_info(void); 87