Top |
struct libscols_table *
scols_copy_table (struct libscols_table *tb
);
Creates a new independent table copy, except struct libscols_symbols that are shared between the tables.
int scols_sort_table (struct libscols_table *tb
,struct libscols_column *cl
);
Orders the table by the column. See also scols_column_set_cmpfunc()
.
int scols_table_add_column (struct libscols_table *tb
,struct libscols_column *cl
);
Adds cl
to tb
's column list. The column cannot be shared between more
tables.
int scols_table_add_line (struct libscols_table *tb
,struct libscols_line *ln
);
Note that this function calls scols_line_alloc_cells()
if number
of the cells in the line is too small for tb
.
int scols_table_enable_ascii (struct libscols_table *tb
,int enable
);
The ASCII-only output is relevant for tree-like outputs. The library checks if the current environment is UTF8 compatible by default. This function overrides this check and force the library to use ASCII chars for the tree.
If a custom libcols_symbols are specified (see scols_table_set_symbols()
then ASCII flag setting is ignored.
int scols_table_enable_colors (struct libscols_table *tb
,int enable
);
Enable/disable colors.
int scols_table_enable_export (struct libscols_table *tb
,int enable
);
Enable/disable export output format (COLUMNAME="value" ...). The parsable output formats (export and raw) are mutually exclusive.
int scols_table_enable_json (struct libscols_table *tb
,int enable
);
Enable/disable JSON output format. The parsable output formats (export, raw, JSON, ...) are mutually exclusive.
Since: 2.27
int scols_table_enable_maxout (struct libscols_table *tb
,int enable
);
The extra space after last column is ignored by default. The output maximization use the extra space for all columns.
int scols_table_enable_noheadings (struct libscols_table *tb
,int enable
);
Enable/disable header line.
int scols_table_enable_nolinesep (struct libscols_table *tb
,int enable
);
Enable/disable line separator printing. This is useful if you want to re-printing the same line more than once (e.g. progress bar). Don't use it if you're not sure.
int scols_table_enable_nowrap (struct libscols_table *tb
,int enable
);
Never continue on next line, remove last column(s) when too large, truncate last column.
Since: 2.28
int scols_table_enable_raw (struct libscols_table *tb
,int enable
);
Enable/disable raw output format. The parsable output formats (export, raw, JSON, ...) are mutually exclusive.
struct libscols_column * scols_table_get_column (struct libscols_table *tb
,size_t n
);
const char *
scols_table_get_column_separator (const struct libscols_table *tb
);
struct libscols_line * scols_table_get_line (struct libscols_table *tb
,size_t n
);
const char *
scols_table_get_line_separator (const struct libscols_table *tb
);
const char *
scols_table_get_name (const struct libscols_table *tb
);
Since: 2.29
FILE *
scols_table_get_stream (const struct libscols_table *tb
);
Gets the output stream for table tb
.
struct libscols_symbols *
scols_table_get_symbols (const struct libscols_table *tb
);
Since: 2.29
int
scols_table_get_termforce (const struct libscols_table *tb
);
Since: 2.29
struct libscols_cell *
scols_table_get_title (struct libscols_table *tb
);
The returned pointer is possible to modify by cell functions. Note that title output alignment on non-tty is hardcoded to 80 output chars. For the regular terminal it's based on terminal width.
Since: 2.28
int
scols_table_is_nolinesep (const struct libscols_table *tb
);
Since: 2.29
struct libscols_column * scols_table_new_column (struct libscols_table *tb
,const char *name
,double whint
,int flags
);
This is shortcut for
cl = scols_new_column()
;
scols_column_set_....(cl, ...);
scols_table_add_column(tb, cl);
The column width is possible to define by:
whint
= 0..1 : relative width, percent of terminal width
whint
= 1..N : absolute width, empty column will be truncated to
the column header width if no specified STRICTWIDTH flag
Note that if table has disabled "maxout" flag (disabled by default) than relative width is used as a hint only. It's possible that column will be narrow if the specified size is too large for column data.
The column is necessary to address by sequential number. The first defined column has the colnum = 0. For example:
scols_table_new_column(tab, "FOO", 0.5, 0); // colnum = 0 scols_table_new_column(tab, "BAR", 0.5, 0); // colnum = 1 . . scols_line_get_cell(line, 0); // FOO column scols_line_get_cell(line, 1); // BAR column
struct libscols_line * scols_table_new_line (struct libscols_table *tb
,struct libscols_line *parent
);
This is shortcut for
ln = scols_new_line()
;
scols_table_add_line(tb, ln);
scols_line_add_child(parent, ln);
int scols_table_next_column (struct libscols_table *tb
,struct libscols_iter *itr
,struct libscols_column **cl
);
Returns the next column of tb
via cl
.
int scols_table_next_line (struct libscols_table *tb
,struct libscols_iter *itr
,struct libscols_line **ln
);
Finds the next line and returns a pointer to it via ln
.
int scols_table_reduce_termwidth (struct libscols_table *tb
,size_t reduce
);
If necessary then libsmartcols use all terminal width, the reduce
setting
provides extra space (for example for borders in ncurses applications).
The reduce
must be smaller than terminal width, otherwise it's silently
ignored. The reduction is not applied when STDOUT_FILENO is not terminal.
int scols_table_remove_column (struct libscols_table *tb
,struct libscols_column *cl
);
Removes cl
from tb
.
int
scols_table_remove_columns (struct libscols_table *tb
);
Removes all of tb
's columns.
int scols_table_remove_line (struct libscols_table *tb
,struct libscols_line *ln
);
Note that this function does not destroy the parent<->child relationship between lines.
You have to call scols_line_remove_child()
void
scols_table_remove_lines (struct libscols_table *tb
);
This empties the table and also destroys all the parent<->child relationships.
int scols_table_set_column_separator (struct libscols_table *tb
,const char *sep
);
Sets the column separator of tb
to sep
.
Please note that sep
should always take up a single cell in the output.
int
scols_table_set_default_symbols (struct libscols_table *tb
);
The library check the current environment to select ASCII or UTF8 symbols.
This default behavior could be controlled by scols_table_enable_ascii()
.
Use scols_table_set_symbols()
to unset symbols or use your own setting.
Since: 2.29
int scols_table_set_line_separator (struct libscols_table *tb
,const char *sep
);
Sets the line separator of tb
to sep
.
int scols_table_set_name (struct libscols_table *tb
,const char *name
);
The table name is used for example for JSON top level object name.
Since: 2.27
int scols_table_set_stream (struct libscols_table *tb
,FILE *stream
);
Sets the output stream for table tb
.
int scols_table_set_symbols (struct libscols_table *tb
,struct libscols_symbols *sy
);
Add a reference to sy
from the table. The symbols are used by library to
draw tree output. If no symbols are used for the table then library creates
default temporary symbols to draw output by scols_table_set_default_symbols()
.
If sy
is NULL then remove reference from the currenly uses symbols.
int scols_table_set_termforce (struct libscols_table *tb
,int force
);
Forces library to use stdout as terminal, non-terminal or use automatic detection (default).
Since: 2.29
int scols_table_set_termwidth (struct libscols_table *tb
,size_t width
);
The library automatically detects terminal width or defaults to 80 chars if detections is unsuccessful. This function override this behaviour.
Since: 2.29