for(int i = 0; i < tbl->column_count; i++) {
col_order_int[i] = i;
}
- table_col_order(tbl, col_order_int, tbl->column_count);
+ table_set_col_order(tbl, col_order_int, tbl->column_count);
}
void table_start(struct table *tbl, struct fastbuf *out)
return tmp;
}
-// FIXME: Shouldn't this be table_SET_col_order() ?
-void table_col_order(struct table *tbl, int *col_order, int cols_to_output)
+void table_set_col_order(struct table *tbl, int *col_order, int cols_to_output)
{
for(int i = 0; i < cols_to_output; i++) {
ASSERT_MSG(col_order[i] >= 0 && col_order[i] < tbl->column_count, "Column %d does not exist (column number should be between 0 and %d)", col_order[i], tbl->column_count - 1);
* TODO: This function deliberately leaks memory. When it is called multiple times,
* previous column orders still remain allocated in the table's memory pool.
**/
-const char * table_col_order_by_name(struct table *tbl, const char *col_order_str)
+const char * table_set_col_order_by_name(struct table *tbl, const char *col_order_str)
{
if(!col_order_str[0]) {
tbl->column_order = mp_alloc(tbl->pool, 0);
TABLE_COL_BODIES(str, const char *, COL_TYPE_STR)
TABLE_COL_BODIES(intmax, intmax_t, COL_TYPE_INTMAX)
TABLE_COL_BODIES(uintmax, uintmax_t, COL_TYPE_UINTMAX)
+TABLE_COL_BODIES(u64, u64, COL_TYPE_U64)
#undef TABLE_COL
#undef TABLE_COL_FMT
#undef TABLE_COL_STR
TABLE_APPEND(str, const char *, COL_TYPE_STR)
TABLE_APPEND(intmax, intmax_t, COL_TYPE_INTMAX)
TABLE_APPEND(uintmax, uintmax_t, COL_TYPE_UINTMAX)
+TABLE_APPEND(u64, u64, COL_TYPE_U64)
#undef TABLE_APPEND
void table_append_bool(struct table *tbl, int val)
// Options with a value
if(value) {
if(strcmp(key, "header") == 0) {
- // FIXME: Check syntax of value.
- //tbl->print_header = strtol(value, NULL, 10); //atoi(value);
- //if(errno != 0) tbl->print_header
if(value[1] != 0)
return mp_printf(tbl->pool, "Tableprinter: invalid option: '%s' has invalid value: '%s'.", key, value);
uint tmp = value[0] - '0';
tbl->print_header = tmp;
return NULL;
} else if(strcmp(key, "cols") == 0) {
- const char *err = table_col_order_by_name(tbl, value);
+ const char *err = table_set_col_order_by_name(tbl, value);
if(err != NULL) {
return mp_printf(tbl->pool, "%s, possible column names are: %s.", err, table_get_col_list(tbl));
}
table_init(&test_tbl);
// print table with header
- table_col_order_by_name(&test_tbl, "col3_bool");
+ table_set_col_order_by_name(&test_tbl, "col3_bool");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
// print the same table as in the previous case without header
- table_col_order_by_name(&test_tbl, "col0_str,col2_uint,col1_int,col3_bool");
+ table_set_col_order_by_name(&test_tbl, "col0_str,col2_uint,col1_int,col3_bool");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
- // this also tests whether there is need to call table_col_order_by_name after table_end was called
+ // this also tests whether there is need to call table_set_col_order_by_name after table_end was called
test_tbl.print_header = 0;
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
test_tbl.print_header = 1;
- table_col_order_by_name(&test_tbl, "col3_bool");
+ table_set_col_order_by_name(&test_tbl, "col3_bool");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
- table_col_order_by_name(&test_tbl, "col3_bool,col0_str");
+ table_set_col_order_by_name(&test_tbl, "col3_bool,col0_str");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
- table_col_order_by_name(&test_tbl, "col0_str,col3_bool,col2_uint");
+ table_set_col_order_by_name(&test_tbl, "col0_str,col3_bool,col2_uint");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
- table_col_order_by_name(&test_tbl, "col0_str,col3_bool,col2_uint,col0_str,col3_bool,col2_uint,col0_str,col3_bool,col2_uint");
+ table_set_col_order_by_name(&test_tbl, "col0_str,col3_bool,col2_uint,col0_str,col3_bool,col2_uint,col0_str,col3_bool,col2_uint");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);
- table_col_order_by_name(&test_tbl, "col0_str,col1_int,col2_uint,col3_bool,col4_double");
+ table_set_col_order_by_name(&test_tbl, "col0_str,col1_int,col2_uint,col3_bool,col4_double");
table_start(&test_tbl, out);
do_print1(&test_tbl);
table_end(&test_tbl);