diff --git a/threading.c b/threading.c index fb0761f..7125d58 100644 --- a/threading.c +++ b/threading.c @@ -339,6 +339,7 @@ void *thread_top(){ void *thread_btm(){ char *path = NULL; char *ui_btm_right_block = malloc(sizeof(char)); + char fmt[] = "%0.2lf%c %s %0.2lf%c %s"; /*using a pointer here would put it into ROM, causing a segfault at the edit below*/ unsigned int ui_btm_right_block_size = 0; unsigned int buffer_width = 0; @@ -407,23 +408,18 @@ void *thread_btm(){ } else { size_index[1] = 0; } - if (size_index[0] > 0 && size_index[1] > 0) { - ui_btm_right_block_size = snprintf(NULL, 0, "%0.2lf%c %s %0.2lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left)+1; - ui_btm_right_block = malloc(ui_btm_right_block_size); - sprintf(ui_btm_right_block, "%0.2lf%c %s %0.2lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left); - } else if (size_index[0] <= 0 && size_index[1] > 0) { - ui_btm_right_block_size = snprintf(NULL, 0, "%0.0lf%c %s %0.2lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left)+1; - ui_btm_right_block = malloc(ui_btm_right_block_size); - sprintf(ui_btm_right_block, "%0.0lf%c %s %0.2lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left); - } else if (size_index[0] > 0 && size_index[1] <= 0) { - ui_btm_right_block_size = snprintf(NULL, 0, "%0.2lf%c %s %0.0lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left)+1; - ui_btm_right_block = malloc(ui_btm_right_block_size); - sprintf(ui_btm_right_block, "%0.2lf%c %s %0.0lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left); + if (size_index[0] < 1) { + fmt[3] = '0'; } else { - ui_btm_right_block_size = snprintf(NULL, 0, "%0.0lf%c %s %0.0lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left)+1; - ui_btm_right_block = malloc(ui_btm_right_block_size); - sprintf(ui_btm_right_block, "%0.0lf%c %s %0.0lf%c %s", parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left); + fmt[3] = '2'; } + if (size_index[1] < 1) { + fmt[15] = '0'; + } else { + fmt[15] = '2'; + } + ui_btm_right_block = malloc(ui_btm_right_block_size * 2); + ui_btm_right_block_size = sprintf(ui_btm_right_block, fmt, parsed_number[0], size_unit[(unsigned)size_index[0]], ui_btm_current_dir_size, parsed_number[1], size_unit[(unsigned)size_index[1]], ui_btm_text_storage_left); /*}}}*/ }