Filewatcher File Search
FTP Search
  
Directory (beta)
  
Content Search (beta)
   
pkg://Canna-3.6-20.src.rpm:6563696/Canna36p3.tar.gz  info  downloads

Canna36p3/0040755000175100000240000000000007614447473011701 5ustar  shinrastaffCanna36p3/canna/0040755000175100000240000000000007614447424012755 5ustar  shinrastaffCanna36p3/canna/.cvsignore0100644000175100000240000000002107606176335014744 0ustar  shinrastaff.depend
Makefile
Canna36p3/canna/Imakefile0100644000175100000240000000104107554536744014566 0ustar  shinrastaff/* $Id: Imakefile,v 1.2 2002/10/20 14:29:56 aida_s Exp $ */
#include "../Canna.conf"

         CANNAROOT = ..
      CANNA_HEADER = jrkanji.h  keydef.h mfdef.h
      OSDEP_HEADER = ccompat.h net.h widedef.h
        INT_HEADER = symbolname.h patchlevel.h protodefs.h

all::

LinkFileList(includes,$(CANNA_HEADER),$(CANNAROOT)/include/canna,../../canna)
LinkFileList(includes,$(INT_HEADER),$(CANNAROOT)/include,../canna)
LinkFileList(includes,$(OSDEP_HEADER),$(CANNAROOT)/include,../canna)
InstallMultiple($(CANNA_HEADER),$(cannaIncDir))

depend::
Canna36p3/canna/ccompat.h0100644000175100000240000000644707554536744014573 0ustar  shinrastaff/* Copyright (c) 2002 Canna Project. All rights reserved.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of the
 * author and contributors not be used in advertising or publicity
 * pertaining to distribution of the software without specific, written
 * prior permission.  The author and contributors no representations
 * about the suitability of this software for any purpose.  It is
 * provided "as is" without express or implied warranty.
 *
 * THE AUTHOR AND CONTRIBUTORS DISCLAIMS ALL WARRANTIES WITH REGARD TO
 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS, IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE FOR
 * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
 */

/* $Id: ccompat.h,v 1.1 2002/10/20 14:29:56 aida_s Exp $ */

#ifndef CCOMPAT_H
#define CCOMPAT_H

#if defined(__STDC__) || defined(WIN)
# define HAVE_STRING_H
# define HAVE_STRCHR
# define HAVE_STRRCHR
# define HAVE_MEMSET
# define HAVE_MEMCPY
# define HAVE_STDLIB_H
#elif defined(SYSV) || defined(SVR4)
# define HAVE_STRING_H
# define HAVE_STRCHR
# define HAVE_STRRCHR
# define HAVE_MEMSET
# define HAVE_MEMCPY
# define NEED_MEMORY_H
#else /* others */
# if defined(USG)
#  define HAVE_STRING_H
#  define HAVE_STRCHR
#  define HAVE_STRRCHR
# endif
#endif /* others */

#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
# define HAVE_INDEX
# define HAVE_RINDEX
# define HAVE_BZERO
# define HAVE_BCOPY
#elif defined(__EMX__)
# define HAVE_BZERO
# define HAVE_BCOPY
#endif

#if !defined(__STDC__) && !defined(WIN)
# if defined(__GNUC__)
#  define const __const__
# else
#  define const
# endif
#endif

#if defined(__STDC__) || defined(__cplusplus) || defined(WIN)
# define pro(x) x
#else
# define pro(x) ()
#endif

#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#else
extern char *malloc(), *realloc(), *calloc();
extern void free();
#endif

#ifdef HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#ifdef NEED_MEMORY_H
# include <memory.h>
#endif

#if defined(HAVE_STRCHR) && !defined(HAVE_INDEX) && !defined(index)
# define index strchr
#elif !defined(HAVE_STRCHR) && defined(HAVE_INDEX) && !defined(strchr)
# define strchr index
#endif
#if defined(HAVE_STRRCHR) && !defined(HAVE_RINDEX) && !defined(rindex)
# define rindex strrchr
#elif !defined(HAVE_STRRCHR) && defined(HAVE_INDEX) && !defined(strrchr)
# define strrchr rindex
#endif

#if defined(HAVE_MEMSET) && !defined(HAVE_BZERO) && !defined(bzero)
# define bzero(buf, size) memset((char *)(buf), 0x00, (size))
#endif
#if defined(HAVE_MEMCPY) && !defined(HAVE_BCOPY) && !defined(bcopy)
# define bcopy(src, dst, size) memcpy((char *)(dst), (char *)(src), (size))
#elif !defined(HAVE_MEMCPY) && defined(HAVE_BCOPY) && !defined(memcpy)
# define memcpy(dst, src, size) bcopy((char *)(src), (char *)(dst), (size))
#endif

#endif /* CCOMPAT_H */
Canna36p3/canna/jrkanji.h0100644000175100000240000002104207554213560014545 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/*
 *
 *	8/16 bit String Manipulations.
 *
 *      "@(#)kanji.h	2.3    88/10/03 10:25:34"
 *      "@(#) 102.1 $Id: jrkanji.h,v 1.1.1.1 2002/10/19 08:27:28 aida_s Exp $"
 */

#ifndef _JR_KANJI_H_
#define _JR_KANJI_H_

#if (defined(_WINDOWS) || defined(WIN32)) && !defined(WIN)
#define WIN
#endif

#ifndef _WCHAR_T
# if defined(WCHAR_T) || defined(_WCHAR_T_) || defined(__WCHAR_T) \
  || defined(_GCC_WCHAR_T) || defined(_WCHAR_T_DEFINED)
#  define _WCHAR_T
# endif
#endif

#ifdef pro
#define CANNA_PRO_PREDEFINED
#else
#if defined(__STDC__) || defined(__cplusplus) || defined(WIN)
#define pro(x) x
#else
#define pro(x) ()
#endif
#endif

#if defined(_WINDOWS) && !defined(WIN32)
#define exp(x)	x __export CALLBACK
#elif defined(WIN32)
#define exp(x)	__declspec(dllexport) x
#else
#define exp(x)	x
#endif

#include <canna/keydef.h>
#include <canna/mfdef.h>

/* どのような情報があるかを示すフラグ */

#define KanjiModeInfo   	0x1
#define KanjiGLineInfo  	0x2
#define KanjiYomiInfo		0x4
#define KanjiThroughInfo	0x8
#define KanjiEmptyInfo		0x10

#define KanjiExtendInfo		0x20
#define KanjiKigoInfo		0x40 
#define KanjiRussianInfo	0x80
#define KanjiGreekInfo		0x100
#define KanjiLineInfo		0x200

#define KanjiAttributeInfo	0x400
#define KanjiSpecialFuncInfo	0x800

/* KanjiControl 関係 */

#define KC_INITIALIZE		0
#define KC_FINALIZE		1
#define KC_CHANGEMODE		2
#define KC_SETWIDTH		3
#define KC_SETUNDEFKEYFUNCTION	4
#define KC_SETBUNSETSUKUGIRI    5
#define KC_SETMODEINFOSTYLE	6
#define KC_SETHEXINPUTSTYLE	7
#define KC_INHIBITHANKAKUKANA	8
#define KC_DEFINEKANJI		9
#define KC_KAKUTEI		10
#define KC_KILL			11
#define KC_MODEKEYS		12
#define KC_QUERYMODE		13
#define KC_QUERYCONNECTION	14
#define KC_SETSERVERNAME        15
#define KC_PARSE		16
#define KC_YOMIINFO		17
#define KC_STOREYOMI		18
#define KC_SETINITFILENAME	19
#define KC_DO			20
#define KC_GETCONTEXT		21
#define KC_CLOSEUICONTEXT	22
#define KC_INHIBITCHANGEMODE	23
#define KC_LETTERRESTRICTION	24
#define KC_QUERYMAXMODESTR	25
#define KC_SETLISTCALLBACK	26
#define KC_SETVERBOSE		27
#define KC_LISPINTERACTION	28
#define KC_DISCONNECTSERVER	29
#define KC_SETAPPNAME	        30
#define KC_DEBUGMODE	        31
#define KC_DEBUGYOMI	        32
#define KC_KEYCONVCALLBACK	33
#define KC_QUERYPHONO		34
#define KC_CHANGESERVER		35
#define KC_SETUSERINFO          36
#define KC_QUERYCUSTOM          37
#define KC_CLOSEALLCONTEXT      38
#define KC_ATTRIBUTEINFO	39

#define MAX_KC_REQUEST          (KC_ATTRIBUTEINFO + 1)

#define kc_normal	0
#define kc_through	1
#define kc_kakutei	2
#define kc_kill		3

#define CANNA_NOTHING_RESTRICTED	0
#define CANNA_ONLY_ASCII		1
#define CANNA_ONLY_ALPHANUM		2	
#define CANNA_ONLY_HEX			3
#define CANNA_ONLY_NUMERIC		4
#define CANNA_NOTHING_ALLOWED		5

#ifdef IROHA_BC
#define IROHA_NOTHING_RESTRICTED	CANNA_NOTHING_RESTRICTED
#define IROHA_ONLY_ASCII		CANNA_ONLY_ASCII
#define IROHA_ONLY_ALPHANUM		CANNA_ONLY_ALPHANUM
#define IROHA_ONLY_HEX			CANNA_ONLY_HEX
#define IROHA_ONLY_NUMERIC		CANNA_ONLY_NUMERIC
#define IROHA_NOTHING_ALLOWED		CANNA_NOTHING_ALLOWED
#endif

#define CANNA_ATTR_INPUT                    ((char)'.')
#define CANNA_ATTR_TARGET_CONVERTED         ((char)'O')
#define CANNA_ATTR_CONVERTED                ((char)'_')
#define CANNA_ATTR_TARGET_NOTCONVERTED      ((char)'x')
#define CANNA_ATTR_INPUT_ERROR              ((char)'E')

#define CANNA_MAXAPPNAME       256

typedef struct {
    unsigned char *echoStr;    /* local echo string */
    int length;		        /* length of echo string */
    int revPos;                 /* reverse position  */
    int revLen;                 /* reverse length    */
    unsigned long info;		/* その他の情報 */
    unsigned char *mode;	/* モード情報 */
    struct {
      unsigned char *line;
      int           length;
      int           revPos;
      int           revLen;
    } gline;			/* 一覧表示のための情報 */
} jrKanjiStatus;

typedef struct {
  int  val;
  unsigned char *buffer;
  int  bytes_buffer;
  jrKanjiStatus *ks;
} jrKanjiStatusWithValue;

typedef struct {
  char *uname;		/* ユーザ名 */
  char *gname;		/* グループ名 */
  char *srvname;	/* サーバ名 */
  char *topdir;		/* インストールディレクトリ */
  char *cannafile;	/* カスタマイズファイル名 */
  char *romkanatable;   /* ローマ字かな変換テーブル名 */
  char *appname;	/* アプリケーション名 */
} jrUserInfoStruct;

typedef struct {
  char *codeinput;	/* コード種別 */
  int  quicklyescape;	/* 記号連続入力 flag */
  int  indexhankaku;	/* ガイドラインのインデックス指定 */
  int  indexseparator;	/* ガイドラインのインデックス指定 */
  int  selectdirect;	/* 数字キーによる選択 flag */
  int  numericalkeysel;	/* 数字キーによる候補選択指定 */
  int  kouhocount;	/* 候補数表示 */
} jrCInfoStruct;

#ifdef _WCHAR_T

typedef struct {
    wchar_t *echoStr;		/* local echo string */
    int length;		        /* length of echo string */
    int revPos;                 /* reverse position  */
    int revLen;                 /* reverse length    */
    unsigned long info;		/* その他の情報 */
    wchar_t  *mode;		/* モード情報 */
    struct {
      wchar_t       *line;
      int           length;
      int           revPos;
      int           revLen;
    } gline;			/* 一覧表示のための情報 */
} wcKanjiStatus;

typedef struct {
  int  val;
  wchar_t *buffer;
  int  n_buffer;
  wcKanjiStatus *ks;
} wcKanjiStatusWithValue;

typedef struct {
  char *client_data;
  int (*callback_func) pro((char *, int, wchar_t **, int, int *));
} jrListCallbackStruct;

typedef struct {
  char *attr;
  long caretpos;
} wcKanjiAttribute;

#define listCallbackStruct jrListCallbackStruct

#define CANNA_LIST_Start           0
#define CANNA_LIST_Select          1
#define CANNA_LIST_Quit            2
#define CANNA_LIST_Forward         3
#define CANNA_LIST_Backward        4
#define CANNA_LIST_Next            5
#define CANNA_LIST_Prev            6
#define CANNA_LIST_BeginningOfLine 7
#define CANNA_LIST_EndOfLine       8
#define CANNA_LIST_Query           9
#define CANNA_LIST_Bango          10
#define CANNA_LIST_PageUp         11
#define CANNA_LIST_PageDown       12
#define CANNA_LIST_Convert	  13
#define CANNA_LIST_Insert	  14

#endif /* _WCHAR_T */

#define CANNA_NO_VERBOSE   0
#define CANNA_HALF_VERBOSE 1
#define CANNA_FULL_VERBOSE 2

#define CANNA_CTERMINAL 0
#define CANNA_XTERMINAL 1

#ifdef __cplusplus
extern "C" {
extern char *jrKanjiError;
}
#else
extern char *jrKanjiError;
#endif

#define wcBeepFunc jrBeepFunc

#ifdef __cplusplus
extern "C" {
#endif

exp(int) jrKanjiString pro((const int, const int, char *, const int,
			    jrKanjiStatus *));
exp(int) jrKanjiControl pro((const int, const int, char *));
exp(int) kanjiInitialize pro((char ***));
exp(int) kanjiFinalize pro((char ***));
exp(int) createKanjiContext pro((void));
exp(int) jrCloseKanjiContext pro((const int, jrKanjiStatusWithValue *));

#ifdef _WCHAR_T
exp(int) wcKanjiString pro((const int, const int, wchar_t *, const int,
			    wcKanjiStatus *));
exp(int) wcKanjiControl pro((const int, const int, char *));
exp(int) wcCloseKanjiContext pro((const int, wcKanjiStatusWithValue *));
#endif /* _WCHAR_T */

#ifdef __cplusplus
}
#endif

#if defined(WIN) && defined(_RK_h)
void close_libcanna pro((void));
int open_libcanna pro((char *));

struct cannafn {
  struct rkfuncs Rk;
  int (*KanjiControl) pro((const int, const int, char *));
  int (*KanjiString) pro((const int, const int, wchar_t *, const int,
			  wcKanjiStatus *));
};
#endif /* _WINDOWS */

#ifdef CANNA_PRO_PREDEFINED
#undef CANNA_PRO_PREDEFINED
#else
#undef pro
#endif

#endif /* _JR_KANJI_H_ */

Canna36p3/canna/keydef.h0100644000175100000240000001661607554213560014377 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/* @(#) 102.1 $Id: keydef.h,v 1.1.1.1 2002/10/19 08:27:28 aida_s Exp $ */

/* normal function keys */
     
#define CANNA_KEY_Nfer		0x80
#define CANNA_KEY_Xfer		0x81
#define CANNA_KEY_Up		0x82
#define CANNA_KEY_Left		0x83
#define CANNA_KEY_Right		0x84
#define CANNA_KEY_Down		0x85
#define CANNA_KEY_Insert	0x86
#define CANNA_KEY_Rollup	0x87
#define CANNA_KEY_PageDown      CANNA_KEY_Rollup
#define CANNA_KEY_Rolldown	0x88
#define CANNA_KEY_PageUp        CANNA_KEY_Rolldown
#define CANNA_KEY_Home		0x89
#define CANNA_KEY_Help		0x8a
#define CANNA_KEY_KP_Key	0x8b /* どういう意味で入れたんだっけ? */
#define CANNA_KEY_End		0x8c

/* shifted function keys */

#define CANNA_KEY_Shift_Nfer	0x90
#define CANNA_KEY_Shift_Xfer	0x91
#define CANNA_KEY_Shift_Up	0x92
#define CANNA_KEY_Shift_Left	0x93
#define CANNA_KEY_Shift_Right	0x94
#define CANNA_KEY_Shift_Down	0x95

/* control-shifted function keys */

#define CANNA_KEY_Cntrl_Nfer	0x96
#define CANNA_KEY_Cntrl_Xfer	0x97
#define CANNA_KEY_Cntrl_Up	0x98
#define CANNA_KEY_Cntrl_Left	0x99
#define CANNA_KEY_Cntrl_Right	0x9a
#define CANNA_KEY_Cntrl_Down	0x9b

