Subversion Repositories tendra.SVN

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 7
Line -... Line 1...
-
 
1
/*
-
 
2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
-
 
3
 * All rights reserved.
-
 
4
 *
-
 
5
 * Redistribution and use in source and binary forms, with or without
-
 
6
 * modification, are permitted provided that the following conditions are met:
-
 
7
 *
-
 
8
 * 1. Redistributions of source code must retain the above copyright notice,
-
 
9
 *    this list of conditions and the following disclaimer.
-
 
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
-
 
11
 *    this list of conditions and the following disclaimer in the documentation
-
 
12
 *    and/or other materials provided with the distribution.
-
 
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
-
 
14
 *    may be used to endorse or promote products derived from this software
-
 
15
 *    without specific, prior written permission.
-
 
16
 *
-
 
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
-
 
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-
 
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-
 
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
-
 
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-
 
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-
 
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-
 
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-
 
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-
 
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-
 
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 
28
 *
-
 
29
 * $Id$
-
 
30
 */
1
/*
31
/*
2
    		 Crown Copyright (c) 1997
32
    		 Crown Copyright (c) 1997
3
    
33
 
4
    This TenDRA(r) Computer Program is subject to Copyright
34
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
35
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
36
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
37
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
38
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
39
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
40
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
41
    shall be deemed to be acceptance of the following conditions:-
12
    
42
 
13
        (1) Its Recipients shall ensure that this Notice is
43
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
44
        reproduced upon any copies or amended versions of it;
15
    
45
 
16
        (2) Any amended version of it shall be clearly marked to
46
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
47
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
48
        for the relevant amendment or amendments;
19
    
49
 
20
        (3) Its onward transfer from a recipient to another
50
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
51
        party shall be deemed to be that party's acceptance of
22
        these conditions;
52
        these conditions;
23
    
53
 
24
        (4) DERA gives no warranty or assurance as to its
54
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
55
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
56
        no liability whatsoever in relation to any use to which
27
        it may be put.
57
        it may be put.
28
*/
58
*/
Line 85... Line 115...
85
 ** Repr:	<private>
115
 ** Repr:	<private>
86
 *
116
 *
87
 * This is the named string type.
117
 * This is the named string type.
88
 *
118
 *
89
 ** Type:	ErrorProcP
119
 ** Type:	ErrorProcP
90
 ** Repr:	void (*) PROTO_S ((OStreamP, ETagP, GenericP))
120
 ** Repr:	void (*) (OStreamP, ETagP, GenericP)
91
 *
121
 *
92
 * This is the type of a procedure that is used to display the contents of a
122
 * This is the type of a procedure that is used to display the contents of a
93
 * tag when reporting an error.
123
 * tag when reporting an error.
94
 *
124
 *
95
 ** Type:	ErrorInitProcP
125
 ** Type:	ErrorInitProcP
96
 ** Repr:	void (*) PROTO_S ((void))
126
 ** Repr:	void (*) (void)
97
 *
127
 *
98
 * This is the type of the procedure that will be called to define all of the
128
 * This is the type of the procedure that will be called to define all of the
99
 * error messages for the current program.
129
 * error messages for the current program.
100
 *
130
 *
101
 ** Type:	ETagDataT
131
 ** Type:	ETagDataT
Line 167... Line 197...
167
 * This is the return type of the ``error_redefine_error'' function.
197
 * This is the return type of the ``error_redefine_error'' function.
168
 *
198
 *
169
 ***=== FUNCTIONS ============================================================
199
 ***=== FUNCTIONS ============================================================
170
 *
200
 *
171
 ** Function:	void			error_init
201
 ** Function:	void			error_init
172
 *			PROTO_S ((CStringP program, ErrorInitProcP proc))
202
 *			(CStringP program, ErrorInitProcP proc)
173
 ** Exceptions:	XX_dalloc_no_memory
203
 ** Exceptions:	XX_dalloc_no_memory
174
 *
204
 *
175
 * This function initialises the error reporting mechanism.  It should only be
205
 * This function initialises the error reporting mechanism.  It should only be
176
 * called once, at the start of the program.  The basename of the program
206
 * called once, at the start of the program.  The basename of the program
177
 * string is used as the program name, for the "${program name}" tag. The
207
 * string is used as the program name, for the "${program name}" tag. The
Line 182... Line 212...
182
 * function once.  Note that the error initialisation procedure is not
212
 * function once.  Note that the error initialisation procedure is not
