| 58 #define FILE_CASEINSENSITIVE |
58 #define FILE_CASEINSENSITIVE |
| 59 #endif |
59 #endif |
| 60 |
60 |
| 61 #define elif else if |
61 #define elif else if |
| 62 |
62 |
| 63 #define CHECK_FILE(pointer,path,action) \ |
|
| 64 if (!pointer) { \ |
|
| 65 error ("couldn't open %s for %s!\n", path.chars(), action); \ |
|
| 66 exit (1); \ |
|
| 67 } |
|
| 68 |
|
| 69 #define types public |
63 #define types public |
| 70 #define countof(A) ((int) (sizeof A / sizeof *A)) |
64 #define countof(A) ((int) (sizeof A / sizeof *A)) |
| 71 #define autocast(A) (decltype(A)) |
|
| 72 #define assign_autocast(A,B) a = autocast(A) b |
|
| 73 |
65 |
| 74 // Shortcut for zeroing something |
66 // Shortcut for zeroing something |
| 75 #define ZERO(obj) memset (&obj, 0, sizeof (obj)); |
67 #define ZERO(obj) memset (&obj, 0, sizeof (obj)); |
| 76 |
68 |
| 77 enum form_length_e { e_long_form, e_short_form }; |
69 enum form_length_e { e_long_form, e_short_form }; |
| 78 |
70 |
| 79 string ObjectFileName (string s); |
71 string make_object_file_name (string s); |
| 80 bool fexists (string path); |
72 bool fexists (string path); |
| 81 type_e GetTypeByName (string token); |
73 type_e get_type_by_name (string token); |
| 82 string GetTypeName (type_e type); |
74 string get_type_name (type_e type); |
| 83 string get_version_string (form_length_e len); |
75 string get_version_string (form_length_e len); |
| 84 string make_version_string (int major, int minor, int patch); |
76 string make_version_string (int major, int minor, int patch); |
| 85 |
77 |
| 86 #ifndef __GNUC__ |
78 #ifndef __GNUC__ |
| 87 #define __attribute__(X) |
79 #define __attribute__(X) |