/* The followings should have special translation rule */
#define CANNA_KEY_KP_Separator  0x9c
#define CANNA_KEY_KP_Decimal    0x9d
#define CANNA_KEY_KP_Divide     0x9e
#define CANNA_KEY_KP_Subtract	0x9f
#define CANNA_KEY_Shift_Space	0xa0

/* application keypad mode keys */

#ifdef DoNotConflictWithKatakanaKeys

/* 以下のキーはカタカナ文字とぶつかってしまうため使えない。*/

#define CANNA_KEY_KP_Up		0xc0	/* \eOA			*/
#define CANNA_KEY_KP_Left	0xc1	/* \eOB			*/
#define CANNA_KEY_KP_Right	0xc2	/* \eOC			*/
#define CANNA_KEY_KP_Down	0xc3	/* \eOD			*/
#define CANNA_KEY_KP_Tab	0xc4	/* \eOI			*/
#define CANNA_KEY_KP_Enter	0xc5	/* \eOM			*/
#define CANNA_KEY_KP_Equal	0xc6	/* \eOX			*/
#define CANNA_KEY_KP_Multiply	0xc7	/* \eOj			*/
#define CANNA_KEY_KP_Add	0xc8	/* \eOk			*/
#define CANNA_KEY_KP_Separator	0xc9	/* \eOl			*/
#define CANNA_KEY_KP_Subtract	0xca	/* \eOm			*/
#define CANNA_KEY_KP_Decimal	0xcb	/* \eOn			*/
#define CANNA_KEY_KP_Divide	0xcc	/* \eOo			*/
#define CANNA_KEY_KP_0		0xd0	/* \eOp			*/
#define CANNA_KEY_KP_1		0xd1	/* \eOq			*/
#define CANNA_KEY_KP_2		0xd2	/* \eOr			*/
#define CANNA_KEY_KP_3		0xd3	/* \eOs			*/
#define CANNA_KEY_KP_4		0xd4	/* \eOt			*/
#define CANNA_KEY_KP_5		0xd5	/* \eOu			*/
#define CANNA_KEY_KP_6		0xd6	/* \eOv			*/
#define CANNA_KEY_KP_7		0xd7	/* \eOw			*/
#define CANNA_KEY_KP_8		0xd8	/* \eOx			*/
#define CANNA_KEY_KP_9		0xd9	/* \eOy			*/

#endif

/* numeral-function keys */

#define CANNA_KEY_F1		0xe0
#define CANNA_KEY_F2		0xe1
#define CANNA_KEY_F3		0xe2
#define CANNA_KEY_F4		0xe3
#define CANNA_KEY_F5		0xe4
#define CANNA_KEY_F6		0xe5
#define CANNA_KEY_F7		0xe6
#define CANNA_KEY_F8		0xe7
#define CANNA_KEY_F9		0xe8
#define CANNA_KEY_F10		0xe9
#define CANNA_KEY_PF1		0xf0
#define CANNA_KEY_PF2		0xf1
#define CANNA_KEY_PF3		0xf2
#define CANNA_KEY_PF4		0xf3
#define CANNA_KEY_PF5		0xf4
#define CANNA_KEY_PF6		0xf5
#define CANNA_KEY_PF7		0xf6
#define CANNA_KEY_PF8		0xf7
#define CANNA_KEY_PF9		0xf8
#define CANNA_KEY_PF10		0xf9

#define CANNA_KEY_HIRAGANA	0xfa
#define CANNA_KEY_KATAKANA	0xfb
#define CANNA_KEY_HANKAKUZENKAKU 0xfc
#define CANNA_KEY_EISU		0xfd

#define CANNA_KEY_Undefine   	0xff

#ifdef IROHA_BC

#define IROHA_KEY_Nfer		CANNA_KEY_Nfer
#define IROHA_KEY_Xfer		CANNA_KEY_Xfer
#define IROHA_KEY_Up		CANNA_KEY_Up
#define IROHA_KEY_Left		CANNA_KEY_Left
#define IROHA_KEY_Right		CANNA_KEY_Right
#define IROHA_KEY_Down		CANNA_KEY_Down
#define IROHA_KEY_Insert	CANNA_KEY_Insert
#define IROHA_KEY_Rollup	CANNA_KEY_Rollup
#define IROHA_KEY_Rolldown	CANNA_KEY_Rolldown
#define IROHA_KEY_Home		CANNA_KEY_Home
#define IROHA_KEY_Help		CANNA_KEY_Help
#define IROHA_KEY_KP_Key	CANNA_KEY_KP_Key

/* shifted function keys */

#define IROHA_KEY_Shift_Nfer	CANNA_KEY_Shift_Nfer
#define IROHA_KEY_Shift_Xfer	CANNA_KEY_Shift_Xfer
#define IROHA_KEY_Shift_Up	CANNA_KEY_Shift_Up
#define IROHA_KEY_Shift_Left	CANNA_KEY_Shift_Left
#define IROHA_KEY_Shift_Right	CANNA_KEY_Shift_Right
#define IROHA_KEY_Shift_Down	CANNA_KEY_Shift_Down

/* control-shifted function keys */

#define IROHA_KEY_Cntrl_Nfer	CANNA_KEY_Cntrl_Nfer
#define IROHA_KEY_Cntrl_Xfer	CANNA_KEY_Cntrl_Xfer
#define IROHA_KEY_Cntrl_Up	CANNA_KEY_Cntrl_Up
#define IROHA_KEY_Cntrl_Left	CANNA_KEY_Cntrl_Left
#define IROHA_KEY_Cntrl_Right	CANNA_KEY_Cntrl_Right
#define IROHA_KEY_Cntrl_Down	CANNA_KEY_Cntrl_Down

/* application keypad mode keys */

#ifdef DoNotConflictWithKatakanaKeys

/* 以下のキーはカタカナ文字とぶつかってしまうため使えない。*/

#define IROHA_KEY_KP_Up		CANNA_KEY_KP_Up
#define IROHA_KEY_KP_Left	CANNA_KEY_KP_Left
#define IROHA_KEY_KP_Right	CANNA_KEY_KP_Right
#define IROHA_KEY_KP_Down	CANNA_KEY_KP_Down
#define IROHA_KEY_KP_Tab	CANNA_KEY_KP_Tab
#define IROHA_KEY_KP_Enter	CANNA_KEY_KP_Enter
#define IROHA_KEY_KP_Equal	CANNA_KEY_KP_Equal
#define IROHA_KEY_KP_Multiply	CANNA_KEY_KP_Multiply
#define IROHA_KEY_KP_Add	CANNA_KEY_KP_Add
#define IROHA_KEY_KP_Separator	CANNA_KEY_KP_Separator
#define IROHA_KEY_KP_Subtract	CANNA_KEY_KP_Subtract
#define IROHA_KEY_KP_Decimal	CANNA_KEY_KP_Decimal
#define IROHA_KEY_KP_Divide	CANNA_KEY_KP_Divide
#define IROHA_KEY_KP_0		CANNA_KEY_KP_0
#define IROHA_KEY_KP_1		CANNA_KEY_KP_1
#define IROHA_KEY_KP_2		CANNA_KEY_KP_2
#define IROHA_KEY_KP_3		CANNA_KEY_KP_3
#define IROHA_KEY_KP_4		CANNA_KEY_KP_4
#define IROHA_KEY_KP_5		CANNA_KEY_KP_5
#define IROHA_KEY_KP_6		CANNA_KEY_KP_6
#define IROHA_KEY_KP_7		CANNA_KEY_KP_7
#define IROHA_KEY_KP_8		CANNA_KEY_KP_8
#define IROHA_KEY_KP_9		CANNA_KEY_KP_9

#endif

/* numeral-function keys */

#define IROHA_KEY_F1		CANNA_KEY_F1
#define IROHA_KEY_F2		CANNA_KEY_F2
#define IROHA_KEY_F3		CANNA_KEY_F3
#define IROHA_KEY_F4		CANNA_KEY_F4
#define IROHA_KEY_F5		CANNA_KEY_F5
#define IROHA_KEY_F6		CANNA_KEY_F6
#define IROHA_KEY_F7		CANNA_KEY_F7
#define IROHA_KEY_F8		CANNA_KEY_F8
#define IROHA_KEY_F9		CANNA_KEY_F9
#define IROHA_KEY_F10		CANNA_KEY_F10
#define IROHA_KEY_PF1		CANNA_KEY_PF1
#define IROHA_KEY_PF2		CANNA_KEY_PF2
#define IROHA_KEY_PF3		CANNA_KEY_PF3
#define IROHA_KEY_PF4		CANNA_KEY_PF4
#define IROHA_KEY_PF5		CANNA_KEY_PF5
#define IROHA_KEY_PF6		CANNA_KEY_PF6
#define IROHA_KEY_PF7		CANNA_KEY_PF7
#define IROHA_KEY_PF8		CANNA_KEY_PF8
#define IROHA_KEY_PF9		CANNA_KEY_PF9
#define IROHA_KEY_PF10		CANNA_KEY_PF10
#define IROHA_KEY_Undefine   	CANNA_KEY_Undefine

#endif /* IROHA_BC */
Canna36p3/canna/mfdef.h0100644000175100000240000003401007554213560014175 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

#ifndef _MFDEF_H_
#define _MFDEF_H_

/* @(#) 102.1 $Id: mfdef.h,v 1.1.1.1 2002/10/19 08:27:28 aida_s Exp $ */

/*
  このヘッダファイルではモードに割り振られた番号や、関数に割り振られた
  番号を管理する。

  */

/* モード */

/* real modes */
/* 実モード(real mode)はキーマップの実体を持っているモード */

#define CANNA_MODE_AlphaMode		0	/* アルファベットモード */
#define CANNA_MODE_EmptyMode		1	/* 読み入力がない状態 */
#define CANNA_MODE_KigoMode		2	/* 記号一覧表示状態 */
#define CANNA_MODE_YomiMode		3	/* 読み入力している状態 */
#define CANNA_MODE_JishuMode		4	/* 文字種変換している状態 */
#define CANNA_MODE_TankouhoMode		5	/* 単一候補表示状態 */
#define CANNA_MODE_IchiranMode		6	/* 候補一覧表示状態 */
#define CANNA_MODE_YesNoMode		7	/* 単語登録の例文表示状態 */
#define CANNA_MODE_OnOffMode		8	/* 単語登録の例文表示状態 */
#define CANNA_MODE_AdjustBunsetsuMode   9	/* 文節伸縮モード */
#define CANNA_MODE_ChikujiYomiMode	10	/* 逐次変換モードの読み部分 */
#define CANNA_MODE_ChikujiTanMode	11	/* 逐次変換モードの候補部分 */

#define CANNA_MODE_MAX_REAL_MODE	(CANNA_MODE_ChikujiTanMode + 1)

/* imaginary modes */
/* 虚モード(imaginary mode)はキーマップの実体を持っていないモード */

#define CANNA_MODE_HenkanMode		CANNA_MODE_EmptyMode
#define CANNA_MODE_HenkanNyuryokuMode	12

#define CANNA_MODE_ZenHiraHenkanMode	13
#define CANNA_MODE_HanHiraHenkanMode	14
#define CANNA_MODE_ZenKataHenkanMode	15
#define CANNA_MODE_HanKataHenkanMode	16
#define CANNA_MODE_ZenAlphaHenkanMode	17
#define CANNA_MODE_HanAlphaHenkanMode	18

#define CANNA_MODE_ZenHiraKakuteiMode	19
#define CANNA_MODE_HanHiraKakuteiMode	20
#define CANNA_MODE_ZenKataKakuteiMode	21
#define CANNA_MODE_HanKataKakuteiMode	22
#define CANNA_MODE_ZenAlphaKakuteiMode	23
#define CANNA_MODE_HanAlphaKakuteiMode	24

#define CANNA_MODE_HexMode		25	/* 16進コード入力モード */
#define CANNA_MODE_BushuMode		26	/* 部首の読みの入力状態 */
#define CANNA_MODE_ExtendMode		27	/* 拡張機能選択 */
#define CANNA_MODE_RussianMode		28	/* ロシア文字選択 */
#define CANNA_MODE_GreekMode		29	/* ギリシア文字選択 */
#define CANNA_MODE_LineMode		30	/* 罫線選択 */
#define CANNA_MODE_ChangingServerMode	31	/* サーバ変更 */
#define CANNA_MODE_HenkanMethodMode	32	/* 変換方式選択 */
#define CANNA_MODE_DeleteDicMode	33	/* 単語削除 */
#define CANNA_MODE_TourokuMode		34	/* 単語登録モード */
#define CANNA_MODE_TourokuEmptyMode	CANNA_MODE_TourokuMode
#define CANNA_MODE_TourokuHinshiMode	35	/* 単語登録の品詞選択状態 */
#define CANNA_MODE_TourokuDicMode	36	/* 単語登録の辞書選択状態 */
#define CANNA_MODE_QuotedInsertMode	37	/* 引用入力モード */
#define CANNA_MODE_BubunMuhenkanMode	38	/* 部分無変換状態 */
#define CANNA_MODE_MountDicMode   	39	/* 辞書のmount,unmount状態 */

#define CANNA_MODE_MAX_IMAGINARY_MODE	(CANNA_MODE_MountDicMode + 1)

#ifdef IROHA_BC
/* real modes */
/* 実モード(real mode)はキーマップの実体を持っているモード */

#define IROHA_MODE_AlphaMode		CANNA_MODE_AlphaMode
#define IROHA_MODE_EmptyMode		CANNA_MODE_EmptyMode
#define IROHA_MODE_KigoMode		CANNA_MODE_KigoMode
#define IROHA_MODE_YomiMode		CANNA_MODE_YomiMode
#define IROHA_MODE_JishuMode		CANNA_MODE_JishuMode
#define IROHA_MODE_TankouhoMode		CANNA_MODE_TankouhoMode
#define IROHA_MODE_IchiranMode		CANNA_MODE_IchiranMode
#define IROHA_MODE_YesNoMode		CANNA_MODE_YesNoMode
#define IROHA_MODE_OnOffMode		CANNA_MODE_OnOffMode
#define IROHA_MODE_AdjustBunsetsuMode   CANNA_MODE_AdjustBunsetsuMode

#define IROHA_MODE_MAX_REAL_MODE	CANNA_MODE_MAX_REAL_MODE

/* imaginary modes */
/* 虚モード(imaginary mode)はキーマップの実体を持っていないモード */

#define IROHA_MODE_HenkanMode		CANNA_MODE_HenkanMode
#define IROHA_MODE_HenkanNyuryokuMode	CANNA_MODE_HenkanNyuryokuMode
#define IROHA_MODE_HexMode		CANNA_MODE_HexMode
#define IROHA_MODE_BushuMode		CANNA_MODE_BushuMode
#define IROHA_MODE_ExtendMode		CANNA_MODE_ExtendMode
#define IROHA_MODE_RussianMode		CANNA_MODE_RussianMode
#define IROHA_MODE_GreekMode		CANNA_MODE_GreekMode
#define IROHA_MODE_LineMode		CANNA_MODE_LineMode
#define IROHA_MODE_ChangingServerMode	CANNA_MODE_ChangingServerMode
#define IROHA_MODE_HenkanMethodMode	CANNA_MODE_HenkanMethodMode
#define IROHA_MODE_DeleteDicMode	CANNA_MODE_DeleteDicMode
#define IROHA_MODE_TourokuMode		CANNA_MODE_TourokuMode
#define IROHA_MODE_TourokuEmptyMode	CANNA_MODE_TourokuEmptyMode
#define IROHA_MODE_TourokuHinshiMode	CANNA_MODE_TourokuHinshiMode
#define IROHA_MODE_TourokuDicMode	CANNA_MODE_TourokuDicMode
#define IROHA_MODE_QuotedInsertMode	CANNA_MODE_QuotedInsertMode
#define IROHA_MODE_BubunMuhenkanMode	CANNA_MODE_BubunMuhenkanMode
#define IROHA_MODE_MountDicMode   	CANNA_MODE_MountDicMode

#define IROHA_MODE_ZenHiraHenkanMode	CANNA_MODE_ZenHiraHenkanMode
#define IROHA_MODE_HanHiraHenkanMode	CANNA_MODE_HanHiraHenkanMode
#define IROHA_MODE_ZenKataHenkanMode	CANNA_MODE_ZenKataHenkanMode
#define IROHA_MODE_HanKataHenkanMode	CANNA_MODE_HanKataHenkanMode
#define IROHA_MODE_ZenAlphaHenkanMode	CANNA_MODE_ZenAlphaHenkanMode
#define IROHA_MODE_HanAlphaHenkanMode	CANNA_MODE_HanAlphaHenkanMode

