return 0;
}
-int table_hide_column_from_display(Table *t, size_t column) {
+int table_hide_column_from_display_internal(Table *t, ...) {
+ size_t cur = 0;
int r;
assert(t);
- assert(column < t->n_columns);
/* If the display map is empty, initialize it with all available columns */
if (!t->display_map) {
return r;
}
- size_t allocated = t->n_display_map, cur = 0;
+ for (size_t i = 0; i < t->n_display_map; i++) {
+ bool listed = false;
+ va_list ap;
+
+ va_start(ap, t);
+ for (;;) {
+ size_t column;
+
+ column = va_arg(ap, size_t);
+ if (column == SIZE_MAX)
+ break;
+ if (column == t->display_map[i]) {
+ listed = true;
+ break;
+ }
+ }
+ va_end(ap);
- for (size_t i = 0; i < allocated; i++) {
- if (t->display_map[i] == column)
+ if (listed)
continue;
t->display_map[cur++] = t->display_map[i];
int table_set_sort_internal(Table *t, size_t first_column, ...);
#define table_set_sort(...) table_set_sort_internal(__VA_ARGS__, SIZE_MAX)
int table_set_reverse(Table *t, size_t column, bool b);
-int table_hide_column_from_display(Table *t, size_t column);
+int table_hide_column_from_display_internal(Table *t, ...);
+#define table_hide_column_from_display(t, ...) table_hide_column_from_display_internal(t, __VA_ARGS__, (size_t) -1)
int table_print(Table *t, FILE *f);
int table_format(Table *t, char **ret);