This file is indexed.

/usr/include/uil/UilDBDef.h is in libmotif-dev 2.3.4-13.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
/* 
 * Motif
 *
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
 *
 * These libraries and programs are free software; you can
 * redistribute them and/or modify them under the terms of the GNU
 * Lesser General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * These libraries and programs are distributed in the hope that
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with these librararies and programs; if not, write
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301 USA
*/ 
/* 
 * HISTORY
*/ 
/*   $XConsortium: UilDBDef.h /main/8 1995/07/13 21:03:16 drk $ */

/*
*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */

/*
**++
**  FACILITY:
**
**      User Interface Language Compiler (UIL)
**
**  ABSTRACT:
**
**      This include file defines the interfaces necessry to the binary 
**	data base in the WML & UIL compilers.
**
**--
**/

#ifndef UilDBDef_h
#define UilDBDef_h

/***********************************************************************
****************** From UilDef.h ***************************************/
#define _BIT_INDEX(_type)	\
            (((unsigned int) (_type)) >> 3)

#define _BIT_MASK(_type)	\
  (1 << (((unsigned int) (_type)) & 0x7))

#define _BIT_SET(table_entry_addr, _type) \
  ( _BIT_MASK (_type) &  \
    ( ((unsigned char *) (table_entry_addr)) \
      [ _BIT_INDEX (_type) ] ) )

/*******************************************************************
**************** From UilSymDef.h *********************************/
/*
**  Hash table size
*/

#define sym_k_hash_table_limit	127

/* 
**  Symbol tags.  These values are used in the tag field of every object header
**  to identify the type of the entry.
*/

#define sym_k_error_entry		(127)
    /*	An error entry is used when compilation errors are detected in the  */
    /*	source program.  Its use reduces cascading errors caused by missing */
    /*	information and allows the compilation to continue and thus	    */
    /*	additional errors may be detected				    */
#define sym_k_value_entry		1
    /*	A value entry contains information about a UIL literal value	    */
    /*	(integer, string, compound string, xbitmapfile, argument, color,    */
    /*	icon, etc.).  The b_type field is used to determine the datatype of */
    /*	this value.							    */
#define sym_k_name_entry		2
    /*	A name entry corresponds to a name (identifier) used in the UIL	    */
    /*	source.								    */
#define sym_k_widget_entry		3
    /*	A widget entry represents a widget declaration.  It points off to   */
    /*	the arguments, callbacks, and controls lists for the widget.	    */
#define sym_k_control_entry		4
    /*	A control entry hangs off a list entry and identifes an object	    */
    /*	(widget or gadget) that is controlled.  It also contains the	    */
    /*	managed/unmanaged information.					    */
#define sym_k_forward_ref_entry		5
    /*	forward reference entries are a linked listed of objects	    */
    /*	(widgets/gadgets) that were not defined at the time of the	    */
    /*	reference.  After all objects have been seen, then this list is	    */
    /*	traversed and all objects in it should now be defined and the	    */
    /*	specified pointers can be filled-in.				    */
#define sym_k_external_def_entry	6
    /*	An external definition entry identifies a name that has been	    */
    /*	imported and thus in not declared within this source module.	    */
#define sym_k_argument_entry		7
    /*	An argument entry hangs off a list entry and identifies an object   */
    /*	argument.  It contains informtation about the argument name and	    */
    /*	argument value.							    */
#define sym_k_callback_entry		8
    /*	An calllback entry hangs off a list entry and identifies an object  */
    /*	callback.  It contains informtation about the callback name,	    */
    /*	callback procedure, and callback tag.				    */
#define sym_k_module_entry		9
    /*	A module entry contains information specified on the module	    */
    /*	statement.							    */
#define sym_k_proc_def_entry		10
    /*	A procedure definition entry is created for each procedure listed   */
    /*	in a procedure section.  I contains informaion on the number and    */
    /*	types of the arguments.						    */

#define sym_k_proc_ref_entry		11
    /*	A procedure reference entry contains information about a the use of */
    /*	a procedure (e.g. as a callback).  It also stores the tag to be	    */
    /*	passed to the procedure.					    */
#define sym_k_list_entry		12
    /*	A list entry is a typed list of other symbol table entries. It	    */
    /*	contains a count and a pointer to the next entry on the list via    */
    /*	the obj_header.az_next field.					    */
#define sym_k_child_entry		13
    /*	A child entry represents a declaration for an  			    */
    /*	automatically created child.  It points off to   		    */
    /*	the arguments, callbacks, and controls lists for the child. Since   */
    /*	the structures for widget and child are the same, the		    */
    /*	datastructure for children is really a sym_k_widget_entry_type.	    */
#define sym_k_identifier_entry		14
    /*	identifier entry tag is used for diagnostic messages only	    */
#define sym_k_color_item_entry		15
    /*	entry describing a color.					    */
#define sym_k_gadget_entry		16
    /*	A gadget entry represents a gadget declaration.  It points off to   */
    /*	the arguments, callbacks, and controls lists for the gadget. Since  */
    /*	the structures for widget and gadgets are the same, the		    */
    /*	datastructure for gadgets is really a sym_k_widget_entry_type.	    */
