10 #include <sys/types.h>
11 #include <sys/timeb.h>
21 #define STDIN_FILENO 0
25 #define STDOUT_FILENO 1
42 #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
43 # define S64_FORMAT "%I64d"
44 # define U64_FORMAT "%016I64X"
46 # define S64_FORMAT "%lld"
47 # define U64_FORMAT "%016llX"
53 # define S64(u) (u##i64)
54 # define U64(u) (u##ui64)
56 # define S64(u) (u##LL)
57 # define U64(u) (u##ULL)
62 # define ASSERT(a) { if (!(a)) my_fatal("file \"%s\", line %d, assertion \"" #a "\" failed\n",__FILE__,__LINE__); }
68 #define snprintf _snprintf
71 #define FormatBufferSize 4096
72 #define StringSize 4096
75 #define vsnprintf _vsnprintf
78 #define CONSTRUCT_ARG_STRING(format,buf) \
82 va_start(arg_list,format); \
83 written=vsnprintf(buf, \
88 buf[sizeof(buf)-1]='\0'; \
89 if(written>=sizeof(buf) || written<0){ \
90 my_fatal("write_buffer overflow: file \"%s\", line %d\n", \
95 #define TO_BOOL(string) ((my_string_case_equal(string,"false") || \
96 my_string_equal(string,"0"))?FALSE:TRUE)
98 #define IS_BOOL(string) (my_string_case_equal(string,"false")|| \
99 my_string_case_equal(string,"true") || \
100 my_string_case_equal(string,"1") || \
101 my_string_case_equal(string,"0"))
104 typedef signed char sint8;
105 typedef unsigned char uint8;
107 typedef signed short sint16;
108 typedef unsigned short uint16;
110 typedef signed int sint32;
111 typedef unsigned int uint32;
116 typedef signed __int64 sint64;
117 typedef unsigned __int64 uint64;
119 typedef signed long long int sint64;
120 typedef unsigned long long int uint64;
132 extern void util_init ();
134 extern void my_random_init ();
135 extern int my_random_int (int n);
136 extern double my_random_double ();
138 extern sint64 my_atoll (const char string[]);
140 extern int my_round (double x);
142 extern void * my_malloc (size_t size);
143 extern void * my_realloc (void * address, size_t size);
144 extern void my_free (void * address);
146 extern void my_log_open (const char file_name[]);
147 extern void my_log_close ();
149 extern void my_log (const char format[], ...);
150 extern void my_fatal (const char format[], ...);
152 extern bool my_file_read_line (FILE * file, char string[], int size);
153 extern void my_path_join (char *join_path, const char *path, const char *file);
155 extern int my_mkdir (const char *path);
157 extern bool my_string_empty (const char string[]);
158 extern bool my_string_whitespace (const char string[]);
159 extern bool my_string_equal (const char string_1[], const char string_2[]);
160 extern bool my_string_case_equal (const char string_1[], const char string_2[]);
161 extern const char* my_string_case_contains(const char haystack[],
162 const char needle[]);
165 extern bool my_string_to_lower (char dst[], const char src[]);
167 extern char * my_strdup (const char string[]);
169 extern void my_string_clear (const char * * variable);
170 extern void my_string_set (const char * * variable, const char string[]);
172 extern double now_real ();
174 extern void my_timer_reset (my_timer_t * timer);
175 extern void my_timer_start (my_timer_t * timer);
176 extern void my_timer_stop (my_timer_t * timer);
178 extern double my_timer_elapsed_real (const my_timer_t * timer);
180 extern char * my_error();
182 extern void my_dequote (char *out,
184 const char *special);
185 extern void my_quote (char *out,
187 const char *special);
189 extern void my_sleep (int msec);
191 #endif // !defined UTIL_H