backendsupport.c 1.2 KB
Newer Older
1
2
3

# include "compiledefines.h"
# include "types.t"
clean's avatar
clean committed
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# include "system.h"
# include "comsupport.h"
# include "backendsupport.h"


/*
	Utilities
	=========
*/
# ifdef _WINDOWS_
# undef _WINDOWS_
# include <windows.h>
# define	Debugger()	DebugBreak();
# else
# define	Debugger()	{ * (int *) NULL = 0; }
# endif

void
AssertionFailed (char *conditionString, char *file, int line)
23
{	
clean's avatar
clean committed
24
25
	FPrintF (StdError, "Error in backend: File %s, Line %d (%s)\n", file, line, conditionString);

26
27
28
29
30
31
32
33
34
35
# ifdef _WINDOWS_
	{
		static char error[200];

		sprintf (error, "Error in backend: File %s, Line %d (%s)\nDebug ?", file, line, conditionString);
	
		if (MessageBox (NULL,error,"AssertionFailed",MB_YESNO)==IDYES)
			Debugger ();
	}
#else
36
37
38
39
40
41
42
43
44
45
46
# ifdef _MAC_
	{
		FILE *f;
	
		f=fopen ("AssertionFailedError","w");
		if (f!=NULL){
			FPrintF (f, "Error in backend: File %s, Line %d (%s)\n", file, line, conditionString);
			fclose (f);
		}
	}
# endif
clean's avatar
clean committed
47
	Debugger ();
48
#endif
clean's avatar
clean committed
49
} /* AssertionFailed */
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

void
fatal_backend_error (char *s)
{
	FPrintF (StdError, "Error in backend: %s\n", s);

#ifdef _MAC_
	{
		FILE *f;
	
		f=fopen ("AssertionFailedError","w");
		if (f!=NULL){
			FPrintF (f, "Error in backend: %s\n", s);
			fclose (f);
		}
	}
#endif	
	Debugger ();
}