+/* Martin Asser Hansen (mail@maasha.dk) Copyright (C) 2008 - All right reserved */
+
/* Including standard libraries */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <errno.h>
+#include <getopt.h>
+
+typedef unsigned char uchar;
+typedef unsigned short ushort;
+typedef long long llong;
+typedef char boolean;
-/* Define a shorthand for unsigned int */
-#define uint unsigned int
+#ifndef bool
+#define bool boolean
+#endif
-/* Define a boolean type */
-#define bool char
+#ifndef TRUE
#define TRUE 1
+#endif
+
+#ifndef FALSE
#define FALSE 0
+#endif
/* Macros for determining min or max of two given values. */
#define MAX( a, b ) a < b ? b : a
#define ABS( x ) ( ( x ) < 0 ) ? -( x ) : ( x )
#define INT( x ) ( int ) x
+/* Neat debug macro. */
+#define DEBUG_EXIT 0
-/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> STRUCTURE DECLARATIONS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
-
-
-// At some point test if typdef struct list list will allow us to move all this stuff to list.h and list.c
-
-
-/* Singly linked list with a pointer to the next element and a pointer to a value. */
-struct list
-{
- struct list *next;
- void *val;
-};
-
-/* Singly linked list with a pointer to the next element and an integer value. */
-struct list_int
-{
- struct list *next;
- int val;
-};
-
-
-/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ERROR HANDLING <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
-
-
-/* Print error message to stderr and exit. */
-void die( char *error_msg );
-
-/* Print warning message to stderr. */
-void warn( char *warn_msg );
-
-
-/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ARRAYS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
-
-
-/* Binary search an array of integers for an integer value. */
-bool binary_search_array( int *array, int array_size, int val );
+#ifndef die
+#define die assert( DEBUG_EXIT )
+#endif
/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> MISC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
-/* Split a given line and a delimiter return the split result as a list. */
-void split( char *string, char delimit, struct list **fields );
-
-/* Mockup version of Perl substr. */
-char *substr( char *string, int offset, int len );
+/* Function that prints "pong" to stderr. */
+void maasha_ping();
/* Return a binary number as a string of 1's and 0's. */
char *bits2string( uint bin );