|
Packit Service |
a721b1 |
/* m17n.h -- header file for the SHELL API of the m17n library.
|
|
Packit Service |
a721b1 |
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
|
Packit Service |
a721b1 |
National Institute of Advanced Industrial Science and Technology (AIST)
|
|
Packit Service |
a721b1 |
Registration Number H15PRO112
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This file is part of the m17n library.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The m17n library is free software; you can redistribute it and/or
|
|
Packit Service |
a721b1 |
modify it under the terms of the GNU Lesser General Public License
|
|
Packit Service |
a721b1 |
as published by the Free Software Foundation; either version 2.1 of
|
|
Packit Service |
a721b1 |
the License, or (at your option) any later version.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The m17n library is distributed in the hope that it will be useful,
|
|
Packit Service |
a721b1 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
a721b1 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
a721b1 |
Lesser General Public License for more details.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
You should have received a copy of the GNU Lesser General Public
|
|
Packit Service |
a721b1 |
License along with the m17n library; if not, write to the Free
|
|
Packit Service |
a721b1 |
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Packit Service |
a721b1 |
Boston, MA 02110-1301 USA. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#ifndef _M17N_H_
|
|
Packit Service |
a721b1 |
#define _M17N_H_
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#include <stdio.h>
|
|
Packit Service |
a721b1 |
#include <stdlib.h>
|
|
Packit Service |
a721b1 |
#include <time.h>
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#ifndef _M17N_CORE_H_
|
|
Packit Service |
a721b1 |
#include <m17n-core.h>
|
|
Packit Service |
a721b1 |
#endif
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
M17N_BEGIN_HEADER
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE)
|
|
Packit Service |
a721b1 |
extern void m17n_init (void);
|
|
Packit Service |
a721b1 |
#undef M17N_INIT
|
|
Packit Service |
a721b1 |
#ifdef _M17N_FLT_H_
|
|
Packit Service |
a721b1 |
#define M17N_INIT() \
|
|
Packit Service |
a721b1 |
do { \
|
|
Packit Service |
a721b1 |
m17n_init (); \
|
|
Packit Service |
a721b1 |
m17n_init_flt (); \
|
|
Packit Service |
a721b1 |
} while (0)
|
|
Packit Service |
a721b1 |
#else /* not _M17N_FLT_H_ */
|
|
Packit Service |
a721b1 |
#define M17N_INIT() m17n_init ()
|
|
Packit Service |
a721b1 |
#endif /* not _M17N_FLT_H_ */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern void m17n_fini (void);
|
|
Packit Service |
a721b1 |
#undef M17N_FINI
|
|
Packit Service |
a721b1 |
#ifdef _M17N_FLT_H_
|
|
Packit Service |
a721b1 |
#define M17N_FINI() \
|
|
Packit Service |
a721b1 |
do { \
|
|
Packit Service |
a721b1 |
m17n_fini_flt (); \
|
|
Packit Service |
a721b1 |
m17n_fini (); \
|
|
Packit Service |
a721b1 |
} while (0)
|
|
Packit Service |
a721b1 |
#else /* not _M17N_FLT_H_ */
|
|
Packit Service |
a721b1 |
#define M17N_FINI() m17n_fini ()
|
|
Packit Service |
a721b1 |
#endif /* not _M17N_FLT_H_ */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#endif
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en @defgroup m17nShell SHELL API
|
|
Packit Service |
a721b1 |
@brief API provided by libm17n.so */
|
|
Packit Service |
a721b1 |
/***ja @defgroup m17nShell シェル API
|
|
Packit Service |
a721b1 |
@brief libm17n.so が提供する API */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*
|
|
Packit Service |
a721b1 |
* (11) Functions related to the m17n database
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/* (S2) Charset staffs */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nShell */
|
|
Packit Service |
a721b1 |
/***en @defgroup m17nCharset Charset */
|
|
Packit Service |
a721b1 |
/***ja @defgroup m17nCharset 文字セット */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE)
|
|
Packit Service |
a721b1 |
#define MCHAR_INVALID_CODE 0xFFFFFFFF
|
|
Packit Service |
a721b1 |
#endif
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Predefined charsets */
|
|
Packit Service |
a721b1 |
extern MSymbol Mcharset_ascii;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcharset_iso_8859_1;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcharset_unicode;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcharset_m17n;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcharset_binary;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Predefined keys for mchar_define_charset (). */
|
|
Packit Service |
a721b1 |
extern MSymbol Mmethod;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdimension;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmin_range;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmax_range;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmin_code;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmax_code;
|
|
Packit Service |
a721b1 |
extern MSymbol Mascii_compatible;
|
|
Packit Service |
a721b1 |
extern MSymbol Mfinal_byte;
|
|
Packit Service |
a721b1 |
extern MSymbol Mrevision;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmin_char;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmapfile;
|
|
Packit Service |
a721b1 |
extern MSymbol Mparents;
|
|
Packit Service |
a721b1 |
extern MSymbol Msubset_offset;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdefine_coding;
|
|
Packit Service |
a721b1 |
extern MSymbol Maliases;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Methods of a charset. */
|
|
Packit Service |
a721b1 |
extern MSymbol Moffset;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmap;
|
|
Packit Service |
a721b1 |
extern MSymbol Munify;
|
|
Packit Service |
a721b1 |
extern MSymbol Msubset;
|
|
Packit Service |
a721b1 |
extern MSymbol Msuperset;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* etc. */
|
|
Packit Service |
a721b1 |
extern MSymbol mchar_define_charset (const char *name, MPlist *plist);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol mchar_resolve_charset (MSymbol symbol);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mchar_list_charset (MSymbol **symbols);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mchar_decode (MSymbol charset_name, unsigned code);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern unsigned mchar_encode (MSymbol charset_name, int c);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mchar_map_charset (MSymbol charset_name,
|
|
Packit Service |
a721b1 |
void (*func) (int from, int to, void *arg),
|
|
Packit Service |
a721b1 |
void *func_arg);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* (S3) code conversion */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nShell */
|
|
Packit Service |
a721b1 |
/***en @defgroup m17nConv Code Conversion */
|
|
Packit Service |
a721b1 |
/***ja @defgroup m17nConv コード変換 */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Predefined coding systems */
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_us_ascii;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_iso_8859_1;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_8;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_8_full;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_16;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_16be;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_16le;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_32;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_32be;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_utf_32le;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding_sjis;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Parameter keys for mconv_define_coding (). */
|
|
Packit Service |
a721b1 |
extern MSymbol Mtype;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcharsets;
|
|
Packit Service |
a721b1 |
extern MSymbol Mflags;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdesignation;
|
|
Packit Service |
a721b1 |
extern MSymbol Minvocation;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcode_unit;
|
|
Packit Service |
a721b1 |
extern MSymbol Mbom;
|
|
Packit Service |
a721b1 |
extern MSymbol Mlittle_endian;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Symbols representing coding system type. */
|
|
Packit Service |
a721b1 |
extern MSymbol Mutf;
|
|
Packit Service |
a721b1 |
extern MSymbol Miso_2022;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* Symbols appearing in the value of Mfrag parameter. */
|
|
Packit Service |
a721b1 |
extern MSymbol Mreset_at_eol;
|
|
Packit Service |
a721b1 |
extern MSymbol Mreset_at_cntl;
|
|
Packit Service |
a721b1 |
extern MSymbol Meight_bit;
|
|
Packit Service |
a721b1 |
extern MSymbol Mlong_form;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdesignation_g0;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdesignation_g1;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdesignation_ctext;
|
|
Packit Service |
a721b1 |
extern MSymbol Mdesignation_ctext_ext;
|
|
Packit Service |
a721b1 |
extern MSymbol Mlocking_shift;
|
|
Packit Service |
a721b1 |
extern MSymbol Msingle_shift;
|
|
Packit Service |
a721b1 |
extern MSymbol Msingle_shift_7;
|
|
Packit Service |
a721b1 |
extern MSymbol Meuc_tw_shift;
|
|
Packit Service |
a721b1 |
extern MSymbol Miso_6429;
|
|
Packit Service |
a721b1 |
extern MSymbol Mrevision_number;
|
|
Packit Service |
a721b1 |
extern MSymbol Mfull_support;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* etc */
|
|
Packit Service |
a721b1 |
extern MSymbol Mcoding;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmaybe;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nConv */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Codes that represent the result of code conversion.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
One of these values is set in @c MConverter-\>result. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief コード変換の結果を示すコード.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
これらの値のうち一つが @c MConverter-\>result に設定される。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
enum MConversionResult
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en Code conversion is successful. */
|
|
Packit Service |
a721b1 |
/***ja コード変換は成功. */
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_SUCCESS,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en On decoding, the source contains an invalid byte. */
|
|
Packit Service |
a721b1 |
/***ja デコード時、ソースに不正なバイトが含まれている. */
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INVALID_BYTE,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en On encoding, the source contains a character that cannot be
|
|
Packit Service |
a721b1 |
encoded by the specified coding system. */
|
|
Packit Service |
a721b1 |
/***ja エンコード時、指定のコード系でエンコードできない文字がソースに含まれている. */
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INVALID_CHAR,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en On decoding, the source ends with an incomplete byte sequence. */
|
|
Packit Service |
a721b1 |
/***ja デコード時、不完全なバイト列でソースが終わっている。*/
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INSUFFICIENT_SRC,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en On encoding, the destination is too short to store the result. */
|
|
Packit Service |
a721b1 |
/***ja エンコード時、結果を格納する領域が短かすぎる。 */
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INSUFFICIENT_DST,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en An I/O error occurred in the conversion. */
|
|
Packit Service |
a721b1 |
/***ja コード変換中に I/O エラーが起こった。 */
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_IO_ERROR
|
|
Packit Service |
a721b1 |
};
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nConv */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Structure to be used in code conversion.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
Structure to be used in code conversion. The first three members
|
|
Packit Service |
a721b1 |
are to control the conversion. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief コード変換に用いられる構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
コード変換に用いられる構造体。最初の3つのメンバは変換を制御する。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@latexonly \IPAlabel{MConverter} @endlatexonly
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
typedef struct
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Set the value to nonzero if the conversion should be lenient.
|
|
Packit Service |
a721b1 |
By default, the conversion is strict (i.e. not lenient).
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the conversion is strict, the converter stops at the first
|
|
Packit Service |
a721b1 |
invalid byte (on decoding) or at the first character not
|
|
Packit Service |
a721b1 |
supported by the coding system (on encoding). If this happens,
|
|
Packit Service |
a721b1 |
@c MConverter-\>result is set to @c
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INVALID_BYTE or @c
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INVALID_CHAR accordingly.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the conversion is lenient, on decoding, an invalid byte is
|
|
Packit Service |
a721b1 |
kept per se, and on encoding, an invalid character is replaced
|
|
Packit Service |
a721b1 |
with "<U+XXXX>" (if the character is a Unicode character) or
|
|
Packit Service |
a721b1 |
with "<M+XXXXXX>" (otherwise). */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
厳密な変換が必要でない場合に値を 0 以外にする。
|
|
Packit Service |
a721b1 |
デフォルトでは、変換は厳密である。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
変換が厳密とは、デコードの際には最初の不正なバイトでコンバータが止まること、
|
|
Packit Service |
a721b1 |
エンコードの際には変換されるコード系でサポートされない最初の文字でコンバータが止まることを指す。
|
|
Packit Service |
a721b1 |
これらの場合、@c MConverter-\>result はそれぞれ @c
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INVALID_BYTE か@c
|
|
Packit Service |
a721b1 |
MCONVERSION_RESULT_INVALID_CHAR となる。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
変換が厳密でない場合には、デコードの際の不正なバイトはそのバイトのまま残る。
|
|
Packit Service |
a721b1 |
またエンコードの際には、不正な文字が Unicode 文字の場合には "<U+XXXX>"
|
|
Packit Service |
a721b1 |
に、そうでない場合には "<M+XXXXXX>" に置き換えられる。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int lenient;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Set the value to nonzero before decoding or encoding the last
|
|
Packit Service |
a721b1 |
block of the byte sequence or the character sequence
|
|
Packit Service |
a721b1 |
respectively. The value influences the conversion as below.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
On decoding, in the case that the last few bytes are too short
|
|
Packit Service |
a721b1 |
to form a valid byte sequence:
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the value is nonzero, the conversion terminates by error
|
|
Packit Service |
a721b1 |
(MCONVERSION_RESULT_INVALID_BYTE) at the first byte of the
|
|
Packit Service |
a721b1 |
sequence.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the value is zero, the conversion terminates successfully.
|
|
Packit Service |
a721b1 |
Those bytes are stored in the converter as carryover and are
|
|
Packit Service |
a721b1 |
prepended to the byte sequence of the further conversion.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
On encoding, in the case that the coding system is context
|
|
Packit Service |
a721b1 |
dependent:
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the value is nonzero, the conversion may produce a byte
|
|
Packit Service |
a721b1 |
sequence at the end to reset the context to the initial state
|
|
Packit Service |
a721b1 |
even if the source characters are zero.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the value is zero, the conversion never produce such a byte
|
|
Packit Service |
a721b1 |
sequence at the end. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
バイト列の終端のブロックをデコードする際、または文字列の終端のブロックをエンコードする際は、値を
|
|
Packit Service |
a721b1 |
0 以外にする。この値は以下のように変換に影響する。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
デコーディングの際に最後の数バイトが正しいバイトシークエンスを形成するには短すぎる場合:
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
値が 0 でなければ、変換はそのシークエンスの最初のバイトにおいて、エラー
|
|
Packit Service |
a721b1 |
(MCONVERSION_RESULT_INVALID_BYTE) で終る。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
値が 0 ならば、変換は成功して終る。
|
|
Packit Service |
a721b1 |
問題の数バイトはキャリーオーバとしてコンバータに保持され、変換の続きを行う際に変換するバイト列の前に付けられる。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
エンコーディングの際にコード系が文脈依存の場合、
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
値が 0 でなければ、コンテキストを最初に戻すためのバイト列がソースの文字とかかわりなく変換の結果生成されることがある。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
値が 0 ならば、そのようなバイト列は生成されない。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int last_block;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
If the value is nonzero, it specifies at most how many
|
|
Packit Service |
a721b1 |
characters to convert. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
0 でなければ、変換される最大の文字数を指定する。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
unsigned at_most;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
The following three members are to report the result of the
|
|
Packit Service |
a721b1 |
conversion. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
以下の3つのメンバは変換の結果を表すためのものである。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Number of characters most recently decoded or encoded. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
最近にデコード/エンコードされた文字数。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int nchars;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Number of bytes recently decoded or encoded. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
最近にデコード/エンコードされたバイト数。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int nbytes;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Result code of the conversion. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
コード変換の結果を示すコード。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
enum MConversionResult result;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Various information about the status of code conversion. The
|
|
Packit Service |
a721b1 |
contents depend on the type of coding system. It is assured
|
|
Packit Service |
a721b1 |
that @c status is aligned so that any type of casting is safe
|
|
Packit Service |
a721b1 |
and at least 256 bytes of memory space can be used. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
コード変換の状況に関する種々の情報。内容はコード系のタイプによって異なる。
|
|
Packit Service |
a721b1 |
@c status はどのような型へのキャストに対しても安全なようにメモリアラインされており、また最低256バイトのメモリ領域が使えるようになっている。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
union {
|
|
Packit Service |
a721b1 |
void *ptr;
|
|
Packit Service |
a721b1 |
double dbl;
|
|
Packit Service |
a721b1 |
char c[256];
|
|
Packit Service |
a721b1 |
} status;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
This member is for internally use only. An application program
|
|
Packit Service |
a721b1 |
should never touch it. */
|
|
Packit Service |
a721b1 |
/***ja このメンバは内部的に使用され、アプリケーションプログラムは触れてはならない。 */
|
|
Packit Service |
a721b1 |
void *internal_info;
|
|
Packit Service |
a721b1 |
} MConverter;
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nConv */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Types of coding system. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief コード系のタイプ. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
enum MCodingType
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
A coding system of this type supports charsets directly.
|
|
Packit Service |
a721b1 |
The dimension of each charset defines the length of bytes to
|
|
Packit Service |
a721b1 |
represent a single character of the charset, and a byte
|
|
Packit Service |
a721b1 |
sequence directly represents the code-point of a character.
|
|
Packit Service |
a721b1 |
The m17n library provides the default decoding and encoding
|
|
Packit Service |
a721b1 |
routines of this type. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
このタイプのコード系は文字セットを直接サポートする。
|
|
Packit Service |
a721b1 |
各文字セットの次元とは、その文字セットで一文字を表現するために必要なバイト数であり、バイト列は文字のコードポイントを直接表す。
|
|
Packit Service |
a721b1 |
m17n ライブラリはこのタイプ用のデフォルトのエンコード/デコードルーティンを提供する。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_TYPE_CHARSET,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
A coding system of this type supports byte sequences of a
|
|
Packit Service |
a721b1 |
UTF (UTF-8, UTF-16, UTF-32) like structure.
|
|
Packit Service |
a721b1 |
The m17n library provides the default decoding and encoding
|
|
Packit Service |
a721b1 |
routines of this type. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
このタイプのコード系は、UTF 系 (UTF-8, UTF-16, UTF-32) のバイト列をサポートする。
|
|
Packit Service |
a721b1 |
m17n ライブラリはこのタイプ用のデフォルトのエンコード/デコードルーティンを提供する。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_TYPE_UTF,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
A coding system of this type supports byte sequences of an
|
|
Packit Service |
a721b1 |
ISO-2022 like structure. The details of each structure are
|
|
Packit Service |
a721b1 |
specified by @c MCodingInfoISO2022 .
|
|
Packit Service |
a721b1 |
The m17n library provides decoding and encoding routines of
|
|
Packit Service |
a721b1 |
this type. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
このタイプのコード系は、ISO-2022 系のバイト列をサポートする。
|
|
Packit Service |
a721b1 |
各コード系の構造の詳細は @c MCodingInfoISO2022 で指定される。
|
|
Packit Service |
a721b1 |
m17n ライブラリはこのタイプ用のデフォルトのエンコード/デコードルーティンを提供する。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_TYPE_ISO_2022,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
A coding system of this type is for byte sequences of
|
|
Packit Service |
a721b1 |
miscellaneous structures.
|
|
Packit Service |
a721b1 |
The m17n library does not provide decoding and encoding
|
|
Packit Service |
a721b1 |
routines of this type. They must be provided by the
|
|
Packit Service |
a721b1 |
application program. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
このタイプのコード系は、その他の構造のバイト列のためのものである。
|
|
Packit Service |
a721b1 |
m17n ライブラリはこのタイプ用のエンコード/デコードルーティンを提供しないので、アプリケーションプログラム側で準備する必要がある。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_TYPE_MISC
|
|
Packit Service |
a721b1 |
};
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nConv */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Bit-masks to specify the detail of coding system whose type is MCODING_TYPE_ISO_2022. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief MCODING_TYPE_ISO_2022 タイプのコード系の詳細を表わすビットマスク. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
enum MCodingFlagISO2022
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, reset the invocation and designation status to
|
|
Packit Service |
a721b1 |
initial at end of line. */
|
|
Packit Service |
a721b1 |
/***ja エンコードの際、行末で呼び出し (invocation) と指示
|
|
Packit Service |
a721b1 |
(designation) の状態を初期値に戻す。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_RESET_AT_EOL = 0x1,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, reset the invocation and designation status to
|
|
Packit Service |
a721b1 |
initial before any control codes. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンコードの際、すべての制御文字の前で、呼び出し
|
|
Packit Service |
a721b1 |
(invocation) と指示 (designation) の状態を初期値に戻す。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_RESET_AT_CNTL = 0x2,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use the right graphic plane. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
図形文字集合の右側を使う。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_EIGHT_BIT = 0x4,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use the non-standard 4 bytes format for designation sequence
|
|
Packit Service |
a721b1 |
for charsets JISX0208-1978, GB2312, and JISX0208-1983. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
JISX0208-1978, GB2312, JISX0208-1983
|
|
Packit Service |
a721b1 |
の文字集合に対する指示シークエンスとして、非標準の4バイト形式を用いる。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_ISO_LONG_FORM = 0x8,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, unless explicitly specified, designate charsets
|
|
Packit Service |
a721b1 |
to G0. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンコードの際、特に指定されない限り、文字集合を G0
|
|
Packit Service |
a721b1 |
に指示する。*/
|
|
Packit Service |
a721b1 |
MCODING_ISO_DESIGNATION_G0 = 0x10,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, unless explicitly specified, designate charsets
|
|
Packit Service |
a721b1 |
except for ASCII to G1. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンコードの際、特に指定されない限り、ASCII 以外の文字集合を
|
|
Packit Service |
a721b1 |
G1 に指示する。*/
|
|
Packit Service |
a721b1 |
MCODING_ISO_DESIGNATION_G1 = 0x20,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, unless explicitly specified, designate 94-chars
|
|
Packit Service |
a721b1 |
charsets to G0, 96-chars charsets to G1. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンコードの際、特に指定されない限り、94文字集合を G0
|
|
Packit Service |
a721b1 |
に、96文字集合を G1 に指示する。*/
|
|
Packit Service |
a721b1 |
MCODING_ISO_DESIGNATION_CTEXT = 0x40,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, encode such charsets not conforming to ISO-2022
|
|
Packit Service |
a721b1 |
by ESC % / ..., and encode non-supported Unicode characters by
|
|
Packit Service |
a721b1 |
ESC % G ... ESC % @@ . On decoding, handle those escape
|
|
Packit Service |
a721b1 |
sequences. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンコードの際、ISO-2022 に合致しない文字集合を ESC % / ...
|
|
Packit Service |
a721b1 |
でエンコードする。サポートされていない Unicode 文字は ESC % G ...
|
|
Packit Service |
a721b1 |
ESC % @@ でエンコードする。
|
|
Packit Service |
a721b1 |
デコードの際、これらのエスケープ・シーケンスを解釈する。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_DESIGNATION_CTEXT_EXT = 0x80,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use locking shift. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
ロッキングシフトを使う。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_LOCKING_SHIFT = 0x100,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use single shift (SS2 (0x8E or ESC N), SS3 (0x8F or ESC O)). */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
シングルシフト (SS2 (0x8E or ESC N), SS3 (0x8F or ESC O)) を使う。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_SINGLE_SHIFT = 0x200,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use 7-bit single shift 2 (SS2 (0x19)). */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
7ビットシングルシフト 2 (SS2 (0x19)) を使う。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_SINGLE_SHIFT_7 = 0x400,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use EUC-TW like special shifting. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
EUC-TW 風の特別なシフトを使う。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_EUC_TW_SHIFT = 0x800,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Use ISO-6429 escape sequences to indicate direction.
|
|
Packit Service |
a721b1 |
Not yet implemented. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
ISO-6429 のエスケープシークエンスで方向を指示する。未実装。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_ISO6429 = 0x1000,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
On encoding, if a charset has revision number, produce escape
|
|
Packit Service |
a721b1 |
sequences to specify the number. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンコードの際、文字セットに revision number
|
|
Packit Service |
a721b1 |
があればそれを表わすエスケープシークエンスを生成する。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_REVISION_NUMBER = 0x2000,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Support all ISO-2022 charsets. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
ISO-2022 の全文字集合をサポートする。 */
|
|
Packit Service |
a721b1 |
MCODING_ISO_FULL_SUPPORT = 0x3000,
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_ISO_FLAG_MAX
|
|
Packit Service |
a721b1 |
};
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nConv */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Structure for a coding system of type #MCODING_TYPE_ISO_2022.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
Structure for extra information about a coding system of type
|
|
Packit Service |
a721b1 |
MCODING_TYPE_ISO_2022. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief #MCODING_TYPE_ISO_2022 タイプのコード系で必要な付加情報用構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MCODING_TYPE_ISO_2022 タイプのコード系で必要な付加情報用を保持するための構造体。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@latexonly \IPAlabel{MCodingInfoISO2022} @endlatexonly */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
typedef struct
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Table of numbers of an ISO2022 code extension element invoked
|
|
Packit Service |
a721b1 |
to each graphic plane (Graphic Left and Graphic Right). -1
|
|
Packit Service |
a721b1 |
means no code extension element is invoked to that plane. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
各図形文字領域 (Graphic Left と Graphic Right) に呼び出されている、
|
|
Packit Service |
a721b1 |
ISO2022 符合拡張要素の番号のテーブル。-1
|
|
Packit Service |
a721b1 |
はその領域にどの符合拡張要素も呼び出されていないことを示す。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int initial_invocation[2];
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Table of code extension elements. The Nth element corresponds
|
|
Packit Service |
a721b1 |
to the Nth charset in $CHARSET_NAMES, which is an argument given
|
|
Packit Service |
a721b1 |
to the mconv_define_coding () function.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If an element value is 0..3, it specifies a graphic register
|
|
Packit Service |
a721b1 |
number to designate the corresponds charset. In addition, the
|
|
Packit Service |
a721b1 |
charset is initially designated to that graphic register.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If the value is -4..-1, it specifies a graphic register number
|
|
Packit Service |
a721b1 |
0..3 respectively to designate the corresponds charset.
|
|
Packit Service |
a721b1 |
Initially, the charset is not designated to any graphic
|
|
Packit Service |
a721b1 |
register. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
符合拡張要素のテーブル。N番目の要素は、$CHARSET_NAMES の N
|
|
Packit Service |
a721b1 |
番目の文字セットに対応する。$CHARSET_NAMES は関数
|
|
Packit Service |
a721b1 |
mconv_define_coding () の引数となる。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
値が 0..3 だったら、対応する文字セットを G0..G3
|
|
Packit Service |
a721b1 |
のそれぞれに指示すること、また初期状態ですでに G0..G3
|
|
Packit Service |
a721b1 |
に指示されていることを意味する。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
値が -4..-1 だったら、対応する文字セットを G0..G3
|
|
Packit Service |
a721b1 |
のそれぞれに指示すること、しかし初期状態ではどこにも指示されていないことを意味する。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
char designations[32];
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Bitwise OR of @c enum @c MCodingFlagISO2022 . */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@c enum @c MCodingFlagISO2022 のビット単位での論理 OR */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
unsigned flags;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
} MCodingInfoISO2022;
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nConv */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Structure for extra information about a coding system of type #MCODING_TYPE_UTF.
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief #MCODING_TYPE_UTF タイプのコード系で必要な付加情報用の構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@latexonly \IPApage{MCodingInfoUTF} @endlatexonly
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@latexonly \IPAlabel{MCodingInfoUTF} @endlatexonly */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
typedef struct
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Specify bits of a code unit. The value must be 8, 16, or 32. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
コード長(ビット数)の指定。値は 8, 16, 32 のいずれか。 */
|
|
Packit Service |
a721b1 |
int code_unit_bits;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Specify how to handle the heading BOM (byte order mark). The
|
|
Packit Service |
a721b1 |
value must be 0, 1, or 2. The meanings are as follows:
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
0: On decoding, check the first two byte. If they are BOM,
|
|
Packit Service |
a721b1 |
decide endian by them. If not, decide endian by the member @c
|
|
Packit Service |
a721b1 |
endian. On encoding, produce byte sequence according to
|
|
Packit Service |
a721b1 |
@c endian with heading BOM.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
1: On decoding, do not handle the first two bytes as BOM, and
|
|
Packit Service |
a721b1 |
decide endian by @c endian. On encoding, produce byte sequence
|
|
Packit Service |
a721b1 |
according to @c endian without BOM.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
2: On decoding, handle the first two bytes as BOM and decide
|
|
Packit Service |
a721b1 |
ending by them. On encoding, produce byte sequence according to
|
|
Packit Service |
a721b1 |
@c endian with heading BOM.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If \<code_unit_bits\> is 8, the value has no meaning. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
先頭の BOM (バイトオーダーマーク) の取り扱いを指定する。値は 0,
|
|
Packit Service |
a721b1 |
1, 2 のいずれかであり、それぞれの意味は以下のようになる。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
0: デコードの際に最初の 2 バイトを調べる。もしそれが BOM
|
|
Packit Service |
a721b1 |
であれば、エンディアンをそれで判定する。そうでなければ、メンバ @c
|
|
Packit Service |
a721b1 |
endian に従ってエンディアンを決定する。エンコードの際には @c
|
|
Packit Service |
a721b1 |
endian に従ったバイト列を先頭に BOM 付で生成する。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
1: デコードの際、最初の 2 バイトを BOM として扱わず、エンディアンは
|
|
Packit Service |
a721b1 |
@c endian で判定する。エンコードの際には、BOM を出力せず、
|
|
Packit Service |
a721b1 |
@c endian に応じたバイト列を生成する。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
2: デコードの際に最初の2バイトを BOMとして扱い、それに従ってエンディアンを判定する。
|
|
Packit Service |
a721b1 |
エンコードの際には @c endian に応じたバイト列を先頭に BOM 付きで生成する。 */
|
|
Packit Service |
a721b1 |
int bom;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
Specify the endian type. The value must be 0 or 1. 0 means
|
|
Packit Service |
a721b1 |
little endian, and 1 means big endian.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
If \<code_unit_bits\> is 8, the value has no meaning. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
エンディアンのタイプを指定する。値は 0 か 1 であり、0
|
|
Packit Service |
a721b1 |
ならばリトルエンディアン、1 ならばビッグエンディアンである。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
\<code_unit_bits\> が 8 の場合には、この値は意味を持たない。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
int endian;
|
|
Packit Service |
a721b1 |
} MCodingInfoUTF;
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol mconv_define_coding (const char *name, MPlist *plist,
|
|
Packit Service |
a721b1 |
int (*resetter) (MConverter *),
|
|
Packit Service |
a721b1 |
int (*decoder) (const unsigned char *, int,
|
|
Packit Service |
a721b1 |
MText *, MConverter *),
|
|
Packit Service |
a721b1 |
int (*encoder) (MText *, int, int,
|
|
Packit Service |
a721b1 |
unsigned char *, int,
|
|
Packit Service |
a721b1 |
MConverter *),
|
|
Packit Service |
a721b1 |
void *extra_info);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol mconv_resolve_coding (MSymbol symbol);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_list_codings (MSymbol **symbols);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MConverter *mconv_buffer_converter (MSymbol coding,
|
|
Packit Service |
a721b1 |
const unsigned char *buf,
|
|
Packit Service |
a721b1 |
int n);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MConverter *mconv_stream_converter (MSymbol coding, FILE *fp);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_reset_converter (MConverter *converter);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern void mconv_free_converter (MConverter *converter);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MConverter *mconv_rebind_buffer (MConverter *converter,
|
|
Packit Service |
a721b1 |
const unsigned char *buf, int n);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MConverter *mconv_rebind_stream (MConverter *converter, FILE *fp);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MText *mconv_decode (MConverter *converter, MText *mt);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MText *mconv_decode_buffer (MSymbol name, const unsigned char *buf, int n);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
MText *mconv_decode_stream (MSymbol name, FILE *fp);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_encode (MConverter *converter, MText *mt);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_encode_range (MConverter *converter, MText *mt,
|
|
Packit Service |
a721b1 |
int from, int to);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_encode_buffer (MSymbol name, MText *mt,
|
|
Packit Service |
a721b1 |
unsigned char *buf, int n);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_encode_stream (MSymbol name, MText *mt, FILE *fp);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_getc (MConverter *converter);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_ungetc (MConverter *converter, int c);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mconv_putc (MConverter *converter, int c);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MText *mconv_gets (MConverter *converter, MText *mt);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* (S4) Locale related functions corresponding to libc functions */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nShell */
|
|
Packit Service |
a721b1 |
/***en @defgroup m17nLocale Locale */
|
|
Packit Service |
a721b1 |
/***ja @defgroup m17nLocale ロケール */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nLocale */
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief @c struct @c MLocale.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The structure @c MLocale is used to hold information about name,
|
|
Packit Service |
a721b1 |
language, territory, modifier, codeset, and the corresponding
|
|
Packit Service |
a721b1 |
coding system of locales.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The contents of this structure are implementation dependent. Its
|
|
Packit Service |
a721b1 |
internal structure is concealed from application programs. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief @c MLocale 構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@c MLocale 構造体は、ロケールの名前、言語、地域、モディファイア、コードセット、および対応するコード系に関する情報を保持するために用いられる。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
この構造体の内容は実装に依存する。
|
|
Packit Service |
a721b1 |
内部構造はアプリケーションプログラムからは見えない。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***
|
|
Packit Service |
a721b1 |
@seealso
|
|
Packit Service |
a721b1 |
mlocale_get_prop () */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
typedef struct MLocale MLocale;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol Miso639_1, Miso639_2;
|
|
Packit Service |
a721b1 |
extern MSymbol Mterritory;
|
|
Packit Service |
a721b1 |
extern MSymbol Mmodifier;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcodeset;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *mlanguage_list (void);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol mlanguage_code (MSymbol language, int len);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *mlanguage_name_list (MSymbol language, MSymbol target,
|
|
Packit Service |
a721b1 |
MSymbol script, MSymbol territory);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MText *mlanguage_text (MSymbol language);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *mscript_list (void);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *mscript_language_list (MSymbol script);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol mlanguage_name (MSymbol language);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MLocale *mlocale_set (int category, const char *locale);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol mlocale_get_prop (MLocale *locale, MSymbol key);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mtext_ftime (MText *mt, const char *format, const struct tm *tm,
|
|
Packit Service |
a721b1 |
MLocale *locale);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MText *mtext_getenv (const char *name);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mtext_putenv (MText *mt);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int mtext_coll (MText *mt1, MText *mt2);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*
|
|
Packit Service |
a721b1 |
* (9) Miscellaneous functions of libc level (not yet implemented)
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*
|
|
Packit Service |
a721b1 |
extern int mtext_width (MText *mt, int n);
|
|
Packit Service |
a721b1 |
extern MText *mtext_tolower (MText *mt);
|
|
Packit Service |
a721b1 |
extern MText *mtext_toupper (MText *mt);
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*
|
|
Packit Service |
a721b1 |
* (10) Input method
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/*** @ingroup m17nShell */
|
|
Packit Service |
a721b1 |
/***en @defgroup m17nInputMethod Input Method (basic) */
|
|
Packit Service |
a721b1 |
/***ja @defgroup m17nInputMethod 入力メソッド (基本部分) */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @addtogroup m17nInputMethod
|
|
Packit Service |
a721b1 |
@{ */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/* Struct forward declaration. */
|
|
Packit Service |
a721b1 |
/***
|
|
Packit Service |
a721b1 |
@brief See struct MInputMethod */
|
|
Packit Service |
a721b1 |
typedef struct MInputMethod MInputMethod;
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/***
|
|
Packit Service |
a721b1 |
@brief See struct MInputContext */
|
|
Packit Service |
a721b1 |
typedef struct MInputContext MInputContext;
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Type of input method callback functions.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This is the type of callback functions called from input method
|
|
Packit Service |
a721b1 |
drivers. $IC is a pointer to an input context, $COMMAND is a name
|
|
Packit Service |
a721b1 |
of callback for which the function is called. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力メソッドコールバック関数の型宣言.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
入力メソッドから呼ばれるコールバック関数の型である。$IC
|
|
Packit Service |
a721b1 |
は入力コンテクストへのポインタ、$COMMAND は関数が呼ばれるコールバックの名前である。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
typedef void (*MInputCallbackFunc) (MInputContext *ic, MSymbol command);
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Structure of input method driver.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The type @c MInputDriver is the structure of an input method driver that
|
|
Packit Service |
a721b1 |
contains several functions to handle an input method. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力ドライバ用構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@c MInputDriver は、入力メソッドを取り扱う関数を含む入力メソッドドライバの構造体の型である。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
typedef struct MInputDriver
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Open an input method.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This function opens the input method $IM. It is called from the
|
|
Packit Service |
a721b1 |
function minput_open_im () after all member of $IM but \<info\>
|
|
Packit Service |
a721b1 |
set. If opening $IM succeeds, it returns 0. Otherwise, it
|
|
Packit Service |
a721b1 |
returns -1. The function can setup $IM->info to keep various
|
|
Packit Service |
a721b1 |
information that is referred by the other driver functions. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力メソッドをオープンする.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
この関数は、入力メソッド $IM をオープンする。$IM の \<info\>
|
|
Packit Service |
a721b1 |
以外の全メンバーがセットされた後で、関数 minput_open_im ()
|
|
Packit Service |
a721b1 |
から呼ばれる。$IM をオープンできれば 0 を、できなければ -1を返す。
|
|
Packit Service |
a721b1 |
この関数は $IM->info
|
|
Packit Service |
a721b1 |
を設定して、他のドライバ関数から参照される情報を保持することができる。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int (*open_im) (MInputMethod *im);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Close an input method.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This function closes the input method $IM. It is called from
|
|
Packit Service |
a721b1 |
the function minput_close_im (). It frees all memory allocated
|
|
Packit Service |
a721b1 |
for $IM->info (if any) after finishing all the tasks of closing
|
|
Packit Service |
a721b1 |
the input method. But, the other members of $IM should not be
|
|
Packit Service |
a721b1 |
touched. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力メソッドをクローズする.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
この関数は、入力メソッド $IM をクローズする。関数
|
|
Packit Service |
a721b1 |
minput_close_im () から呼ばれる。
|
|
Packit Service |
a721b1 |
入力メソッドのクローズがすべて終了した時点で、この関数は$IM->info
|
|
Packit Service |
a721b1 |
に割り当てられているメモリを(あれば)すべて開放する。
|
|
Packit Service |
a721b1 |
ただし、$IM の他のメンバに影響を与えてはならない。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
void (*close_im) (MInputMethod *im);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Create an input context.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This function creates the input context $IC. It is called from
|
|
Packit Service |
a721b1 |
the function minput_create_ic () after all members of $IC but
|
|
Packit Service |
a721b1 |
\<info\> are set. If creating $IC succeeds, it returns 0.
|
|
Packit Service |
a721b1 |
Otherwise, it returns -1. The function can setup $IC->info to
|
|
Packit Service |
a721b1 |
keep various information that is referred by the other driver
|
|
Packit Service |
a721b1 |
functions. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力コンテクストを生成する.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
この関数は入力コンテクスト $IC を生成する。
|
|
Packit Service |
a721b1 |
$IC の \<info\> 以外の全メンバーがセットされた後で、関数
|
|
Packit Service |
a721b1 |
minput_create_ic () から呼ばれる。
|
|
Packit Service |
a721b1 |
$IC を生成できれば 0 を、できなければ -1 を返す。
|
|
Packit Service |
a721b1 |
この関数は $IC->info を設定して、他のドライバ関数から参照される情報を保持することができる。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int (*create_ic) (MInputContext *ic);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Destroy an input context.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This function is called from the function minput_destroy_ic ()
|
|
Packit Service |
a721b1 |
and destroys the input context $IC. It frees all memory
|
|
Packit Service |
a721b1 |
allocated for $IC->info (if any) after finishing all the tasks
|
|
Packit Service |
a721b1 |
of destroying the input method. But, the other members of $IC
|
|
Packit Service |
a721b1 |
should not be touched. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力コンテクストを破壊する.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
関数 minput_destroy_ic () から呼ばれ、入力コンテクスト $IC
|
|
Packit Service |
a721b1 |
を破壊する。入力コンテクストの破壊がすべて終了した時点で、$IC->info
|
|
Packit Service |
a721b1 |
に割り当てられているメモリを(あれば)すべて開放する。ただし、$IC
|
|
Packit Service |
a721b1 |
の他のメンバに影響を与えてはならない。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
void (*destroy_ic) (MInputContext *ic);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Filter an input key.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
This function is called from the function minput_filter () and
|
|
Packit Service |
a721b1 |
filters an input key. $KEY and $ARG are the same as what given
|
|
Packit Service |
a721b1 |
to minput_filter ().
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The task of the function is to handle $KEY, update the internal
|
|
Packit Service |
a721b1 |
state of $IC. If $KEY is absorbed by the input method and no
|
|
Packit Service |
a721b1 |
text is produced, it returns 1. Otherwise, it returns 0.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
It may update $IC->status, $IC->preedit, $IC->cursor_pos,
|
|
Packit Service |
a721b1 |
$IC->ncandidates, $IC->candidates, and $IC->produced if that is
|
|
Packit Service |
a721b1 |
necessary for the member \<callback\>.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The meaning of $ARG depends on the input method river. See the
|
|
Packit Service |
a721b1 |
documentation of @c minput_default_driver and @c
|
|
Packit Service |
a721b1 |
minput_gui_driver for instance. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力キーをフィルタする.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
関数 minput_filter () から呼ばれ、入力キーをフィルタする。引数
|
|
Packit Service |
a721b1 |
$KEY, $ARG は関数 minput_filter () のものと同じ。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
この関数は $KEY を処理し、$IC の内部状態を更新する。 $KEY
|
|
Packit Service |
a721b1 |
が入力メソッドに吸収されてテキストが生成されなかった場合には、
|
|
Packit Service |
a721b1 |
1 を返す。そうでなければ 0 を返す。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
メンバ \<callback\> に必要であれば、$IC->status, $IC->preedit,
|
|
Packit Service |
a721b1 |
$IC->cursor_pos, $IC->ncandidates, $IC->candidates,
|
|
Packit Service |
a721b1 |
$IC->produced を更新できる。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
$ARG の意味は入力メソッドドライバに依存する。例は @c
|
|
Packit Service |
a721b1 |
minput_default_driver または @c minput_gui_driver
|
|
Packit Service |
a721b1 |
の説明を参照のこと。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int (*filter) (MInputContext *ic, MSymbol key, void *arg);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Lookup a produced text in an input context.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
It is called from the function minput_lookup () and looks up a
|
|
Packit Service |
a721b1 |
produced text in the input context $IC. This function
|
|
Packit Service |
a721b1 |
concatenate a text produced by the input key $KEY (if any) to
|
|
Packit Service |
a721b1 |
M-text $MT. If $KEY was correctly handled by the input method
|
|
Packit Service |
a721b1 |
of $IC, it returns 0. Otherwise, it returns 1.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The meaning of $ARG depends on the input method driver. See the
|
|
Packit Service |
a721b1 |
documentation of @c minput_default_driver and @c
|
|
Packit Service |
a721b1 |
minput_gui_driver for instance. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力コンテクストで生成されるテキストの獲得.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
関数 minput_lookup () から呼ばれ、入力コンテクスト $IC
|
|
Packit Service |
a721b1 |
で生成されるテキストを検索する。入力キー $KEY
|
|
Packit Service |
a721b1 |
によって生成されるテキストがあれば、M-text $MT に追加する。 $KEY
|
|
Packit Service |
a721b1 |
が入力メソッド $IC によって正しく処理されれば 0 を返す。そうでなければ 1 を返す。
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
$ARG の意味は入力メソッドドライバに依存する。例は @c
|
|
Packit Service |
a721b1 |
minput_default_driver または @c minput_gui_driver の説明を参照の
|
|
Packit Service |
a721b1 |
こと。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
int (*lookup) (MInputContext *ic, MSymbol key, void *arg, MText *mt);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief List of callback functions.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
List of callback functions. Keys are one of
|
|
Packit Service |
a721b1 |
@b Minput_preedit_start, @b Minput_preedit_draw,
|
|
Packit Service |
a721b1 |
@b Minput_preedit_done, @b Minput_status_start, @b Minput_status_draw,
|
|
Packit Service |
a721b1 |
@b Minput_status_done, @b Minput_candidates_start,
|
|
Packit Service |
a721b1 |
@b Minput_candidates_draw, @b Minput_candidates_done,
|
|
Packit Service |
a721b1 |
@b Minput_set_spot, @b Minput_toggle, @b Minput_reset,
|
|
Packit Service |
a721b1 |
@b Minput_get_surrounding_text, @b Minput_delete_surrounding_text.
|
|
Packit Service |
a721b1 |
Values are functions of type #MInputCallbackFunc. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief コールバック関数のリスト.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
コールバック関数のリスト。キーは次のいずれか。
|
|
Packit Service |
a721b1 |
@b Minput_preedit_start, @b Minput_preedit_draw,
|
|
Packit Service |
a721b1 |
@b Minput_preedit_done, @b Minput_status_start, @b Minput_status_draw,
|
|
Packit Service |
a721b1 |
@b Minput_status_done, @b Minput_candidates_start,
|
|
Packit Service |
a721b1 |
@b Minput_candidates_draw, @b Minput_candidates_done,
|
|
Packit Service |
a721b1 |
@b Minput_set_spot, @b Minput_toggle, @b Minput_reset,
|
|
Packit Service |
a721b1 |
@b Minput_get_surrounding_text, @b Minput_delete_surrounding_text。
|
|
Packit Service |
a721b1 |
値は#MInputCallbackFunc 型の関数。 */
|
|
Packit Service |
a721b1 |
MPlist *callback_list;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
} MInputDriver;
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/*** @} */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MInputDriver minput_default_driver;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_method;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_driver;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MInputDriver *minput_driver;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/** Symbols for callback commands. */
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_preedit_start;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_preedit_draw;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_preedit_done;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_status_start;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_status_draw;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_status_done;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_candidates_start;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_candidates_draw;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_candidates_done;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_set_spot;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_toggle;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_reset;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_get_surrounding_text;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_delete_surrounding_text;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/** Symbols for special input key event. */
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_focus_move;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_focus_in;
|
|
Packit Service |
a721b1 |
extern MSymbol Minput_focus_out;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/** Symbols describing input method command/variable. */
|
|
Packit Service |
a721b1 |
extern MSymbol Minherited;
|
|
Packit Service |
a721b1 |
extern MSymbol Mcustomized;
|
|
Packit Service |
a721b1 |
extern MSymbol Mconfigured;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*** @addtogroup m17nInputMethod
|
|
Packit Service |
a721b1 |
@{ */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Structure of input method.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The type @c MInputMethod is the structure of input method
|
|
Packit Service |
a721b1 |
objects. */
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力メソッドの構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@c MInputMethod は、入力メソッドオブジェクト用の構造体の型である。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
struct MInputMethod
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en Which language this input method is for. The value is @c
|
|
Packit Service |
a721b1 |
Mnil if the input method is foreign. */
|
|
Packit Service |
a721b1 |
/***ja どの言語用の入力メソッドか。
|
|
Packit Service |
a721b1 |
入力メソッドが外部のものである場合の値は @c Mnil 。 */
|
|
Packit Service |
a721b1 |
MSymbol language;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Name of the input method. If the input method is foreign, it
|
|
Packit Service |
a721b1 |
must has a property of key @c Minput_driver and the value must be a
|
|
Packit Service |
a721b1 |
pointer to a proper input method driver. */
|
|
Packit Service |
a721b1 |
/***ja 入力メソッドの名前。外部メソッドである場合には、@c
|
|
Packit Service |
a721b1 |
Minput_driver をキーとするプロパティを持ち、その値は適切な入力メソッドドライバへのポインタでなくてはならない。*/
|
|
Packit Service |
a721b1 |
MSymbol name;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Input method driver of the input method. */
|
|
Packit Service |
a721b1 |
/***ja その入力メソッド用の入力メソッドドライバ。 */
|
|
Packit Service |
a721b1 |
MInputDriver driver;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en The argument given to minput_open_im (). */
|
|
Packit Service |
a721b1 |
/***ja minput_open_im () に渡される引数。 */
|
|
Packit Service |
a721b1 |
void *arg;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Pointer to extra information that \<driver\>.open_im ()
|
|
Packit Service |
a721b1 |
setups. */
|
|
Packit Service |
a721b1 |
/***ja \<driver\>.open_im () が設定する追加情報へのポインタ。 */
|
|
Packit Service |
a721b1 |
void *info;
|
|
Packit Service |
a721b1 |
};
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Bit-masks to specify how candidates of input method is changed. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力メソッドの入力候補がどう変更されたかを示すビットマスク. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
enum MInputCandidatesChanged
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
MINPUT_CANDIDATES_LIST_CHANGED = 1,
|
|
Packit Service |
a721b1 |
MINPUT_CANDIDATES_INDEX_CHANGED = 2,
|
|
Packit Service |
a721b1 |
MINPUT_CANDIDATES_SHOW_CHANGED = 4,
|
|
Packit Service |
a721b1 |
MINPUT_CANDIDATES_CHANGED_MAX
|
|
Packit Service |
a721b1 |
};
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en
|
|
Packit Service |
a721b1 |
@brief Structure of input context.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
The type @c MInputContext is the structure of input context
|
|
Packit Service |
a721b1 |
objects. */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***ja
|
|
Packit Service |
a721b1 |
@brief 入力コンテクスト用構造体.
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
@c MInputContext は、入力コンテクストオブジェクト用の構造体の型である。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
struct MInputContext
|
|
Packit Service |
a721b1 |
{
|
|
Packit Service |
a721b1 |
/***en Backward pointer to the input method. It is set up by the
|
|
Packit Service |
a721b1 |
function minput_create_ic (). */
|
|
Packit Service |
a721b1 |
/***ja 入力メソッドへの逆ポインタ。関数 minput_create_ic ()
|
|
Packit Service |
a721b1 |
によって設定される。 */
|
|
Packit Service |
a721b1 |
MInputMethod *im;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en M-text produced by the input method. It is set up by the
|
|
Packit Service |
a721b1 |
function minput_filter () . */
|
|
Packit Service |
a721b1 |
/***ja 入力メソッドによって生成される M-text。関数 minput_filter ()
|
|
Packit Service |
a721b1 |
によって設定される。 */
|
|
Packit Service |
a721b1 |
MText *produced;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Argument given to the function minput_create_ic (). */
|
|
Packit Service |
a721b1 |
/***ja 関数 minput_create_ic () に渡される引数。 */
|
|
Packit Service |
a721b1 |
void *arg;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Flag telling whether the input context is currently active or
|
|
Packit Service |
a721b1 |
inactive. The value is set to 1 (active) when the input context
|
|
Packit Service |
a721b1 |
is created. It is toggled by the function minput_toggle (). */
|
|
Packit Service |
a721b1 |
/***ja 入力コンテクストがアクティブかどうかを示すフラグ。
|
|
Packit Service |
a721b1 |
入力コンテクストが生成された時点では値は 1 (アクティブ)であり、関数
|
|
Packit Service |
a721b1 |
minput_toggle () によってトグルされる。 */
|
|
Packit Service |
a721b1 |
int active;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Spot location and size of the input context. */
|
|
Packit Service |
a721b1 |
/***ja 入力コンテクストのスポットの位置と大きさ. */
|
|
Packit Service |
a721b1 |
struct {
|
|
Packit Service |
a721b1 |
/***en X and Y coordinate of the spot. */
|
|
Packit Service |
a721b1 |
/***ja スポットの X, Y 座標. */
|
|
Packit Service |
a721b1 |
int x, y;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Ascent and descent pixels of the line of the spot. */
|
|
Packit Service |
a721b1 |
/***ja スポットのアセントとディセントのピクセル数. */
|
|
Packit Service |
a721b1 |
int ascent, descent;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Font size for preedit text in 1/10 point. */
|
|
Packit Service |
a721b1 |
/***ja preedit テキスト用のフォントサイズ (1/10 ポイント単位). */
|
|
Packit Service |
a721b1 |
int fontsize;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en M-text at the spot, or NULL. */
|
|
Packit Service |
a721b1 |
/***ja スポット上の M-text、または NULL. */
|
|
Packit Service |
a721b1 |
MText *mt;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Character position in \<mt\> at the spot. */
|
|
Packit Service |
a721b1 |
/***ja \<mt\> におけるスポットの文字位置. */
|
|
Packit Service |
a721b1 |
int pos;
|
|
Packit Service |
a721b1 |
} spot;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en The usage of the following members depends on the input
|
|
Packit Service |
a721b1 |
method driver. The descriptions below are for the driver of an
|
|
Packit Service |
a721b1 |
internal input method. They are set by the function
|
|
Packit Service |
a721b1 |
\<im\>->driver.filter (). */
|
|
Packit Service |
a721b1 |
/***ja 以下のメンバの使用法は入力メソッドドライバによって異なる。
|
|
Packit Service |
a721b1 |
以下の説明は、内部入力メソッド用の入力ドライバに対するものである。
|
|
Packit Service |
a721b1 |
これらは関数 \<im\>->driver.filter () によって設定される。 */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Pointer to extra information that \<im\>->driver.create_ic ()
|
|
Packit Service |
a721b1 |
setups. It is used to record the internal state of the input
|
|
Packit Service |
a721b1 |
context. */
|
|
Packit Service |
a721b1 |
/***ja \<im\>->driver.create_ic () が設定する追加情報へのポインタ。
|
|
Packit Service |
a721b1 |
入力コンテクストの内部状態を記録するために用いられる。 */
|
|
Packit Service |
a721b1 |
void *info;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en M-text describing the current status of the input
|
|
Packit Service |
a721b1 |
context. */
|
|
Packit Service |
a721b1 |
/***ja 入力コンテクストの現在の状態を表す M-text */
|
|
Packit Service |
a721b1 |
MText *status;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en The function \<im\>->driver.filter () sets the value to 1 when
|
|
Packit Service |
a721b1 |
it changes \<status\>. */
|
|
Packit Service |
a721b1 |
/***ja 関数 \<im\>->driver.filter () は、\<status\> を変えた際にこの値を 1
|
|
Packit Service |
a721b1 |
に設定する。 */
|
|
Packit Service |
a721b1 |
int status_changed;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en M-text containing the current preedit text. The function
|
|
Packit Service |
a721b1 |
\<im\>->driver.filter () sets the value. */
|
|
Packit Service |
a721b1 |
/***ja 現在の preedit テキストを含む M-text。関数
|
|
Packit Service |
a721b1 |
\<im\>->driver.filter () によって設定される。 */
|
|
Packit Service |
a721b1 |
MText *preedit;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en The function \<im\>->driver.filter () sets the value to 1 when
|
|
Packit Service |
a721b1 |
it changes \<preedit\>. */
|
|
Packit Service |
a721b1 |
/***ja 関数 \<im\>->driver.filter () は、\<preedit\> を変えた際にこの値を
|
|
Packit Service |
a721b1 |
1 に設定する。 */
|
|
Packit Service |
a721b1 |
int preedit_changed;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Cursor position of \<preedit\>. */
|
|
Packit Service |
a721b1 |
/***ja \<preedit\>のカーソル位置 */
|
|
Packit Service |
a721b1 |
int cursor_pos;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en The function \<im\>->driver.filter () sets the value to 1 when
|
|
Packit Service |
a721b1 |
it changes \<cursor_pos\>. */
|
|
Packit Service |
a721b1 |
/***ja 関数 \<im\>->driver.filter () は、\<cursor_pos\> を変えた際にこの値を
|
|
Packit Service |
a721b1 |
1 に設定する。 */
|
|
Packit Service |
a721b1 |
int cursor_pos_changed;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Plist of the current candidate groups. Each element is an
|
|
Packit Service |
a721b1 |
M-text or a plist. If an element is an M-text (i.e. the key is Mtext),
|
|
Packit Service |
a721b1 |
candidates in that group are characters in the M-text. If it is
|
|
Packit Service |
a721b1 |
a plist (i.e. the key is Mplist), each element is an M-text, and
|
|
Packit Service |
a721b1 |
candidates in that group are those M-texts. */
|
|
Packit Service |
a721b1 |
/***ja 現在の候補グループの Plist 。各要素は M-text か plist である。
|
|
Packit Service |
a721b1 |
要素が M-text の場合(キーが Mtext である場合)には、そのグループの候補はその
|
|
Packit Service |
a721b1 |
M-text 中の各文字である。 要素が plist の場合(キーが Mplist
|
|
Packit Service |
a721b1 |
である場合)には、そのリストの各要素は M-text であり、それらがそのグループの候補となる。 */
|
|
Packit Service |
a721b1 |
MPlist *candidate_list;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Index number of the currently selected candidate in all the
|
|
Packit Service |
a721b1 |
candidates. The index of the first candidate is 0. If the
|
|
Packit Service |
a721b1 |
number is 8, and the first candidate group contains 7
|
|
Packit Service |
a721b1 |
candidates, the currently selected candidate is the second element of the
|
|
Packit Service |
a721b1 |
second candidate group. */
|
|
Packit Service |
a721b1 |
/***ja 現在選択されている候補が全候補中で何番目かをを示すインデックス。
|
|
Packit Service |
a721b1 |
最初の候補のインデックスは 0。最初の候補グループに七つの候補が含まれており、この値が
|
|
Packit Service |
a721b1 |
8 ならば、現在の候補は二番目の候補グループの二番目の要素ということになる。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
int candidate_index;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* @{ */
|
|
Packit Service |
a721b1 |
/***en Start and the end positions of the preedit text where
|
|
Packit Service |
a721b1 |
\<candidate_list\> corresponds to. */
|
|
Packit Service |
a721b1 |
/***ja preedit テキスト中で、\<candidate_list\>に対応する最初と最後の位置。
|
|
Packit Service |
a721b1 |
*/
|
|
Packit Service |
a721b1 |
int candidate_from, candidate_to;
|
|
Packit Service |
a721b1 |
/* @} */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Flag telling whether the current candidate group must be
|
|
Packit Service |
a721b1 |
shown or not. The function \<im\>->driver.filter () sets the
|
|
Packit Service |
a721b1 |
value to 1 when an input method required to show candidates, and
|
|
Packit Service |
a721b1 |
sets the value to 0 otherwise. */
|
|
Packit Service |
a721b1 |
/***ja 現在の候補グループを表示するかどうかを示すフラグ。
|
|
Packit Service |
a721b1 |
関数 \<im\>->driver.filter () は、入力メソッドが候補の表示を要求した時この値を
|
|
Packit Service |
a721b1 |
1 に、それ以外の時 0 に設定する。 */
|
|
Packit Service |
a721b1 |
int candidate_show;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en The function \<im\>->driver.filter () sets the value to bitwise
|
|
Packit Service |
a721b1 |
OR of @c enum @c MInputCandidatesChanged when it changed any of
|
|
Packit Service |
a721b1 |
the above members (\<candidate_XXX\>), and sets the value to 0
|
|
Packit Service |
a721b1 |
otherwise. */
|
|
Packit Service |
a721b1 |
/***ja 関数 \<im\>->driver.filter () は、上記のメンバ \<candidate_XXX\>
|
|
Packit Service |
a721b1 |
の1つでも変更した際には、この値を @c enum @c
|
|
Packit Service |
a721b1 |
MInputCandidatesChanged のビット単位での論理 OR に設定する。そう
|
|
Packit Service |
a721b1 |
でなければ 0 に設定する。 */
|
|
Packit Service |
a721b1 |
int candidates_changed;
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/***en Plist that can be freely used by \<im\>->driver functions.
|
|
Packit Service |
a721b1 |
The driver of internal input method uses it to exchange extra
|
|
Packit Service |
a721b1 |
arguments and result for callback functions. The function
|
|
Packit Service |
a721b1 |
\<im\>->driver.create_ic () sets this to an empty plist, and the
|
|
Packit Service |
a721b1 |
function \<im\>->driver.destroy_ic () frees it by using
|
|
Packit Service |
a721b1 |
m17n_object_unref (). */
|
|
Packit Service |
a721b1 |
/***ja \<im\>->driver の関数群によって自由に使用できる plist。
|
|
Packit Service |
a721b1 |
内部入力メソッド用ドライバはこれをコールバック関数との引数や返値
|
|
Packit Service |
a721b1 |
の受渡しに使用する。関数 \<im\>->driver.create_ic () はこの plist
|
|
Packit Service |
a721b1 |
を空に設定する。関数\<im\>->driver.destroy_ic () は
|
|
Packit Service |
a721b1 |
m17n_object_unref () を用いてこの plist を解放する。 */
|
|
Packit Service |
a721b1 |
MPlist *plist;
|
|
Packit Service |
a721b1 |
};
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
/*** @} */
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MInputMethod *minput_open_im (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
void *arg);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*=*/
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern void minput_close_im (MInputMethod *im);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MInputContext *minput_create_ic (MInputMethod *im, void *arg);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern void minput_destroy_ic (MInputContext *ic);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int minput_filter (MInputContext *ic, MSymbol key, void *arg);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int minput_lookup (MInputContext *ic, MSymbol key, void *arg,
|
|
Packit Service |
a721b1 |
MText *mt);
|
|
Packit Service |
a721b1 |
extern void minput_set_spot (MInputContext *ic, int x, int y, int ascent,
|
|
Packit Service |
a721b1 |
int descent, int fontsize, MText *mt, int pos);
|
|
Packit Service |
a721b1 |
extern void minput_toggle (MInputContext *ic);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern void minput_reset_ic (MInputContext *ic);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MText *minput_get_description (MSymbol language, MSymbol name);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *minput_get_title_icon (MSymbol language, MSymbol name);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *minput_get_command (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
MSymbol command);
|
|
Packit Service |
a721b1 |
extern int minput_config_command (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
MSymbol command, MPlist *keyseq);
|
|
Packit Service |
a721b1 |
extern MPlist *minput_get_variable (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
MSymbol variable);
|
|
Packit Service |
a721b1 |
extern int minput_config_variable (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
MSymbol variable, MPlist *value);
|
|
Packit Service |
a721b1 |
extern char *minput_config_file (void);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int minput_save_config (void);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int minput_callback (MInputContext *ic, MSymbol command);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/* obsolete functions */
|
|
Packit Service |
a721b1 |
extern MPlist *minput_get_commands (MSymbol language, MSymbol name);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int minput_assign_command_keys (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
MSymbol command, MPlist *keys);
|
|
Packit Service |
a721b1 |
extern MPlist *minput_get_variables (MSymbol language, MSymbol name);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern int minput_set_variable (MSymbol language, MSymbol name,
|
|
Packit Service |
a721b1 |
MSymbol variable, void *value);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *minput_parse_im_names (MText *mt);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MPlist *minput_list (MSymbol lang);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
extern MInputMethod *mdebug_dump_im (MInputMethod *im, int indent);
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
M17N_END_HEADER
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
#endif /* _M17N_H_ */
|
|
Packit Service |
a721b1 |
|
|
Packit Service |
a721b1 |
/*
|
|
Packit Service |
a721b1 |
Local Variables:
|
|
Packit Service |
a721b1 |
coding: euc-japan
|
|
Packit Service |
a721b1 |
End:
|
|
Packit Service |
a721b1 |
*/
|