Initial import of the CDE 2.1.30 sources from the Open Group.
[oweals/cde.git] / cde / programs / dtudcfonted / include / udcopt.h
1 /* $XConsortium: udcopt.h /main/4 1996/11/08 01:59:43 cde-fuj $ */
2 /*
3  *  (c) Copyright 1995 FUJITSU LIMITED
4  *  This is source code modified by FUJITSU LIMITED under the Joint
5  *  Development Agreement for the CDEnext PST.
6  *  This is unpublished proprietary source code of FUJITSU LIMITED
7  */
8
9 /***********************************************************************
10  * SNF format font
11  **********************************************************************/
12 #define BDFTOSNF_CMD    "bdftosnf"
13 #ifndef SNFFONTC
14 #define BDFTOSNF        "/usr/bin/X11/bdftosnf"
15 #else
16 #define BDFTOSNF        SNFFONTC
17 #endif
18 #define SNFSUFFIX       ".snf"
19
20 #define FONT_FILE_PARM  0
21
22 #define COMM_SNF_POPEN( permission, snf_file, out_file, ep, buf, command ) { \
23         strcpy( (buf), " -i " ) ; \
24         sprintf( (command), "%s %s > %s", bdftosnf, (buf), (out_file) ); \
25 }
26 #define COMM_SNF_FILEVERSION( snf_fd, finf, buf, permission ) { \
27         read( (snf_fd), (buf), sizeof(FontInfoRec) ); \
28         close( (snf_fd) ); \
29         (finf) = (FontInfoRec *) (buf) ; \
30         if( \
31             ((finf)->version1 != FONT_FILE_VERSION) || \
32             ((finf)->version2 != FONT_FILE_VERSION) \
33         ) \
34             (permission) = -1 ; \
35 }
36 #define COMM_SNF_NEWTARGET( permission )        (permission) = 0
37 #define COMM_SNF_EXECLBDFTOSNF( permission, buf, snf_file ) { \
38         execl( bdftosnf, bdftosnf, "-i", 0 ); \
39 }
40 #define COMM_SNF_GETHEADER( fip, fp ) { \
41         (fip) = (FontInfoRec *)(fp); \
42 }
43
44 #define FAL_FONT_PRM    0
45 #define CHK_PROTECT_KEY( protect_key_data, openfontfile,\
46                         fal_utyerror, fal_utyderror ) 
47 /* case of a snf former font */
48 #define FAL_GET_SNF_HEADER( buf, protect_key_data, fal_utyerror, fal_utyderror, fd, finf, openfontfile ) { \
49         (finf)->pFinf = ( FontInfoPtr )(buf); \
50         if ( \
51             ((finf)->pFinf->version1 != (finf)->pFinf->version2) || \
52             ((finf)->pFinf->version1 != FONT_FILE_VERSION) \
53         ) { \
54             set_errfile_str( fal_err_file, (openfontfile) ) ; \
55             (fal_utyerror) = _FAL_FONT_ER; \
56             (fal_utyderror) = 0; \
57             fal_utyerrno = FAL_ERR_FONT ; \
58             fal_utyerrno |= (FAL_FUNCNUM_OPNFNT<<8) ; \
59             goto FalError01 ; \
60         } else { \
61             (finf)->isFef = TRUE ; \
62             (finf)->isPcf = FALSE; \
63         } \
64 }
65
66 /* falReadGpfProp() */
67 #define FAL_READ_SNF_HEADER( finf, protect_key_data, fal_utyerror, fal_utyderror ) { \
68     (finf)->isFef = TRUE; \
69     (finf)->isPcf = FALSE; \
70     (finf)->pFinf = ( FontInfoPtr )(finf)->buf ; \
71     if ( /* not a snf or fef format */ \
72         ((finf)->pFinf->version1 != (finf)->pFinf->version2) || \
73         ((finf)->pFinf->version1 != FONT_FILE_VERSION) \
74     ) { \
75         return _FAL_TRY_NEXT ; \
76     } \
77
78
79 #define ISOPTFONT( file )       1
80
81 /***********************************************************************
82  * glyph index
83  **********************************************************************/
84 #define SHIFTMASK       0x7F7F
85 #define SHIFT_OFF(co)   (co)
86 #define SHIFT_ON(co)    (co)
87 #define DEFAULTCHAR     0x2121
88 #define CONVGLYPHINDEX( code )  (code)
89
90 #define DISPCODEPOINT( char_set, code ) (code)
91
92 #define FAL_OPT_CONVGITOCP( codeset, code )
93 #define FAL_OPT_CONVCPTOGI( codeset, code )
94
95 /***********************************************************************
96  * options for commands
97  **********************************************************************/
98 #define NORMAL  0
99 #define SYSTM   1
100
101 #define CDSET1  (1<<2)
102
103 /* UDC code area */
104 #define IN_CODE( cc, co )        (( cc ) ? 1 : 1 )
105
106 /* libfuty */
107 #define COMM_SBOPT_CHECKSBOPT( com, code_area )
108
109 #define COMM_SBOPT_STRCMP( argv, cnt )  (((argv)[(cnt)] ? 0 : 0 ))
110 #define COMM_SBOPT_SETSBOPT( codearea )
111
112 #define COMM_TYPE_STRCMP( argv, cnt )   ( ((argv)[(cnt)] ? 0 : 0 ))
113 #define COMM_TYPE_SETTYPE( argc, argv, cnt, type )
114
115 /***********************************************************************
116  * options for commands
117  **********************************************************************/
118 #define COMM_SETDEFAULTSTYLE( style )   (style) = (char *)NULL
119
120 #define COMM_SETSTYLE_TO_FONTDATA( style, key, mask ) { \
121         if( style ) { \
122             char        stylebuf[ BUFSIZE ] ; \
123             strcpy( stylebuf, style ) ; \
124             key.style.name = stylebuf ; \
125             mask |= FAL_FONT_MASK_STYLE_NAME ; \
126         } \
127 }
128 #define COMM_ISDEFAULTCHAR( code )      0
129
130 #define get_charset_registry(head, p)
131 #define put_default_chars(head, nchar, rtn) {\
132     if ( !(nchar) ) \
133     {\
134         (nchar)++;\
135         fprintf( (head)->output, "CHARS %d\n", (nchar) );\
136         if ( ( (rtn) = putDefaultChars( (head) ) ) != 0 ) {\
137             return (rtn);\
138         }\
139     } else {\
140         fprintf( (head)->output, "CHARS %d\n", (nchar) );\
141     }\
142 }
143 #define put_default_encode( head ) {\
144     fprintf((head)->output, "STARTCHAR %04x\n", DEFAULTCHAR );\
145     fprintf((head)->output, "ENCODING %d\n", DEFAULTCHAR );\
146 }
147 #define put_default_bitmap(head, bytew, posbit, i, j, ptnbuf, ptnbuf2, tmp) { \
148     for ((i) = 0; (i) < (bytew); (i)++) \
149         *((ptnbuf) + (i)) = (unsigned char)0x00;\
150     for ((j) = 0; (j) < (head)->bdf_height; (j)++) {\
151         for ((i) = 0; (i) < (bytew); (i)++) \
152             fprintf((head)->output, "%.2x", *((ptnbuf) + (i)));\
153         fprintf((head)->output, "\n");\
154     }\
155 }
156 #define COMM_SBFNT_ISSBFNT( p ) 0
157 #define COMM_SBFNT_CONVCODETOGI( char_set, head )
158 #define COMM_SBFNT_SETUDCAREA( com, head, char_set, code_area, num_gr, gr ) { \
159         (head).code_category    = ALL_CODE ; \
160         (head).start_code       = (gr)[0].start ; \
161         (head).end_code         = (gr)[(num_gr)-1].end ; \
162 }
163 #define COMM_SET_CODESET( codeset, code_area )
164 #define COMM_SET_CODECATEGORY( char_set, code_area, head )
165
166 /*
167  * help message
168  */
169 #define COMM_HELP_MSG{ \
170         USAGE("              [-codeset number] [-help]\n"); \
171         USAGE("\n"); \
172 }
173 #define COMM_DSP_LETTER_T
174 #define COMM_DSP_PRM
175 #define COMM_HELP_MSG_STYLE     USAGE("style      (The default value is mincho style.)\n")
176
177 /***********************************************************************
178  * Options for libfal
179  **********************************************************************/
180 #define COMM_SBCHR_SETFONTDATA( data, mask )
181 #define COMM_SBCHR_STRDUP_P( data, odata )
182
183 #define FAL_DB_OPTION   static  FalFontDB       *fal_db_opt
184 #define CHK_KEY_STR_OPTION( mask, key, flg )
185 #define FAL_FREE_FONTLIST_OPTION( list )
186 #define FAL_CLEAR_DATA_OPTION( tmp )
187 #define SET_STRUCT_OPTION( dup_p, elm, tmp_data, fal_utyerror, fal_db_group )
188 #define FAL_EQ_DATA_OPTION( flg, data, tmp_data )
189 #define FAL_CMP_DATA_OPTION( mask, op1, key )
190 #define DEF_STR_CHK     struct { int    style, shape; }str_chk 
191 #define DEF_STR_SET { \
192         str_chk.style = 0; \
193         str_chk.shape = 0; \
194 }
195
196 #define NEW_TARGET_SET( diff, choose, target, str_chk )
197 #define NEW_TARGET_CHK( diff, choose, target, str_chk )
198
199
200 /***********************************************************************
201  * udflist.def
202  **********************************************************************/
203 #define COMM_GET_DEFAULTFILE_ERROR( buf, com, ret, height, style, list_d, list_c, list_l, statbuf ) {\
204         buf[0] = '\0' ;\
205 }
206 #define COMM_DISPERRORFILE( com, lst, style, i, size_str ) {\
207         USAGE1("%s : Two or more corresponding user defined characters exist.\n", com);\
208         USAGE("\tcode set\tXLFD\n" );\
209         USAGE("\t--------------------------------------------------\n" );\
210         for ( i = 0 ; i < lst->num; i++ ) {\
211             USAGE2("\t%d\t%s\n", lst->list[i].cd_set-1, lst->list[i].xlfdname );\
212         }\
213 }
214
215 /***********************************************************************
216  * fonts.list
217  **********************************************************************/
218 #define GETLISTFILEPATH( locale, srch_path, list_d, list_c, list_l, list_file ) { \
219         if ( ( (locale) = getenv( "FAL_LANG" ) ) == NULL ) { \
220             if( ((locale) = (char *)getenv( "LANG" )) == NULL ){\
221                 (locale) = "C" ;\
222             }\
223         } \
224         if ( ( (srch_path) = getenv( DTUDCFONTS ) ) == NULL ) { \
225             sprintf( (list_d), "%s/%s", DTUDCFONTSLISTDIR, (list_file) ); \
226             sprintf( (list_c), "%s/C/%s", DTUDCFONTSLISTDIR, (list_file) ); \
227             sprintf( (list_l), "%s/%s/%s", DTUDCFONTSLISTDIR, (locale), (list_file) ); \
228         } else { \
229             sprintf( (list_d), "%s/%s", (srch_path), (list_file) ); \
230             sprintf( (list_c), "%s/C/%s", (srch_path), (list_file) ); \
231             sprintf( (list_l), "%s/%s/%s", (srch_path), (locale), (list_file) ); \
232         } \
233 }
234
235 #define SET_EXECDEFAULT( mask, def, undef ) { \
236     if( !((mask) & FAL_FONT_MASK_DEFINED) && !((mask) & FAL_FONT_MASK_UNDEFINED) ){ \
237         (def)   = FALSE ; \
238         (undef) = TRUE ; \
239     }else{ \
240         if( (mask) & FAL_FONT_MASK_DEFINED )    (def)   = TRUE ; \
241         else                                    (def)   = FALSE ; \
242         if( (mask) & FAL_FONT_MASK_UNDEFINED )  (undef) = TRUE ; \
243         else                                    (undef) = FALSE ; \
244     } \
245 }
246
247 /*************************< end of udcopt.h >**************************/