#define IROHA_MODE_ZenHiraKakuteiMode	CANNA_MODE_ZenHiraKakuteiMode
#define IROHA_MODE_HanHiraKakuteiMode	CANNA_MODE_HanHiraKakuteiMode
#define IROHA_MODE_ZenKataKakuteiMode	CANNA_MODE_ZenKataKakuteiMode
#define IROHA_MODE_HanKataKakuteiMode	CANNA_MODE_HanKataKakuteiMode
#define IROHA_MODE_ZenAlphaKakuteiMode	CANNA_MODE_ZenAlphaKakuteiMode
#define IROHA_MODE_HanAlphaKakuteiMode	CANNA_MODE_HanAlphaKakuteiMode

#define IROHA_MODE_MAX_IMAGINARY_MODE	CANNA_MODE_MAX_IMAGINARY_MODE

#endif /* IROHA_BC */

/* キー関数 */

/* 未定義にする */

#define DEFAULTBEHAVIOR 0
#define CANNA_FN_Undefined		0 /* 未定義 */

/* 文字挿入 */

#define CANNA_FN_SelfInsert		1 /* 押されたキーをそのまま挿入 */
#define CANNA_FN_FunctionalInsert	2 /* 押されたキーの挿入 */
#define CANNA_FN_QuotedInsert		3 /* 次の文字をそのまま挿入 */

/* 基本的モード切り換え */

#define CANNA_FN_JapaneseMode		4 /* 日本語入力モードへ移行 */
#define CANNA_FN_AlphaMode		5 /* アルファベット入力モードへ移行 */
#define CANNA_FN_HenkanNyuryokuMode	6 /* 変換入力モードへ移行 */

/* 編集 */

#define CANNA_FN_Forward		7 /* 右 */
#define CANNA_FN_Backward		8 /* 左 */
#define CANNA_FN_Next			9 /* 次の行 */
#define CANNA_FN_Prev			10 /* 前の行 */
#define CANNA_FN_BeginningOfLine	11 /* 行頭 */
#define CANNA_FN_EndOfLine		12 /* 行末 */
#define CANNA_FN_DeleteNext		13 /* 右削除 */
#define CANNA_FN_DeletePrevious		14 /* 左削除 */
#define CANNA_FN_KillToEndOfLine	15 /* 行末まで削除 */

/* カナ漢字変換機能 */

#define CANNA_FN_Henkan			16 /* 変換 */
#define CANNA_FN_Kakutei		17 /* 確定 */
#define CANNA_FN_Extend			18 /* 伸ばし */
#define CANNA_FN_Shrink			19 /* 縮め */
#define CANNA_FN_AdjustBunsetsu		20 /* 文節伸縮モードに入る */
#define CANNA_FN_Quit			21 /* 取りやめ */
#define CANNA_FN_ConvertAsHex		22 /* 16進コードとして変換 */
#define CANNA_FN_ConvertAsBushu		23 /* 部首名として変換 */
#define CANNA_FN_KouhoIchiran		24 /* 候補一覧 */
#define CANNA_FN_BubunMuhenkan		25 /* 部分無変換 */

/* 文字種変換だけに使われる機能 */

#define CANNA_FN_Zenkaku		26 /* 全角 */
#define CANNA_FN_Hankaku		27 /* 半角 */
#define CANNA_FN_ToUpper		28 /* 大文字 */
#define CANNA_FN_Capitalize		29 /* 先頭だけ大文字に */
#define CANNA_FN_ToLower		30 /* 小文字 */
#define CANNA_FN_Hiragana		31 /* ひらがな */
#define CANNA_FN_Katakana		32 /* カタカナ */
#define CANNA_FN_Romaji			33 /* ローマ字 */

/* 読みモードでのベース文字の切り替え */

#define CANNA_FN_BaseHiragana		34 /* ひらがなモード */
#define CANNA_FN_BaseKatakana		35 /* カタカナモード */
#define CANNA_FN_BaseEisu		36 /* 英数モード */
#define CANNA_FN_BaseZenkaku		37 /* 全角モード */
#define CANNA_FN_BaseHankaku		38 /* 半角モード */
#define CANNA_FN_BaseKana		39 /* かなモード */
#define CANNA_FN_BaseKakutei		40 /* 確定入力モード */
#define CANNA_FN_BaseHenkan		41 /* 変換入力モード */
#define CANNA_FN_BaseHiraKataToggle	42 /* ひらがなモード/カタカナモード */
#define CANNA_FN_BaseZenHanToggle	43 /* 全角モード/半角モード */
#define CANNA_FN_BaseKanaEisuToggle	44 /* かなモード/英数モード */
#define CANNA_FN_BaseKakuteiHenkanToggle 45 /* 確定入力モード/変換入力モード */
#define CANNA_FN_BaseRotateForward	46 /* モードを順繰りに切り替える */
#define CANNA_FN_BaseRotateBackward	47 /* モードを逆繰りに切り替える */

/* その他のモード切り替え */

#define CANNA_FN_ExtendMode		48 /* 拡張モード */
#define CANNA_FN_Touroku                CANNA_FN_ExtendMode /* 旧互換 */

#define CANNA_FN_HexMode		49 /* 16進入力モード */
#define CANNA_FN_BushuMode		50 /* 部首入力モード */
#define CANNA_FN_KigouMode		51 /* 記号入力モード */

#define CANNA_FN_Mark			52 /* マーク */
#define CANNA_FN_TemporalMode		53 /* モードの一時的セーブ */
#define CANNA_FN_UserMode		54 /* ユーザ定義モード */

/* 現在の表示を返して欲しいときに使う機能 */

#define CANNA_FN_Nop			55 /* 何もしない */

/* Version 2.1 には入っていない機能 */

#define CANNA_FN_HenkanOrInsert		56 /* 変換もしくはそのまま入力 */
#define CANNA_FN_HenkanNaive		CANNA_FN_HenkanOrInsert

/* Version 2.2 には入っていない機能 */

#define CANNA_FN_HenkanOrNothing	57 /* 変換もしくはなにもしない */
#define CANNA_FN_RussianMode		58 /* ロシア文字モード */
#define CANNA_FN_GreekMode		59 /* ギリシャ文字モード */
#define CANNA_FN_LineMode		60 /* 罫線モード */
#define CANNA_FN_DicMountMode		61 /* 辞書選択モード */
#define CANNA_FN_ChangeServerMode	62 /* サーバ選択モード */
#define CANNA_FN_DisconnectServer	63 /* サーバ切り離し */
#define CANNA_FN_ShowServer		64 /* サーバ表示 */
#define CANNA_FN_ShowGakushu		65 /* 学習状況表示 */
#define CANNA_FN_ShowVersion		66 /* バージョン表示 */
#define CANNA_FN_ShowPhonogramFile	67 /* ローマ字ファイル表示 */
#define CANNA_FN_ShowCannaFile		68 /* カスタマイズファイル表示 */
#define CANNA_FN_DefineDicMode		69 /* 単語登録 */
#define CANNA_FN_DeleteDicMode		70 /* 単語削除 */
#define CANNA_FN_SyncDic		71 /* 辞書書き込み */
#define CANNA_FN_EnterChikujiMode	72 /* 逐次自動変換モード */
#define CANNA_FN_EnterRenbunMode	73 /* 連文節変換モード */

/* Version 3.5 で追加されたもの */
#define CANNA_FN_PageUp                 74 /* ページアップ */
#define CANNA_FN_PageDown               75 /* ページダウン */
#define CANNA_FN_Edit			76 /* 編集 */
#define CANNA_FN_BubunKakutei		77 /* カーソル以前確定 */

#define CANNA_FN_HenkanRegion		78 /* 選択領域の変換 */
#define CANNA_FN_PhonoEdit		79 /* ローマ字エディタ */
#define CANNA_FN_DicEdit		80 /* 辞書エディタ */
#define CANNA_FN_Configure		81 /* Canna の設定 */

#define CANNA_FN_KanaRotate		82 /* カナ字種変換 */
#define CANNA_FN_RomajiRotate		83 /* 英数字種変換 */
#define CANNA_FN_CaseRotate		84 /* 大文字小文字変換 */

/* 以下の2つは必ず最後に置くこと。ccustom がらみの理由から */

#define CANNA_FN_FuncSequence		85 /* 複数の機能の割り当て */
#define CANNA_FN_UseOtherKeymap		86 /* キーシーケンスの対応 */

#define CANNA_FN_MAX_FUNC		(CANNA_FN_UseOtherKeymap + 1)

#ifdef IROHA_BC

#define IROHA_FN_Undefined		CANNA_FN_Undefined

/* 文字挿入 */

#define IROHA_FN_SelfInsert		CANNA_FN_SelfInsert
#define IROHA_FN_FunctionalInsert	CANNA_FN_FunctionalInsert
#define IROHA_FN_QuotedInsert		CANNA_FN_QuotedInsert

/* 基本的モード切り換え */

#define IROHA_FN_JapaneseMode		CANNA_FN_JapaneseMode
#define IROHA_FN_AlphaMode		CANNA_FN_AlphaMode
#define IROHA_FN_HenkanNyuryokuMode	CANNA_FN_HenkanNyuryokuMode


/* 編集 */

#define IROHA_FN_Forward		CANNA_FN_Forward
#define IROHA_FN_Backward		CANNA_FN_Backward
#define IROHA_FN_Next			CANNA_FN_Next
#define IROHA_FN_Prev			CANNA_FN_Prev
#define IROHA_FN_BeginningOfLine	CANNA_FN_BeginningOfLine
#define IROHA_FN_EndOfLine		CANNA_FN_EndOfLine
#define IROHA_FN_DeleteNext		CANNA_FN_DeleteNext
#define IROHA_FN_DeletePrevious		CANNA_FN_DeletePrevious
#define IROHA_FN_KillToEndOfLine	CANNA_FN_KillToEndOfLine

/* カナ漢字変換機能 */

#define IROHA_FN_Henkan			CANNA_FN_Henkan
#define IROHA_FN_Kakutei		CANNA_FN_Kakutei
#define IROHA_FN_Extend			CANNA_FN_Extend
#define IROHA_FN_Shrink			CANNA_FN_Shrink
#define IROHA_FN_AdjustBunsetsu		CANNA_FN_AdjustBunsetsu
#define IROHA_FN_Quit			CANNA_FN_Quit
#define IROHA_FN_ConvertAsHex		CANNA_FN_ConvertAsHex
#define IROHA_FN_ConvertAsBushu		CANNA_FN_ConvertAsBushu
#define IROHA_FN_KouhoIchiran		CANNA_FN_KouhoIchiran
#define IROHA_FN_BubunMuhenkan		CANNA_FN_BubunMuhenkan

/* 文字種変換だけに使われる機能 */

#define IROHA_FN_Zenkaku		CANNA_FN_Zenkaku
#define IROHA_FN_Hankaku		CANNA_FN_Hankaku
#define IROHA_FN_ToUpper		CANNA_FN_ToUpper
#define IROHA_FN_Capitalize		CANNA_FN_Capitalize
#define IROHA_FN_ToLower		CANNA_FN_ToLower
#define IROHA_FN_Hiragana		CANNA_FN_Hiragana
#define IROHA_FN_Katakana		CANNA_FN_Katakana
#define IROHA_FN_Romaji			CANNA_FN_Romaji

/* その他のモード切り替え */

#define IROHA_FN_ExtendMode		CANNA_FN_ExtendMode
#define IROHA_FN_Touroku                CANNA_FN_Touroku

#define IROHA_FN_HexMode		CANNA_FN_HexMode
#define IROHA_FN_BushuMode		CANNA_FN_BushuMode
#define IROHA_FN_KigouMode		CANNA_FN_KigouMode

#define IROHA_FN_UserMode		CANNA_FN_UserMode

/* 複雑な機能 */

#define IROHA_FN_FuncSequence		CANNA_FN_FuncSequence
#define IROHA_FN_UseOtherKeymap		CANNA_FN_UseOtherKeymap

#define IROHA_FN_MAX_FUNC		CANNA_FN_MAX_FUNC

#endif /* IROHA_BC */

#endif /* _MFDEF_H_ */
Canna36p3/canna/net.h0100644000175100000240000000307507554426261013715 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/* sccs_id[]="@(#) NEC UNIX( PC-UX/EWS-UX ) net.h 1.1 90/11/01 16:25:42"; */
/* $Id: net.h,v 1.2 2002/10/20 04:10:25 aida_s Exp $ */

#if defined(nec_ews_svr2) || defined(pcux)
#include <sys/types.h>
#include <net/socket.h>
#include <net/in.h>
#include <net/netdb.h>
#include <net/un.h>
#else
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#ifdef UNIXCONN
#include <sys/un.h>
#endif
#endif
Canna36p3/canna/patchlevel.h0100644000175100000240000000244507614447345015261 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/* $Id: patchlevel.h,v 1.2.2.3 2003/01/25 08:46:29 aida_s Exp $ */

#define CANNA_MAJOR_MINOR 3006
#define CANNA_PATCH_LEVEL "p3"
Canna36p3/canna/protodefs.h0100644000175100000240000001357207554463521015137 0ustar  shinrastaff/* Copyright 1993 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/* $Id: protodefs.h,v 1.2 2002/10/20 08:20:33 aida_s Exp $ */

#define canna_version(majv, minv) ((majv) * 1024 + (minv))

/* 以下は rkcw.h 内のと同じ定義 */
#ifndef CBUFSIZE
typedef unsigned short Ushort;
typedef unsigned char BYTE;
#define CBUFSIZE     512
#define CBIGBUFSIZE 4096
#endif
/* ここまで */

#define OLD_MAX_CX  100

#define FALSE 0
#define TRUE 1

/* #define SERVER_VERSION      "3.5" */
#define E_VERSION           "1.2"
#define W_VERSION           "3.3"

#define IR_SERVICE_NAME	    "canna"
#define IR_DEFAULT_PORT	    5680
#define IR_UNIX_PATH	    IR_UNIX_DIR "/" IR_UNIX_SOCKNAME
#define NAME_LENGTH	    15
#define HOST_NAME	    15
			
#define LOMASK(x)	((x)&255)
#define L4TOL(l4)\
        ((((((((unsigned long) ((unsigned char)(l4)[0])) << 8) | \
                ((unsigned long) ((unsigned char)(l4)[1])))  << 8)  | \
                ((unsigned long) ((unsigned char)(l4)[2])))  << 8)      | \
                ((unsigned long) ((unsigned char)(l4)[3])))

#define	L3TOL(l3)\
	((unsigned long)(((((unsigned char)(l3)[0]<<8)|\
        (unsigned char)(l3)[1])<<8) | (unsigned char)(l3)[2]))
#define	S2TOS(s2) ((unsigned short)(((unsigned char)(s2)[0]<<8)|\
	(unsigned char)(s2)[1]))
#define	LTOL4(l, l4)	{\
	(l4)[0] = LOMASK((l)>>24); (l4)[1] = LOMASK((l)>>16);\
	(l4)[2] = LOMASK((l)>> 8); (l4)[3] = LOMASK((l));\
}
#define	LTOL3(l, l3)	{\
(l3)[0] = LOMASK((l)>>16); (l3)[1] = LOMASK((l)>> 8); (l3)[2] = LOMASK((l));\
}
#define	STOS2(s, s2)	{\
	(s2)[0] = LOMASK((s)>> 8); (s2)[1] = LOMASK((s));\
}

/* IXXtoIXX は必要性を考えてあとで削れるなら削る */
#if 0
#define I16toI32(x) (((x) & 0x8000) ? ((x) | 0xffff8000) : (x))
#endif
#define I16toI32(x) (x)
#define I8toI32(x) (((x) & 0x80) ? ((x) | 0xffffff80) : (x))

#if defined(__bsdi__) || defined(__FreeBSD__)
#include <machine/endian.h>
#endif

#ifndef MIN
#define MIN( n, m )	( ((unsigned)(n) > (unsigned)(m)) ? (m) : (n) )
#endif

#define BUFSIZE 	4096
#define MAXDATA 	1024

/* かんなサーバプロトコル */

#define wInitialize 	   0x01
#define wFinalize	   0x02
#define wCreateContext	   0x03
#define wDuplicateContext  0x04
#define wCloseContext	   0x05
#define wGetDictionaryList 0x06
#define wGetDirectoryList  0x07
#define wMountDictionary   0x08
#define wUnmountDictionary 0x09
#define wRemountDictionary 0x0a
#define wGetMountDictionaryList	   0x0b
#define wQueryDictionary   0x0c
#define wDefineWord	   0x0d
#define wDeleteWord	   0x0e
#define wBeginConvert	   0x0f
#define wEndConvert	   0x10
#define wGetCandidacyList  0x11
#define wGetYomi	   0x12
#define wSubstYomi	   0x13
#define wStoreYomi	   0x14
#define wStoreRange	   0x15
#define wGetLastYomi	   0x16
#define wFlushYomi	   0x17
#define wRemoveYomi	   0x18
#define wGetSimpleKanji	   0x19
#define wResizePause	   0x1a
#define wGetHinshi	   0x1b
#define wGetLex		   0x1c
#define wGetStatus	   0x1d
#define wSetLocale	   0x1e
#define wAutoConvert	   0x1f
#define wQueryExtensions   0x20
#define wSetApplicationName	   0x21
#define wNoticeGroupName   0x22
#define wThrough	   0x23
#define wKillServer	   0x24

