[C] Code refactoring
This commit is contained in:
parent
ac087ab4c3
commit
7ebbf7ed19
101
lib/fort.c
101
lib/fort.c
@ -2722,8 +2722,6 @@ int FT_PRINTF_LN(ft_table_t *table, const char *fmt, ...)
|
|||||||
|
|
||||||
#undef FT_PRINTF
|
#undef FT_PRINTF
|
||||||
#undef FT_PRINTF_LN
|
#undef FT_PRINTF_LN
|
||||||
#undef FT_HDR_PRINTF
|
|
||||||
#undef FT_HDR_PRINTF_LN
|
|
||||||
|
|
||||||
#ifdef FT_HAVE_WCHAR
|
#ifdef FT_HAVE_WCHAR
|
||||||
int ft_wprintf(ft_table_t *table, const wchar_t *fmt, ...)
|
int ft_wprintf(ft_table_t *table, const wchar_t *fmt, ...)
|
||||||
@ -2764,55 +2762,63 @@ void ft_set_default_printf_field_separator(char separator)
|
|||||||
g_col_separator = separator;
|
g_col_separator = separator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ft_write_impl_(ft_table_t *table, const struct ft_gen_string *cell_content)
|
||||||
static int ft_write_impl(ft_table_t *table, const char *cell_content)
|
|
||||||
{
|
{
|
||||||
assert(table);
|
assert(table);
|
||||||
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
||||||
if (str_buffer == NULL)
|
if (str_buffer == NULL)
|
||||||
return FT_ERROR;
|
return FT_ERROR;
|
||||||
|
|
||||||
int status = fill_buffer_from_string(str_buffer, cell_content);
|
int status = FT_SUCCESS;
|
||||||
|
switch (cell_content->type) {
|
||||||
|
case CHAR_BUF:
|
||||||
|
status = fill_buffer_from_string(str_buffer, cell_content->u.cstr);
|
||||||
|
break;
|
||||||
|
#ifdef FT_HAVE_WCHAR
|
||||||
|
case W_CHAR_BUF:
|
||||||
|
status = fill_buffer_from_wstring(str_buffer, cell_content->u.wstr);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef FT_HAVE_UTF8
|
||||||
|
case UTF8_BUF:
|
||||||
|
status = fill_buffer_from_u8string(str_buffer, cell_content->u.u8str);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
status = FT_ERROR;
|
||||||
|
}
|
||||||
if (FT_IS_SUCCESS(status)) {
|
if (FT_IS_SUCCESS(status)) {
|
||||||
table->cur_col++;
|
table->cur_col++;
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ft_write_impl(ft_table_t *table, const char *cell_content)
|
||||||
|
{
|
||||||
|
struct ft_gen_string content;
|
||||||
|
content.type = CHAR_BUF;
|
||||||
|
content.u.cstr = cell_content;
|
||||||
|
return ft_write_impl_(table, &content);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FT_HAVE_UTF8
|
#ifdef FT_HAVE_UTF8
|
||||||
static int ft_u8write_impl(ft_table_t *table, const void *cell_content)
|
static int ft_u8write_impl(ft_table_t *table, const void *cell_content)
|
||||||
{
|
{
|
||||||
assert(table);
|
struct ft_gen_string content;
|
||||||
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
content.type = UTF8_BUF;
|
||||||
if (str_buffer == NULL)
|
content.u.u8str = cell_content;
|
||||||
return FT_ERROR;
|
return ft_write_impl_(table, &content);
|
||||||
|
|
||||||
int status = fill_buffer_from_u8string(str_buffer, cell_content);
|
|
||||||
if (FT_IS_SUCCESS(status)) {
|
|
||||||
table->cur_col++;
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
#endif /* FT_HAVE_UTF8 */
|
#endif /* FT_HAVE_UTF8 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_HAVE_WCHAR
|
#ifdef FT_HAVE_WCHAR
|
||||||
|
|
||||||
static int ft_wwrite_impl(ft_table_t *table, const wchar_t *cell_content)
|
static int ft_wwrite_impl(ft_table_t *table, const wchar_t *cell_content)
|
||||||
{
|
{
|
||||||
assert(table);
|
struct ft_gen_string content;
|
||||||
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
content.type = W_CHAR_BUF;
|
||||||
if (str_buffer == NULL)
|
content.u.wstr = cell_content;
|
||||||
return FT_ERROR;
|
return ft_write_impl_(table, &content);
|
||||||
|
|
||||||
int status = fill_buffer_from_wstring(str_buffer, cell_content);
|
|
||||||
if (FT_IS_SUCCESS(status)) {
|
|
||||||
table->cur_col++;
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -3362,7 +3368,7 @@ int ft_set_cell_span(ft_table_t *table, size_t row, size_t col, size_t hor_span)
|
|||||||
|
|
||||||
#ifdef FT_HAVE_UTF8
|
#ifdef FT_HAVE_UTF8
|
||||||
|
|
||||||
int ft_nu8write(ft_table_t *table, size_t n, const void *cell_content, ...)
|
int ft_u8nwrite(ft_table_t *table, size_t n, const void *cell_content, ...)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
assert(table);
|
assert(table);
|
||||||
@ -3387,7 +3393,7 @@ int ft_nu8write(ft_table_t *table, size_t n, const void *cell_content, ...)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ft_nu8write_ln(ft_table_t *table, size_t n, const void *cell_content, ...)
|
int ft_u8nwrite_ln(ft_table_t *table, size_t n, const void *cell_content, ...)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
assert(table);
|
assert(table);
|
||||||
@ -3412,6 +3418,39 @@ int ft_nu8write_ln(ft_table_t *table, size_t n, const void *cell_content, ...)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FT_PRINTF_ATTRIBUTE_FORMAT(2, 3)
|
||||||
|
int ft_u8printf(ft_table_t *table, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
assert(table);
|
||||||
|
va_list va;
|
||||||
|
va_start(va, fmt);
|
||||||
|
|
||||||
|
struct ft_gen_string fmt_str;
|
||||||
|
fmt_str.type = UTF8_BUF;
|
||||||
|
fmt_str.u.cstr = fmt;
|
||||||
|
int result = ft_row_printf_impl_(table, table->cur_row, &fmt_str, &va);
|
||||||
|
va_end(va);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
FT_PRINTF_ATTRIBUTE_FORMAT(2, 3)
|
||||||
|
int ft_u8printf_ln(ft_table_t *table, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
assert(table);
|
||||||
|
va_list va;
|
||||||
|
va_start(va, fmt);
|
||||||
|
|
||||||
|
struct ft_gen_string fmt_str;
|
||||||
|
fmt_str.type = UTF8_BUF;
|
||||||
|
fmt_str.u.cstr = fmt;
|
||||||
|
int result = ft_row_printf_impl_(table, table->cur_row, &fmt_str, &va);
|
||||||
|
if (result >= 0) {
|
||||||
|
ft_ln(table);
|
||||||
|
}
|
||||||
|
va_end(va);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
const void *ft_to_u8string(const ft_table_t *table)
|
const void *ft_to_u8string(const ft_table_t *table)
|
||||||
{
|
{
|
||||||
return (const void *)ft_to_string_impl(table, UTF8_BUF);
|
return (const void *)ft_to_string_impl(table, UTF8_BUF);
|
||||||
|
12
lib/fort.h
12
lib/fort.h
@ -903,11 +903,15 @@ const wchar_t *ft_to_wstring(const ft_table_t *table);
|
|||||||
|
|
||||||
#ifdef FT_HAVE_UTF8
|
#ifdef FT_HAVE_UTF8
|
||||||
#define ft_u8write(table, ...)\
|
#define ft_u8write(table, ...)\
|
||||||
(ft_nu8write(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
(ft_u8nwrite(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
||||||
#define ft_u8write_ln(table, ...)\
|
#define ft_u8write_ln(table, ...)\
|
||||||
(ft_nu8write_ln(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
(ft_u8nwrite_ln(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
||||||
int ft_nu8write(ft_table_t *table, size_t n, const void *cell_content, ...);
|
int ft_u8nwrite(ft_table_t *table, size_t n, const void *cell_content, ...);
|
||||||
int ft_nu8write_ln(ft_table_t *table, size_t n, const void *cell_content, ...);
|
int ft_u8nwrite_ln(ft_table_t *table, size_t n, const void *cell_content, ...);
|
||||||
|
|
||||||
|
int ft_u8printf(ft_table_t *table, const char *fmt, ...) FT_PRINTF_ATTRIBUTE_FORMAT(2, 3);
|
||||||
|
int ft_u8printf_ln(ft_table_t *table, const char *fmt, ...) FT_PRINTF_ATTRIBUTE_FORMAT(2, 3);
|
||||||
|
|
||||||
const void *ft_to_u8string(const ft_table_t *table);
|
const void *ft_to_u8string(const ft_table_t *table);
|
||||||
|
|
||||||
#endif /* FT_HAVE_UTF8 */
|
#endif /* FT_HAVE_UTF8 */
|
||||||
|
12
src/fort.h
12
src/fort.h
@ -903,11 +903,15 @@ const wchar_t *ft_to_wstring(const ft_table_t *table);
|
|||||||
|
|
||||||
#ifdef FT_HAVE_UTF8
|
#ifdef FT_HAVE_UTF8
|
||||||
#define ft_u8write(table, ...)\
|
#define ft_u8write(table, ...)\
|
||||||
(ft_nu8write(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
(ft_u8nwrite(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
||||||
#define ft_u8write_ln(table, ...)\
|
#define ft_u8write_ln(table, ...)\
|
||||||
(ft_nu8write_ln(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
(ft_u8nwrite_ln(table, FT_PP_NARG_(__VA_ARGS__), __VA_ARGS__))
|
||||||
int ft_nu8write(ft_table_t *table, size_t n, const void *cell_content, ...);
|
int ft_u8nwrite(ft_table_t *table, size_t n, const void *cell_content, ...);
|
||||||
int ft_nu8write_ln(ft_table_t *table, size_t n, const void *cell_content, ...);
|
int ft_u8nwrite_ln(ft_table_t *table, size_t n, const void *cell_content, ...);
|
||||||
|
|
||||||
|
int ft_u8printf(ft_table_t *table, const char *fmt, ...) FT_PRINTF_ATTRIBUTE_FORMAT(2, 3);
|
||||||
|
int ft_u8printf_ln(ft_table_t *table, const char *fmt, ...) FT_PRINTF_ATTRIBUTE_FORMAT(2, 3);
|
||||||
|
|
||||||
const void *ft_to_u8string(const ft_table_t *table);
|
const void *ft_to_u8string(const ft_table_t *table);
|
||||||
|
|
||||||
#endif /* FT_HAVE_UTF8 */
|
#endif /* FT_HAVE_UTF8 */
|
||||||
|
101
src/fort_impl.c
101
src/fort_impl.c
@ -252,8 +252,6 @@ int FT_PRINTF_LN(ft_table_t *table, const char *fmt, ...)
|
|||||||
|
|
||||||
#undef FT_PRINTF
|
#undef FT_PRINTF
|
||||||
#undef FT_PRINTF_LN
|
#undef FT_PRINTF_LN
|
||||||
#undef FT_HDR_PRINTF
|
|
||||||
#undef FT_HDR_PRINTF_LN
|
|
||||||
|
|
||||||
#ifdef FT_HAVE_WCHAR
|
#ifdef FT_HAVE_WCHAR
|
||||||
int ft_wprintf(ft_table_t *table, const wchar_t *fmt, ...)
|
int ft_wprintf(ft_table_t *table, const wchar_t *fmt, ...)
|
||||||
@ -294,55 +292,63 @@ void ft_set_default_printf_field_separator(char separator)
|
|||||||
g_col_separator = separator;
|
g_col_separator = separator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ft_write_impl_(ft_table_t *table, const struct ft_gen_string *cell_content)
|
||||||
static int ft_write_impl(ft_table_t *table, const char *cell_content)
|
|
||||||
{
|
{
|
||||||
assert(table);
|
assert(table);
|
||||||
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
||||||
if (str_buffer == NULL)
|
if (str_buffer == NULL)
|
||||||
return FT_ERROR;
|
return FT_ERROR;
|
||||||
|
|
||||||
int status = fill_buffer_from_string(str_buffer, cell_content);
|
int status = FT_SUCCESS;
|
||||||
|
switch (cell_content->type) {
|
||||||
|
case CHAR_BUF:
|
||||||
|
status = fill_buffer_from_string(str_buffer, cell_content->u.cstr);
|
||||||
|
break;
|
||||||
|
#ifdef FT_HAVE_WCHAR
|
||||||
|
case W_CHAR_BUF:
|
||||||
|
status = fill_buffer_from_wstring(str_buffer, cell_content->u.wstr);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef FT_HAVE_UTF8
|
||||||
|
case UTF8_BUF:
|
||||||
|
status = fill_buffer_from_u8string(str_buffer, cell_content->u.u8str);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
status = FT_ERROR;
|
||||||
|
}
|
||||||
if (FT_IS_SUCCESS(status)) {
|
if (FT_IS_SUCCESS(status)) {
|
||||||
table->cur_col++;
|
table->cur_col++;
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ft_write_impl(ft_table_t *table, const char *cell_content)
|
||||||
|
{
|
||||||
|
struct ft_gen_string content;
|
||||||
|
content.type = CHAR_BUF;
|
||||||
|
content.u.cstr = cell_content;
|
||||||
|
return ft_write_impl_(table, &content);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FT_HAVE_UTF8
|
#ifdef FT_HAVE_UTF8
|
||||||
static int ft_u8write_impl(ft_table_t *table, const void *cell_content)
|
static int ft_u8write_impl(ft_table_t *table, const void *cell_content)
|
||||||
{
|
{
|
||||||
assert(table);
|
struct ft_gen_string content;
|
||||||
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
content.type = UTF8_BUF;
|
||||||
if (str_buffer == NULL)
|
content.u.u8str = cell_content;
|
||||||
return FT_ERROR;
|
return ft_write_impl_(table, &content);
|
||||||
|
|
||||||
int status = fill_buffer_from_u8string(str_buffer, cell_content);
|
|
||||||
if (FT_IS_SUCCESS(status)) {
|
|
||||||
table->cur_col++;
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
#endif /* FT_HAVE_UTF8 */
|
#endif /* FT_HAVE_UTF8 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_HAVE_WCHAR
|
#ifdef FT_HAVE_WCHAR
|
||||||
|
|
||||||
static int ft_wwrite_impl(ft_table_t *table, const wchar_t *cell_content)
|
static int ft_wwrite_impl(ft_table_t *table, const wchar_t *cell_content)
|
||||||
{
|
{
|
||||||
assert(table);
|
struct ft_gen_string content;
|
||||||
string_buffer_t *str_buffer = get_cur_str_buffer_and_create_if_not_exists(table);
|
content.type = W_CHAR_BUF;
|
||||||
if (str_buffer == NULL)
|
content.u.wstr = cell_content;
|
||||||
return FT_ERROR;
|
return ft_write_impl_(table, &content);
|
||||||
|
|
||||||
int status = fill_buffer_from_wstring(str_buffer, cell_content);
|
|
||||||
if (FT_IS_SUCCESS(status)) {
|
|
||||||
table->cur_col++;
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -892,7 +898,7 @@ int ft_set_cell_span(ft_table_t *table, size_t row, size_t col, size_t hor_span)
|
|||||||
|
|
||||||
#ifdef FT_HAVE_UTF8
|
#ifdef FT_HAVE_UTF8
|
||||||
|
|
||||||
int ft_nu8write(ft_table_t *table, size_t n, const void *cell_content, ...)
|
int ft_u8nwrite(ft_table_t *table, size_t n, const void *cell_content, ...)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
assert(table);
|
assert(table);
|
||||||
@ -917,7 +923,7 @@ int ft_nu8write(ft_table_t *table, size_t n, const void *cell_content, ...)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ft_nu8write_ln(ft_table_t *table, size_t n, const void *cell_content, ...)
|
int ft_u8nwrite_ln(ft_table_t *table, size_t n, const void *cell_content, ...)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
assert(table);
|
assert(table);
|
||||||
@ -942,6 +948,39 @@ int ft_nu8write_ln(ft_table_t *table, size_t n, const void *cell_content, ...)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FT_PRINTF_ATTRIBUTE_FORMAT(2, 3)
|
||||||
|
int ft_u8printf(ft_table_t *table, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
assert(table);
|
||||||
|
va_list va;
|
||||||
|
va_start(va, fmt);
|
||||||
|
|
||||||
|
struct ft_gen_string fmt_str;
|
||||||
|
fmt_str.type = UTF8_BUF;
|
||||||
|
fmt_str.u.cstr = fmt;
|
||||||
|
int result = ft_row_printf_impl_(table, table->cur_row, &fmt_str, &va);
|
||||||
|
va_end(va);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
FT_PRINTF_ATTRIBUTE_FORMAT(2, 3)
|
||||||
|
int ft_u8printf_ln(ft_table_t *table, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
assert(table);
|
||||||
|
va_list va;
|
||||||
|
va_start(va, fmt);
|
||||||
|
|
||||||
|
struct ft_gen_string fmt_str;
|
||||||
|
fmt_str.type = UTF8_BUF;
|
||||||
|
fmt_str.u.cstr = fmt;
|
||||||
|
int result = ft_row_printf_impl_(table, table->cur_row, &fmt_str, &va);
|
||||||
|
if (result >= 0) {
|
||||||
|
ft_ln(table);
|
||||||
|
}
|
||||||
|
va_end(va);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
const void *ft_to_u8string(const ft_table_t *table)
|
const void *ft_to_u8string(const ft_table_t *table)
|
||||||
{
|
{
|
||||||
return (const void *)ft_to_string_impl(table, UTF8_BUF);
|
return (const void *)ft_to_string_impl(table, UTF8_BUF);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user