[F] Fix incorrect cell width evaluation in case of invisible symbols
This commit is contained in:
@@ -188,6 +188,114 @@ void test_bug_fixes(void)
|
||||
ft_destroy_table(table);
|
||||
}
|
||||
#endif /* FT_HAVE_UTF8 */
|
||||
|
||||
SCENARIO("Issue 37 - https://github.com/seleznevae/libfort/issues/37") {
|
||||
ft_table_t *table = ft_create_table();
|
||||
ft_set_border_style(table, FT_BASIC_STYLE);
|
||||
ft_set_cell_prop(table, 0, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE, FT_ROW_HEADER);
|
||||
ft_write_ln(table, "xxx");
|
||||
ft_write_ln(table,
|
||||
"1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n1\n2\n3\n4\n5\n6\n7\n8");
|
||||
ft_set_cell_prop(table, 1, 0, FT_CPROP_CONT_FG_COLOR, FT_COLOR_RED);
|
||||
|
||||
const char *table_str = ft_to_string(table);
|
||||
assert_true(table_str != NULL);
|
||||
const char *table_str_etalon =
|
||||
"+-----+\n"
|
||||
"| xxx |\n"
|
||||
"+-----+\n"
|
||||
"| \033[31m1\033[0m |\n"
|
||||
"| \033[31m2\033[0m |\n"
|
||||
"| \033[31m3\033[0m |\n"
|
||||
"| \033[31m4\033[0m |\n"
|
||||
"| \033[31m5\033[0m |\n"
|
||||
"| \033[31m6\033[0m |\n"
|
||||
"| \033[31m7\033[0m |\n"
|
||||
"| \033[31m8\033[0m |\n"
|
||||
"| \033[31m9\033[0m |\n"
|
||||
"| \033[31m0\033[0m |\n"
|
||||
"| \033[31m1\033[0m |\n"
|
||||
"| \033[31m2\033[0m |\n"
|
||||
"| \033[31m3\033[0m |\n"
|
||||
"| \033[31m4\033[0m |\n"
|
||||
"| \033[31m5\033[0m |\n"
|
||||
"| \033[31m6\033[0m |\n"
|
||||
"| \033[31m7\033[0m |\n"
|
||||
"| \033[31m8\033[0m |\n"
|
||||
"+-----+\n";
|
||||
assert_str_equal(table_str, table_str_etalon);
|
||||
|
||||
ft_destroy_table(table);
|
||||
}
|
||||
|
||||
SCENARIO("Issue 37 - https://github.com/seleznevae/libfort/issues/37") {
|
||||
ft_table_t *table = ft_create_table();
|
||||
ft_set_border_style(table, FT_BASIC_STYLE);
|
||||
ft_set_cell_prop(table, 0, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE, FT_ROW_HEADER);
|
||||
|
||||
ft_write_ln(table, "hdr1", "hdr2", "xxx");
|
||||
ft_write_ln(table, "3", "",
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||||||||||||||||||||||||||\n"
|
||||
"||||||");
|
||||
|
||||
ft_set_cell_prop(table, 1, FT_ANY_COLUMN, FT_CPROP_CONT_FG_COLOR, FT_COLOR_RED);
|
||||
const char *table_str = ft_to_string(table);
|
||||
assert_true(table_str != NULL);
|
||||
|
||||
const char *table_str_etalon =
|
||||
"+------+------+--------------------------------+\n"
|
||||
"| hdr1 | hdr2 | xxx |\n"
|
||||
"+------+------+--------------------------------+\n"
|
||||
"| \033[31m3\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||||||||||||||||||||||||||\033[0m |\n"
|
||||
"|\033[31m\033[0m |\033[31m\033[0m | \033[31m||||||\033[0m |\n"
|
||||
"+------+------+--------------------------------+\n";
|
||||
assert_str_equal(table_str, table_str_etalon);
|
||||
ft_destroy_table(table);
|
||||
}
|
||||
}
|
||||
|
||||
void test_table_basic(void)
|
||||
|
Reference in New Issue
Block a user