[F] Fixed compiler warnings
This commit is contained in:
parent
72dbe85b7f
commit
4e2f21fb05
30
src/cell.c
30
src/cell.c
@ -36,7 +36,7 @@ void destroy_cell(fort_cell_t *cell)
|
||||
F_FREE(cell);
|
||||
}
|
||||
|
||||
int hint_width_cell(const fort_cell_t *cell, const context_t *context)
|
||||
unsigned int hint_width_cell(const fort_cell_t *cell, const context_t *context)
|
||||
{
|
||||
/* todo:
|
||||
* At the moment min width includes paddings. Maybe it is better that min width weren't include
|
||||
@ -45,23 +45,23 @@ int hint_width_cell(const fort_cell_t *cell, const context_t *context)
|
||||
|
||||
assert(cell);
|
||||
assert(context);
|
||||
int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
||||
int cell_padding_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||
int result = cell_padding_left + cell_padding_right;
|
||||
unsigned int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
||||
unsigned int cell_padding_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||
unsigned int result = cell_padding_left + cell_padding_right;
|
||||
if (cell->str_buffer && cell->str_buffer->str.data) {
|
||||
result += buffer_text_width(cell->str_buffer);
|
||||
}
|
||||
result = MAX(result, get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_MIN_WIDTH));
|
||||
result = MAX(result, (unsigned)get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_MIN_WIDTH));
|
||||
return result;
|
||||
}
|
||||
|
||||
int hint_height_cell(const fort_cell_t *cell, const context_t *context)
|
||||
unsigned int hint_height_cell(const fort_cell_t *cell, const context_t *context)
|
||||
{
|
||||
assert(cell);
|
||||
assert(context);
|
||||
int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
||||
int cell_padding_bottom = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_BOTTOM_PADDING);
|
||||
int cell_empty_string_height = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_EMPTY_STR_HEIGHT);
|
||||
unsigned int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
||||
unsigned int cell_padding_bottom = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_BOTTOM_PADDING);
|
||||
unsigned int cell_empty_string_height = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_EMPTY_STR_HEIGHT);
|
||||
int result = cell_padding_top + cell_padding_bottom;
|
||||
if (cell->str_buffer && cell->str_buffer->str.data) {
|
||||
size_t text_height = buffer_text_height(cell->str_buffer);
|
||||
@ -105,9 +105,9 @@ int cell_printf(fort_cell_t *cell, size_t row, char *buf, size_t buf_len, const
|
||||
return -1;
|
||||
}
|
||||
|
||||
int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
||||
int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
||||
int cell_padding_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||
unsigned int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
||||
unsigned int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
||||
unsigned int cell_padding_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||
|
||||
if (row >= hint_height_cell(cell, context)
|
||||
|| row < cell_padding_top
|
||||
@ -147,9 +147,9 @@ int cell_wprintf(fort_cell_t *cell, size_t row, wchar_t *buf, size_t buf_len, co
|
||||
return -1;
|
||||
}
|
||||
|
||||
int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
||||
int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
||||
int cell_padding_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||
unsigned int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
||||
unsigned int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
||||
unsigned int cell_padding_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||
|
||||
if (row >= hint_height_cell(cell, context)
|
||||
|| row < cell_padding_top
|
||||
|
@ -13,8 +13,8 @@ fort_cell_t * create_cell(void);
|
||||
|
||||
|
||||
void destroy_cell(fort_cell_t *cell);
|
||||
int hint_width_cell(const fort_cell_t *cell, const context_t *context);
|
||||
int hint_height_cell(const fort_cell_t *cell, const context_t *context);
|
||||
unsigned int hint_width_cell(const fort_cell_t *cell, const context_t *context);
|
||||
unsigned int hint_height_cell(const fort_cell_t *cell, const context_t *context);
|
||||
|
||||
|
||||
/*
|
||||
|
@ -127,4 +127,8 @@ int wsnprint_n_chars(wchar_t *buf, size_t length, size_t n, wchar_t ch);
|
||||
written += tmp; \
|
||||
} while(0)
|
||||
|
||||
|
||||
#define CHECK_NOT_NEGATIVE(x) \
|
||||
do { if (x < 0) goto fort_fail; } while (0)
|
||||
|
||||
#endif /* FORT_IMPL_H */
|
||||
|
@ -156,24 +156,33 @@ static fort_status_t set_cell_option_impl(fort_cell_options_t *opt, uint32_t opt
|
||||
|
||||
OPTION_SET(opt->options, option);
|
||||
if (OPTION_IS_SET(option, FT_COPT_MIN_WIDTH)) {
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
opt->col_min_width = value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_TEXT_ALIGN)) {
|
||||
opt->align = (enum ft_text_alignment)value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_TOP_PADDING)) {
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
opt->cell_padding_top = value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_BOTTOM_PADDING)) {
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
opt->cell_padding_bottom = value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_LEFT_PADDING)) {
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
opt->cell_padding_left = value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_RIGHT_PADDING)) {
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
opt->cell_padding_right = value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_EMPTY_STR_HEIGHT)) {
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
opt->cell_empty_string_height = value;
|
||||
} else if (OPTION_IS_SET(option, FT_COPT_ROW_TYPE)) {
|
||||
opt->row_type = (enum ft_row_type)value;
|
||||
}
|
||||
|
||||
return FT_SUCCESS;
|
||||
|
||||
fort_fail:
|
||||
return FT_EINVAL;
|
||||
}
|
||||
|
||||
|
||||
@ -329,6 +338,7 @@ fort_entire_table_options_t g_entire_table_options = {
|
||||
static fort_status_t set_entire_table_option_internal(fort_entire_table_options_t *options, uint32_t option, int value)
|
||||
{
|
||||
assert(options);
|
||||
CHECK_NOT_NEGATIVE(value);
|
||||
if (OPTION_IS_SET(option, FT_TOPT_LEFT_MARGIN)) {
|
||||
options->left_margin = value;
|
||||
} else if (OPTION_IS_SET(option, FT_TOPT_TOP_MARGIN)) {
|
||||
@ -341,6 +351,9 @@ static fort_status_t set_entire_table_option_internal(fort_entire_table_options_
|
||||
return FT_EINVAL;
|
||||
}
|
||||
return FT_SUCCESS;
|
||||
|
||||
fort_fail:
|
||||
return FT_EINVAL;
|
||||
}
|
||||
|
||||
fort_status_t set_entire_table_option(fort_table_options_t *table_options, uint32_t option, int value)
|
||||
@ -361,6 +374,13 @@ fort_table_options_t g_table_options = {
|
||||
/* border_style */
|
||||
BASIC_STYLE,
|
||||
NULL, /* cell_options */
|
||||
/* entire_table_options */
|
||||
{
|
||||
0, /* left_margin */
|
||||
0, /* top_margin */
|
||||
0, /* right_margin */
|
||||
0 /* bottom_margin */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -29,13 +29,13 @@ struct fort_cell_options
|
||||
unsigned cell_row;
|
||||
unsigned cell_col;
|
||||
uint32_t options;
|
||||
int col_min_width;
|
||||
unsigned int col_min_width;
|
||||
enum ft_text_alignment align;
|
||||
int cell_padding_top;
|
||||
int cell_padding_bottom;
|
||||
int cell_padding_left;
|
||||
int cell_padding_right;
|
||||
int cell_empty_string_height;
|
||||
unsigned int cell_padding_top;
|
||||
unsigned int cell_padding_bottom;
|
||||
unsigned int cell_padding_left;
|
||||
unsigned int cell_padding_right;
|
||||
unsigned int cell_empty_string_height;
|
||||
enum ft_row_type row_type;
|
||||
};
|
||||
|
||||
@ -125,10 +125,10 @@ extern struct fort_border_style FORT_EMPTY_STYLE;
|
||||
|
||||
struct fort_entire_table_options
|
||||
{
|
||||
int left_margin;
|
||||
int top_margin;
|
||||
int right_margin;
|
||||
int bottom_margin;
|
||||
unsigned int left_margin;
|
||||
unsigned int top_margin;
|
||||
unsigned int right_margin;
|
||||
unsigned int bottom_margin;
|
||||
};
|
||||
typedef struct fort_entire_table_options fort_entire_table_options_t;
|
||||
extern fort_entire_table_options_t g_entire_table_options;
|
||||
|
12
src/row.c
12
src/row.c
@ -52,7 +52,7 @@ void destroy_row(fort_row_t *row)
|
||||
|
||||
|
||||
|
||||
int columns_in_row(const fort_row_t *row)
|
||||
unsigned int columns_in_row(const fort_row_t *row)
|
||||
{
|
||||
if (row == NULL || row->cells == NULL)
|
||||
return 0;
|
||||
@ -324,7 +324,7 @@ fort_row_t *create_row_from_string(const char *str)
|
||||
{
|
||||
char *pos = NULL;
|
||||
char *base_pos = NULL;
|
||||
int number_of_separators = 0;
|
||||
unsigned int number_of_separators = 0;
|
||||
|
||||
fort_row_t *row = create_row();
|
||||
if (row == NULL)
|
||||
@ -417,11 +417,11 @@ fort_row_t *create_row_from_fmt_string(const char *fmt, va_list *va_args)
|
||||
int virtual_sz = vsnprintf(buffer->str.cstr, string_buffer_capacity(buffer)/*buffer->str_sz*/, fmt, va);
|
||||
va_end(va);
|
||||
/* If error encountered */
|
||||
if (virtual_sz == -1)
|
||||
if (virtual_sz < 0)
|
||||
goto clear;
|
||||
|
||||
/* Successful write */
|
||||
if (virtual_sz < string_buffer_capacity(buffer))
|
||||
if ((size_t)virtual_sz < string_buffer_capacity(buffer))
|
||||
break;
|
||||
|
||||
/* Otherwise buffer was too small, so incr. buffer size ant try again. */
|
||||
@ -463,7 +463,7 @@ int snprintf_row(const fort_row_t *row, char *buffer, size_t buf_sz, size_t *col
|
||||
if (row == NULL)
|
||||
return -1;
|
||||
|
||||
int cols_in_row = columns_in_row(row);
|
||||
unsigned int cols_in_row = columns_in_row(row);
|
||||
if (cols_in_row > col_width_arr_sz)
|
||||
return -1;
|
||||
|
||||
@ -533,7 +533,7 @@ int wsnprintf_row(const fort_row_t *row, wchar_t *buffer, size_t buf_sz, size_t
|
||||
if (row == NULL)
|
||||
return -1;
|
||||
|
||||
int cols_in_row = columns_in_row(row);
|
||||
unsigned int cols_in_row = columns_in_row(row);
|
||||
if (cols_in_row > col_width_arr_sz)
|
||||
return -1;
|
||||
|
||||
|
@ -24,7 +24,7 @@ fort_row_t * create_row_from_string(const char *str);
|
||||
fort_row_t* create_row_from_fmt_string(const char* fmt, va_list *va_args);
|
||||
|
||||
|
||||
int columns_in_row(const fort_row_t *row);
|
||||
unsigned int columns_in_row(const fort_row_t *row);
|
||||
|
||||
fort_cell_t *get_cell_implementation(fort_row_t *row, size_t col, enum PolicyOnNull policy);
|
||||
fort_cell_t *get_cell(fort_row_t *row, size_t col);
|
||||
|
@ -260,7 +260,9 @@ size_t buffer_text_width(string_buffer_t *buffer)
|
||||
return max_length;
|
||||
|
||||
int line_width = mk_wcswidth(beg, end - beg);
|
||||
max_length = MAX(max_length, line_width);
|
||||
if (line_width < 0) /* For safety */
|
||||
line_width = 0;
|
||||
max_length = MAX(max_length, (size_t)line_width);
|
||||
|
||||
++n;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user