#define W_REALREQUEST	   0x24 /* same as the max number */
#define W_MAXREQUESTNO	   (W_REALREQUEST + 1)

#ifdef EXTENSION
#define wGetServerInfo	   0x01
#define wGetAccessControlList	   0x02
#define wCreateDictionary  0x03
#define wDeleteDictionary  0x04
#define wRenameDictionary  0x05
#define wGetWordTextDictionary	   0x06
#define wListDictionary	   0x07
#define wSync		   0x08
#define wChmodDictionary   0x09
#define wCopyDictionary	   0x0a
#endif /* EXTENSION */

#define W_MAXEXTREQUESTNO  0x0b /* the max number plus 1 */


/* いろはサーバプロトコル */
#define OLD_MAXREQUESTNO    0x18

#define MAXREQUESTNO	   0x1b
#define REALREQUEST	   0x1a

#define IR_INIT 	   0x01
#define IR_FIN		   0x02
#define IR_CRE_CON	   0x03
#define IR_DUP_CON	   0x04
#define IR_CLO_CON	   0x05
#define IR_DIC_LIST	   0x06
#define IR_GET_YOMI	   0x07
#define IR_DEF_DIC	   0x08
#define IR_UNDEF_DIC	   0x09
#define IR_DIC_PATH	   0x0a
#define IR_DIR_LIST	   0x0b
#define IR_MNT_DIC	   0x0c
#define IR_UMNT_DIC	   0x0d
#define IR_RMNT_DIC	   0x0e
#define IR_MNT_LIST	   0x0f
#define IR_CONVERT	   0x10
#define IR_CONV_END	   0x11
#define IR_KAN_LST	   0x12
#define IR_RESIZE	   0x13
#define IR_STO_YOMI	   0x14
#define IR_GET_LEX	   0x15
#define IR_GET_STA	   0x16
#define IR_SER_STAT	   0x17
#define IR_SER_STAT2	   0x18
#define IR_HOST_CTL	   0x19
#define IR_QUERY_EXT	   0x1a

#ifdef EXTENSION
#define EXTBASEPROTONO	   0x00010000
#define MAXEXTREQUESTNO    0x04

#define REMOTE_DIC_UTIL    "remote_dictionary_maintenance"
#define IR_LIST_DIC	   0x00
#define IR_CREAT_DIC	   0x01
#define IR_DEST_DIC	   0x02
#define IR_RENAME_DIC	   0x03
#define IR_GET_WORD_DIC    0x04
#else /* !EXTENSION */
#define EXTBASEPROTONO	   0x00000000
#define MAXEXTREQUESTNO    0xff
#endif /* !EXTENSION */
Canna36p3/canna/symbolname.h0100644000175100000240000002411507554213560015267 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/* $Id: symbolname.h,v 1.1.1.1 2002/10/19 08:27:28 aida_s Exp $
 */

#define S_HenkanNyuuryokuMode	"henkan-nyuuryoku-mode"
#define S_ZenHiraHenkanMode	"zen-hira-henkan-mode"
#define S_HanHiraHenkanMode	"han-hira-henkan-mode"
#define S_ZenKataHenkanMode	"zen-kata-henkan-mode"
#define S_HanKataHenkanMode	"han-kata-henkan-mode"
#define S_ZenAlphaHenkanMode	"zen-alpha-henkan-mode"
#define S_HanAlphaHenkanMode	"han-alpha-henkan-mode"
#define S_ZenHiraKakuteiMode	"zen-hira-kakutei-mode"
#define S_HanHiraKakuteiMode	"han-hira-kakutei-mode"
#define S_ZenKataKakuteiMode	"zen-kata-kakutei-mode"
#define S_HanKataKakuteiMode	"han-kata-kakutei-mode"
#define S_ZenAlphaKakuteiMode	"zen-alpha-kakutei-mode"
#define S_HanAlphaKakuteiMode	"han-alpha-kakutei-mode"
#define S_AlphaMode		"alpha-mode"
#define S_YomiganaiMode		"empty-mode"
#define S_YomiMode		"yomi-mode"
#define S_MojishuMode		"mojishu-mode"
#define S_TankouhoMode		"tankouho-mode"
#define S_IchiranMode		"ichiran-mode"
#define S_ShinshukuMode		"shinshuku-mode"
#define S_HexMode		"hex-mode"
#define S_BushuMode		"bushu-mode"
#define S_YesNoMode		"yes-no-mode"
#define S_OnOffMode		"on-off-mode"
#define S_ExtendMode		"extend-mode"
#define S_RussianMode		"russian-mode"
#define S_GreekMode		"greek-mode"
#define S_LineMode		"line-mode"
#define S_ChangingServerMode	"changing-server-mode"
#define S_HenkanMethodMode	"henkan-method-mode"
#define S_DeleteDicMode		"delete-dic-mode"
#define S_TourokuMode		"touroku-mode"
#define S_TourokuHinshiMode	"touroku-hinshi-mode"
#define S_TourokuDicMode	"touroku-dic-mode"
#define S_QuotedInsertMode	"quoted-insert-mode"
#define S_BubunMuhenkanMode	"bubun-muhenkan-mode"
#define S_MountDicMode		"mount-dic-mode"
#define S_KigouMode		"kigou-mode"
#define S_AutoYomiMode		"chikuji-yomi-mode"
#define S_AutoBunsetsuMode	"chikuji-bunsetsu-mode"
#define S_UnbindKey		"unbind-key-function"
#define S_GUnbindKey		"global-unbind-key-function"
#define S_SetKey		"set-key"
#define S_GSetKey		"global-set-key"
#define S_SetModeDisp		"set-mode-display"
#define S_DefMode		"defmode"
#define S_DefSymbol		"defsymbol"
#define S_DefSelection		"defselection"
#define S_DefMenu		"defmenu"
#define S_SetInitFunc		"initialize-function"
#define S_FN_UseDictionary	"use-dictionary"
#define S_defEscSequence	"define-esc-sequence"
#define S_defXKeysym		"define-x-keysym"

#define S_FN_Undefined		"undefined"
#define S_FN_SelfInsert		"self-insert"
#define S_FN_FunctionalInsert	"self-insert"
#define S_FN_QuotedInsert	"quoted-insert"
#define S_FN_JapaneseMode	"japanese-mode"
#define S_FN_AlphaMode		S_AlphaMode
#define S_FN_HenkanNyuryokuMode	S_HenkanNyuuryokuMode
#define S_FN_ZenHiraKakuteiMode S_ZenHiraKakuteiMode
#define S_FN_ZenKataKakuteiMode	S_ZenKataKakuteiMode
#define S_FN_HanKataKakuteiMode	S_HanKataKakuteiMode
#define S_FN_ZenAlphaKakuteiMode S_ZenAlphaKakuteiMode
#define S_FN_HanAlphaKakuteiMode S_HanAlphaKakuteiMode
#define S_FN_HexMode		S_HexMode
#define S_FN_BushuMode		S_BushuMode
#define S_FN_KigouMode		S_KigouMode
#define S_FN_Forward		"forward"
#define S_FN_Backward		"backward"
#define S_FN_Next		"next"
#define S_FN_Prev		"previous"
#define S_FN_BeginningOfLine	"beginning-of-line"
#define S_FN_EndOfLine		"end-of-line"
#define S_FN_DeleteNext		"delete-next"
#define S_FN_DeletePrevious	"delete-previous"
#define S_FN_KillToEndOfLine	"kill-to-end-of-line"
#define S_FN_Henkan		"henkan"
#define S_FN_HenkanNaive	"henkan-naive"
#define S_FN_HenkanOrSelfInsert	"henkan-or-self-insert"
#define S_FN_HenkanOrDoNothing	"henkan-or-do-nothing"
#define S_FN_Kakutei		"kakutei"
#define S_FN_Extend		"extend"
#define S_FN_Shrink		"shrink"
#define S_FN_AdjustBunsetsu	S_ShinshukuMode
#define S_FN_Quit		"quit"
#define S_FN_ExtendMode		S_ExtendMode
#define S_FN_Touroku		"touroku"
#define S_FN_ConvertAsHex	"convert-as-hex"
#define S_FN_ConvertAsBushu	"convert-as-bushu"
#define S_FN_KouhoIchiran	"kouho-ichiran"
#define S_FN_BubunMuhenkan	"henshu"
#define S_FN_Zenkaku		"zenkaku"
#define S_FN_Hankaku		"hankaku"
#define S_FN_ToUpper		"to-upper"
#define S_FN_Capitalize		"capitalize"
#define S_FN_ToLower		"to-lower"
#define S_FN_Hiragana		"hiragana"
#define S_FN_Katakana		"katakana"
#define S_FN_Romaji		"romaji"
#define S_FN_BaseHiragana	"base-hiragana"
#define S_FN_BaseKatakana	"base-katakana"
#define S_FN_BaseKana		"base-kana"
#define S_FN_BaseEisu		"base-eisu"
#define S_FN_BaseZenkaku	"base-zenkaku"
#define S_FN_BaseHankaku	"base-hankaku"
#define S_FN_BaseKakutei	"base-kakutei"
#define S_FN_BaseHenkan		"base-henkan"
#define S_FN_BaseHiraKataToggle	"base-hiragana-katakana-toggle"
#define S_FN_BaseKanaEisuToggle	"base-kana-eisu-toggle"
#define S_FN_BaseZenHanToggle	"base-zenkaku-hankaku-toggle"
#define S_FN_BaseKakuteiHenkanToggle "base-kakutei-henkan-toggle"
#define S_FN_BaseRotateForward	"base-rotate-forward"
#define S_FN_BaseRotateBackward	"base-rotate-backward"
#define S_FN_Mark		"mark"
#define S_FN_Temporary		"temporary"
#define S_FN_SyncDic		"sync-dictionary"
#define S_FN_FuncSequence	"XXXXXXXXXXXXXX"
#define S_FN_UseOtherKeymap	"XXXXXXXXXXXXXX"
#define S_FN_DefineDicMode	S_TourokuMode
#define S_FN_DeleteDicMode	S_DeleteDicMode
#define S_FN_DicMountMode	"jisho-ichiran"
#define S_FN_EnterChikujiMode	"chikuji-mode"
#define S_FN_EnterRenbunMode	"renbun-mode"
#define S_FN_DisconnectServer	"disconnect-server"
#define S_FN_ChangeServerMode	"switch-server"
#define S_FN_ShowServer		"show-server-name"
#define S_FN_ShowGakushu	"show-gakushu"
#define S_FN_ShowVersion	"show-canna-version"
#define S_FN_ShowPhonogramFile	"show-romkana-table"
#define S_FN_ShowCannaFile	"show-canna-file"
#define S_FN_KanaRotate		"kana-rotate-forward"
#define S_FN_RomajiRotate	"romaji-rotate-forward"
#define S_FN_CaseRotate		"case-rotate-forward"

#define S_VA_RomkanaTable	"romkana-table"
#define S_VA_EnglishTable	"english-table"
#define S_VA_InitMode		"initial-mode"
#define S_VA_CursorWrap		"cursor-wrap"
#define S_VA_SelectDirect	"select-direct"
#define S_VA_NumericalKeySelect	"numerical-key-select"
#define S_VA_BunsetsuKugiri	"bunsetsu-kugiri"
#define S_VA_CharacterBasedMove	"character-based-move"
#define S_VA_ReverseWidely	"reverse-widely"
#define S_VA_ReverseWord	"reverse-word"
#define S_VA_Gakushu		"gakushu"
#define S_VA_QuitIfEOIchiran	"quit-if-end-of-ichiran"
#define S_VA_KakuteiIfEOBunsetsu	"kakutei-if-end-of-bunsetsu"
#define S_VA_StayAfterValidate	"stay-after-validate"
#define S_VA_BreakIntoRoman	"break-into-roman"
#define S_VA_NHenkanForIchiran	"n-henkan-for-ichiran"
#define	S_VA_nKouhoBunsetsu	"n-kouho-bunsetsu"
#define S_VA_keepCursorPosition	"keep-cursor-position"
#define S_VA_GrammaticalQuestion	"grammatical-question"
#define S_VA_ForceKana		"force-kana"
#define S_VA_KouhoCount		"kouho-count"
#define S_VA_Auto		"auto"
#define S_VA_LearnNumericalType "learn-numerical-type"
#define S_VA_BackspaceBehavesAsQuit	"backspace-behaves-as-quit"
#define S_VA_InhibitListCallback	"inhibit-list-callback"
#define S_VA_CannaVersion	"canna-version"
#define S_VA_ProtocolVersion	"protocol-version"
#define S_VA_ServerVersion	"server-version"
#define S_VA_ServerName		"server-name"
#define S_VA_Abandon		"abandon-illegal-phonogram"
#define S_VA_HexDirect		"hex-direct"
#define S_VA_Kojin		"kojin"
#define S_VA_IndexHankaku	"index-hankaku"
#define S_VA_IndexSeparator	"index-separator"
#define S_VA_AllowNextInput	"allow-next-input"
#define S_VA_KeepCursorPosition	"keep-cursor"
#define S_VA_ChikujiContinue	"chikuji-continue"
#define S_VA_RenbunContinue	"renbun-continue"
#define S_VA_MojishuContinue	"mojishu-continue"
#define S_VA_ChikujiRealBackspace "chikuji-force-backspace"
#define S_VA_doKatakanaGakushu  "katakana-touroku"
#define S_VA_doHiraganaGakushu  "hiragana-touroku"
#define S_VA_chikuji_debug      "chikuji-debug"
#define S_VA_nDisconnectServer  "n-keys-to-disconnect"
#define S_VA_ignoreCase		"ignore-case"
#define S_VA_RomajiYuusen	"romaji-yuusen"
#define S_VA_CannaDir		"canna-directory"
#define S_VA_AutoSync		"auto-sync"
#define S_VA_QuicklyEscape	"quickly-escape-from-kigo-input"
#define S_VA_InhibitHanKana	"inhibit-hankaku-kana"
#define S_VA_CodeInput          "code-input"

#define S_IF_HenkanNyuryoku     "(japanese-mode)"
#define S_IF_ZenHiraKakutei     "(japanese-mode base-kakutei)"
#define S_IF_ZenKataKakutei     "(japanese-mode base-kakutei base-katakana)"
#define S_IF_ZenAlphaKakutei    "(japanese-mode base-kakutei base-eisu base-zenkaku)"
#define S_IF_HanKataKakutei     "(japanese-mode base-kakutei base-katakana base-hankaku)"
#define S_IF_HanAlphaKakutei    "(japanese-mode base-kakutei base-eisu base-hankaku)"
#define S_IF_ZenKataHenkan      "(japanese-mode base-katakana)"
#define S_IF_ZenAlphaHenkan     "(japanese-mode base-eisu base-zenkaku)"
#define S_IF_HanKataHenkan      "(japanese-mode base-katakana base-hankaku)"
#define S_IF_HanAlphaHenkan     "(japanese-mode hase-eisu base-hankaku)"

#define S_FN_PageUp		"page-up"
#define S_FN_PageDown		"page-down"
#define S_FN_Edit		"edit"
#define S_FN_BubunKakutei	"bubun-kakutei"
#define S_FN_HenkanRegion	"henkan-region"
#define S_FN_PhonoEdit		"phono-edit"
#define S_FN_DicEdit		"dic-edit"
#define S_FN_Configure		"configure"
Canna36p3/canna/widedef.h0100644000175100000240000000633307606203752014532 0ustar  shinrastaff/* Copyright 1992 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/*
 * @(#) 102.1 $Id: widedef.h,v 1.1.1.1.2.1 2003/01/06 04:36:58 aida_s Exp $
 */

#ifndef _WIDEDEF_H_
#define _WIDEDEF_H_

#if (defined(_WINDOWS) || defined(WIN32)) && !defined(WIN)
#define WIN
#endif

#ifdef WIN
#define WCHAR16
#endif
     
#ifdef __FreeBSD__
# include <osreldate.h>
#endif

#if (defined(__FreeBSD__) && __FreeBSD_version < 500000) \
    || defined(__NetBSD__) || defined(__OpenBSD__)
