[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);
|
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:
|
/* todo:
|
||||||
* At the moment min width includes paddings. Maybe it is better that min width weren't include
|
* 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(cell);
|
||||||
assert(context);
|
assert(context);
|
||||||
int cell_padding_left = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_LEFT_PADDING);
|
unsigned 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_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 result = cell_padding_left + cell_padding_right;
|
||||||
if (cell->str_buffer && cell->str_buffer->str.data) {
|
if (cell->str_buffer && cell->str_buffer->str.data) {
|
||||||
result += buffer_text_width(cell->str_buffer);
|
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;
|
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(cell);
|
||||||
assert(context);
|
assert(context);
|
||||||
int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
unsigned 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);
|
unsigned 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_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;
|
int result = cell_padding_top + cell_padding_bottom;
|
||||||
if (cell->str_buffer && cell->str_buffer->str.data) {
|
if (cell->str_buffer && cell->str_buffer->str.data) {
|
||||||
size_t text_height = buffer_text_height(cell->str_buffer);
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
unsigned 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);
|
unsigned 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_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||||
|
|
||||||
if (row >= hint_height_cell(cell, context)
|
if (row >= hint_height_cell(cell, context)
|
||||||
|| row < cell_padding_top
|
|| 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;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cell_padding_top = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_TOP_PADDING);
|
unsigned 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);
|
unsigned 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_right = get_cell_opt_value_hierarcial(context->table_options, context->row, context->column, FT_COPT_RIGHT_PADDING);
|
||||||
|
|
||||||
if (row >= hint_height_cell(cell, context)
|
if (row >= hint_height_cell(cell, context)
|
||||||
|| row < cell_padding_top
|
|| row < cell_padding_top
|
||||||
|
@ -13,8 +13,8 @@ fort_cell_t * create_cell(void);
|
|||||||
|
|
||||||
|
|
||||||
void destroy_cell(fort_cell_t *cell);
|
void destroy_cell(fort_cell_t *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);
|
||||||
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);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -127,4 +127,8 @@ int wsnprint_n_chars(wchar_t *buf, size_t length, size_t n, wchar_t ch);
|
|||||||
written += tmp; \
|
written += tmp; \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
|
#define CHECK_NOT_NEGATIVE(x) \
|
||||||
|
do { if (x < 0) goto fort_fail; } while (0)
|
||||||
|
|
||||||
#endif /* FORT_IMPL_H */
|
#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);
|
OPTION_SET(opt->options, option);
|
||||||
if (OPTION_IS_SET(option, FT_COPT_MIN_WIDTH)) {
|
if (OPTION_IS_SET(option, FT_COPT_MIN_WIDTH)) {
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
opt->col_min_width = value;
|
opt->col_min_width = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_TEXT_ALIGN)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_TEXT_ALIGN)) {
|
||||||
opt->align = (enum ft_text_alignment)value;
|
opt->align = (enum ft_text_alignment)value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_TOP_PADDING)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_TOP_PADDING)) {
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
opt->cell_padding_top = value;
|
opt->cell_padding_top = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_BOTTOM_PADDING)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_BOTTOM_PADDING)) {
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
opt->cell_padding_bottom = value;
|
opt->cell_padding_bottom = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_LEFT_PADDING)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_LEFT_PADDING)) {
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
opt->cell_padding_left = value;
|
opt->cell_padding_left = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_RIGHT_PADDING)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_RIGHT_PADDING)) {
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
opt->cell_padding_right = value;
|
opt->cell_padding_right = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_EMPTY_STR_HEIGHT)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_EMPTY_STR_HEIGHT)) {
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
opt->cell_empty_string_height = value;
|
opt->cell_empty_string_height = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_COPT_ROW_TYPE)) {
|
} else if (OPTION_IS_SET(option, FT_COPT_ROW_TYPE)) {
|
||||||
opt->row_type = (enum ft_row_type)value;
|
opt->row_type = (enum ft_row_type)value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FT_SUCCESS;
|
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)
|
static fort_status_t set_entire_table_option_internal(fort_entire_table_options_t *options, uint32_t option, int value)
|
||||||
{
|
{
|
||||||
assert(options);
|
assert(options);
|
||||||
|
CHECK_NOT_NEGATIVE(value);
|
||||||
if (OPTION_IS_SET(option, FT_TOPT_LEFT_MARGIN)) {
|
if (OPTION_IS_SET(option, FT_TOPT_LEFT_MARGIN)) {
|
||||||
options->left_margin = value;
|
options->left_margin = value;
|
||||||
} else if (OPTION_IS_SET(option, FT_TOPT_TOP_MARGIN)) {
|
} 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_EINVAL;
|
||||||
}
|
}
|
||||||
return FT_SUCCESS;
|
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)
|
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 */
|
/* border_style */
|
||||||
BASIC_STYLE,
|
BASIC_STYLE,
|
||||||
NULL, /* cell_options */
|
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_row;
|
||||||
unsigned cell_col;
|
unsigned cell_col;
|
||||||
uint32_t options;
|
uint32_t options;
|
||||||
int col_min_width;
|
unsigned int col_min_width;
|
||||||
enum ft_text_alignment align;
|
enum ft_text_alignment align;
|
||||||
int cell_padding_top;
|
unsigned int cell_padding_top;
|
||||||
int cell_padding_bottom;
|
unsigned int cell_padding_bottom;
|
||||||
int cell_padding_left;
|
unsigned int cell_padding_left;
|
||||||
int cell_padding_right;
|
unsigned int cell_padding_right;
|
||||||
int cell_empty_string_height;
|
unsigned int cell_empty_string_height;
|
||||||
enum ft_row_type row_type;
|
enum ft_row_type row_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -125,10 +125,10 @@ extern struct fort_border_style FORT_EMPTY_STYLE;
|
|||||||
|
|
||||||
struct fort_entire_table_options
|
struct fort_entire_table_options
|
||||||
{
|
{
|
||||||
int left_margin;
|
unsigned int left_margin;
|
||||||
int top_margin;
|
unsigned int top_margin;
|
||||||
int right_margin;
|
unsigned int right_margin;
|
||||||
int bottom_margin;
|
unsigned int bottom_margin;
|
||||||
};
|
};
|
||||||
typedef struct fort_entire_table_options fort_entire_table_options_t;
|
typedef struct fort_entire_table_options fort_entire_table_options_t;
|
||||||
extern fort_entire_table_options_t g_entire_table_options;
|
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)
|
if (row == NULL || row->cells == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
@ -324,7 +324,7 @@ fort_row_t *create_row_from_string(const char *str)
|
|||||||
{
|
{
|
||||||
char *pos = NULL;
|
char *pos = NULL;
|
||||||
char *base_pos = NULL;
|
char *base_pos = NULL;
|
||||||
int number_of_separators = 0;
|
unsigned int number_of_separators = 0;
|
||||||
|
|
||||||
fort_row_t *row = create_row();
|
fort_row_t *row = create_row();
|
||||||
if (row == NULL)
|
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);
|
int virtual_sz = vsnprintf(buffer->str.cstr, string_buffer_capacity(buffer)/*buffer->str_sz*/, fmt, va);
|
||||||
va_end(va);
|
va_end(va);
|
||||||
/* If error encountered */
|
/* If error encountered */
|
||||||
if (virtual_sz == -1)
|
if (virtual_sz < 0)
|
||||||
goto clear;
|
goto clear;
|
||||||
|
|
||||||
/* Successful write */
|
/* Successful write */
|
||||||
if (virtual_sz < string_buffer_capacity(buffer))
|
if ((size_t)virtual_sz < string_buffer_capacity(buffer))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Otherwise buffer was too small, so incr. buffer size ant try again. */
|
/* 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)
|
if (row == NULL)
|
||||||
return -1;
|
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)
|
if (cols_in_row > col_width_arr_sz)
|
||||||
return -1;
|
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)
|
if (row == NULL)
|
||||||
return -1;
|
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)
|
if (cols_in_row > col_width_arr_sz)
|
||||||
return -1;
|
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);
|
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_implementation(fort_row_t *row, size_t col, enum PolicyOnNull policy);
|
||||||
fort_cell_t *get_cell(fort_row_t *row, size_t col);
|
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;
|
return max_length;
|
||||||
|
|
||||||
int line_width = mk_wcswidth(beg, end - beg);
|
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;
|
++n;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user