183
 * expected to be used to initialise named strings: these should be explicitly
213
 * expected to be used to initialise named strings: these should be explicitly
184
 * initialised before they are used.
214
 * initialised before they are used.
185
 *
215
 *
186
 ** Function:	void			error_call_init_proc
216
 ** Function:	void			error_call_init_proc
187
 *			PROTO_S ((void))
217
 *			(void)
188
 ** Exceptions:
218
 ** Exceptions:
189
 *
219
 *
190
 * This calls the error initialisation procedure if it has not already been
220
 * This calls the error initialisation procedure if it has not already been
191
 * called.  This function should be called before ``error_report'' (actually,
221
 * called.  This function should be called before ``error_report'' (actually,
192
 * it should be called before the error value that will be passed to that
222
 * it should be called before the error value that will be passed to that
193
 * function is accessed).
223
 * function is accessed).
194
 *
224
 *
195
 ** Function:	ETagP			error_define_tag
225
 ** Function:	ETagP			error_define_tag
196
 *			PROTO_S ((CStringP name))
226
 *			(CStringP name)
197
 ** Exceptions:	XX_dalloc_no_memory
227
 ** Exceptions:	XX_dalloc_no_memory
198
 *
228
 *
199
 * This function defines a tag with the specified name, and returns it.  The
229
 * This function defines a tag with the specified name, and returns it.  The
200
 * name should not be modified or deallocated.  It is possible to define the
230
 * name should not be modified or deallocated.  It is possible to define the
201
 * same tag more than once (but the same value will be returned each time).
231
 * same tag more than once (but the same value will be returned each time).
202
 *
232
 *
203
 ** Function:	ErrorP			error_define_error
233
 ** Function:	ErrorP			error_define_error
204
 *			PROTO_S ((CStringP name, ESeverityT severity,
234
 *			(CStringP name, ESeverityT severity,
205
 *				  CStringP message, GenericP data))
235
 *				  CStringP message, GenericP data)
206
 ** Exceptions:	XX_dalloc_no_memory
236
 ** Exceptions:	XX_dalloc_no_memory
207
 *
237
 *
208
 * This function defines an error with the specified name, and returns it.
238
 * This function defines an error with the specified name, and returns it.
209
 * The name should not be modified or deallocated.  The severity level is used
239
 * The name should not be modified or deallocated.  The severity level is used
210
 * to decide whether or not an error should be shown and whether or not the
240
 * to decide whether or not an error should be shown and whether or not the
Line 213... Line 243...
213
 * when the error is reported (the sequence "${tag name}" will be replaced by
243
 * when the error is reported (the sequence "${tag name}" will be replaced by
214
 * the value of the tag when the error is reported).  The data is for use by
244
 * the value of the tag when the error is reported).  The data is for use by
215
 * the program.
245
 * the program.
216
 *
246
 *
217
 ** Function:	void			error_intern_tags
247
 ** Function:	void			error_intern_tags
218
 *			PROTO_S ((ETagDataP vector))
248
 *			(ETagDataP vector)
219
 ** Exceptions:	XX_dalloc_no_memory
249
 ** Exceptions:	XX_dalloc_no_memory
220
 *
250
 *
221
 * This function changes the name entries in the specified vector into error
251
 * This function changes the name entries in the specified vector into error
222
 * tags.  The vector should be terminated by the macro ``ERROR_END_TAG_LIST''.
252
 * tags.  The vector should be terminated by the macro ``ERROR_END_TAG_LIST''.
223
 * This function should only be called once on any vector.
253
 * This function should only be called once on any vector.
224
 *
254
 *
225
 ** Function:	void			error_intern_errors
255
 ** Function:	void			error_intern_errors
226
 *			PROTO_S ((ErrorDataP vector))
256
 *			(ErrorDataP vector)
227
 ** Exceptions:	XX_dalloc_no_memory
257
 ** Exceptions:	XX_dalloc_no_memory
228
 *
258
 *
229
 * This function changes the name entries in the specified vector into errors.
259
 * This function changes the name entries in the specified vector into errors.
230
 * The vector should be terminated by the macro ``ERROR_END_ERROR_LIST''.
260
 * The vector should be terminated by the macro ``ERROR_END_ERROR_LIST''.
231
 * This function should only be called once on any vector.
261
 * This function should only be called once on any vector.
232
 *
262
 *
233
 ** Function:	ErrorStatusT		error_redefine_error
