[A] Added non printable horisontal separators
This commit is contained in:
parent
0f16476574
commit
b2ad87eb82
@ -31,6 +31,7 @@ SOFTWARE.
|
|||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
#include "wchar.h"
|
#include "wchar.h"
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
#define FORT_COL_SEPARATOR '|'
|
#define FORT_COL_SEPARATOR '|'
|
||||||
|
|
||||||
@ -587,6 +588,10 @@ static int print_row_separator(char *buffer, size_t buffer_sz,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If all chars are not printable, skip line separator */
|
||||||
|
if (!isprint(*L) && !isprint(*I) && !isprint(*IV) && !isprint(*R))
|
||||||
|
return 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < cols; ++i) {
|
for (size_t i = 0; i < cols; ++i) {
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
CHECK_RESULT_AND_MOVE_DEV(snprint_n_chars(buffer + dev, buffer_sz - dev, 1, *L));
|
CHECK_RESULT_AND_MOVE_DEV(snprint_n_chars(buffer + dev, buffer_sz - dev, 1, *L));
|
||||||
|
@ -455,8 +455,6 @@ void test_table_options(void **state)
|
|||||||
ft_set_default_options(&table_options);
|
ft_set_default_options(&table_options);
|
||||||
|
|
||||||
table = create_test_int_table();
|
table = create_test_int_table();
|
||||||
|
|
||||||
|
|
||||||
char *table_str = ft_to_string(table);
|
char *table_str = ft_to_string(table);
|
||||||
assert_true( table_str != NULL );
|
assert_true( table_str != NULL );
|
||||||
const char *table_str_etalon =
|
const char *table_str_etalon =
|
||||||
@ -479,6 +477,49 @@ void test_table_options(void **state)
|
|||||||
|
|
||||||
free(table_str);
|
free(table_str);
|
||||||
ft_destroy_table(table);
|
ft_destroy_table(table);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define BOR_CHARS table_options.border_chars
|
||||||
|
#define H_BOR_CHARS table_options.header_border_chars
|
||||||
|
|
||||||
|
BOR_CHARS[TL_bip] = BOR_CHARS[TT_bip] = BOR_CHARS[TV_bip] = BOR_CHARS[TR_bip] = '|';
|
||||||
|
BOR_CHARS[LH_bip] = BOR_CHARS[IH_bip] = BOR_CHARS[II_bip] = BOR_CHARS[RH_bip] = '\0';
|
||||||
|
BOR_CHARS[BL_bip] = BOR_CHARS[BB_bip] = BOR_CHARS[BV_bip] = BOR_CHARS[BR_bip] = '|';
|
||||||
|
BOR_CHARS[LL_bip] = BOR_CHARS[IV_bip] = BOR_CHARS[RR_bip] = '=';
|
||||||
|
|
||||||
|
|
||||||
|
H_BOR_CHARS[TL_bip] = H_BOR_CHARS[TT_bip] = H_BOR_CHARS[TV_bip] = H_BOR_CHARS[TR_bip] = '*';
|
||||||
|
H_BOR_CHARS[LH_bip] = H_BOR_CHARS[IH_bip] = H_BOR_CHARS[II_bip] = H_BOR_CHARS[RH_bip] = '*';
|
||||||
|
H_BOR_CHARS[BL_bip] = H_BOR_CHARS[BB_bip] = H_BOR_CHARS[BV_bip] = H_BOR_CHARS[BR_bip] = '*';
|
||||||
|
H_BOR_CHARS[LL_bip] = H_BOR_CHARS[IV_bip] = H_BOR_CHARS[RR_bip] = 'v';
|
||||||
|
|
||||||
|
#undef BOR_CHARS
|
||||||
|
#undef H_BOR_CHARS
|
||||||
|
|
||||||
|
table_options.cell_padding_bottom = 0;
|
||||||
|
table_options.cell_padding_top = 0;
|
||||||
|
table_options.cell_padding_left = 1;
|
||||||
|
table_options.cell_padding_right = 1;
|
||||||
|
table_options.cell_empty_string_height = 0;
|
||||||
|
ft_set_default_options(&table_options);
|
||||||
|
|
||||||
|
table = create_test_int_table();
|
||||||
|
table_str = ft_to_string(table);
|
||||||
|
assert_true( table_str != NULL );
|
||||||
|
table_str_etalon =
|
||||||
|
"*******************\n"
|
||||||
|
"v 3 v 4 v 55 v 67 v\n"
|
||||||
|
"*******************\n"
|
||||||
|
"= 3 = 4 = 55 = 67 =\n"
|
||||||
|
"= 3 = 4 = 55 = 67 =\n"
|
||||||
|
"|||||||||||||||||||\n";
|
||||||
|
// fprintf(stderr, "content:\n%s", table_str);
|
||||||
|
|
||||||
|
assert_true( strcmp(table_str, table_str_etalon) == 0);
|
||||||
|
|
||||||
|
free(table_str);
|
||||||
|
ft_destroy_table(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
WHEN("Setting options for a particular table") {
|
WHEN("Setting options for a particular table") {
|
||||||
@ -550,23 +591,26 @@ void test_table_options(void **state)
|
|||||||
table = create_test_int_table();
|
table = create_test_int_table();
|
||||||
ft_set_column_min_width(table, 1, 7);
|
ft_set_column_min_width(table, 1, 7);
|
||||||
ft_set_column_alignment(table, 1, LeftAligned);
|
ft_set_column_alignment(table, 1, LeftAligned);
|
||||||
|
ft_set_column_min_width(table, 2, 8);
|
||||||
|
ft_set_column_alignment(table, 2, CenterAligned);
|
||||||
|
|
||||||
|
|
||||||
char *table_str = ft_to_string(table);
|
char *table_str = ft_to_string(table);
|
||||||
assert_true( table_str != NULL );
|
assert_true( table_str != NULL );
|
||||||
const char *table_str_etalon =
|
const char *table_str_etalon =
|
||||||
"+---+-------+----+----+\n"
|
"+---+-------+--------+----+\n"
|
||||||
"| | | | |\n"
|
"| | | | |\n"
|
||||||
"| 3 | 4 | 55 | 67 |\n"
|
"| 3 | 4 | 55 | 67 |\n"
|
||||||
"| | | | |\n"
|
"| | | | |\n"
|
||||||
"+---+-------+----+----+\n"
|
"+---+-------+--------+----+\n"
|
||||||
"| | | | |\n"
|
"| | | | |\n"
|
||||||
"| 3 | 4 | 55 | 67 |\n"
|
"| 3 | 4 | 55 | 67 |\n"
|
||||||
"| | | | |\n"
|
"| | | | |\n"
|
||||||
"+---+-------+----+----+\n"
|
"+---+-------+--------+----+\n"
|
||||||
"| | | | |\n"
|
"| | | | |\n"
|
||||||
"| 3 | 4 | 55 | 67 |\n"
|
"| 3 | 4 | 55 | 67 |\n"
|
||||||
"| | | | |\n"
|
"| | | | |\n"
|
||||||
"+---+-------+----+----+\n";
|
"+---+-------+--------+----+\n";
|
||||||
// fprintf(stderr, "content:\n%s", table_str);
|
// fprintf(stderr, "content:\n%s", table_str);
|
||||||
|
|
||||||
assert_true( strcmp(table_str, table_str_etalon) == 0);
|
assert_true( strcmp(table_str, table_str_etalon) == 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user