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
/*
Copyright 1990-2008 Light Infocon Tecnologia S/A
Este arquivo é parte do programa LightBase - Banco de Dados Textual Documental
O LightBase é um software livre; você pode redistribui-lo e/ou modifica-lo dentro
dos termos da Licença Pública Geral GNU como publicada pela Fundação do Software
Livre (FSF); na versão 2 da Licença.
Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO
EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral GNU versao 2, sob o
título "LICENCA.txt", junto com este programa, se não, escreva para a Fundação do
Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
//
// void _ALAssertFailure( const char *condition,
// const char *filename,
// int line,
// const char *message,
// ... )
//
// ARGUMENTS:
//
// condition : A character string containing the condition that failed,
// leading to the assertion.
//
// filename : The name of the file where the assertion error took place.
//
// line : The line in the file where the assertion error took place.
//
// message : The error message associated with the assertion error.
// This message is a sprintf() style format string.
//
// ... : Any additional arguments.
//
// RETURNS
//
// Nothing.
//
// DESCRIPTION
//
// The C run time library features an assert() macro, that can be used to
// abort a program if a given condition isn't true. It aborts the program
// by calling a routine that looks something like this. The AL_ASSERT()
// macro that we use is even better, because it includes a comment
// that gets displayed when the abort takes place. This routine is
// responsible for displaying that comment, along with the file name and
// the line number, then aborting the program. It is called by the
// AL_ASSERT() macro when the conditional expression argument fails.
//
// This routine is full of #ifdefs, and looks like a real mess. This
// is too bad, because it is really quite simple. Basically it has to
// quit with an abort() under MS-DOS, and a FatalAppExit() under
// windows. The error message is displayed on the console under MS-DOS,
// (hope you're not in graphics mode!) and in a MessageBox under
// Windows. Man, it would be great to have just a little bit of control
// of the formatting in the message box!
//
// REVISION HISTORY
//
// May 22, 1994 1.0A : First release
//
void AL_CFUNCTION