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