11ab64890Smrg/* 21ab64890Smrg * Copyright 1992, 1993 by TOSHIBA Corp. 31ab64890Smrg * 41ab64890Smrg * Permission to use, copy, modify, and distribute this software and its 51ab64890Smrg * documentation for any purpose and without fee is hereby granted, provided 61ab64890Smrg * that the above copyright notice appear in all copies and that both that 71ab64890Smrg * copyright notice and this permission notice appear in supporting 81ab64890Smrg * documentation, and that the name of TOSHIBA not be used in advertising 91ab64890Smrg * or publicity pertaining to distribution of the software without specific, 101ab64890Smrg * written prior permission. TOSHIBA make no representations about the 111ab64890Smrg * suitability of this software for any purpose. It is provided "as is" 121ab64890Smrg * without express or implied warranty. 131ab64890Smrg * 141ab64890Smrg * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 151ab64890Smrg * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 161ab64890Smrg * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 171ab64890Smrg * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 181ab64890Smrg * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 191ab64890Smrg * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 201ab64890Smrg * SOFTWARE. 211ab64890Smrg * 221ab64890Smrg * Author: Katsuhisa Yano TOSHIBA Corp. 231ab64890Smrg * mopi@osa.ilab.toshiba.co.jp 241ab64890Smrg */ 251ab64890Smrg/* 261ab64890Smrg * Copyright 1995 by FUJITSU LIMITED 271ab64890Smrg * This is source code modified by FUJITSU LIMITED under the Joint 281ab64890Smrg * Development Agreement for the CDE/Motif PST. 291ab64890Smrg * 301ab64890Smrg * Modifier: Takanori Tateno FUJITSU LIMITED 311ab64890Smrg * 321ab64890Smrg */ 331ab64890Smrg 341ab64890Smrg#ifndef _XLCGENERIC_H_ 351ab64890Smrg#define _XLCGENERIC_H_ 361ab64890Smrg 371ab64890Smrg#include "XlcPubI.h" 381ab64890Smrg 391ab64890Smrgtypedef struct _ByteInfo { 401ab64890Smrg unsigned char start,end; 411ab64890Smrg} ByteInfoRec, *ByteInfo; 421ab64890Smrg 431ab64890Smrgtypedef struct _ByteInfoList { 441ab64890Smrg int M; /* 1 <= M <= length */ 451ab64890Smrg int byteinfo_num; 461ab64890Smrg ByteInfo byteinfo; 471ab64890Smrg} ByteInfoListRec, *ByteInfoList; 481ab64890Smrg 491ab64890Smrg/* conversion_type values */ 501ab64890Smrg#define LOCALCONV 1 511ab64890Smrg#define FILECONV 2 521ab64890Smrg#define FUNCTIONCONV 4 531ab64890Smrg 541ab64890Smrgtypedef struct _Conversion { 551ab64890Smrg unsigned long conversion_type; 561ab64890Smrg int conv_num; 571ab64890Smrg FontScope convlist; 581ab64890Smrg char *cnv_file; 591ab64890Smrg XlcConv cnvfunc; 601ab64890Smrg} ConversionRec, *Conversion; 611ab64890Smrg 621ab64890Smrgtypedef struct _ExtdSegment { 631ab64890Smrg char *name; 641ab64890Smrg XlcSide side; 651ab64890Smrg FontScope area; 661ab64890Smrg int area_num; 671ab64890Smrg XlcCharSet charset; 681ab64890Smrg} ExtdSegmentRec, *ExtdSegment; 691ab64890Smrg 701ab64890Smrgtypedef struct _SegConvRec { 711ab64890Smrg int length; 721ab64890Smrg char *source_encoding; 731ab64890Smrg XlcCharSet source; 741ab64890Smrg char *destination_encoding; 751ab64890Smrg XlcCharSet dest; 761ab64890Smrg FontScopeRec range; 771ab64890Smrg int conv_num; 781ab64890Smrg FontScope conv; 791ab64890Smrg} SegConvRec, *SegConv; 801ab64890Smrg 811ab64890Smrgtypedef struct _ParseInfoRec *ParseInfo; 821ab64890Smrg 831ab64890Smrgtypedef struct _CodeSetRec { 841ab64890Smrg XlcCharSet *charset_list; 851ab64890Smrg int num_charsets; 861ab64890Smrg int cs_num; 871ab64890Smrg XlcSide side; 881ab64890Smrg int length; 891ab64890Smrg ByteInfoList byteM; 901ab64890Smrg Conversion mbconv; 911ab64890Smrg Conversion ctconv; 921ab64890Smrg ExtdSegment ctextseg; 931ab64890Smrg ParseInfo parse_info; 941ab64890Smrg unsigned long wc_encoding; 951ab64890Smrg Bool string_encoding; 961ab64890Smrg} CodeSetRec, *CodeSet; 971ab64890Smrg 981ab64890Smrgtypedef enum { 991ab64890Smrg E_GL, /* GL encoding */ 1001ab64890Smrg E_GR, /* GR encoding */ 1011ab64890Smrg E_SS, /* single shift */ 1021ab64890Smrg E_LSL, /* locking shift left */ 1031ab64890Smrg E_LSR, /* locking shift right */ 1041ab64890Smrg E_LAST 1051ab64890Smrg} EncodingType; 1061ab64890Smrg 1071ab64890Smrgtypedef struct _ParseInfoRec { 1081ab64890Smrg EncodingType type; 1091ab64890Smrg char *encoding; 1101ab64890Smrg CodeSet codeset; 1111ab64890Smrg} ParseInfoRec; 1121ab64890Smrg 1131ab64890Smrg/* 1141ab64890Smrg * XLCd private data 1151ab64890Smrg */ 1161ab64890Smrg 1171ab64890Smrg#define XLC_GENERIC(lcd, x) (((XLCdGeneric) lcd->core)->gen.x) 1181ab64890Smrg#define XLC_GENERIC_PART(lcd) (&(((XLCdGeneric) lcd->core)->gen)) 1191ab64890Smrg 1201ab64890Smrgtypedef struct _XLCdGenericPart { 1211ab64890Smrg int codeset_num; 1221ab64890Smrg CodeSet *codeset_list; 1231ab64890Smrg unsigned char *mb_parse_table; 1241ab64890Smrg int mb_parse_list_num; 1251ab64890Smrg ParseInfo *mb_parse_list; 1261ab64890Smrg unsigned long wc_encode_mask; 1271ab64890Smrg unsigned long wc_shift_bits; 1281ab64890Smrg CodeSet initial_state_GL; 1291ab64890Smrg CodeSet initial_state_GR; 1301ab64890Smrg int segment_conv_num; /* UDC */ 1311ab64890Smrg SegConv segment_conv; /* UDC */ 1321ab64890Smrg Bool use_stdc_env; 1331ab64890Smrg Bool force_convert_to_mb; 1341ab64890Smrg} XLCdGenericPart; 1351ab64890Smrg 1361ab64890Smrgtypedef struct _XLCdGenericRec { 13761b2299dSmrg XLCdCoreRec core; 1381ab64890Smrg XLCdPublicPart pub; 13961b2299dSmrg XLCdGenericPart gen; 1401ab64890Smrg} XLCdGenericRec, *XLCdGeneric; 1411ab64890Smrg 1421ab64890Smrgextern XLCdMethods _XlcGenericMethods; 1431ab64890Smrg 1441ab64890Smrgextern FontScope 1451ab64890Smrg_XlcParse_scopemaps( 1461ab64890Smrg const char *str, 1471ab64890Smrg int *size); 1481ab64890Smrgextern void 1491ab64890Smrg_XlcDbg_printValue( 1501ab64890Smrg const char *str, 1511ab64890Smrg char **value, 1521ab64890Smrg int num); 1531ab64890Smrg 1541ab64890Smrgextern XIM 1551ab64890Smrg_XDefaultOpenIM( 1561ab64890Smrg XLCd lcd, 1571ab64890Smrg Display *dpy, 1581ab64890Smrg XrmDatabase rdb, 1591ab64890Smrg char *res_name, 1601ab64890Smrg char *res_class); 1611ab64890Smrg 1621ab64890Smrg#endif /* _XLCGENERIC_H_ */ 163