263
 ** Function:	ErrorStatusT		error_redefine_error
234
 *			PROTO_S ((CStringP name, CStringP message))
264
 *			(CStringP name, CStringP message)
235
 ** Exceptions:	XX_dalloc_no_memory
265
 ** Exceptions:	XX_dalloc_no_memory
236
 *
266
 *
237
 * This function changes the error message for the error with the specified
267
 * This function changes the error message for the error with the specified
238
 * name.  If necessary, the error initialisation procedure will be called to
268
 * name.  If necessary, the error initialisation procedure will be called to
239
 * initialise the errors before they are redefined.  If the error does not
269
 * initialise the errors before they are redefined.  If the error does not
Line 241... Line 271...
241
 * message contains an unterminated tag, the function will return
271
 * message contains an unterminated tag, the function will return
242
 * ``ERROR_STATUS_BAD_MESSAGE''.  If the function succeeds, it will return
272
 * ``ERROR_STATUS_BAD_MESSAGE''.  If the function succeeds, it will return
243
 * ``ERROR_STATUS_SUCCESS''.
273
 * ``ERROR_STATUS_SUCCESS''.
244
 *
274
 *
245
 ** Function:	ErrorP			error_lookup_error
275
 ** Function:	ErrorP			error_lookup_error
246
 *			PROTO_S ((CStringP name))
276
 *			(CStringP name)
247
 ** Exceptions:
277
 ** Exceptions:
248
 *
278
 *
249
 * This function returns the error with the specified name.  If the error does
279
 * This function returns the error with the specified name.  If the error does
250
 * not exist, it returns the null pointer.  If necessary, the error
280
 * not exist, it returns the null pointer.  If necessary, the error
251
 * initialisation procedure will be called to initialise the error messages
281
 * initialisation procedure will be called to initialise the error messages
252
 * before they are looked up.
282
 * before they are looked up.
253
 *
283
 *
254
 ** Function:	GenericP		error_data
284
 ** Function:	GenericP		error_data
255
 *			PROTO_S ((ErrorP error))
285
 *			(ErrorP error)
256
 ** Exceptions:
286
 ** Exceptions:
257
 *
287
 *
258
 * This function returns the data associated with the specified error.
288
 * This function returns the data associated with the specified error.
259
 *
289
 *
260
 ** Function:	void			error_report
290
 ** Function:	void			error_report
261
 *			PROTO_S ((ErrorP error, ErrorProcP proc,
291
 *			(ErrorP error, ErrorProcP proc,
262
 *				  GenericP closure))
292
 *				  GenericP closure)
263
 ** Exceptions:	XX_dalloc_no_memory, XX_ostream_write_error
293
 ** Exceptions:	XX_dalloc_no_memory, XX_ostream_write_error
264
 *
294
 *
265
 * This function reports the specified error.  The procedure is used to print
295
 * This function reports the specified error.  The procedure is used to print
266
 * out information for tags.  It is called with the output stream, the tag and
296
 * out information for tags.  It is called with the output stream, the tag and
267
 * the specified closure.  If the procedure doesn't know about the tag, it
297
 * the specified closure.  If the procedure doesn't know about the tag, it
Line 270... Line 300...
270
 * the ``error_set_min_severity'' function.  The function will cause the
300
 * the ``error_set_min_severity'' function.  The function will cause the
271
 * program to exit if the error's severity level is ``ERROR_SEVERITY_FATAL''
301
 * program to exit if the error's severity level is ``ERROR_SEVERITY_FATAL''
272
 * or higher.
302
 * or higher.
273
 *
303
 *
274
 ** Function:	void			error_set_min_report_severity
304
 ** Function:	void			error_set_min_report_severity
275
 *			PROTO_S ((ESeverityT severity))
305
 *			(ESeverityT severity)
276
 ** Exceptions:
306
 ** Exceptions:
277
 *
307
 *
278
 * This function sets the minimum severity of error that should be reported.
308
 * This function sets the minimum severity of error that should be reported.
279
 *
309
 *
280
 ** Function:	ESeverityT		error_get_min_report_severity
310
 ** Function:	ESeverityT		error_get_min_report_severity
281
 *			PROTO_S ((void))
311
 *			(void)
282
 ** Exceptions:
312
 ** Exceptions:
283
 *
313
 *
284
 * This function returns the minimum severity of error that will be reported.
314
 * This function returns the minimum severity of error that will be reported.
285
 *
315
 *
