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;
}
-
}