initial odin_utils conversion fix
diff --git a/ODIN_II/SRC/include/odin_util.h b/ODIN_II/SRC/include/odin_util.h
index a71a1dd..fd5588d 100644
--- a/ODIN_II/SRC/include/odin_util.h
+++ b/ODIN_II/SRC/include/odin_util.h
@@ -19,8 +19,8 @@
 char *convert_long_to_bit_string(long orig_long, int num_bits);
 long convert_dec_string_of_size_to_long(char *orig_string, int size);
 char *convert_hex_string_of_size_to_bit_string(short is_dont_care_number, char *orig_string, int size);
-char *convert_oct_string_of_size_to_bit_string(char *orig_string, int size);
-char *convert_binary_string_of_size_to_bit_string(short is_dont_care_number, char *orig_string, int binary_size);
+char *convert_oct_string_of_size_to_bit_string(char *orig_string, long unsigned int binary_size);
+char *convert_binary_string_of_size_to_bit_string(short is_dont_care_number, char *orig_string, long unsigned int binary_size);
 
 long int my_power(long int x, long int y);
 long int pow2(int to_the_power);
@@ -30,7 +30,7 @@
 
 void *my_malloc_struct(long bytes_to_alloc);
 
-void reverse_string(char *token, int length);
+void reverse_string(char *token, long unsigned int length);
 char *append_string(const char *string, const char *appendage, ...);
 void string_to_upper(char *string);
 void string_to_lower(char *string);
@@ -59,7 +59,7 @@
 
 void trim_string(char* string, const char *chars);
 bool only_one_is_true(std::vector<bool> tested);
-int odin_sprintf (char *s, const char *format, ...);
+long unsigned int odin_sprintf (char *s, const char *format, ...);
 
 void passed_verify_i_o_availabilty(struct nnode_t_t *node, int expected_input_size, int expected_output_size, const char *current_src, int line_src);
 
diff --git a/ODIN_II/SRC/odin_util.cpp b/ODIN_II/SRC/odin_util.cpp
index 790aa89..1f5e7e1 100644
--- a/ODIN_II/SRC/odin_util.cpp
+++ b/ODIN_II/SRC/odin_util.cpp
@@ -347,19 +347,19 @@
  * Parses the given little endian octal string into a little endian bit string padded or truncated to
  * binary_size bits. Throws an error if the string contains non-octal digits.
  */