286
 ** Function:	ESeverityT		error_max_reported_severity
316
 ** Function:	ESeverityT		error_max_reported_severity
287
 *			PROTO_S ((void))
317
 *			(void)
288
 ** Exceptions:
318
 ** Exceptions:
289
 *
319
 *
290
 * This function returns the severity of the error with the highest severity
320
 * This function returns the severity of the error with the highest severity
291
 * that has been passed to ``error_report''.
321
 * that has been passed to ``error_report''.
292
 *
322
 *
293
 ** Function:	void			error_set_severity_message
323
 ** Function:	void			error_set_severity_message
294
 *			PROTO_S ((ESeverityT severity, CStringP message))
324
 *			(ESeverityT severity, CStringP message)
295
 ** Exceptions:
325
 ** Exceptions:
296
 *
326
 *
297
 * This function sets the message to be displayed when the "${severity}" tag
327
 * This function sets the message to be displayed when the "${severity}" tag
298
 * is encountered for the specified severity.  Tags are not expanded in the
328
 * is encountered for the specified severity.  Tags are not expanded in the
299
 * message. The message should not be modified or deallocated.
329
 * message. The message should not be modified or deallocated.
300
 *
330
 *
301
 ** Function:	BoolT			error_set_prefix_message
331
 ** Function:	BoolT			error_set_prefix_message
302
 *			PROTO_S ((CStringP message))
332
 *			(CStringP message)
303
 ** Exceptions:	XX_dalloc_no_memory
333
 ** Exceptions:	XX_dalloc_no_memory
304
 *
334
 *
305
 * This function sets the error message prefix string.  This string is output
335
 * This function sets the error message prefix string.  This string is output
306
 * by ``error_display'' before outputting any actual error message.  Tags are
336
 * by ``error_display'' before outputting any actual error message.  Tags are
307
 * expanded, but only for the standard tags: "${program name}", "${severity}",
337
 * expanded, but only for the standard tags: "${program name}", "${severity}",
308
 * "${dollar}", "${this error name}", "${open brace}", and "${close brace}".
338
 * "${dollar}", "${this error name}", "${open brace}", and "${close brace}".
309
 * All other tags will be ignored.  The function returns true if the message
339
 * All other tags will be ignored.  The function returns true if the message
310
 * was valid, and false if there was an unterminated tag in the message.
340
 * was valid, and false if there was an unterminated tag in the message.
311
 *
341
 *
312
 ** Function:	EStringP		error_define_string
342
 ** Function:	EStringP		error_define_string
313
 *			PROTO_S ((CStringP name, CStringP contents))
343
 *			(CStringP name, CStringP contents)
314
 ** Exceptions:	XX_dalloc_no_memory
344
 ** Exceptions:	XX_dalloc_no_memory
315
 *
345
 *
316
 * This function defines a named string with the specified name, and assigns
346
 * This function defines a named string with the specified name, and assigns
317
 * it the specified contents.  Neither the name nor the contents should be
347
 * it the specified contents.  Neither the name nor the contents should be
318
 * modified or deallocated.  No tag splitting is performed on the contents.
348
 * modified or deallocated.  No tag splitting is performed on the contents.
319
 *
349
 *
320
 ** Function:	void			error_intern_strings
350
 ** Function:	void			error_intern_strings
321
 *			PROTO_S ((EStringDataP vector))
351
 *			(EStringDataP vector)
322
 ** Exceptions:	XX_dalloc_no_memory
352
 ** Exceptions:	XX_dalloc_no_memory
323
 *
353
 *
324
 * This function changes the name and contents entries in the specified vector
354
 * This function changes the name and contents entries in the specified vector
325
 * into named strings.  The vector should be terminated by the macro
355
 * into named strings.  The vector should be terminated by the macro
326
 * ``ERROR_END_STRING_LIST''.  This function should only be called once on any
356
 * ``ERROR_END_STRING_LIST''.  This function should only be called once on any
327
 * vector.
357
 * vector.
328
 *
358
 *
329
 ** Function:	BoolT			error_redefine_string
359
 ** Function:	BoolT			error_redefine_string
330
 *			PROTO_S ((CStringP name, CStringP contents))
360
 *			(CStringP name, CStringP contents)
331
 ** Exceptions:	XX_dalloc_no_memory
361
 ** Exceptions:	XX_dalloc_no_memory
332
 *
362
 *
333
 * This function changes the contents of the named string with the specified
363
 * This function changes the contents of the named string with the specified
