2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: udcutil.h /main/3 1996/11/08 01:58:55 cde-fuj $ */
25 * (c) Copyright 1995 FUJITSU LIMITED
26 * This is source code modified by FUJITSU LIMITED under the Joint
27 * Development Agreement for the CDEnext PST.
28 * This is unpublished proprietary source code of FUJITSU LIMITED
34 #define USAGE2(a, b, c)
35 #define USAGE3(a, b, c, d)
36 #define USAGE4(a, b, c, d, e)
38 #define USAGE(a) fprintf(stderr, a)
39 #define USAGE1(a, b) fprintf(stderr, a, b)
40 #define USAGE2(a, b, c) fprintf(stderr, a, b, c)
41 #define USAGE3(a, b, c, d) fprintf(stderr, a, b, c, d)
42 #define USAGE4(a, b, c, d, e) fprintf(stderr, a, b, c, d, e)
45 #define UDC_LINE_MAX 2048
47 /* macro for get character strings */
49 #define AllocString( str, orgstr, rtn ){ \
50 (str) = (char *)malloc( sizeof(char) * (strlen((orgstr))+1) ) ;\
54 strcpy( (str), (orgstr) ) ;\
57 #define AddString( str, addstr, rtn ){ \
58 (str) = (char *)realloc( (str), sizeof(char) * ( strlen((str)) + strlen((addstr)) + 1 ) ) ;\
62 strcat( (str), (addstr) ) ;\
65 #define ResizeString( str, rtn ){ \
66 (str) = (char *)realloc( (str), sizeof(char) * ( strlen((str)) + 1 ) ) ;\
72 #define FreeString( str ){ \
79 /* access to "fonts.dir" */
81 #define XLFD_ELM_CNT 14
83 #define XLFD_ELM_FOUNDRY 1
84 #define XLFD_ELM_FAMILY_NAME 2
85 #define XLFD_ELM_WEIGHT_NAME 3
86 #define XLFD_ELM_SLANT 4
87 #define XLFD_ELM_SETWIDTH_NAME 5
88 #define XLFD_ELM_ADD_STYLE_NAME 6
89 #define XLFD_ELM_PIXEL_SIZE 7
90 #define XLFD_ELM_POINT_SIZE 8
91 #define XLFD_ELM_RESOLUTION_X 9
92 #define XLFD_ELM_RESOLUTION_Y 10
93 #define XLFD_ELM_SPACING 11
94 #define XLFD_ELM_AVERAGE_WIDTH 12
95 #define XLFD_ELM_CHARSET_REGISTRY 13
96 #define XLFD_ELM_CHARSET_ENCODING 14
99 static int udc_font_elm_cnt ;
100 static char udc_font_str_buffer[UDC_LINE_MAX] ;
101 static char *udc_font_sp ;
103 #define POINTXLFDELM( sp, xlfdname, elm_num ) { \
104 udc_font_sp = (xlfdname) ; \
105 udc_font_elm_cnt = 0 ;\
106 while(*udc_font_sp){\
107 if(*udc_font_sp == '-') udc_font_elm_cnt++ ;\
108 if( udc_font_elm_cnt == (elm_num) ){\
113 (sp) = udc_font_sp ;\
116 #define GETXLFDELMSTR( sp, xlfdname, elm_num ) { \
117 snprintf( udc_font_str_buffer, sizeof(udc_font_str_buffer), "%s", (xlfdname) ) ; \
118 udc_font_sp = udc_font_str_buffer ; \
119 udc_font_elm_cnt = 0 ;\
120 while(*udc_font_sp){\
121 if(*udc_font_sp == '-') udc_font_elm_cnt++ ;\
122 if( udc_font_elm_cnt == (elm_num) ){\
128 (sp) = udc_font_sp ;\
129 while(*udc_font_sp){\
130 if(*udc_font_sp == '-') udc_font_elm_cnt++ ;\
131 if( udc_font_elm_cnt == (elm_num)+1 ){\
132 *udc_font_sp = '\0' ;\
139 #define GETCHARSETSTR( char_set, xlfdname ) { \
140 snprintf( udc_font_str_buffer, sizeof(udc_font_str_buffer), "%s", (xlfdname) ) ; \
141 POINTXLFDELM( (char_set), udc_font_str_buffer, XLFD_ELM_CHARSET_REGISTRY ) ; \
145 #define GETSPACINGSTR( spacing, xlfdname ) { \
146 GETXLFDELMSTR( (spacing), (xlfdname), XLFD_ELM_SPACING ) ; \