# include <machine/ansi.h>
#endif

#if defined(__STDC__) || defined(SVR4) || defined(sun) /* This may be wrong. */
# if !defined(WCHAR16) && !defined(CANNA_WCHAR)
#  define HAVE_WCHAR_OPERATION
# endif
#endif

#ifdef HAVE_WCHAR_OPERATION
#ifndef nec_ews_svr2
#ifdef WIN
#undef HAVE_WCHAR_OPERATION
/* The reason why HAVE_WCHAR_OPERATION macro to be set `undef' is that
   the wchar_t functions in Windows such as wcstombs() operates on
   Shift JIS kanji code.  On the other hand, Canna source expects EUC
   for multi-byte code string */
#include <BASETYPS.H>
#else /* UNIX */
/* replace widec.h instead, if SunOS 4.0 */
#include <stddef.h>
#endif /* UNIX */
#endif /* !nec_ews_svr2 */
#endif /* HAVE_WCHAR_OPERATION */

#if (defined(__FreeBSD__) && __FreeBSD_version < 500000) \
    || defined(__NetBSD__) || defined(__OpenBSD__)
# ifdef _BSD_WCHAR_T_
#  undef _BSD_WCHAR_T_
#  ifdef WCHAR16
#   define _BSD_WCHAR_T_ unsigned short
#  else
#   define _BSD_WCHAR_T_ unsigned long
#  endif
# include <stddef.h>
# define _WCHAR_T
# endif
#elif defined(__FreeBSD__) && __FreeBSD_version >= 500000
# ifdef WCHAR16
typedef unsigned short wchar_t;
#  define _WCHAR_T_DECLARED
# endif
# include <stddef.h>
# define _WCHAR_T
#else
#if !defined(WCHAR_T) && !defined(_WCHAR_T) && !defined(_WCHAR_T_) \
 && !defined(__WCHAR_T) && !defined(_GCC_WCHAR_T) && !defined(_WCHAR_T_DEFINED)
# ifdef WCHAR16
typedef unsigned short wchar_t;
# else
/* replace this with #include or typedef appropriate for your system */
typedef unsigned long wchar_t;
# endif
# define WCHAR_T
# define _WCHAR_T
# define _WCHAR_T_
# define __WCHAR_T
# define _GCC_WCHAR_T
#define _WCHAR_T_DEFINED
#endif
#endif

#endif /* _WIDEDEF_H_ */
Canna36p3/.cvsignore0100644000175100000240000000006007606176335013667 0ustar  shinrastaff.depend
Makefile
Canna.conf
include
cannaconf.h
Canna36p3/CHANGES.jp0100644000175100000240000010430007613540614013265 0ustar  shinrastaff本文書では『かんな』Version 1.2 以降の変更点について時間をさかのぼりな
がら説明いたします。


0. 『かんな』Version 3.6 におけるパッチ

0.1 パッチレベル2での修正

 ここでは主要な変更のみを述べます。詳しくは ChangeLog を参照して下さい。

 ・canuum を FreeWnn の uum をベースに書き換え。
 ・共有ライブラリのバージョンを1.1に統一。
 ・辞書の誤字、品詞の誤りを修正。
 ・character-based-move が t に設定されていると、単語登録の際に単語の編集
  がうまく出来ない不具合を修正。
 ・TTY ベースのアプリケーションや emacs で、カーソルキーやファンクションキー
  を正常に入力できない不具合を修正。
 ・字種変換、部分確定の際に誤った学習が行われる問題を修正。
 ・現代的なディレクトリ構造に対応させやすいよう、 Canna.conf.dist を
  書き換え。デフォルトのディレクトリ構造は変えていない。
 ・FreeBSD 5.x,OpenBSD でのワイドキャラクタの扱いを修正。
 ・mkbindic で同じ読みの単語同士の優先順位を変えないようにした。
 ・3.6p1 で逐次入力が壊れていたのを修正。
 ・マニュアル類やカスタマイズファイルのサンプルを更新。
 ・その他細かなバグ修正。

0.2 パッチレベル1での修正

 クライアントから不正なリクエストを送られると、バッファオーバーフローを
 起こしたり、内部情報が漏れたりするというセキュリティ問題を修正。


1. 『かんな』Version 3.6 における変更点

『かんな』Version 3.6 では『かんな』Version 3.5 β2版 に対して以下に
示すような機能拡張、変更を行っています。

1.1 従来と互換性のない変更

 cannaserverに-inetオプションを付けて起動しない限り、TCP接続は受け付けず、
 UNIXドメインソケットでの接続のみを受け付けるようにしました。これは、
 Debian GNU/Linuxでの修正を取り入れたものです。なお、UNIXドメインの場合、
 サーバ名はunix[:番号]と指定します。

1.2 セキュリティ修正

 クライアントから非常に長いユーザ名を送られると、バッファオーバーフロー
 を起こすという問題を修正しました。

1.3 辞書、文法データの修正

 3.5 β2版リリース後に公開された、狩野氏および藤枝氏によるアンオフィ
 シャル文法パッチを適用しました。また、pubdic+の誤字を数箇所修正しま
 した。

1.4 変換エンジンの強化

 次の機能を実現する、藤枝氏によるアンオフィシャルパッチを適用しました。

 ・3つ以上付属語が接続した時に、日本語としてあり得ない表現が生じるのを
   打ち消すロジックを追加する。

 ・使われていなかった文節区切り学習の機能を有効にする。

 この他、Debian GNU/Linuxで行われていた、読みが一文字の単語では優先度を
 無視する修正を加えています。(これは藤枝氏がCanna-mlに流したパッチので、
 統合パッチから抜けていたものです。)また、藤枝氏のパッチでは、mkdicで
 作った辞書では文節区切り学習が効かないので、それも効くようにしました。

1.5 その他の主な変更

 (1) cannaserverの特権の設定

 -uオプションで、cannaserverがどのユーザの権限で動作するかを指定できる
 ようになりました。これはDebian GNU/Linuxでの修正を取り入れたものです。

 (2) 日本語manページのインストール

 従来は、日本語と英語のどちらかのmanページしかインストール出来ません
 でしたが、両方のmanページが入るようになりました。


2. 『かんな』Version 3.5 β版における変更点

2.1 β2版での変更点

  ・C-j の問題点の修正

   C-j を部分確定機能にわりあてたが、読みモードで最後尾にカーソルがあ
   る状態で部分確定すると、空モードに戻らないで読みモードのままである
   と言う問題があった。具体的には「わたし C-j C-b」のように Emacs 上で
   入力したとき、C-b が Emacs のカーソル移動に用いられれず C-b 自身が
   されてしまうという問題があった。

  ・早稲田大学の狩野氏および北陸先端大学院大学の藤枝氏によるアンオフィ
    シャル文法パッチを適用した。

  ・C-k や C-d の処理の修正

   C-k や C-d のような先頭一文字、末尾一文字を取り出す処理を行う場合に、
   内部にかかえている読み部分を先頭一文字/末尾一文字などにしていたが、
   これだとアンドゥできなくなるので、この処理をやめた。ただし、現状で
   は C-k や C-d 後に self-insert(a などを入力)すると C-k や C-d の効
   果が無くなってしまうと言う問題がある。

  ・ライブラリのインストールパスを /usr/local/lib から /usr/lib に戻し
    た。

  ・OS/2 でもコンパイルできるようにした。この部分は日本 IBM の上野さん
    による修正です。

  ・Linux が select 部分で CPU を異常に消費してしまう問題を解決した。
  ・NetBSD でもコンパイルできるようにした。
  ・keishiki.t や katakana.t などの足りなかった辞書の追加。
  ・β1で canuum がコンパイルできなかった件を修正
  ・SunOS 4.1 のコンパイラではねられる記述を取り除いた。
  ・その他小さな問題の修正

3. 『かんな』Version 3.5 における変更点

『かんな』Version 3.5 では『かんな』Version 3.4 に対して以下に示すよう
な機能拡張・変更を行っています。

  (1) ユーザインタフェースの改善
  (2) ファイル拡張子の変更
  (3) 辞書の変更
  (4) スリムな Canna を作るためのフラグの追加
  (5) 旧形式ファイルのサポートとりやめ
  (6) SJ3, Wnn のサーバアクセスライブラリのサポートとりやめ
  (7) いくつかのコマンドのサポートとりやめ
  (8) アプリケーションプログラムインタフェースの改善

(1),(2) の変更は、主に Canna for Windows 95 開発に伴う変更です。

3.1 ユーザインタフェース

 (1) 候補一覧のページスクロール

  候補一覧の二次元表示時に、画面に収まり切らない候補に関してページ単位
  のスクロールアップスクロールダウンができるようになりました。

 (2) 一文字選択機能の追加

  文節内の先頭あるいは末尾の一文字だけを選択する機能をつけました。C-k 
  および C-d に割り当ててあります。これに伴い、変換中の C-k の機能(部
  分確定を行い残り部分を読みに戻す)は C-k への割当が削除されました。一
  文字選択機能は例えば、「直出(ちょくしゅつ)」という単語が辞書に無かっ
  た時に、「ちょくせつがいしゅつ<変換>」→「直接外出」→C-k,C-f,C-d→
  「直出」として入力することができます。

  C-k を以前と同じ意味で利用する場合は以下のように定義してください。

    (set-key 'tankouho-mode "\C-k" '(bubun-kakutei quit))
    (set-key 'ichiran-mode "\C-k" '(bubun-kakutei quit))

 (3) bubun-kakutei 機能

  bubun-kakutei 機能を追加しました。これはカレントカーソルポジションの
  前までの領域を確定させるものです。キーは C-j に割り当てました。

 (4) 文字種変換バリエーションの追加

  かな文字字種だけでぐるぐる字種変換する kana-rotate、英数文字だけでぐ
  るぐる字種変換する romaji-rotate、大文字小文字キャピタライズを選択す
  る case-rotate 機能を入れました。

 (5) 文字種変換後の動作がカスタマイズ可能に

  文字種変換後、文字種変換部分を確定しないで次の入力を行うかどうかを指
  定することができるようになりました。指定するための変数は 
  mojishu-continue で、t または nil を指定します。デフォルト値は t で、
  Version 3.4 のときの仕様と同じ「確定しないで次の入力を行う」です。

 (6) defsymbol の拡張

  ローマ字かな変換の補助を行う defsymbol 機能を拡張しました。入力キー
  に対して他のキーが入力されたように振舞わせることができるようになりま
  す。

    (例) F1 を押したら全角スペースを入力する。その時入力キーはあたかも
         スペースキーであったかのようにする。

         (defsymbol ?\F1 ?\Space " ")

 (7) defsymbol の動作の若干の変更

  defsymbol してある文字については候補一覧表示を行った時にはかならず 
  defsymbol での定義による一覧が出ていましたが、defsymbol で候補が一つ
  しかないときは漢字の一覧が出るようになりました。

 (8) 候補一覧モードにおける操作の拡張

  文節伸ばし(C-o)など、候補一覧モードでは直接用いられないキーを入力し
  たときに、候補一覧を終了し、単候補モードでその機能が実行されるように
  なりました。

 (9) Capitalize 機能の修正

  Capitalize 機能を修正しました。例えば、new york に対しては New York 
  となるようになりました。

3.2 ファイル拡張子の変更

  各種ファイルの拡張子を Canna for Windows 95 に合わせて、以下のように
  変更しました。

    ローマ字かな変換テーブル  *.kp → *.cbp
    バイナリ辞書              *.d  → *.cbd
    テキスト辞書              *.t  → *.ctd
    学習ファイル              *.fq → *.cld

3.3 辞書の変更

 (1) pubdic+ の利用

  pubdic+ の辞書を簡単に利用できるようになりました。

 (2) ユーザ用サンプル辞書とシステム辞書の統合

  ユーザ辞書ディレクトリ(user/user) にサンプル辞書がいくつか置いてあり
  ましたが、これらの辞書をシステム辞書ディレクトリ(canna)に移動しまし
  た。

3.4 スリムな Canna を作るためのフラグの追加

  旧プロトコル互換のためのコードや、ユーザインタフェースライブラリにお
  けるメニュー部分のコードをコンパイルスイッチで削除することができるよ
  うになりました。デフォルトでは、旧プロトコル(『かんな』Version 1.x 
  のプロトコル)は削除、メニューはそのままとなります。

  これにより旧プロトコルしか話せないクライアントやサーバとの接続ができ
  なくなります。『かんな』Version 1.x のものとの通信を行なう場合は、旧
  プロトコルも利用できるように Canna.conf を書換えてください。


3.5 旧形式ファイルのサポートの取りやめ

  以下の旧形式ファイルのサポートをとりやめました。

    *.iroha … 旧形式カスタマイズファイル
    *.rdef  … 旧形式ローマ字かな変換テーブルソース
    *.rdic  … 旧形式ローマ字かな変換テーブル

  これにともない、mkromdic の -n オプションも使用できなくなります。	

3.6 SJ3, Wnn のサーバアクセスライブラリのサポートとりやめ

  RKSj3(SJ3 サーバアクセスライブラリ)、RKWnn(Wnn の jserver アクセスラ
  イブラリ)のサポートをとりやめました。

3.7 いくつかのコマンドのサポートとりやめ

  以下のツール、プログラムのサポートをとりやめました。

    canvert … 『かんな』Version 1.x のバイナリ辞書やカスタマイズファ
               イルを Version 2.1 以降の形式のファイルに変換するツール。

    dpwdic  … 上記 canvert から呼び出される辞書コンバータ。

    itoc    … 上記 canvert から呼び出されるカスタマイズファイルコンバー
               タ。

3.8 アプリケーションプログラムインタフェース

  候補一覧のコールバック API を拡張および変更しました。この API は 
  Windows 95 用 IME のためのものです。kinput2 もこの API を利用してい
  ますが、kinput2v2 fix2 にて対応済です。


4. 『かんな』Version 3.4 における変更点

『かんな』Version 3.4 では『かんな』Version 3.3 に対して以下に示すよう
な機能拡張を行っています。

  (1) ユーザインタフェースの改善
  (2) アプリケーションインタフェースの追加
  (3) その他の変更

本変更は主に Canna for Windows 3.1 開発に伴う変更です。

4.1 ユーザインタフェース

 (1) カタカナ自動登録

  全角カタカナに字種変換して確定した場合は、そのカタカナを自動登録する
  ことができるようになりました。自動登録の指定は、カスタマイズファイル
  を利用して以下のように記述します。

    (use-dictionary :katakana "katakana")

 (2) コード種別の指定

  コード変換の機能を利用してコード入力を行う場合、JIS コード(jis)、シ
  フト JIS コード(sjis)、区点コード(kuten)の 3 つのコード種別のいずれ
  かを指定することができるようになりました。コード種別の指定は、カスタ
  マイズファイルを利用して以下のように記述します。

    (setq code-input "jis")

  ただし、メニューを利用したコード入力は、JIS コードのみサポートします。

4.2 アプリケーションインタフェース

 (1) KC_SETUSERINFO

  KC_SETUSERINFO によってアプリケーションからユーザ名などの指定が行え
  ます。

 (2) KC_CHANGESERVER

  KC_CHANGESERVER によってアプリケーションから接続しているサーバを変更
  することができます。

4.3 その他

  メニュー表示をアプリケーションが行ったり、カスタマイズファイルをバイ
  ナリ形式にしたりすることができるようになりました。


5. 『かんな』Version 3.3 における変更点

『かんな』Version 3.3 では『かんな』Version 3.2 に対して以下に示すよう
な機能拡張・変更を行っています。

  (1) クライアントサーバ間通信プロトコルの追加
  (2) 辞書の同期処理の改善
  (3) ユーザインタフェースの改善
  (4) premountdics サポートとりやめ
  (5) その他

5.1 クライアントサーバ間通信プロトコルの追加

  サーバの終了要求を送るプロトコルを追加しました。Version 3.2 までは、
  サーバの終了処理はシェルスクリプトで行っており、ロックファイルの有無
  でサーバの起動状態を判断していたため、ロックファイルを削除すると、サー
  バが起動されていても起動していないものと判断されていましたが、
  Version 3.3 からは、サーバの終了処理はプロトコルで要求するようになり、
  確実にサーバの終了処理が行えるようになりました。

  このプロトコルのサポートに伴い、ロックファイルのサポートを中止しまし
  た。

5.2 辞書の同期処理の改善

  サーバが一定時間アイドルであった場合に、サーバ側で辞書の同期処理を行
  うようになりました。