334
 * name.  If the name does not exist, the function returns false, otherwise it
364
 * name.  If the name does not exist, the function returns false, otherwise it
335
 * returns true.
365
 * returns true.
336
 *
366
 *
337
 ** Function:	EStringP		error_lookup_string
367
 ** Function:	EStringP		error_lookup_string
338
 *			PROTO_S ((CStringP name))
368
 *			(CStringP name)
339
 ** Exceptions:
369
 ** Exceptions:
340
 *
370
 *
341
 * This function returns the named string with the specified name.  If the
371
 * This function returns the named string with the specified name.  If the
342
 * named string does not exist, the function returns the null pointer.
372
 * named string does not exist, the function returns the null pointer.
343
 *
373
 *
344
 ** Function:	CStringP		error_string_contents
374
 ** Function:	CStringP		error_string_contents
345
 *			PROTO_S ((EStringP estring))
375
 *			(EStringP estring)
346
 ** Exceptions:
376
 ** Exceptions:
347
 *
377
 *
348
 * This function returns the contents of the specified named string.  The
378
 * This function returns the contents of the specified named string.  The
349
 * returned string should not be modified or deallocated.
379
 * returned string should not be modified or deallocated.
350
 *
380
 *
351
 ** Function:	void			write_error_file
381
 ** Function:	void			write_error_file
352
 *			PROTO_S ((OStreamP ostream))
382
 *			(OStreamP ostream)
353
 ** Exceptions:	XX_dalloc_no_memory, XX_ostream_write_error
383
 ** Exceptions:	XX_dalloc_no_memory, XX_ostream_write_error
354
 *
384
 *
355
 * This function writes out an error file (in the same format as parsed by the
385
 * This function writes out an error file (in the same format as parsed by the
356
 * functions in "error-file.[ch]") to the specified ostream.
386
 * functions in "error-file.[ch]") to the specified ostream.
357
 *
387
 *
Line 412... Line 442...
412
    ERROR_SEVERITY_INFORMATION,
442
    ERROR_SEVERITY_INFORMATION,
413
    ERROR_SEVERITY_WARNING,
443
    ERROR_SEVERITY_WARNING,
414
    ERROR_SEVERITY_ERROR,
444
    ERROR_SEVERITY_ERROR,
415
    ERROR_SEVERITY_FATAL,
445
    ERROR_SEVERITY_FATAL,
416
    ERROR_SEVERITY_INTERNAL
446
    ERROR_SEVERITY_INTERNAL
417
} ESeverityT, *ESeverityP;    
447
} ESeverityT, *ESeverityP;
418
#endif /* defined (FS_NO_ENUM) */
448
#endif /* defined (FS_NO_ENUM) */
419
 
449
 
420
typedef struct ETagT {
450
typedef struct ETagT {
421
    struct ETagT	       *next;
451
    struct ETagT	       *next;
422
    CStringP			name;
452
    CStringP			name;
Line 452... Line 482...
452
    struct EStringT	       *next;
482
    struct EStringT	       *next;
453
    CStringP			name;
483
    CStringP			name;
454
    CStringP			contents;
484
    CStringP			contents;
455
} EStringT, *EStringP;
485
} EStringT, *EStringP;
456
 
486
 
457
typedef void (*ErrorProcP) PROTO_S ((OStreamP, ETagP, GenericP));
487
typedef void(*ErrorProcP)(OStreamP, ETagP, GenericP);
458
typedef void (*ErrorInitProcP) PROTO_S ((void));
488
typedef void(*ErrorInitProcP)(void);
459
typedef UNION ETagDataT {
489
typedef UNION ETagDataT {
460
    CStringP			name;
490
    CStringP			name;
461
    ETagP			tag;
491
    ETagP			tag;
462
} ETagDataT, *ETagDataP;
492
} ETagDataT, *ETagDataP;
463
typedef UNION ErrorDataT {
493
typedef UNION ErrorDataT {
Line 490... Line 520...
490
} ErrorStatusT, *ErrorStatusP;
520
} ErrorStatusT, *ErrorStatusP;
491
#endif /* defined (FS_NO_ENUM) */
521
#endif /* defined (FS_NO_ENUM) */
492
 
522
 
493
/*--------------------------------------------------------------------------*/
523
/*--------------------------------------------------------------------------*/
494
 
524
 
495
extern void			error_init
-
 
496
	PROTO_S ((CStringP, ErrorInitProcP));
