diff Wnn/uum/sdefine.h @ 0:bbc77ca4def5

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 13 Dec 2007 04:30:14 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Wnn/uum/sdefine.h	Thu Dec 13 04:30:14 2007 +0900
@@ -0,0 +1,266 @@
+/*
+ *  $Id: sdefine.h,v 1.4 2006/03/04 19:01:46 aonoto Exp $
+ */
+
+/*
+ * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+ * This file is part of FreeWnn.
+ * 
+ * Copyright Kyoto University Research Institute for Mathematical Sciences
+ *                 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+ * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright FreeWnn Project 1999, 2000, 2006
+ *
+ * Maintainer:  FreeWnn Project
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*************************
+ * define of standard i/o
+ *************************/
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include "commonhd.h"
+
+/* ncurses' term.h defines them to either 0 or 1! */
+#ifndef HAVE_TERMIOS_H
+#  define DONT_HAVE_TERMIOS_H
+#endif
+#ifndef HAVE_TERMIO_H
+#  define DONT_HAVE_TERMIO_H
+#endif
+#ifndef HAVE_SYS_TERMIO_H
+#  define DONT_HAVE_SYS_TERMIO_H
+#endif
+#ifndef HAVE_SGTTY_H
+#  define DONT_HAVE_SGTTY_H
+#endif
+
+#if defined(HAVE_TERMINFO)
+#  if defined(HAVE_CURSES_H)
+#    include <curses.h>
+#  elif defined(HAVE_NCURSES_H)
+#    include <ncurses.h>
+#  else
+#    error "no terminfo header"
+#  endif /* HAVE_CURSES_H */
+#  ifdef HAVE_TERM_H
+#    include <term.h>
+#  endif
+#else /* HAVE_TERMINFO */
+#  if defined(HAVE_TERMCAP_H)
+#    include <termcap.h>
+#  endif /* HAVE_TERMCAP_H */
+#endif /* HAVE_TERMINFO */
+
+#ifdef DONT_HAVE_TERMIOS_H
+#  undef HAVE_TERMIOS_H
+#  undef DONT_HAVE_TERMIOS_H
+#endif
+#ifdef DONT_HAVE_TERMIO_H
+#  undef HAVE_TERMIO_H
+#  undef DONT_HAVE_TERMIO_H
+#endif
+#ifdef DONT_HAVE_SYS_TERMIO_H
+#  undef HAVE_SYS_TERMIO_H
+#  undef DONT_HAVE_SYS_TERMIO_H
+#endif
+#ifdef DONT_HAVE_SGTTY_H
+#  undef HAVE_SGTTY_H
+#  undef DONT_HAVE_SGTTY_H
+#endif
+
+#ifdef HAVE_KILLPG
+# define KILLPG(pgrp, sig) killpg(pgrp, sig)
+#else
+# define KILLPG(pgrp, sig) kill(-(pgrp), sig)
+#endif /* HAVE_KILLPG */
+
+#if defined(HAVE_GETPGID)	/* SVR4 and most modern systems */
+#  define GETPGID(pid) getpgid(pid)
+#elif defined(HAVE_GETPGRP) && !defined(GETPGRP_VOID) /* 4.3BSD */
+#  define GETPGID(pid) getpgrp(pid)
+#elif defined(uniosu)
+#  define GETPGID(pid) ngetpgrp(pid)
+#else
+/* no way to get process group id */
+#endif /* GETPGID */
+
+#if defined(HAVE_GETPGRP)
+#  if defined(GETPGRP_VOID)
+#    define GETMYPGRP() getpgrp()	/* SYSV, POSIX */
+#  else
+#    define GETMYPGRP() getpgrp(0)
+#  endif /* !GETPGRP_VOID */
+#elif defined(GETPGID)
+#  define GETMYPGRP() GETPGID(getpid())
+#else
+/* probably some build error occured */
+#  error "don't know how to get my process group id"
+#endif /* GETMYPGRP */
+
+#define MAXCHG 80               /* 解析可能文字数 */
+        /*漢字バッファ(次候補、単語検索など)の大きさ */
+#define MAX_ICHIRAN_KOSU 36     /* 一覧表示字の表示個数 */
+#define MAXWORDS        MAXJIKOUHO      /* 単語検索での検索語数 */
+#define NBUN    2               /* n文節解析 */
+#define JISHO_PRIO_DEFAULT 5    /*辞書プライオリティのデフォルト値 */
+
+/* 評価関数の係数 */
+#define HINDOVAL 3
+#define LENGTHVAL 100
+#define JIRITUGOVAL 1
+#define FLAGVAL 200             /*今使ったよビットの係数 */
+#define JISHOPRIOVAL 5
+
+#define TBL_CNT 10              /* key_table no kazu */
+/* Two tables are add. one is for selecting zenkouho's, and the other is jisho-ichiran. */
+/* One more table is add, which is used in inspect */
+/* Deleted table[7] because those are for Wnn3 */
+#define TBL_SIZE 256
+
+#define ESCAPE_CHAR(c)  (((c) < ' ') || ((c) == 127))
+#define NORMAL_CHAR(c)  (((c) >= ' ') && ((c) < 127))
+#define NOT_NORMAL_CHAR(c)      (((c) >= 128) && ((c) < 160))
+#define ONEBYTE_CHAR(c)         (!((c) & ~0xff))        /* added by Nide */
+/*
+#define NISEMONO(c)             ((c) & 0x80000000)
+#define HONMONO(c)              (!NISEMONO(c))
+#define KANJI_CHAR(c)           ((c) >= 256 )
+*/
+#define KANJI_CHAR(c)           (((c) >= 256 ) && ((c) & 0xff00) != 0x8e00)
+
+#define zenkaku(x)(KANJI_CHAR(x) || ESCAPE_CHAR(x))
+#define hankaku(x) (!zenkaku(x))
+#define ZENKAKU_HYOUJI(x)     zenkaku(x)
+        /* CHANGE AFTERWARD TO BE ABLE TO TREAT hakaku katakana. */
+
+#ifndef min
+#define max(a , b) (((a) > (b))?(a) : (b))
+#define min(a , b) (((a) <= (b))?(a) : (b))
+#endif
+
+#define numeric(x)      (((x >= S_NUM)&&(x <= E_NUM))? True : False)
+#define ISKUTENCODE(x)  ((x) == 0xa1a3)
+
+struct jisho_
+{                               /* 辞書管理用structure */
+  char name[1024];
+  char hname[1024];             /* 頻度ファイル名 */
+  int dict_no;                  /* server が返してくる辞書ナンバー */
+  int prio;
+  int rdonly;
+};
+
+struct kansuu
+{                               /* kansuu_hyo no entry */
+  char *kansuumei;
+  char *comment;
+  int romkan_flag;              /* Clear Romkan or Not.  */
+  int (*func[TBL_CNT]) ();
+};
+
+#ifndef w_char
+#define w_char  unsigned short
+#endif
+
+#define printf        PRINTF
+#define fprintf       FPRINTF
+#define remove        REMOVE
+
+#define throw_c(col)  throw_col((col) + disp_mode_length)
+
+#define MAX_HISTORY 10
+
+
+#define flush() fflush(stdout)
+#define print_msg(X) {push_cursor();throw_c(0); clr_line();printf(X);flush();pop_cursor();}
+#define print_msg_getc(X) {push_cursor();throw_c(0); clr_line();printf(X);flush();keyin();pop_cursor();}
+
+
+#define UNDER_LINE_MODE (0x02 | 0x08 | 0x20)
+
+#define OPT_CONVKEY             0x01
+#define OPT_RKFILE              0x02
+#define OPT_WNNKEY              0x04
+#define OPT_FLOW_CTRL           0x08
+#define OPT_WAKING_UP_MODE      0x10
+#define OPT_VERBOSE             0x20
+
+#define convkey_defined_by_option       (defined_by_option & OPT_CONVKEY)
+#define rkfile_defined_by_option        (defined_by_option & OPT_RKFILE)
+#define uumkey_defined_by_option        (defined_by_option & OPT_WNNKEY)
+#define verbose_option                  (defined_by_option & OPT_VERBOSE)
+
+/*
+#define char_len(X)((hankaku(X))? 1 : 2)
+*/
+
+/*
+  GETOPT string & ALL OPTIONS string for configuration.
+  see each config.h for detail.
+  NOTE: WHEN YOU MODIFY THESE, YOU ALSO MODIFY do_opt[] ARRAY AND
+  ALL config.h!!!!
+ */
+
+#define GETOPTSTR   "hHPxXk:c:r:l:D:n:v"
+#define ALL_OPTIONS "hHujsUJSPxXkcrlDnvbtBT"
+#define OPTIONS     "hHPxXkcrlDnv"
+
+/* for message file */
+#include "msg.h"
+#define MSG_GET(no)     msg_get(cd, no, NULL, NULL)
+
+#define CWNN_PINYIN             0
+#define CWNN_ZHUYIN             1
+
+#define print_out_func          (f_table->print_out_function)
+#define input_func              (f_table->input_function)
+#define call_t_redraw_move_func (f_table->call_t_redraw_move_function)
+#define call_t_redraw_move_1_func (f_table->call_t_redraw_move_1_function)
+#define call_t_redraw_move_2_func (f_table->call_t_redraw_move_2_function)
+#define call_t_print_l_func     (f_table->call_t_print_l_function)
+#define redraw_when_chmsig_func (f_table->redraw_when_chmsig_function)
+#define char_len_func           (f_table->char_len_function)
+#define char_q_len_func         (f_table->char_q_len_function)
+#define t_redraw_move_func      (f_table->t_redraw_move_function)
+#define t_print_l_func          (f_table->t_print_l_function)
+#define c_top_func              (f_table->c_top_function)
+#define c_end_func              (f_table->c_end_function)
+#define c_end_nobi_func         (f_table->c_end_nobi_function)
+#define call_redraw_line_func   (f_table->call_redraw_line_function)
+#define hani_settei_func        (f_table->hani_settei_function)
+#define errorkeyin_func         (f_table->errorkeyin_function)
+#define call_jl_yomi_len_func   (f_table->call_jl_yomi_len_function)
+
+#define env_normal               (cur_normal_env->env)
+#define env_reverse              (cur_reverse_env->env)
+
+#define envrcname               (cur_normal_env->envrc_name)
+#define reverse_envrcname       (cur_reverse_env->envrc_name)
+
+#define env_name_s               (cur_normal_env->env_name_str)
+#define reverse_env_name_s       (cur_reverse_env->env_name_str)
+
+#define servername              (cur_normal_env->host_name)
+#define reverse_servername      (cur_reverse_env->host_name)
+
+#define normal_sticky           (cur_normal_env->sticky)
+#define reverse_sticky          (cur_reverse_env->sticky)