#define sym_k_root_entry		17
    /*	An entry used to group all the other entries together.  It is	    */
    /*	returned in the parse_tree_root field of the compilation descriptor */
    /*	when using the callable interface.				    */
#define sym_k_parent_list_entry		18
    /*	This is a list of parents of a widget.  It is used to check for	    */
    /*	constraints provided by the parent that may be used on this widget. */
#define sym_k_nested_list_entry		19
    /*  This entry occurs as a list entry for a nested list. It occupies    */
    /*  the correct position in the list for the reference to a list, and   */
    /*  points to the actual list entry.                                    */
#define sym_k_include_file_entry	20
    /*	An include file entry is used to describe the contents of an	    */
    /*	include file.  It is needed only maintain information about the	    */
    /*	source file from which this parse tree was generated.  It is not    */
    /*	used by UIL directly.						    */
#define sym_k_section_entry		21
    /*	A section entry is used to describe the contents of an source file. */
    /*	It is needed only maintain information about the structure of	    */
    /*	source file from which this parse tree was generated.  It is not    */
    /*	used by UIL directly.						    */
    /*									    */
#define sym_k_def_obj_entry		22
    /*	This entry corresponds to the default object clause on the module   */
    /*	declaration it is used to store source information about the file   */
    /*	from which this parse tree was generated.   It is not used by UIL   */
    /*	directly.							    */
#define sym_k_UNUSED23_entry		23
#define sym_k_val_forward_ref_entry	24
    /*	val forward reference entries are a linked listed of values	    */
    /*	that were not defined at the time of the			    */
    /*	reference.  After all values have been seen, then this list is	    */
    /*	traversed and all values in it should now be defined and the	    */
    /*	specified pointers can be filled-in.				    */
#define sym_k_max_entry			24
    /*	this is the largest possible value for an entry constant.	    */


/*
**    Common attribute masks -- These values are used in the b_flags field of
**    the object_header.
*/

#define		sym_m_private		(1 << 0)
    /*	This item is private to this source module and thus need not be	    */
    /*	output into the UID file.					    */
#define		sym_m_exported		(1 << 1)
    /*	This is an exported definition and must be put in the UID file.	    */
#define		sym_m_imported		(1 << 2)
    /*	This item is a reference external to this source module and thus    */
    /*	will be resolved at runtime by searching the resourec hierarchy.    */
#define		sym_m_reference		(1 << 3)
#define		sym_m_builtin		(1 << 4)
    /*	This item is builtin as oppose to a userdefined item.		    */
#define		sym_m_obj_is_gadget	(1 << 5)
    /*	This object is a gadget as oppose to a widget.			    */


/*
**	Output states - order is important
*/

#define		sym_k_not_processed	0
#define		sym_k_queued		1
#define		sym_k_emitted		2



/*
**	Constants to define compiler-recognized data types. It is
**	important that the names used in .wml language descriptions
**	match these names. These values were once automatically generated
**	by WML. They are now maintained by hand to reduce compiler
**	dependence on WML artifacts.
**
**      We have also separated the values loosely into two classes:
**      values which can be used to verify operator legality and values
**      which cannot (see UilSemVal.c -- the legal_operand_type table).
**      There is a comment below denoting where the separation is. Any
**      values above the comment may be used for validation of an operator
**      while any values below may not.
**
**      The order of the values below is unimportant except that the
**      entries in the uil_datatype_names table in UilData.c must be
**      ordered the same way.
*/
#define sym_k_any_value			1
#define sym_k_bool_value		2
#define sym_k_char_8_value		3
#define sym_k_compound_string_value	4 
#define sym_k_float_value		5
#define sym_k_integer_value		6 
#define sym_k_single_float_value	7
#define sym_k_localized_string_value	8
#define sym_k_wchar_string_value	9
#define sym_k_horizontal_integer_value  10
#define sym_k_vertical_integer_value    11
#define sym_k_horizontal_float_value    12
#define sym_k_vertical_float_value      13
/* Values after here may not be used for operator argument validation */
#define sym_k_argument_value		14
#define sym_k_asciz_table_value		15
#define sym_k_class_rec_name_value	16
#define sym_k_color_value		17
#define sym_k_color_table_value		18
#define sym_k_font_value		19
#define sym_k_font_table_value		20
#define sym_k_icon_value		21
#define sym_k_identifier_value		22
#define sym_k_integer_table_value	23
#define sym_k_keysym_value		24
#define sym_k_pixmap_value		25
#define sym_k_reason_value		26
#define sym_k_rgb_value			27
#define sym_k_string_table_value	28
#define sym_k_trans_table_value		29
#define sym_k_widget_ref_value		30
#define sym_k_xbitmapfile_value		31
#define sym_k_fontset_value		32
#define	sym_k_child_value		33
#define sym_k_max_value			33
#define sym_k_no_value			(sym_k_max_value+1)

/*
 * Error values for all kind of sym_k_... literal set
 */
