-\r
-// util.h\r
-\r
-#ifndef UTIL_H\r
-#define UTIL_H\r
-\r
-// includes\r
-\r
-#include <stdio.h>\r
-#include <sys/types.h>\r
-#include <sys/timeb.h>\r
-#include <sys/stat.h>\r
-\r
-// defines\r
-\r
-#ifndef EXIT_SUCCES\r
-#define EXIT_SUCCES 0\r
-#endif\r
-\r
-#ifndef STDIN_FILENO\r
-#define STDIN_FILENO 0\r
-#endif\r
-\r
-#ifndef STDOUT_FILENO\r
-#define STDOUT_FILENO 1\r
-#endif\r
-\r
-\r
-#undef FALSE\r
-#define FALSE 0\r
-\r
-#undef TRUE\r
-#define TRUE 1\r
-\r
-#ifdef DEBUG\r
-# undef DEBUG\r
-# define DEBUG TRUE\r
-#else\r
-# define DEBUG FALSE\r
-#endif\r
-\r
-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)\r
-# define S64_FORMAT "%I64d"\r
-# define U64_FORMAT "%016I64X"\r
-#else\r
-# define S64_FORMAT "%lld"\r
-# define U64_FORMAT "%016llX"\r
-#endif\r
-\r
-// macros\r
-\r
-#ifdef _MSC_VER\r
-# define S64(u) (u##i64)\r
-# define U64(u) (u##ui64)\r
-#else\r
-# define S64(u) (u##LL)\r
-# define U64(u) (u##ULL)\r
-#endif\r
-\r
-#undef ASSERT\r
-#if DEBUG\r
-# define ASSERT(a) { if (!(a)) my_fatal("file \"%s\", line %d, assertion \"" #a "\" failed\n",__FILE__,__LINE__); }\r
-#else\r
-# define ASSERT(a)\r
-#endif\r
-\r
-#ifdef _WIN32\r
-#define snprintf _snprintf\r
-#endif\r
-\r
-#define FormatBufferSize 4096\r
-\r
-#ifdef _MSC_VER\r
-#define vsnprintf _vsnprintf\r
-#endif\r
-\r
-#define CONSTRUCT_ARG_STRING(format,buf) \\r
- { \\r
- va_list arg_list; \\r
- int written; \\r
- va_start(arg_list,format); \\r
- written=vsnprintf(buf, \\r
- sizeof(buf), \\r
- format, \\r
- arg_list); \\r
- va_end(arg_list); \\r
- buf[sizeof(buf)-1]='\0'; \\r
- if(written>=sizeof(buf) || written<0){ \\r
- my_fatal("write_buffer overflow: file \"%s\", line %d\n", \\r
- __FILE__,__LINE__); \\r
- } \\r
- } \\r
-\r
-#define TO_BOOL(string) ((my_string_case_equal(string,"false") || \\r
- my_string_equal(string,"0"))?FALSE:TRUE)\r
-\r
-#define IS_BOOL(string) (my_string_case_equal(string,"false")|| \\r
- my_string_case_equal(string,"true") || \\r
- my_string_case_equal(string,"1") || \\r
- my_string_case_equal(string,"0"))\r
-// types\r
-\r
-typedef signed char sint8;\r
-typedef unsigned char uint8;\r
-\r
-typedef signed short sint16;\r
-typedef unsigned short uint16;\r
-\r
-typedef signed int sint32;\r
-typedef unsigned int uint32;\r
-\r
-typedef int bool;\r
-\r
-#ifdef _MSC_VER\r
- typedef signed __int64 sint64;\r
- typedef unsigned __int64 uint64;\r
-#else\r
- typedef signed long long int sint64;\r
- typedef unsigned long long int uint64;\r
-#endif\r
-\r
-typedef struct {\r
- double start_real;\r
- double elapsed_real;\r
- bool running;\r
-} my_timer_t;\r
-\r
-\r
-// functions\r
-\r
-extern void util_init ();\r
-\r
-extern void my_random_init ();\r
-extern int my_random_int (int n);\r
-extern double my_random_double ();\r
-\r
-extern sint64 my_atoll (const char string[]);\r
-\r
-extern int my_round (double x);\r
-\r
-extern void * my_malloc (size_t size);\r
-extern void * my_realloc (void * address, size_t size);\r
-extern void my_free (void * address);\r
-\r
-extern void my_log_open (const char file_name[]);\r
-extern void my_log_close ();\r
-\r
-extern void my_log (const char format[], ...);\r
-extern void my_fatal (const char format[], ...);\r
-\r
-extern bool my_file_read_line (FILE * file, char string[], int size);\r
-extern void my_path_join (char *join_path, const char *path, const char *file);\r
-\r
-extern int my_mkdir (const char *path);\r
-\r
-extern bool my_string_empty (const char string[]);\r
-extern bool my_string_whitespace (const char string[]);\r
-extern bool my_string_equal (const char string_1[], const char string_2[]);\r
-extern bool my_string_case_equal (const char string_1[], const char string_2[]);\r
-extern const char* my_string_case_contains(const char haystack[], \r
- const char needle[]);\r
-\r
-\r
-extern bool my_string_to_lower (char dst[], const char src[]);\r
-\r
-extern char * my_strdup (const char string[]);\r
-\r
-extern void my_string_clear (const char * * variable);\r
-extern void my_string_set (const char * * variable, const char string[]);\r
-\r
-extern double now_real ();\r
-\r
-extern void my_timer_reset (my_timer_t * timer);\r
-extern void my_timer_start (my_timer_t * timer);\r
-extern void my_timer_stop (my_timer_t * timer);\r
-\r
-extern double my_timer_elapsed_real (const my_timer_t * timer);\r
-\r
-extern char * my_error();\r
-\r
-extern void my_dequote (char *out, \r
- const char *in, \r
- const char *special);\r
-extern void my_quote (char *out, \r
- const char *in, \r
- const char *special);\r
-\r
-#endif // !defined UTIL_H\r
-\r
-// end of util.h\r
+
+// util.h
+
+#ifndef UTIL_H
+#define UTIL_H
+
+// includes
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/timeb.h>
+#include <sys/stat.h>
+
+// defines
+
+#ifndef EXIT_SUCCES
+#define EXIT_SUCCES 0
+#endif
+
+#ifndef STDIN_FILENO
+#define STDIN_FILENO 0
+#endif
+
+#ifndef STDOUT_FILENO
+#define STDOUT_FILENO 1
+#endif
+
+
+#undef FALSE
+#define FALSE 0
+
+#undef TRUE
+#define TRUE 1
+
+#ifdef DEBUG
+# undef DEBUG
+# define DEBUG TRUE
+#else
+# define DEBUG FALSE
+#endif
+
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
+# define S64_FORMAT "%I64d"
+# define U64_FORMAT "%016I64X"
+#else
+# define S64_FORMAT "%lld"
+# define U64_FORMAT "%016llX"
+#endif
+
+// macros
+
+#ifdef _MSC_VER
+# define S64(u) (u##i64)
+# define U64(u) (u##ui64)
+#else
+# define S64(u) (u##LL)
+# define U64(u) (u##ULL)
+#endif
+
+#undef ASSERT
+#if DEBUG
+# define ASSERT(a) { if (!(a)) my_fatal("file \"%s\", line %d, assertion \"" #a "\" failed\n",__FILE__,__LINE__); }
+#else
+# define ASSERT(a)
+#endif
+
+#ifdef _WIN32
+#define snprintf _snprintf
+#endif
+
+#define FormatBufferSize 4096
+#define StringSize 4096
+
+#ifdef _MSC_VER
+#define vsnprintf _vsnprintf
+#endif
+
+#define CONSTRUCT_ARG_STRING(format,buf) \
+ { \
+ va_list arg_list; \
+ int written; \
+ va_start(arg_list,format); \
+ written=vsnprintf(buf, \
+ sizeof(buf), \
+ format, \
+ arg_list); \
+ va_end(arg_list); \
+ buf[sizeof(buf)-1]='\0'; \
+ if(written>=sizeof(buf) || written<0){ \
+ my_fatal("write_buffer overflow: file \"%s\", line %d\n", \
+ __FILE__,__LINE__); \
+ } \
+ } \
+
+#define TO_BOOL(string) ((my_string_case_equal(string,"false") || \
+ my_string_equal(string,"0"))?FALSE:TRUE)
+
+#define IS_BOOL(string) (my_string_case_equal(string,"false")|| \
+ my_string_case_equal(string,"true") || \
+ my_string_case_equal(string,"1") || \
+ my_string_case_equal(string,"0"))
+// types
+
+typedef signed char sint8;
+typedef unsigned char uint8;
+
+typedef signed short sint16;
+typedef unsigned short uint16;
+
+typedef signed int sint32;
+typedef unsigned int uint32;
+
+typedef int bool;
+
+#ifdef _MSC_VER
+ typedef signed __int64 sint64;
+ typedef unsigned __int64 uint64;
+#else
+ typedef signed long long int sint64;
+ typedef unsigned long long int uint64;
+#endif
+
+typedef struct {
+ double start_real;
+ double elapsed_real;
+ bool running;
+} my_timer_t;
+
+
+// functions
+
+extern void util_init ();
+
+extern void my_random_init ();
+extern int my_random_int (int n);
+extern double my_random_double ();
+
+extern sint64 my_atoll (const char string[]);
+
+extern int my_round (double x);
+
+extern void * my_malloc (size_t size);
+extern void * my_realloc (void * address, size_t size);
+extern void my_free (void * address);
+
+extern void my_log_open (const char file_name[]);
+extern void my_log_close ();
+
+extern void my_log (const char format[], ...);
+extern void my_fatal (const char format[], ...);
+
+extern bool my_file_read_line (FILE * file, char string[], int size);
+extern void my_path_join (char *join_path, const char *path, const char *file);
+
+extern int my_mkdir (const char *path);
+
+extern bool my_string_empty (const char string[]);
+extern bool my_string_whitespace (const char string[]);
+extern bool my_string_equal (const char string_1[], const char string_2[]);
+extern bool my_string_case_equal (const char string_1[], const char string_2[]);
+extern const char* my_string_case_contains(const char haystack[],
+ const char needle[]);
+
+
+extern bool my_string_to_lower (char dst[], const char src[]);
+
+extern char * my_strdup (const char string[]);
+
+extern void my_string_clear (const char * * variable);
+extern void my_string_set (const char * * variable, const char string[]);
+
+extern double now_real ();
+
+extern void my_timer_reset (my_timer_t * timer);
+extern void my_timer_start (my_timer_t * timer);
+extern void my_timer_stop (my_timer_t * timer);
+
+extern double my_timer_elapsed_real (const my_timer_t * timer);
+
+extern char * my_error();
+
+extern void my_dequote (char *out,
+ const char *in,
+ const char *special);
+extern void my_quote (char *out,
+ const char *in,
+ const char *special);
+
+extern void my_sleep (int msec);
+
+#endif // !defined UTIL_H
+
+// end of util.h