1 /* 2 * $Id: xheader.c,v 1.2 2001/06/14 18:16:13 ura Exp $ 3 */ 4 5 /* 6 * FreeWnn is a network-extensible Kana-to-Kanji conversion system. 7 * This file is part of FreeWnn. 8 * 9 * Copyright Kyoto University Research Institute for Mathematical Sciences 10 * 1987, 1988, 1989, 1990, 1991, 1992 11 * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999 12 * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992 13 * Copyright 1991, 1992 by Massachusetts Institute of Technology 14 * 15 * Author: OMRON SOFTWARE Co., Ltd. <freewnn@rd.kyoto.omronsoft.co.jp> 16 * 17 * This program is free software; you can redistribute it and/or modify 18 * it under the terms of the GNU General Public License as published by 19 * the Free Software Foundation; either version 2, or (at your option) 20 * any later version. 21 * 22 * This program is distributed in the hope that it will be useful, 23 * but WITHOUT ANY WARRANTY; without even the implied warranty of 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 * GNU General Public License for more details. 26 * 27 * You should have received a copy of the GNU General Public License 28 * along with GNU Emacs; see the file COPYING. If not, write to the 29 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 30 * 31 * Commentary: 32 * 33 * Change log: 34 * 35 * Last modified date: 8,Feb.1999 36 * 37 * Code: 38 * 39 */ 40 /* Version 4.0 41 */ 42 #include <stdio.h> 43 #include "config.h" 44 #include "commonhd.h" 45 #include "sdefine.h" 46 #include "xjutil.h" 47 #include "sxheader.h" 48 #include "xext.h" 49 50 int max_env = 0; 51 WnnEnv *normal_env = NULL; 52 WnnEnv *reverse_env = NULL; 53 WnnEnv *cur_normal_env = NULL; 54 WnnEnv *cur_reverse_env = NULL; 55 56 int save_env_id[32]; 57 int save_env_reverse_id[32]; 58 int env_is_reverse = 0; 59 60 w_char *input_buffer; 61 w_char *return_buf; /* return you mojiretsu buffer */ 62 63 int cur_bnst_ = 0; /* current bunsetsu pointer */ 64 65 int rubout_code = 127; 66 67 int (*main_table[TBL_CNT][TBL_SIZE]) (); 68 char romkan_clear_tbl[TBL_CNT][TBL_SIZE]; 69 char jishopath[256]; 70 char hindopath[256]; 71 char fuzokugopath[256]; 72 73 ClientBuf *c_b; 74 75 int excellent_delete = 1; 76 77 int *bunsetsu; 78 int *bunsetsuend; 79 int *touroku_bnst; 80 int touroku_bnst_cnt; 81 w_char *kill_buffer; 82 w_char *remember_buf; 83 int kill_buffer_offset = 0; 84 85 int touroku_comment = 0; 86 87 char *uumrc_name = NULL; 88 char *envrc_name = NULL; 89 char *uumkey_name = NULL; 90 char *cvt_key_file = NULL; 91 char *cvt_fun_file = NULL; 92 char *cvt_meta_file = NULL; 93 char *rkfile_name = NULL; 94 95 char *jserver_name = NULL; 96 char *display_name = NULL; 97 char *username = NULL; 98 99 int maxbunsetsu; 100 int max_ichiran_kosu; 101 int maxchg; 102 int maxlength; 103 104 WNN_DIC_INFO *dicinfo; 105 int dic_list_size; 106 107 char *prgname; /* argv[0] */ 108 109 struct wnn_ret_buf rb = { 0, NULL }; 110 struct wnn_ret_buf dicrb = { 0, NULL }; 111 struct wnn_ret_buf wordrb = { 0, NULL }; 112 113 Xjutil *xjutil = NULL; 114 XIMRootRec *cur_root = NULL; 115 JutilTextRec *cur_text = NULL; 116 117 Romkan *cur_rk = NULL; 118 RomkanTable *cur_rk_table = NULL; 119 120 BoxRec *box_list = NULL; 121 122 XjutilFSList font_set_list = NULL; 123 XjutilFSRec *cur_fs = NULL; 124 125 struct msg_cat *cd; 126 127 wchar *wc_buf = NULL; 128 unsigned char *ct_buf = NULL; 129 unsigned char *c_buf = NULL; 130 int wc_buf_max = 0; 131 int ct_buf_max = 0; 132 int c_buf_max = 0; 133 #ifndef X_WCHAR 134 wchar_t *wt_buf = NULL; 135 int wt_buf_max = 0; 136 #endif /* !X_WCHAR */ 137 138 ConvCode cvt_key_tbl[MAX_CVT_ENTRY_CNT]; 139 int cvt_key_tbl_cnt = 0; /* convert table count */ 140 141 FunctionTable *f_table = NULL; 142 143 FunctionTable function_db[] = { 144 {"Normal", 145 NULL, NULL, call_t_redraw_move_normal, 146 call_t_redraw_move_1_normal, call_t_redraw_move_2_normal, 147 call_t_print_l_normal, NULL, char_len_normal, char_q_len_normal, 148 t_redraw_move_normal, t_print_l_normal, c_top_normal, c_end_normal, 149 c_end_normal, hani_settei_normal, NULL, NULL}, 150 #ifdef CHINESE 151 {"Yincoding", 152 print_out_yincod, input_yincod, call_t_redraw_move_yincod, 153 call_t_redraw_move_1_yincod, call_t_redraw_move_2_yincod, 154 call_t_print_l_yincod, redraw_when_chmsig_yincod, char_len_yincod, 155 char_q_len_yincod, t_redraw_move_yincod, 156 t_print_l_yincod, c_top_yincod, c_end_yincod, c_end_nobi_yincod, 157 hani_settei_yincod, NULL, NULL}, 158 #endif /* CHINESE */ 159 {NULL, 160 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 161 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL} 162 }; 163