5.3 ユーザインタフェースの改善

 (1) 単語登録メニューの改善

  メニューを利用した単語登録時に表示される品詞および詳細な品詞決定のた
  めの質問を見直し、わかりやすくしました。

 (2) 単語削除メニューの改善

  メニューを利用した単語削除時に、Version 3.2 までは辞書を選択した後に、
  読みを入力して単語を削除していましたが、Version 3.3 からは読みを入力
  すると、その読みを持つ単語が表示され、削除する単語を選択した後に辞書
  を選択するようになりました。これによって、以前は削除したい単語が登録
  されている辞書がわからないと単語削除できなかったのが、単語さえ指定す
  れば削除できるようになりました。

 (3) カスタマイズファイルの見直し

  提供しているカスタマイズファイルをすべて見直し、操作性を変更しました。

5.4 premountdics サポートとりやめ

  premountdics ファイルのサポートをとりやめました。

5.5 その他

  スタンドアロンタイプとしても make することができるようになりました。


6. 『かんな』Version 3.2 におけるパッチ

6.1 パッチレベル 2 での修正

  ・INSTALL の修正
      - X11R6 環境での作り方の記述しかなかったが、X11R5 と X11R6 の両
        方を記述した。 
  ・Imakefile の修正
      - INSTALLFLAGS を抜いた(パッチ 1 での修正もれ)。
      - chmoddic がインストールされるようにした。
  ・カスタマイズのキーワードの追加
      - inhibit-hankaku-kana を追加した。
  ・lseek の第 2 引数関連の修正
  ・cpp がないときの処理の追加
  ・辞書の修正
      - 「台」を #JS でも登録した。
      - 「しんがくぎほう」の修正。
  ・ローマ字かな変換テーブルの修正
      - cpp によってはうまく処理できなかったため、「"」や「'」を「\x22」 
        や「\x27」に変更した。
  ・マニュアルの修正
      - SCREEN という環境を使うようにした。
  ・rmdic の結果が dics.dir に反映されなかったのを修正した。
  ・base-kakutei で、確定キーを押すと何もなくなる問題を直した。
  ・その他細かいバグの修正。

6.2 パッチレベル 1 での修正

  ・kinput2 で記号の連続入力に対応するための修正。
  ・サンプルのカスタマイズファイルの修正。
    - skk.canna を kinput2 で使えるようにした。
    - tut.canna で TUT 記号が入れられるようにした。
  ・Imakefile の修正。
    - X11R5,X11R6 ともに対応できるようにした。
    - INSTALLFLAGS を抜いた。
  ・ドキュメント用 README の修正。
  ・ドキュメントの修正。\tt の問題。
  ・いくつかの単語の品詞の修正。
  ・number.t がインストールされるようにした。
  ・Sparc の cc で warning が出たのを修正した。
  ・その他細かい修正。


7. 『かんな』Version 3.2 における変更点

『かんな』Version 3.2 では『かんな』Version 3.1 に対して以下に示すよう
な機能拡張を行っています。

 (1) グループ辞書のサポート
 (2) 辞書の同期処理のサポート
 (3) 分野別学習ファイルのサポート
 (4) 辞書コピーの改善
 (5) 辞書のアクセス権の設定
 (6) 接続クライアント数の拡大
 (7) バイナリ辞書からの単語削除のサポート
 (8) ユーザインタフェースの改善

7.1 かな漢字変換

 (1) グループ辞書のサポート

   辞書をコピーしなくても、グループ ID(gid) の同じユーザ間では複数のユー
   ザで同一の辞書を使用できるようになりました。

 (2) 辞書の同期処理のサポート

   辞書ファイルへの同期処理を追加しました。これにより、カスタマイズす
   ることによって、単語登録/削除時に辞書をメモリ上の辞書と同期できるよ
   うになりました。

 (3) 分野別学習ファイルのサポート

   一つの辞書に対し複数の学習情報ファイルが扱えるようになり、分野ごと
   に学習情報を切替えることができるようになりました。

 (4) 辞書コピーの改善

   辞書コピー専用の関数を作成し、辞書のコピーが速くなりました。また、
   学習ファイルについても、バイナリ辞書のコピーという形で個人別学習ファ
   イルとして使用できます。

 (5) 辞書のアクセス権の設定

   辞書の READ/WRITE 権を設定できるようにしました。

 (6) 空白文字を含む単語の登録・削除

   空白文字を含む読みや候補を登録・削除できるようになりました。

 (7) 接続クライアント数の拡大

   システムの資源(メモリ等)が許す限り cannaserver にクライアントが接続
   できるようにしました。

 (8) バイナリ辞書からの単語削除のサポート

   バイナリ辞書からの単語の削除が可能になりました(α版では未サポート)。

7.2 ユーザインタフェース

 (1) 逐次自動変換および連文節変換部の統合

   『かんな』Version 2.1 において、文節伸縮モードがサポートされました
   が、この機能が使用できるのは連文節変換時のみでした(Version 1.2 にお
   ける変更点 参照)。この機能が逐次自動変換時にも使用できるようにしま
   した(α版では未サポート)。

 (2) 編集モード時の処理の変更

   編集モードの処理が変更になり、編集モードがなくなりました。かわりに
   読みモード、単候補モード、字種モードの混在により処理されるようにな
   りました。

 (3) メニューのカスタマイズ化

   拡張メニューがカスタマイズできるようになりました。

 (4) 記号入力時の操作の改良

   記号を連続して入力できるようにしました。

 (5) 新キーワードの導入

   新キーワードが導入され、連文節変換時に英数モードで空白文字の入力時
   に変換が行われないようになりました。また、逐次自動変換時においても、
   句読点の入力時に変換が起動されるようになっている場合、英数モードで
   は句読点を入力しても変換が行われないようになりました。

 (6) 文法辞書の指定

   ユーザが自由に文法辞書を変えられるようになりました。

 (7) 辞書引き順の明確化

   カスタマイズファイルに、優先して引きたい順に辞書を指定できるように
   なりました。

 (8) boiled-egg 的入力方法のサポート

   あるタイミングで一括してローマ字かな変換/かな漢字変換を行うことがで
   きるようになりました。

 (9) ローマ字かな変換優先機能の追加

   ローマ字かな変換を優先することができるようになりました。


8. 『かんな』Version 3.1 における変更点

『かんな』Version 3.1 では『かんな』Version 2.2 に対して以下に示すよう
な機能拡張を行っています。

 (1) 文節長学習・単語長学習対応

   文節長学習・単語長学習の結果をファイルに保管するようになり、翌日に
   なってもそれまでの学習結果が反映されるようになりました。

 (2) 辞書形式の変更

   4Kbyte 単位でアクセスするようになり、アクセス効率および仮想記憶効率
   が上がりました。また、辞書が小さくなりました。


9. 『かんな』Version 2.2 におけるパッチ

9.1 パッチレベル4での修正

 ・Mule を使っている時に接続がきれたり、立ち上げ時に辞書のマウントに失
   敗することがあった。この問題を直した。
 ・パッチ2 で cannaserver にバグを入れていた。具体的には文節伸ばし縮め
   を行った時に、余計なデータをクライアントに返していた。これを直した。
 ・addwords などでタブをうまく処理していなかったことの修正。
 ・単語登録時に候補を入れて確定した後 romaji 機能を使うと core dump す
   ることがあった。これを修正。
 ・辞書の若干の修正。
 ・jdvi2kps で epsbox スタイルを使う人のための注意を入れた。

9.2 パッチレベル3での修正

 ・パッチ2で入れてしまった以下の問題を解決
  - iroha.t のコンパイルができなくなっていた。
  - rename() を、ポータビリティ向上のため link/unlink で置き換えたが、
    置き換え方に一部間違いがあった。
 ・サービス番号のデフォルト値を用いる時に Little Endian マシンでの値の
   設定が間違っていた。 
 ・一般の接尾語辞書 suffix.t を消し、数関係の接尾語辞書 number.t を入
   れた。

9.3 パッチレベル2での修正

 ・DEC αで動作するようにした。今までも大体動いていたが、cannaserver 
   だけはプロトコル処理部に sizeof(long)==sizeof(int)==4 と仮定してい
   る部分があってうまくなかった。これを直した。
 ・TUT 入力のための tut.canna および tut.kpdef をサポート。
 ・ヘッダの C++ 対応(つもり)。
 ・ドキュメントの整備(ASCII TeX への対応、ディレクトリの記述が 
   Canna.conf にしたがうようにした、など)。
 ・ライブラリのマニュアルページを doc/man/lib から lib/canna に移した。
 ・doc/man/guide/tex/texindex の動作が awk に依存していたので C で書き
   直し名前も変更し cannaindex とした。
 ・rename() を使っている部分があったので link()/unlink() で書き換えた。
   rename() を持たないシステムへの対応。
 ・Purify した。
 ・狩野氏による、文法関連の unofficial patch の反映。(patches.49 まで)
 ・一部のマシンで make canna 時に辞書コンパイルのところで syntax error 
   が出る件を修正。
 ・その他細かいバグ修正。

9.4 パッチレベル1での修正

 ・sj3serv にも接続できるようにした。
 ・BSD386 などで見られる、プロトコルエラーを修正した。
 ・linux に対応した。
 ・ユーザインストール時に chown で fail する件に対処した。
 ・cannaserver での free 忘れ/メモリ初期化忘れの修正。
 ・マニュアルを作る時にディレクトリ表記をインストール時の指定に合わせ
   るようにした。
 ・canuum のベースを Wnn4.108 から Wnn4.109 に変えた。
 ・canuum の PTY の最大値を大きくした。
 ・mergeword の引数にファイルが指定できるようにした。また、splitword 
   に引数を与えない時に標準入力を見るようにした。
 ・いくつかの文法の修正。
 ・その他細かいバグの修正。


10. 『かんな』Version 2.2 における変更点

『かんな』Version 2.1 から『かんな』Version 2.2 では以下のことが追加
されました。

 (1) エンジンの切り替え

   かな漢字変換エンジンを cannaserver(irohaserver) と Wnn の jserver 
   との間で自由に切り替えることができるようになりました。

 (2) マーク

   字種変換などの範囲をマークとカーソルで指定できるようにしました。

これらについては参照できるドキュメントがほとんど存在しませんので、こ
こでちょっと説明します。詳しい説明はもうしばらくお待ちください。

(1) エンジンの切り替え

  エンジンの切り替えはダイナミックローディング(dlopenなど)を使って行っ
  ています。したがって、ダイナミックローディングを利用できない OS では
  使えません(実はオブジェクトサイズが大きくなっても良いのであればなん
  とでもできるのですが)。ロードされるライブラリは libRKC.so (かんな) 
  か libRKWnn.so (Wnn) です。

  β版の Makefile (Imakefile) では Shared Library のことはあまり考慮し
  ていないのでエンジンの切り替えを行うには人手での Makefile の書き換え
  が必要になります。

  libRKWnn.so はβ版のソース(lib/RKWnn)に加えて、Wnn の libwnn.a と 
  kinput2 の jclib.o jilib.o があれば作成できます。以後の版で Makefile 
  を提供する予定ですが、とりあえずやってみたい人は doc/misc/engine.tx 
  を見てトライしてください。

(2) マーク

  マークを打つのは C-<space> です。今までは C-n などで字種変換をすると
  入力中の文字全てが字種変換されていましたが、Version 2.2 では 
  C-<space> が打たれたり、一度字種変換がされたりするとマークが設定され、
  そこから後ろだけが字種変換されます。

  《例》

   fairu C-n a C-p → V1.2  ファイルa (「ファイル」の部分が確定される)
                      V2.1  fairua
                      V2.2  ファイルa (「ファイル」の部分も読みのまま)


11. 『かんな』Version 2.1 における変更点

『かんな』Version 2.1 では『かんな』Version 1.2 に対して主に以下に示す
機能拡張を行っています。

 (1) 逐次自動変換方式の導入(サーバクライアント方式ではフリーソフト初)
 (2) 個人別頻度学習管理のサポート
 (3) EUCのG3文字のサポート
 (4) ユーザインタフェースの改善

これにともない、かな漢字変換辞書形式の変更、ローマ字かな変換テーブルの
形式の変更、カスタマイズファイル形式の変更を始めとする様々な変更が行わ
れました。詳しくは以下を参照してください。

11.1 かな漢字変換

 (1) 逐次自動変換サポート

  サーバクライアント方式としては初の逐次自動変換をサポートしました。従
  来のパーソナルコンピュータなどでは逐次自動変換の操作方法がぎこちない
  場合が多くありましたが、連文節変換でのユーザインタフェースを自然に拡
  張する形の操作法を提供しており、誰でも自然に逐次自動変換を利用するこ
  とが可能です。

 (2) 個人別頻度学習のサポート

  今までは同一の辞書を複数のユーザが使用しているときは最後に使用した人
  の学習情報によって他の人の学習情報が上書きされていましたが、メインの
  辞書とは別に学習情報ファイルをユーザ毎に分散させて持たせることにより
  頻度情報を各個人毎に管理することが可能になりました。

  今まで通り頻度情報を共有することもユーザ毎の設定により可能です。

 (3) EUCのG3文字のサポート

  JIS規格により補助漢字集合(JIS X0212)が制定されました。補助漢字集合は
  UNIX Internationalの日本語規約ではEUCのG3文字として取り扱うことが定
  められております。

  『かんな』Version 2.1では補助漢字集合を始めとしてG3領域に置かれるこ
  とが多い外字等をサポートできるようにEUCのG3文字をかな漢字変換の「読
  み」あるいは「候補」として利用できます。

 (4) 辞書形式の変更(バイナリ辞書)

  個人別頻度学習とEUCのG3文字のサポートに伴い辞書形式が変更されました
  (テキスト形式辞書に関しては以前のままです)。

  旧形式の辞書を『かんな』Version 2.1でも活用したいかたのために旧形式
  辞書から新形式辞書へのコンバータツールもサポートしています。

11.2 ローマ字かな変換

 (1)「ん」の入力のためのデフォルトの変更

  従来「あんない」「せんい」などの入力を行う時に「annai」「sen'i」など
  のような「n」一文字が「ん」に対応するものをデフォルトとしていました。
  もちろん従来からカスタマイズの設定により変更することは可能でしたが、
  『かんな』Version 2.1 ではパソコン、ワープロで広く見られる「nn」を
  「ん」に対応させる規則をデフォルトに変えました。これにより「あんない」
  「せんい」などの入力のしかたは以下のようになります。

   ┌────┬─────┬───────────┐   
   │        │   従来   │『かんな』Version 2.1 │
   ├────┼─────┼───────────┤
   │あんない│   annai  │      annnai          │
   ├────┼─────┼───────────┤
   │ せんい │   sen'i  │      senni           │
   │        │   semni  │      sen'i           │
   │        │          │      semni           │
   ├────┼─────┼───────────┤
   │ べんり │   benri  │      benri           │
   └────┴─────┴───────────┘

 (2)ローマ字かな変換テーブルの形式の変更

  ローマ字かな変換テーブルのテキスト形式およびバイナリ形式を変更しまし
  た。ローマ字かな変換規則の記述の際に中間結果を記述する3番目フィール
  ドが設けられ柔軟な規則が記述できるようになりました。

  以前作成したローマ字かな変換テーブルに関しても『かんな』Version 2.1 
  で利用することが可能です(バイナリ形式、テキスト形式両方とも)。


 (3)複数のローマ字かな変換テーブルの切り替え可能

  複数のローマ字かな変換テーブルを登録しておいて、使用時にそれらを切り
  替えることが可能となりました。

 (4)多候補シンボル定義が可能

  「.」(ピリオド)や「,」(コンマ)を始めとして全てのキーに対して複数の記
  号を対応させて使用時に切り替えることが可能となりました。例えば、以下
  のような対応が可能です。

   ┌───┬──────────────┐
   │ 入力 │ ローマ字かな変換結果       │
   ├───┼──────────────┤
   │  .   │   。 または .             │
   ├───┼──────────────┤
   │  ,   │   、または ,              │
   ├───┼──────────────┤
   │  [   │  「、『、[、〔 または [   │
   ├───┼──────────────┤
   │  ]   │  」、』、]、〕 または ]   │
   └───┴──────────────┘

  切り替えはかな漢字変換の候補選択と同様の操作で行えます。また、複数の
  切り替えをリンクして行うことも可能です。