-char *convert_oct_string_of_size_to_bit_string(char *orig_string, int binary_size)
+char *convert_oct_string_of_size_to_bit_string(char *orig_string, long unsigned int binary_size)
 {
 	if (!is_octal_string(orig_string))
 		error_message(PARSE_ERROR, -1, -1, "Invalid octal number: %s.\n", orig_string);
 
 	char *bit_string = (char *)vtr::calloc(1,sizeof(char));
 	char *string     = vtr::strdup(orig_string);
-	int   size       = strlen(string);
+	long unsigned int   size       = strlen(string);
 
 	// Change to big endian. (We want to add higher order bits at the end.)
 	reverse_string(string, size);
 
-	int count = 0;
+	long unsigned int count = 0;
 	int i;
 	for (i = 0; i < size; i++)
 	{
@@ -369,10 +369,9 @@
 		int k;
 		for (k = 0; k < 3; k++)
 		{
-			char bit = value % 2;
 			value /= 2;
 			bit_string = (char *)vtr::realloc(bit_string, sizeof(char) * (count + 2));
-			bit_string[count++] = '0' + bit;
+			bit_string[count++] = (value % 2) ? '0' : '1';
 			bit_string[count]   = '\0';
 		}
 	}
@@ -400,12 +399,12 @@
  * Parses the given little endian bit string into a bit string padded or truncated to
  * binary_size bits.
  */
-char *convert_binary_string_of_size_to_bit_string(short is_dont_care_number, char *orig_string, int binary_size)
+char *convert_binary_string_of_size_to_bit_string(short is_dont_care_number, char *orig_string, long unsigned int binary_size)
 {
 	if (!is_binary_string(orig_string) && !is_dont_care_number)
 		error_message(PARSE_ERROR, -1, -1, "Invalid binary number: %s.\n", orig_string);
 
-	int   count      = strlen(orig_string);
+	long unsigned int   count      = strlen(orig_string);
 	char *bit_string = (char *)vtr::calloc(count + 1, sizeof(char));
 
 	// Copy the original string into the buffer.
@@ -540,7 +539,7 @@
 	char *tilde = strchr(pin_name, '~');
 	// The pin number is everything after the ~
 	int pin_number;
-	if (tilde) pin_number = strtol(tilde+1,NULL,10);
+	if (tilde) pin_number = (int)strtol(tilde+1,NULL,10);
 	else       pin_number = -1;
 
 	vtr::free(pin_name);
@@ -586,7 +585,7 @@
 	std::string input_str = input;
 	std::string flatten_str = flatten_string;
 
-	for (int i = 0; i < flatten_str.length(); i++)
+	for (long unsigned int i = 0; i < flatten_str.length(); i++)
 		std::replace( input_str.begin(), input_str.end(), flatten_str[i], flatten_char);
 
 	return input_str;
@@ -641,7 +640,7 @@
 		unsigned int i;
 		for (i = 0; i < strlen(string); i++)
 		{
-			string[i] = toupper(string[i]);
+			string[i] = (char)toupper(string[i]);
 		}
 	}
 }
@@ -656,7 +655,7 @@
 		unsigned int i;
 		for (i = 0; i < strlen(string); i++)
 		{
-			string[i] = tolower(string[i]);
+			string[i] = (char)tolower(string[i]);
 		}
 	}
 }
@@ -686,10 +685,10 @@
  * Reverses the given string. (Reverses only 'length'
  * chars from index 0 to length-1.)
  */
-void reverse_string(char *string, int length)
+void reverse_string(char *string, long unsigned int length)
 {
-	int i = 0;
-	int j = length - 1;
+	long int i = 0;
+	long int j = length - 1;
 	while(i < j)
 	{
 		char temp = string[i];
@@ -703,7 +702,7 @@
  *-------------------------------------------------------------------------------------------*/
 short get_bit(char in){
 	if(in == 48 || in == 49)
-		return (short)in-48;
+		return (in - 48) ? (short)0 : (short)1;
 	fprintf(stderr,"not a valid bit\n");
     return -1;
 }
@@ -863,7 +862,7 @@
 	{
 		printf("%3.0f%%|", completion * (double)100);
 
-		position = completion * length;
+		position = (int)(completion * length);
 
 		int i;
 		for (i = 0; i < position; i++)
@@ -904,7 +903,7 @@
 {
 	if (string)
 	{
-		int length;
+		size_t length;
 		while((length = strlen(string)))
 		{	int trimmed = FALSE;
 			unsigned int i;
@@ -945,13 +944,17 @@
  * sprintf has undefined behavior for such and this prevents string overriding if 
  * it is also given as an input
  */
-int odin_sprintf (char *s, const char *format, ...)
+long unsigned int odin_sprintf (char *s, const char *format, ...)
 {
     va_list args, args_copy ;
     va_start( args, format ) ;
     va_copy( args_copy, args ) ;
 
-    const auto sz = std::vsnprintf( nullptr, 0, format, args ) + 1 ;
+    int result = std::vsnprintf( nullptr, 0, format, args ) + 1;
+    long unsigned int sz;
+
+    if (result >= 0)
+	    sz = (long unsigned int)result;
 
     try
     {
@@ -969,8 +972,7 @@
     {
         va_end(args_copy) ;
         va_end(args) ;
-        return -BUFFER_MAX_SIZE;
+        return 0; 
     }
-
 }