525
extern void		error_init(CStringP, ErrorInitProcP);
497
extern void			error_call_init_proc
526
extern void		error_call_init_proc(void);
498
	PROTO_S ((void));
-
 
499
extern ETagP			error_define_tag
527
extern ETagP		error_define_tag(CStringP);
500
	PROTO_S ((CStringP));
-
 
501
extern ErrorP			error_define_error
528
extern ErrorP		error_define_error(CStringP, ESeverityT, CStringP,
502
	PROTO_S ((CStringP, ESeverityT, CStringP, GenericP));
529
					   GenericP);
503
extern void			error_intern_tags
530
extern void		error_intern_tags(ETagDataP);
504
	PROTO_S ((ETagDataP));
-
 
505
extern void			error_intern_errors
531
extern void		error_intern_errors(ErrorDataP);
506
	PROTO_S ((ErrorDataP));
-
 
507
extern ErrorStatusT		error_redefine_error
532
extern ErrorStatusT	error_redefine_error(CStringP, CStringP);
508
	PROTO_S ((CStringP, CStringP));
-
 
509
extern ErrorP			error_lookup_error
533
extern ErrorP		error_lookup_error(CStringP);
510
	PROTO_S ((CStringP));
-
 
511
extern GenericP			error_data
534
extern GenericP		error_data(ErrorP);
512
	PROTO_S ((ErrorP));
-
 
513
extern void			error_report
-
 
514
	PROTO_S ((ErrorP, ErrorProcP, GenericP));
535
extern void		error_report(ErrorP, ErrorProcP, GenericP);
515
extern void			error_set_min_report_severity
536
extern void		error_set_min_report_severity(ESeverityT);
516
	PROTO_S ((ESeverityT));
-
 
517
extern ESeverityT		error_get_min_report_severity
537
extern ESeverityT	error_get_min_report_severity(void);
518
	PROTO_S ((void));
-
 
519
extern ESeverityT		error_max_reported_severity
538
extern ESeverityT	error_max_reported_severity(void);
520
	PROTO_S ((void));
-
 
521
extern void			error_set_severity_message
539
extern void		error_set_severity_message(ESeverityT, CStringP);
522
	PROTO_S ((ESeverityT, CStringP));
-
 
523
extern BoolT			error_set_prefix_message
540
extern BoolT		error_set_prefix_message(CStringP);
524
	PROTO_S ((CStringP));
-
 
525
extern EStringP			error_define_string
541
extern EStringP		error_define_string(CStringP, CStringP);
526
	PROTO_S ((CStringP, CStringP));
-
 
527
extern void			error_intern_strings
542
extern void		error_intern_strings(EStringDataP);
528
	PROTO_S ((EStringDataP));
-
 
529
extern BoolT			error_redefine_string
543
extern BoolT		error_redefine_string(CStringP, CStringP);
530
	PROTO_S ((CStringP, CStringP));
-
 
531
extern EStringP			error_lookup_string
544
extern EStringP		error_lookup_string(CStringP);
532
	PROTO_S ((CStringP));
-
 
533
extern CStringP			error_string_contents
545
extern CStringP		error_string_contents(EStringP);
534
	PROTO_S ((EStringP));
-
 
535
 
546
 
536
extern void			write_error_file
547
extern void		write_error_file(OStreamP);
537
	PROTO_S ((OStreamP));
-
 
538
 
548
 
539
/*--------------------------------------------------------------------------*/
549
/*--------------------------------------------------------------------------*/
540
 
550
 
541
#define ERROR_END_TAG_LIST UB NIL (CStringP) UE
551
#define ERROR_END_TAG_LIST UB NIL(CStringP)UE
542
#define ERROR_END_ERROR_LIST \
552
#define ERROR_END_ERROR_LIST \
543
UB {NIL (CStringP), (ESeverityT) 0, NIL (CStringP), NIL (GenericP)} UE
553
UB {NIL(CStringP), (ESeverityT)0, NIL(CStringP), NIL(GenericP)} UE
544
#define ERROR_END_STRING_LIST UB {NIL (CStringP), NIL (CStringP)} UE
554
#define ERROR_END_STRING_LIST UB {NIL(CStringP), NIL(CStringP)} UE
545
 
555
 
546
#endif /* !defined (H_ERROR) */
556
#endif /* !defined (H_ERROR) */
547

557

548
/*
558
/*
549
 * Local variables(smf):
559
 * Local variables(smf):