11.3 日本語入力操作

 (1)モード表示の変更

  逐次自動変換モードの導入に伴ってモード表示文字列を見直しました。

   ・「確」の領域の削除

    モード表示の左側に設けられていた、確定入力を表す「確」を表示する領
    域が削除されました。

    確定モードはモード表示を取り囲む括弧の形で表現されます。

   ・アルファベット入力モードのモード表示が 「」(空文字列)だったものが 
     「   」(空白文字列)に変更されました。(見た目には同じです)

 (2)文字種ベース変更の削除

  読みを入力している状態で C-i および C-o を押した時に文字種ベースの変
  更が行われるようになっていましたが、誤操作が多いのでオプションとしま
  した。

 (3)再初期化の削除

  ユーティリティメニューにてカスタマイズファイルの再読み込みを行いかな
  漢字変換を再初期化するメニューを提供していましたが、アプリケーション
  プログラムとの間に設定のずれを生じさせる可能性があるので『かんな』
  Version 2.1 ではサポートをとりやめました。

  再初期化に関してはアプリケーションプログラムが提供している機能によっ
  てのみ行えます(例えば『かんな』版 Nemacs の M-x canna-reset)。

 (4)候補番号の表示

  候補一覧を出している際に、現在カーソルが指している候補が全体の候補の
  何番目かを示す表示が行われるようになりました。

 (5)文節伸縮モード

  文節を伸ばし縮めするもうひとつの方法として一太郎などでよく見られる方
  法もオプションとしてサポートするようにしました。

  その場合、文節伸ばし縮め操作を行うとカレント文節以降が一旦読みに戻さ
  れ、読みの上でカーソルが移動し、文節長を調整することになります。文節
  長が正しくなった時点で変換キーを押すとカーソルがある部分までをひとつ
  の文節として変換が行われます。

 (6)大文字小文字変換

  今までは字種変換時に字種が英数字になっていたときのみ大文字小文字変換
  が行われていましたが、かなが表示されている時に大文字小文字変換キーを
  押すと一旦英数字に変換した後大文字小文字変換するようにしました。

 (7)バージョン情報、サーバ情報の表示

  ユーティリティメニューにて『かんな』のバージョンや接続しているサーバ
  に関する情報が取り出せるようになりました。

 (8)設定の変更

  逐次自動変換や学習に関して使用時にオン/オフを切り替えることが可能に
  なりました。

11.4 カスタマイズファイル

 (1)カスタマイズファイル名の変更

  カスタマイズファイルのファイル名が .iroha から .canna に変更になりま
  した。また、カスタマイズファイルの記述形式もLispシンタックスを使った
  ものに変更になりました。既存の .iroha を新形式に変更するためのコマン
  ドも提供します。

  既存のシンタックスは拡張性が乏しかったためバージョンアップ時に新しい
  カスタマイズ記述を組み入れると古いアプリケーションプログラムが回復不
  能なシンタックスエラーとなっていました。新形式では一部理解できない部
  分があっても読み飛ばして次の設定を行うことが可能です。

  また、新形式では現在の『かんな』のバージョン、接続されているサーバの
  バージョンなどを問い合わせることが可能であり、それらのバージョンによっ
  て条件的にカスタマイズを行うことが可能です。

 (2)InitialMode の削除

  今までは InitialMode によってアプリケーション起動時のかな漢字変換の
  モードを設定することが可能でしたが、『かんな』Version 2.1 ではこれに
  代わって initialize-function という機能を使ってアプリケーション起動
  時の状態を設定することが可能です。

  initialize-function では「一度ある状態に移行してからそこでの設定を変
  更してまた別の状態に戻る」などの処理が行えます。

  例えば、initialize-function にて「一度日本語入力モードに移行し、文字
  ベースをカタカナに切り替えた後再びアルファベットモードに戻る」という
  処理を行っておけば、C-oなどで日本語モードに移った時にカタカナベース
  の日本語入力が行えるようになります。

 (3)実行可能機能の増加

  文字ベースに関する機能が増えた他、逐次自動変換関連、新しい文節伸ばし
  縮め操作関連でキーに割り当てることができる機能が増えました。

 (4)記号定義

  ローマ字かな変換の補助としてピリオドやコンマに対して複数のローマ字か
  な変換を定義する機能が追加されました。ユーザの好みで任意のキーに対し
  て任意の記号を割り当てることが可能です。

 (5)確定モード等の削除

  確定モード等のモードがなくなりました。それに代わって以下の2つのうち
  のいずれかで代替することができます。


   (a) 読み入力時の属性を変更する以下の機能を組み合わせて入力する文字
       種や状態を変更します。

    名称                          機能
    base-hiragana                 文字ベースをひらがなに変える
    base-katakana                 文字ベースをカタカナに変える
    base-eisu                     文字ベースを英数に変える
    base-kana                     文字ベースをひらがなかカタカナに変える
    base-zenkaku                  文字ベースを全角に変える
    base-hankaku                  文字ベースを半角に変える
    base-kakutei                  確定入力に入る
    base-henkan                   確定入力を抜ける
    base-hiragana-katakana-toggle ひらがなとカタカナをトグルする
    base-kana-eisu-toggle         かなと英数をトグルする
    base-zenkaku-hankaku-toggle   全角と半角をトグルする
    base-kakutei-henkan-toggle    確定入力かどうかをトグルする
    base-rotate-forward           文字ベースを順送りに変更してゆく
    base-rotate-backward          文字ベースを逆送りに変更してゆく


   (b) モード定義を使う

     以下で説明するモード定義を使い新たにモードを定義します。

 (6)モード定義

  ユーザが自由にモードを定義することが可能となりました。

  モードの定義に伴い、そのモード固有のローマ字かな変換テーブル、モード
  表示文字列、文字ベースの状態などが選択できます。

  これにより疑似かな入力モードやTコード入力モードなどが定義できます。

  またユーザ定義モードだけに対して有効なキーの割り当てを行うことが可能
  です。

 (7)記号モードでのカスタマイズ

  『かんな』Version 1.1 から Version 1.2 へとバージョンアップされた時
  に記号モードだけに有効である限定カスタマイズが行えなくなりましたが、
  元に戻しました。

  したがって、記号モード固有のカスタマイズを行うことが可能となります。

11.5 アプリケーションインタフェース

アプリケーションインタフェースに関しては以下の変更があります。

 (1)ワイドキャラクタインタフェースのサポート

  ワイドキャラクタベースのかな漢字変換ライブラリをサポートします。これ
  により日本語を取り扱い易いワイドキャラクタだけを使って日本語関連のア
  プリケーションプログラムを作成することが可能です。

 (2)KC_PARSE の変更

  KC_PARSE によってアプリケーションプログラム独自にカスタマイズを設定
  することが可能でしたが、カスタマイズファイルの形式の変更に伴い 
  KC_PARSE で与える文字列も変更になります。

 (3)IROHA_ から CANNA_ へ

  モードや機能、キーなどを表すマクロ名としてIROHA_××××がありました
  が、このマクロ名がCANNA_××××に変更されました。

  ただし、コンパイル時に -DIROHA_BC を指定することにより旧マクロ名を使っ
  ていてもコンパイルが可能です。

 (4)モード番号、機能番号
 
  モード番号(CANNA_MODE_××××)、機能番号(CANNA_FN_××××)の番号が
  一部入れ替わりました。これらの番号をマクロ名でのみ扱っている場合には
  問題ありませんが、直接番号をプログラムに記述している場合には修正が必
  要です。

 (5)libiroha から libcanna へ

  かな漢字変換を行うアプリケーションプログラムがリンクするライブラリが 
  libiroha から libcanna に変更になりました。

11.6 コマンドの変更

 (1)コマンドの追加

  かな漢字変換辞書やローマ字かな変換テーブルの新形式に対応するためのユー
  ティリティツールを始めとしていくつかのコマンドが追加されました。

    追加コマンド   概要
    ------------+------------------------------------------------------
    canvert        カスタマイズファイル、かな漢字変換辞書等の形式の変換
    addwords       一括単語登録
    delwords       一括単語削除

11.7 ファイルの位置

  『かんな』の名称が決定したことに伴い今まで iroha が付いたディレクトリ
  に存在していたファイルを canna が付くディレクトリに移動しました。

 (1)辞書関連

  ローマ字かな変換ファイルやかな漢字変換ファイルは $(irohaLibDir)/dic 
  に移動、その他 $(irohaLibDir) にあったものは $(cannaLibDir) に移動し
  ました。

 (2)ログファイル、ロックファイル

  エラーログやロックファイルは $(irohaSpoolDir) から $(cannaSpoolDir) 
  に移動しました。

 (3)ヘッダファイル

  ヘッダファイルは $(irohaIncDir) から $(cannaIncDir) に変更になりました。

 (4)UNIX通信用ファイル

  かな漢字変換サーバとクライアントがUNIXドメインで通信するための
  ファイル(/tmp/.iroha_unix/IROHA)に関しては旧クライアントとの通信に関す
  る互換性確保のためファイル名が変わりません。

以上

/* Copyright 1994 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

($Id: CHANGES.jp,v 1.2.2.2 2003/01/22 16:06:36 aida_s Exp $)
Canna36p3/Canna.conf.dist0100644000175100000240000004750307614447345014536 0ustar  shinrastaff/* Copyright 1994 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

/*
 * このファイルでは、各ファイルをインストールするディレクトリなどを
 * 決定するためのマクロを設定します。
 * 
 * ※コンパイルを行う前に必ず Canna.conf の設定を行ってください。
 * 
 * 以下に示すマクロを設定して下さい。
 *
 * cannaBinDir;
 *		コマンドをインストールするディレクトリです。
 *		このディレクトリにコマンドサーチパスを張るように
 *		してください。
 * cannaSrvDir;
 *		cannaserver および cannakill をインストールするディレクトリ
 *              です。
 * libCannaDir;
 *		libcanna 等ライブラリ等をインストールするディレクトリです。
 * cannaLibDir;
 *		『かんな』の種々のファイルをインストールするディレクトリです。
 * cannaManDir;
 *              『かんな』関連オンラインマニュアルのインストールディレクトリ
 *              です。
 * cannaIncDir;
 *		ヘッダファイルをインストールするディレクトリです。
 * ErrDir;
 *		ログファイルをインストールするディレクトリです。
 *		ログファイルは、かな漢字変換サーバがエラーメッセージを
 *		出力するファイルです。
 *
 * wcharDefinition;
 *              -DCANNA_WCHAR を定義すると、OS の wchar_t の代わりに
 *		『かんな』の wchar_t を使うことを表します。wchar_t は
 *		定義されていても日本語 locale 環境が定義されていない
 *		場合もこの定義をして下さい。
 *		3.6追記:この記述は実態を反映していません。現在の所、どの
 *		プラットフォームでも-DCANNA_WCHARを指定してください。
 * 
 * Wlib
 *              wchar_t 関連の関数が入っているライブラリを指定します。
 *              libc に入っている場合にはブランクのままにしておきます。
 *              System V では通常 -lw です。
 *
 * JapaneseLocale;
 *              Locale を使うときに日本語の環境を表す LANG の値を入れます。
 *
 * cannaOwner:
 *		辞書とかな漢字変換サーバのオーナを指定します。
 *
 * cannaGroup:
 *		辞書とかな漢字変換サーバのグループを指定します。
 *
 * pointerIntegerDef:
 *		ポインタのサイズが long のサイズよりも大きい場合で、
 *		long long 型が存在する場合はここに -DBIGPOINTER を定義
 *		してください(例えば NEC SX3 の SUPER-UX の場合)。
 *		
 * sharedLibExtension:
 *              shared library の拡張子を指定します。通常は so.1 など
 *              が使われます。 HP-UX では sl です。
 *
 * cannaDsoRev:
 *              shared library のリビジョンを指定します。so.1 なら 1 
 *              です。so.1.1 のような場合は、 1.1 と指定します。
 *
 * pubdicDir:
 *              Pubdic+ では最新の辞書が準備されています。そちらを利用
 *              する場合にはここでそのディレクトリを指定します。Canna 
 *              の make をする前に、指定されたディレクトリに iroha.t 
 *              が作られている状態になっているようにしてください。
 *
 * engineSwitch:
 *              jserver と cannaserver の両方を使いたい場合には 
 *              engineSwitch を #define します。これを #define した場
 *              合には以下の2つも設定が必要です。
 *
 * cannaLight:
 *              『かんな』を少しでも軽くしたい人は以下を 1 にして下さ
 *              い。古いプロトコルを組み込まなくなります。デフォルトは 
 *              1 です。
 *
 * USE_OBSOLETE_STYLE_FILENAME:
 *              漢字辞書名、ローマ字テーブル名を Version 3.4 以前の名
 *              前のままにする場合には、このマクロを #define してくだ
 *              さい。ちなみに、Version 3.5 から、ローマ字か名変換テー
 *              ブルの拡張子が .kp から .cbp へ、テキスト辞書ファイル、
 *              バイナリ辞書ファイル、辞書学習ファイルの拡張子がそれぞ
 *              れ、.t, .d, .fq から .cbd, .ctd, .cld に変更になりまし
 *              た。
 *
 * kinput2SrcDir: (engineSwitch をする時のみ必要)
 *              kinput2 のソースが存在するディレクトリを指定します。
 * wnn4SrcDir: (engineSwitch をする時のみ必要)
 *              Wnn4 のソースが存在するディレクトリを指定します。
 * sj3SrcDir:  (engineSwitch をする時のみ必要)
 *              Sj3 のソースが存在するディレクトリを指定します。
 *
 * 《以下の2つは修正不要とは思いますが説明をしておきます》
 *
 * DicDir;
 *		辞書をインストールするディレクトリです。
 *
 * JAPANESEMAN;
 *              マニュアルとして日本語マニュアルをインストールする時に
 *              はこのマクロを #define します。英語マニュアルは十分に
 *              そろっていないので #define しておいてください。
 */
/*
 * $Id: Canna.conf.dist,v 1.4.2.4 2003/01/25 08:46:29 aida_s Exp $
 */

/* rootにならずにインストールする時はこれを定義して下さい */
/* #define InstallAsUser */
/* 従来と互換のディレクトリ構造にする場合はこれを定義してください */
#define ObsoleteInstallDir
#ifdef InstallAsUser
# define DefCannaPrefix $(HOME)/canna
# define DefErrDir $(cannaPrefix)/log
# define DefLibCannaDir $(cannaExecPrefix)/lib
#else 
# define DefCannaPrefix /usr/local/canna
# ifdef ObsoleteInstallDir
#  define DefErrDir /usr/spool/canna
#  define DefLibCannaDir /usr/lib
# else
#  define DefErrDir /var/log
#  define DefLibCannaDir $(cannaExecPrefix)/lib
# endif
#endif
#ifdef ObsoleteInstallDir
# define DefCannaSrvDir $(cannaExecPrefix)/bin
# define DefCannaLibDir $(cannaPrefix)/lib
#else
# define DefCannaSrvDir $(cannaExecPrefix)/sbin
# define DefCannaLibDir $(cannaPrefix)/share/canna
#endif

cannaPrefix = DefCannaPrefix
cannaExecPrefix = $(cannaPrefix)
cannaBinDir = $(cannaExecPrefix)/bin
cannaSrvDir = DefCannaSrvDir
XCOMM cannaLibDir = /var/lib/canna
XCOMM cannaLibDir = /var/db/canna
cannaLibDir = DefCannaLibDir
XCOMM cannaManDir = $(cannaPrefix)/share/man
cannaManDir = $(cannaPrefix)/man
cannaIncDir = $(cannaPrefix)/include/canna

libCannaDir = DefLibCannaDir
ErrDir  = DefErrDir

/* 次の3行は変更しないでください */
wcharDefinition = -DCANNA_WCHAR
Wlib =
JapaneseLocale = japanese

cannaOwner = bin
cannaGroup = bin

#ifdef InstallAsUser
cannaOwnerGroup =
#else
cannaOwnerGroup = -o $(cannaOwner) -g $(cannaGroup)
#endif

pointerIntegerDef =

cannaDsoRev = 1.1

#if defined(__CYGWIN32__)
/* import libraryの方を指定しておく。DLL本体は/usr/X11R6/binに入る。 */
sharedLibExtension = a
#elif defined(hpux)
sharedLibExtension = sl.$(cannaDsoRev)
#else
sharedLibExtension = so.$(cannaDsoRev)
#endif

/* iroha.t の場所を指定。pubdic+ があればそちらを指定します。 */
pubdicDir = $(CANNAROOT)/dic/ideo/pubdic

#ifdef InstallAsUser
CHOWN = :
CHGRP = :
CHMOD = :
#else
CHOWN = chown
CHGRP = chgrp
CHMOD = chmod
#endif

/* 日本語マニュアルを使わないのであればコメントアウト */
#define JAPANESEMAN

/* locale ディレクトリを持っている場合は以下を記述する */
/* #define LOCALE_DIR /usr/lib/locale */

/* エンジンスイッチ機能を使うのであればコメントをはずす */
/* ※注 Canna version 3.5 ではコメントをはずさないでください */
/* #define engineSwitch */

