pkg://Canna-3.6-20.src.rpm:6563696/Canna36p3.tar.gz
info downloads
Canna36p3/ 0040755 0001751 0000024 00000000000 07614447473 011701 5 ustar shinra staff Canna36p3/canna/ 0040755 0001751 0000024 00000000000 07614447424 012755 5 ustar shinra staff Canna36p3/canna/.cvsignore 0100644 0001751 0000024 00000000021 07606176335 014744 0 ustar shinra staff .depend
Makefile
Canna36p3/canna/Imakefile 0100644 0001751 0000024 00000001041 07554536744 014566 0 ustar shinra staff /* $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.h 0100644 0001751 0000024 00000006447 07554536744 014573 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000021042 07554213560 014545 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000016616 07554213560 014377 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000034010 07554213560 014175 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000003075 07554426261 013715 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000002445 07614447345 015261 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000013572 07554463521 015137 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000024115 07554213560 015267 0 ustar shinra staff /* 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.h 0100644 0001751 0000024 00000006333 07606203752 014532 0 ustar shinra staff /* 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/.cvsignore 0100644 0001751 0000024 00000000060 07606176335 013667 0 ustar shinra staff .depend
Makefile
Canna.conf
include
cannaconf.h
Canna36p3/CHANGES.jp 0100644 0001751 0000024 00000104300 07613540614 013265 0 ustar shinra staff 本文書では『かんな』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.dist 0100644 0001751 0000024 00000047503 07614447345 014536 0 ustar shinra staff /* 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 */";\ @@\