#define sym_k_error_value		0
#define sym_k_error_object		0
#define sym_k_error_charset		0


/*
 * Literals associated with character sets
 *
 * Character set character sizes
 */
#define sym_k_onebyte_charsize	1
#define sym_k_twobyte_charsize	2
#define sym_k_mixed1_2byte_charsize	3

/*
 * User-defined character set
 */
#define sym_k_userdefined_charset	1

/*
 * XmFONTLIST_DEFAULT_TAG 
 */
#define sym_k_fontlist_default_tag 	0

/*
**	value sets defining expression operators
*/
#define sym_k_unspecified_op	0
#define sym_k_not_op		1 
#define sym_k_unary_plus_op	2
#define sym_k_unary_minus_op	3
#define sym_k_comp_str_op	4
#define sym_k_wchar_str_op	5
#define sym_k_last_unary_op	5

#define sym_k_multiply_op	6
#define sym_k_divide_op		7
#define sym_k_add_op		8
#define sym_k_subtract_op	9
#define sym_k_left_shift_op	10 
#define sym_k_right_shift_op	11
#define sym_k_and_op		12
#define sym_k_xor_op		13
#define sym_k_or_op		14
#define sym_k_cat_op		15
#define sym_k_last_binary_op	15
#define sym_k_valref_op		16	/* az_exp_op1 points to the value node
					   whose value is referenced by this
					   value node. */
#define sym_k_coerce_op		17	/* az_exp_op1 points to the value node
					   whose value is to be coerced to the
					   data type of this node. */
#define sym_k_last_special_op	17

/*
 * Structure of an enumeration set entry
 */
typedef struct
    {
    short int		values_cnt;
	/* number of values in the enuemration set descriptor		*/
    unsigned short int	*values;
	/* vector of values						*/
    } UilEnumSetDescDef, *UilEnumSetDescDefPtr;



/**********************************************************************
**************** From UilKeyDef.h ************************************/
/*
 *    Token class literals
 */
#define tkn_k_class_argument    1
#define tkn_k_class_charset     2
#define tkn_k_class_color       3
#define tkn_k_class_enumval     4
#define tkn_k_class_font        5
#define tkn_k_class_identifier  6
#define tkn_k_class_keyword     7
#define tkn_k_class_literal     8
#define tkn_k_class_reason      9
#define tkn_k_class_reserved    10
#define tkn_k_class_special     11
#define tkn_k_class_unused      12
#define tkn_k_class_class       13
#define tkn_k_class_child	14

/*
 * Keyword table entry structure
 */
typedef struct 
    {
    unsigned char         b_class;
    unsigned short int    b_subclass;
    unsigned char         b_length;
    unsigned char         b_token;
    char                  *at_name;
    }  key_keytable_entry_type;



/*************************************************************************
************************ New Stuff **************************************/

/* For COMPOUND_STRING_COMPONENT */
#define XmStringComponent "XmStringComponent"

/*
 * Names of the tables put in the binary database
*/

#define Constraint_Tab 1
#define Key_Table 2
#define Key_Table_Case_Ins 3
#define Allowed_Argument_Table 4
#define Argument_Type_Table_Value 5
#define Charset_Xmstring_Names_Table 6
#define Charset_Wrdirection_Table 7
#define Charset_Parsdirection_Table 8
#define Charset_Charsize_Table 9
#define Charset_Lang_Names_Table 10
#define Charset_Lang_Codes_Table 11
#define Allowed_Control_Table 12
#define Enum_Set_Table 13
#define Argument_Enum_Set_Table 14
#define Enumval_Values_Table 15
#define Uil_Widget_Names 16
#define Uil_Argument_Names 17
#define Uil_Reason_Names 18
#define Uil_Enumval_names 19
#define Uil_Charset_Names 20
#define Related_Argument_Table 21
#define Allowed_Reason_Table 22
#define Uil_Widget_Funcs 23
#define Uil_Gadget_Funcs 24
#define Uil_Urm_Nondialog_Class 25
#define Uil_Urm_Subtree_Resource 26
#define Uil_Argument_Toolkit_Names 27
#define Uil_Reason_Toolkit_Names 28
#define Child_Class_Table	29
#define Allowed_Child_Table	30
#define Uil_Children_Names	31

/*
 * Binary Data Base Work
 */
#define DB_Compiled_Version 2

typedef struct _db_globals_struct
{
    int	    version;
    int	    uil_max_arg;
    int	    uil_max_charset;
    int	    charset_lang_table_max;
    int	    uil_max_object;
    int	    uil_max_reason;
    int	    uil_max_enumval;
    int	    uil_max_enumset;
    int	    key_k_keyword_count;
    int	    key_k_keyword_max_length;
    int	    uil_max_child;
} _db_globals;
   
typedef struct _db_header_struct
{
    int	    table_id;
    int	    num_items;
    int	    table_size;
} _db_header, *_db_header_ptr;
   

#endif /* UilDBDef_h */
/* DON'T ADD STUFF AFTER THIS #endif */