/* 以下エンジンスイッチがらみ */
#ifdef engineSwitch
   kinput2SrcDir = /work/X11R5/contrib/im/kinput2
      wnn4SrcDir = /work/X11R5/contrib/im/Xsi/Wnn
       sj3SrcDir = /work/X11R5/contrib/im/Ximp/sony/sj3

           DLLIB = -ldl
  cannaDsoRevDef = -DCANNA_DSOREV=\"$(cannaDsoRev)\"
#endif

/* 『かんな』を少しでも軽くしたい人は以下を 1 にして下さい。
    cannaserver、libcanna に EUC プロトコル処理部を組み込みません */
cannaLight = 1

/* 漢字辞書名、ローマ字テーブル名を以前の名前のままにする場合には、
   USE_OBSOLETE_STYLE_FILENAME を定義する */
/* #define USE_OBSOLETE_STYLE_FILENAME */

/* rename() が存在しない場合には 1 にして下さい */
dontHaveRename = 0

/*
 * インストール済みの共有ライブラリを用いて Canna の
 * コマンド類をリンクする時は、次を YES にしてくだい。
 */
/* #define UseInstalledLibCanna YES */
#define UseInstalledLibCanna NO

DicDir   = $(cannaLibDir)/dic

#ifdef NeXT
#define NO_X_ENV
#endif

/* ここから下は変更不要です */

/*
 * これらについては <Library.tmpl> も見てくだい。 
 */
/* #define DoSharedLib NO  SUN でうまくないのでちょっと NO にしておく */

#ifndef DoSharedLib
#define DoSharedLib HasSharedLibraries
#endif

#if DoSharedLib == YES && defined(__CYGWIN32__)
#define CYGWIN_DLL
#endif
#ifndef CYGWIN_DLL
/* cygwinでは、imakeがimport libraryを*.dll.aでなく*.aにしてしまうため、
   static libraryと共存できない */
#define DoNormalLib YES
#endif

#define DoDebugLib NO
#define DoProfileLib NO

#ifndef UseInstalledLibCanna
#define UseInstalledLibCanna NO
#endif /* UseInstalledLibCanna */

#if UseInstalledLibCanna
# if DoSharedLib
    DEPCANNALIB = $(libCannaDir)/libcanna.$(sharedLibExtension)
# else
#ifdef __EMX__
    DEPCANNALIB = $(libCannaDir)/canna.a
#else
    DEPCANNALIB = $(libCannaDir)/libcanna.a
#endif
# endif
       CANNALIB = -L$(libCannaDir) -lcanna $(DLLIB)
#else /* ! UseInstalledLibCanna */
# if DoSharedLib
    DEPCANNALIB = $(CANNASRC)/libcanna.$(sharedLibExtension)
# else
#ifdef __EMX__
    DEPCANNALIB = $(CANNASRC)/canna.a
#else
    DEPCANNALIB = $(CANNASRC)/libcanna.a
#endif
# endif
       CANNALIB = -L$(CANNASRC) -lcanna $(DLLIB)
#endif /* UseInstalledLibCanna */

#if UseInstalledLibCanna
# if DoSharedLib
    DEPCANNALIB16 = $(libCannaDir)/libcanna16.$(sharedLibExtension)
# else
    DEPCANNALIB16 = $(libCannaDir)/libcanna16.a
# endif
       CANNALIB16 = -L$(libCannaDir) -lcanna16 $(DLLIB)
#else /* ! UseInstalledLibCanna */
# if DoSharedLib
    DEPCANNALIB16 = $(CANNASRC)/libcanna16.$(sharedLibExtension)
# else
    DEPCANNALIB16 = $(CANNASRC)/libcanna16.a
# endif
       CANNALIB16 = -L$(CANNASRC) -lcanna16 $(DLLIB)
#endif /* UseInstalledLibCanna */

/*
 * ここから下は変更しないようにしてください。
 */

 CANNASERVER_DEFINES = $(wcharDefinition)
          RK_DEFINES = $(pointerIntegerDef)
         RKC_DEFINES = $(wcharDefinition)
       UILIB_DEFINES = $(wcharDefinition) $(pointerIntegerDef) \
                       $(cannaDsoRevDef)
          XN_DEFINES = $(wcharDefinition) $(pointerIntegerDef)
      SAMPLE_DEFINES = $(wcharDefinition) $(pointerIntegerDef)
     SCRIPTS_DEFINES = 

#ifdef JAPANESEMAN
JMNLOCALE = ja
#endif

/* USE_OBSOLETE_STYLE_FILENAME を定義するための定義 */
#ifdef USE_OBSOLETE_STYLE_FILENAME
useObsoleteFilename = -DUSE_OBSOLETE_STYLE_FILENAME
#endif

#ifdef InstallAsUser
UnixSockDir = $(cannaPrefix)/tmp/.iroha_unix
AccessFile = $(cannaPrefix)/etc/hosts.canna
#else
UnixSockDir = /tmp/.iroha_unix
AccessFile = /etc/hosts.canna
#endif
UnixSockName = IROHA

#ifndef __EMX__
MANUALSED = $(CANNAROOT)/misc/manual.sed

#define ConvertPathName(dst,src)					@@\
dst:: src $(MANUALSED)							@@\
	sed -f $(MANUALSED) src > dst					@@\
$(MANUALSED):: $(CANNAROOT)/Canna.conf					@@\
	(echo "s%@(cannaBinDir)%$(cannaBinDir)%g"; \			@@\
	 echo "s%@(cannaLibDir)%$(cannaLibDir)%g"; \			@@\
	 echo "s%@(cannaIncDir)%$(cannaIncDir)%g"; \			@@\
	 echo "s%@(UnixSockDir)%$(UnixSockDir)%g"; \			@@\
	 echo "s%@(UnixSockName)%$(UnixSockName)%g"; \			@@\
	 echo "s%@(AccessFile)%$(AccessFile)%g"; \			@@\
	 echo "s%@(ErrDir)%$(ErrDir)%g") > $(MANUALSED)			@@\
clean::									@@\
	$(RM) $(MANUALSED)
#else
MANUALSED = manual.sed

#define ConvertPathName(dst,src)					@@\
dst:: src $(MANUALSED)							@@\
	sed -f $(MANUALSED) src > dst					@@\
$(MANUALSED):: $(CANNAROOT)/Canna.conf					@@\
	echo "s%@(cannaBinDir)%$(cannaBinDir)%g" > $(MANUALSED)		@@\
	echo "s%@(cannaLibDir)%$(cannaLibDir)%g" >> $(MANUALSED)	@@\
	echo "s%@(cannaIncDir)%$(cannaIncDir)%g" >> $(MANUALSED)	@@\
	echo "s%@(UnixSockDir)%$(UnixSockDir)%g" >> $(MANUALSED)	@@\
	echo "s%@(UnixSockName)%$(UnixSockName)%g" >> $(MANUALSED)	@@\
	echo "s%@(AccessFile)%$(AccessFile)%g" >> $(MANUALSED)		@@\
	echo "s%@(ErrDir)%$(ErrDir)%g" >> $(MANUALSED)			@@\
clean::									@@\
	$(RM) $(MANUALSED)
#endif

#ifdef InstallManPageLong
#undef InstallManPageLong
#endif

#ifdef ObsoleteInstallDir
#define ManInstDir man$(MANSUFFIX)
#define ManBase(dest) dest.$(MANSUFFIX)
#define LibManInstDir man$(LIBMANSUFFIX)
#define LibManBase(dest) dest.$(LIBMANSUFFIX)
#else /* !ObsoleteInstallDir */
#define ManInstDir man1
#define ManBase(dest) dest.1
#define LibManInstDir man3
#define LibManBase(dest) dest.3
#endif /* !ObsoleteInstallDir */
#define ManDest(dest) ManInstDir/ManBase(dest)
#define LibManDest(dest) LibManInstDir/LibManBase(dest)
#define ManTop(destdir) $(DESTDIR)destdir
#define JManTop(destdir) $(DESTDIR)destdir/$(JMNLOCALE)

#ifdef JAPANESEMAN
#define	InstallManPageLong(file,destdir,dest)				@@\
ConvertPathName(file.tmp,file.man)					@@\
ConvertPathName(file.jtmp,file.jmn)					@@\
install.man:: file.tmp file.jtmp					@@\
	MakeDir($(DESTDIR)destdir/ManInstDir)				@@\
	MakeDir($(DESTDIR)destdir/$(JMNLOCALE)/ManInstDir)		@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/ManDest(dest)	@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.jtmp JManTop(destdir)/ManDest(dest)	@@\
	$(RM) file.tmp file.jtmp					@@\
clean::									@@\
	$(RM) file.tmp file.jtmp
#else
#define	InstallManPageLong(file,destdir,dest)				@@\
ConvertPathName(file.tmp,file.man)					@@\
install.man:: file.tmp							@@\
	MakeDir($(DESTDIR)destdir/ManInstDir)				@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/ManDest(dest)	@@\
	$(RM) file.tmp							@@\
clean::									@@\
	$(RM) file.tmp
#endif

#ifdef InstallManPage
#undef InstallManPage
#endif
#define	InstallManPage(file,destdir)					@@\
InstallManPageLong(file,destdir,file)

#ifdef InstallLibManPageLong
#undef InstallLibManPageLong
#endif
#ifdef JAPANESEMAN
#define	InstallLibManPageLong(file,destdir,dest)			@@\
ConvertPathName(file.tmp,file.man)					@@\
ConvertPathName(file.jtmp,file.jmn)					@@\
install.man:: file.tmp file.jtmp					@@\
	MakeDir($(DESTDIR)destdir/LibManInstDir)			@@\
	MakeDir($(DESTDIR)destdir/$(JMNLOCALE)/LibManInstDir)		@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/LibManDest(dest)	@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.jtmp JManTop(destdir)/LibManDest(dest)	@@\
	$(RM) file.tmp file.jtmp					@@\
clean::									@@\
	$(RM) file.tmp file.jtmp
#else
#define	InstallLibManPageLong(file,destdir,dest)			@@\
ConvertPathName(file.tmp,file.man)					@@\
install.man:: file.tmp							@@\
	MakeDir($(DESTDIR)destdir/LibManInstDir)			@@\
	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/LibManDest(dest)	@@\
	$(RM) file.tmp							@@\
clean::									@@\
	$(RM) file.tmp
#endif

#ifdef InstallLibManPage
#undef InstallLibManPage
#endif
#define	InstallLibManPage(file,destdir)					@@\
InstallLibManPageLong(file,destdir,file)

#ifdef InstallLibManPageAliases
#undef InstallLibManPageAliases
#endif
#ifdef JAPANESEMAN
#define InstallLibManPageAliases(file,destdir,aliases)			@@\
install.man::								@@\
	@for i in aliases; do (set -x; \				@@\
	$(RM) $(DESTDIR)destdir/LibManDest($$i); \			@@\
	$(LN) LibManBase(file) ManTop(destdir)/LibManDest($$i); \	@@\
	$(RM) $(DESTDIR)destdir/$(JMNLOCALE)/LibManDest($$i); \		@@\
	$(LN) LibManBase(file) JManTop(destdir)/LibManDest($$i) \	@@\
	); done
#else
#define InstallLibManPageAliases(file,destdir,aliases)			@@\
install.man::								@@\
	@for i in aliases; do (set -x; \				@@\
	$(RM) $(DESTDIR)destdir/LibManDest($$i); \			@@\
	$(LN) LibManBase(file) JManTop(destdir)/LibManDest($$i) \	@@\
	); done
#endif
#ifndef MakeDirectoriesLong
#define MakeDirectoriesLong(step,dirs,owner,group)			@@\
step::									@@\
	@case '${MFLAGS}' in *[i]*) set +e;; esac;			@@\
	DirFailPrefix@for i in dirs; do if [ -d $(DESTDIR)$$i ]; then \	@@\
		set +x; else (set -x; $(MKDIRHIER) $(DESTDIR)$$i;$(CHOWN) owner $(DESTDIR)$$i;$(CHGRP) group $(DESTDIR)$$i); fi; \	@@\
	done
#endif /* MakeDirectories */

/* libname-def.cppを作るのが面倒なのでXのSharedLibraryTargetを上書き */
#ifdef CYGWIN_DLL
#ifdef SharedLibraryTarget
#undef SharedLibraryTarget
#endif

#define SharedLibraryTarget(libname,rev,solist,down,up)			@@\
AllTarget(Concat3(lib,libname,.dll))					@@\
									@@\
Concat3(lib,libname,.dll):  solist					@@\
	RemoveFile(LibraryTargetName(libname))				@@\
	RemoveFile(Concat3(lib,libname,.dll))				@@\
	gcc -shared -nostartfiles -Wl,--out-implib=Concat(lib,libname.a) -o Concat3(lib,libname,.dll) solist $(REQUIREDLIBS)	@@\
									@@\
clean::									@@\
	RemoveFile(LibraryTargetName(libname))				@@\
	RemoveFile(Concat3(lib,libname,.dll))

#endif /* CYGWIN_DLL */

/* 以下は IBM 基礎研の古畑さん(furuhata@trl.ibm.co.jp)により書かれました */
#if defined(RsArchitecture) && DoSharedLib
#ifdef SharedLibraryTarget
#undef SharedLibraryTarget
#endif /* SharedLibraryTarget */

#define SharedLibraryTarget(libname,rev,solist,down,up)			@@\
AllTarget(Concat(lib,libname.a))					@@\
									@@\
Concat(lib,libname.a):  solist $(UNSHAREDOBJS)				@@\
	$(RM) $@~ shr.o							@@\
	(cd down; $(AR) up/$@~ solist)					@@\
	dump -g $@~ | sed -n -e 's/^[ 	]*[0-9][0-9]*[	 ]*\([^	 .][^	 ]*\)$$/\1/p' > $@.syms	@@\
	$(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:$@.syms $(REQUIREDLIBS) -lc -lm -L$(libCannaDir)	@@\
	$(RM) $@~							@@\
	$(AR) $@~ shr.o $(UNSHAREDOBJS)					@@\
	$(RM) $@ shr.o  						@@\
	$(MV) $@~ $@							@@\
									@@\
clean::									@@\
	$(RM) Concat(lib,libname.a)

      LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -L$(libCannaDir)
#endif /* RsArchitecture */

/* R6 の LinkBuildLibrary の上書き */
#ifdef LinkBuildLibrary
#undef LinkBuildLibrary
#endif
#define LinkBuildLibrary(lib) $(_NULLCMD_)

/* 以下は config.h を作るルール */
#if defined(__EMX__)
#define MakeCannaConfigH(dst)						@@\
dst:: Canna.conf							@@\
	echo "/* for cannaserver */" > junk				@@\
	echo "#define DICHOME '$(DicDir)'" >> junk			@@\
	echo "#define ERRDIR '$(ErrDir)'" >> junk			@@\
	echo "#define USE_INET_SOCKET" >> junk				@@\
	echo "#define ACCESS_FILE '$(AccessFile)'" >> junk		@@\
	echo "/* for lib/RKC */" >> junk				@@\
	echo "#define JAPANESE_LOCALE '$(JapaneseLocale)'" >> junk	@@\
	echo "#define CANNAHOSTFILE '$(cannaLibDir)/cannahost'" >> junk	@@\
	echo "/* for lib/canna */" >> junk				@@\
	echo "#define CANNALIBDIR '$(cannaLibDir)'" >> junk		@@\
	echo "/* for scripts */" >> junk				@@\
	echo "#define CANNABINDIR $(cannaBinDir)" >> junk		@@\
	echo "/* others */" >> junk					@@\
	echo "#define CANNA_LIGHT $(cannaLight)" >> junk		@@\
	echo "#define DONT_HAVE_RENAME $(dontHaveRename)" >> junk	@@\
	echo "#ifdef nec" >> junk					@@\
	echo "#undef nec" >> junk					@@\
	echo "#endif" >> junk						@@\
	sed -e "s/'/\\\"/" -e "s/'/\\\"/" < junk > $@			@@\
	$(RM) junk
#else
#define MakeCannaConfigH(dst)						@@\
dst:: Canna.conf							@@\
	@(echo "/* for cannaserver */";\				@@\
	 echo "#define DICHOME \"$(DicDir)\"";  \			@@\
	 echo "#define ERRDIR \"$(ErrDir)\"";   \			@@\
	 echo "#define USE_UNIX_SOCKET"; \                              @@\
	 echo "#define USE_INET_SOCKET"; \                              @@\
	 echo "#define IR_UNIX_DIR \"$(UnixSockDir)\""; \		@@\
	 echo "#define IR_UNIX_SOCKNAME \"$(UnixSockName)\""; \		@@\
	 echo "#define ACCESS_FILE \"$(AccessFile)\""; \		@@\
	 echo "/* for lib/RKC */";\					@@\