libsmartcols: documentation
Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
This commit is contained in:
parent
b72b824d06
commit
1d90bcb1a8
|
@ -1618,6 +1618,8 @@ libblkid/src/blkid.h
|
|||
libmount/docs/Makefile
|
||||
libmount/docs/version.xml
|
||||
libmount/src/libmount.h
|
||||
libsmartcols/docs/Makefile
|
||||
libsmartcols/docs/version.xml
|
||||
libsmartcols/src/libsmartcols.h
|
||||
po/Makefile.in
|
||||
])
|
||||
|
|
|
@ -2,10 +2,10 @@ if BUILD_LIBSMARTCOLS
|
|||
|
||||
include libsmartcols/src/Makemodule.am
|
||||
|
||||
#if ENABLE_GTK_DOC
|
||||
if ENABLE_GTK_DOC
|
||||
# Docs uses separate Makefiles
|
||||
#SUBDIRS += libsmartcols/docs
|
||||
#endif
|
||||
SUBDIRS += libsmartcols/docs
|
||||
endif
|
||||
|
||||
pkgconfig_DATA += libsmartcols/smartcols.pc
|
||||
PATHFILES += libsmartcols/smartcols.pc
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
*-decl-list.txt
|
||||
*-decl.txt
|
||||
*-overrides.txt
|
||||
*-undeclared.txt
|
||||
*-undocumented.txt
|
||||
*-unused.txt
|
||||
*.args
|
||||
*.bak
|
||||
*.hierarchy
|
||||
*.interfaces
|
||||
*.prerequisites
|
||||
*.signals
|
||||
*.stamp
|
||||
*.types
|
||||
html/*
|
||||
tmpl/*
|
||||
version.xml
|
||||
xml/*
|
|
@ -0,0 +1,93 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
# We require automake 1.10 at least.
|
||||
AUTOMAKE_OPTIONS = 1.10
|
||||
|
||||
# This is a blank Makefile.am for using gtk-doc.
|
||||
# Copy this to your project's API docs directory and modify the variables to
|
||||
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
|
||||
# of using the various options.
|
||||
|
||||
# The name of the module, e.g. 'glib'.
|
||||
DOC_MODULE=libsmartcols
|
||||
|
||||
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
|
||||
#DOC_MODULE_VERSION=2
|
||||
|
||||
# The top-level SGML file. You can change this if you want to.
|
||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
|
||||
|
||||
# The directory containing the source code. Relative to $(srcdir).
|
||||
# gtk-doc will search all .c & .h files beneath here for inline comments
|
||||
# documenting the functions and macros.
|
||||
# e.g. DOC_SOURCE_DIR=../../../gtk
|
||||
DOC_SOURCE_DIR=../src
|
||||
|
||||
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||
SCANGOBJ_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-scan.
|
||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb.
|
||||
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
|
||||
MKDB_OPTIONS=--sgml-mode --output-format=xml --name-space mnt
|
||||
|
||||
# Extra options to supply to gtkdoc-mktmpl
|
||||
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
|
||||
MKTMPL_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-mkhtml
|
||||
MKHTML_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-fixref. Not normally needed.
|
||||
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
|
||||
FIXXREF_OPTIONS=
|
||||
|
||||
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||
HFILE_GLOB=$(top_builddir)/libsmartcols/src/libsmartcols.h
|
||||
CFILE_GLOB=$(top_srcdir)/libsmartcols/src/*.c
|
||||
|
||||
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
|
||||
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
|
||||
EXTRA_HFILES=
|
||||
|
||||
# Header files to ignore when scanning. Use base file name, no paths
|
||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
|
||||
IGNORE_HFILES=smartcolsP.h
|
||||
|
||||
# Images to copy into HTML directory.
|
||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||
HTML_IMAGES=
|
||||
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||
content_files = $(builddir)/version.xml
|
||||
|
||||
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
||||
# These files must be listed here *and* in content_files
|
||||
# e.g. expand_content_files=running.sgml
|
||||
expand_content_files=
|
||||
|
||||
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||
# signals and properties.
|
||||
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
GTKDOC_CFLAGS=
|
||||
GTKDOC_LIBS=
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/config/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
# e.g. EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST += version.xml.in
|
||||
|
||||
# Files not to distribute
|
||||
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
||||
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
|
||||
DISTCLEANFILES += version.xml
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
||||
[
|
||||
<!ENTITY version SYSTEM "version.xml">
|
||||
]>
|
||||
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<bookinfo>
|
||||
<title>libsmartcols Reference Manual</title>
|
||||
<releaseinfo>for libsmartcols version &version;</releaseinfo>
|
||||
<copyright>
|
||||
<year>2014</year>
|
||||
<holder>Karel Zak <kzak@redhat.com></holder>
|
||||
</copyright>
|
||||
</bookinfo>
|
||||
|
||||
<part id="gtk">
|
||||
<title>libsmartcols Overview</title>
|
||||
<partintro>
|
||||
<para>
|
||||
The libsmartcols library is used for smart adaptive formatting of tabular data.
|
||||
</para>
|
||||
<para>
|
||||
The library is part of the util-linux package since version 2.25 and is
|
||||
available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
|
||||
</para>
|
||||
</partintro>
|
||||
</part>
|
||||
|
||||
<part>
|
||||
<title>Data manipulation</title>
|
||||
<xi:include href="xml/table.xml"/>
|
||||
<xi:include href="xml/column.xml"/>
|
||||
<xi:include href="xml/line.xml"/>
|
||||
<xi:include href="xml/cell.xml"/>
|
||||
<xi:include href="xml/symbols.xml"/>
|
||||
</part>
|
||||
<part>
|
||||
<title>Printing</title>
|
||||
<xi:include href="xml/table_print.xml"/>
|
||||
</part>
|
||||
<part>
|
||||
<title>Misc</title>
|
||||
<xi:include href="xml/iter.xml"/>
|
||||
</part>
|
||||
<index id="api-index-full">
|
||||
<title>API Index</title>
|
||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
</book>
|
|
@ -0,0 +1,124 @@
|
|||
<SECTION>
|
||||
<FILE>cell</FILE>
|
||||
libscols_cell
|
||||
scols_cell_copy_content
|
||||
scols_cell_get_color
|
||||
scols_cell_get_data
|
||||
scols_cell_refer_data
|
||||
scols_cell_set_color
|
||||
scols_cell_set_data
|
||||
scols_reset_cell
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>column</FILE>
|
||||
libscols_column
|
||||
scols_column_get_color
|
||||
scols_column_get_flags
|
||||
scols_column_get_header
|
||||
scols_column_get_whint
|
||||
scols_column_is_no_extremes
|
||||
scols_column_is_right
|
||||
scols_column_is_strict_width
|
||||
scols_column_is_tree
|
||||
scols_column_is_trunc
|
||||
scols_column_set_color
|
||||
scols_column_set_flags
|
||||
scols_column_set_whint
|
||||
scols_copy_column
|
||||
scols_new_column
|
||||
scols_ref_column
|
||||
scols_unref_column
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>iter</FILE>
|
||||
libscols_iter
|
||||
scols_free_iter
|
||||
scols_iter_get_direction
|
||||
scols_new_iter
|
||||
scols_reset_iter
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>line</FILE>
|
||||
libscols_line
|
||||
scols_copy_line
|
||||
scols_line_add_child
|
||||
scols_line_alloc_cells
|
||||
scols_line_free_cells
|
||||
scols_line_get_cell
|
||||
scols_line_get_color
|
||||
scols_line_get_ncells
|
||||
scols_line_get_parent
|
||||
scols_line_get_userdata
|
||||
scols_line_has_children
|
||||
scols_line_next_child
|
||||
scols_line_refer_data
|
||||
scols_line_remove_child
|
||||
scols_line_set_color
|
||||
scols_line_set_data
|
||||
scols_line_set_userdata
|
||||
scols_new_line
|
||||
scols_ref_line
|
||||
scols_unref_line
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>symbols</FILE>
|
||||
libscols_symbols
|
||||
scols_copy_symbols
|
||||
scols_new_symbols
|
||||
scols_ref_symbols
|
||||
scols_symbols_set_branch
|
||||
scols_symbols_set_right
|
||||
scols_symbols_set_vertical
|
||||
scols_unref_symbols
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>table</FILE>
|
||||
libscols_table
|
||||
scols_copy_table
|
||||
scols_new_table
|
||||
scols_ref_table
|
||||
scols_table_add_column
|
||||
scols_table_add_line
|
||||
scols_table_colors_wanted
|
||||
scols_table_enable_colors
|
||||
scols_table_get_column
|
||||
scols_table_get_line
|
||||
scols_table_get_ncols
|
||||
scols_table_get_nlines
|
||||
scols_table_get_stream
|
||||
scols_table_is_ascii
|
||||
scols_table_is_export
|
||||
scols_table_is_max
|
||||
scols_table_is_no_headings
|
||||
scols_table_is_raw
|
||||
scols_table_is_tree
|
||||
scols_table_new_column
|
||||
scols_table_new_line
|
||||
scols_table_next_column
|
||||
scols_table_next_line
|
||||
scols_table_reduce_termwidth
|
||||
scols_table_remove_column
|
||||
scols_table_remove_columns
|
||||
scols_table_remove_line
|
||||
scols_table_remove_lines
|
||||
scols_table_set_ascii
|
||||
scols_table_set_export
|
||||
scols_table_set_max
|
||||
scols_table_set_no_headings
|
||||
scols_table_set_raw
|
||||
scols_table_set_stream
|
||||
scols_table_set_symbols
|
||||
scols_table_set_tree
|
||||
scols_unref_table
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>table_print</FILE>
|
||||
scols_print_table
|
||||
scols_print_table_to_string
|
||||
</SECTION>
|
|
@ -0,0 +1 @@
|
|||
@VERSION@
|
|
@ -8,6 +8,14 @@
|
|||
* GNU Lesser General Public License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION: cell
|
||||
* @title: Cell
|
||||
* @short_description: cell API
|
||||
*
|
||||
* An API to access and modify per-cell data and information.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -20,6 +28,15 @@
|
|||
* The cell has no ref-counting, free() and new() functions. All is
|
||||
* handled by libscols_line.
|
||||
*/
|
||||
|
||||
/**
|
||||
* scols_reset_cell:
|
||||
* @ce: pointer to a struct libscols_cell instance
|
||||
*
|
||||
* Frees the cell's internal data and resets its status.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_reset_cell(struct libscols_cell *ce)
|
||||
{
|
||||
assert(ce);
|
||||
|
@ -34,7 +51,15 @@ int scols_reset_cell(struct libscols_cell *ce)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* stores copy of the @str to cell */
|
||||
/**
|
||||
* scols_cell_set_data:
|
||||
* @ce: a pointer to a struct libscols_cell instance
|
||||
* @str: user data
|
||||
*
|
||||
* Stores a copy of the @str in @ce.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_cell_set_data(struct libscols_cell *ce, const char *str)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
@ -55,7 +80,15 @@ int scols_cell_set_data(struct libscols_cell *ce, const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* add reference to @str to cell */
|
||||
/**
|
||||
* scols_cell_refer_data:
|
||||
* @ce: a pointer to a struct libscols_cell instance
|
||||
* @str: user data
|
||||
*
|
||||
* Adds a reference to @str to @ce.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_cell_refer_data(struct libscols_cell *ce, char *str)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
@ -71,12 +104,27 @@ int scols_cell_refer_data(struct libscols_cell *ce, char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_cell_get_data:
|
||||
* @ce: a pointer to a struct libscols_cell instance
|
||||
*
|
||||
* Returns: data in @ce or NULL.
|
||||
*/
|
||||
const char *scols_cell_get_data(const struct libscols_cell *ce)
|
||||
{
|
||||
assert(ce);
|
||||
return ce ? ce->data : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_cell_set_color:
|
||||
* @ce: a pointer to a struct libscols_cell instance
|
||||
* @color: a color string
|
||||
*
|
||||
* Set the color of @ce to @color.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_cell_set_color(struct libscols_cell *ce, const char *color)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
@ -101,12 +149,27 @@ int scols_cell_set_color(struct libscols_cell *ce, const char *color)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_cell_get_data:
|
||||
* @ce: a pointer to a struct libscols_cell instance
|
||||
*
|
||||
* Returns: the current color of @ce.
|
||||
*/
|
||||
const char *scols_cell_get_color(const struct libscols_cell *ce)
|
||||
{
|
||||
assert(ce);
|
||||
return ce ? ce->color : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_cell_copy_content:
|
||||
* @dest: a pointer to a struct libscols_cell instance
|
||||
* @src: a pointer to an immutable struct libscols_cell instance
|
||||
*
|
||||
* Copy the contents of @src into @dest.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_cell_copy_content(struct libscols_cell *dest,
|
||||
const struct libscols_cell *src)
|
||||
{
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
* GNU Lesser General Public License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION: column
|
||||
* @title: Column
|
||||
* @short_description: column API
|
||||
*
|
||||
* An API to access and modify per-column data and information.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -16,6 +24,13 @@
|
|||
|
||||
#include "smartcolsP.h"
|
||||
|
||||
/**
|
||||
* scols_new_column:
|
||||
*
|
||||
* Allocates space for a new column.
|
||||
*
|
||||
* Returns: a pointer to a new struct libscols_cell instance, NULL in case of an ENOMEM error.
|
||||
*/
|
||||
struct libscols_column *scols_new_column(void)
|
||||
{
|
||||
struct libscols_column *cl;
|
||||
|
@ -29,12 +44,24 @@ struct libscols_column *scols_new_column(void)
|
|||
return cl;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_ref_column:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Increases the refcount of @cl.
|
||||
*/
|
||||
void scols_ref_column(struct libscols_column *cl)
|
||||
{
|
||||
if (cl)
|
||||
cl->refcount++;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_unref_column:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Decreases the refcount of @cl.
|
||||
*/
|
||||
void scols_unref_column(struct libscols_column *cl)
|
||||
{
|
||||
if (cl && --cl->refcount <= 0) {
|
||||
|
@ -45,6 +72,14 @@ void scols_unref_column(struct libscols_column *cl)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_copy_column:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Creates a new column and copies @cl's data over to it.
|
||||
*
|
||||
* Returns: a pointer to a new struct libscols_column instance.
|
||||
*/
|
||||
struct libscols_column *scols_copy_column(const struct libscols_column *cl)
|
||||
{
|
||||
struct libscols_column *ret;
|
||||
|
@ -75,6 +110,15 @@ err:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_column_set_whint:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
* @whint: a width hint
|
||||
*
|
||||
* Sets the width hint of column @cl to @whint.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_column_set_whint(struct libscols_column *cl, double whint)
|
||||
{
|
||||
assert(cl);
|
||||
|
@ -86,12 +130,27 @@ int scols_column_set_whint(struct libscols_column *cl, double whint)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_column_get_whint:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Returns: The width hint of column @cl, a negative value in case of an error.
|
||||
*/
|
||||
double scols_column_get_whint(struct libscols_column *cl)
|
||||
{
|
||||
assert(cl);
|
||||
return cl ? cl->width_hint : -EINVAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_column_set_flags:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
* @flags: a flag mask
|
||||
*
|
||||
* Sets the flags of @cl to @flags.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_column_set_flags(struct libscols_column *cl, int flags)
|
||||
{
|
||||
assert(cl);
|
||||
|
@ -103,19 +162,36 @@ int scols_column_set_flags(struct libscols_column *cl, int flags)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_column_get_flags:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Returns: The flag mask of @cl, a negative value in case of an error.
|
||||
*/
|
||||
int scols_column_get_flags(struct libscols_column *cl)
|
||||
{
|
||||
assert(cl);
|
||||
return cl ? cl->flags : -EINVAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_column_get_flags:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Returns: A pointer to a struct libscols_cell instance, representing the
|
||||
* header info of column @cl or NULL in case of an error.
|
||||
*/
|
||||
struct libscols_cell *scols_column_get_header(struct libscols_column *cl)
|
||||
{
|
||||
assert(cl);
|
||||
return cl ? &cl->header : NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_column_set_color:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
* @color: a color string
|
||||
*
|
||||
* The default color for data cells and column header.
|
||||
*
|
||||
* If you want to set header specific color then use scols_column_get_header()
|
||||
|
@ -123,6 +199,8 @@ struct libscols_cell *scols_column_get_header(struct libscols_column *cl)
|
|||
*
|
||||
* If you want to set data cell specific color the use scols_line_get_cell() +
|
||||
* scols_cell_set_color().
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_column_set_color(struct libscols_column *cl, const char *color)
|
||||
{
|
||||
|
@ -148,6 +226,12 @@ int scols_column_set_color(struct libscols_column *cl, const char *color)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_column_get_color:
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Returns: The current color setting of the column @cl.
|
||||
*/
|
||||
const char *scols_column_get_color(struct libscols_column *cl)
|
||||
{
|
||||
assert(cl);
|
||||
|
@ -156,9 +240,9 @@ const char *scols_column_get_color(struct libscols_column *cl)
|
|||
|
||||
/**
|
||||
* scols_column_is_trunc:
|
||||
* @cl: column
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Get the value of trunc
|
||||
* Gets the value of @cl's flag trunc.
|
||||
*
|
||||
* Returns: trunc flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -171,9 +255,9 @@ int scols_column_is_trunc(struct libscols_column *cl)
|
|||
}
|
||||
/**
|
||||
* scols_column_is_tree:
|
||||
* @cl: column
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Get the value of tree
|
||||
* Gets the value of @cl's flag tree.
|
||||
*
|
||||
* Returns: tree flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -186,9 +270,9 @@ int scols_column_is_tree(struct libscols_column *cl)
|
|||
}
|
||||
/**
|
||||
* scols_column_is_right:
|
||||
* @cl: column
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Get the value of right
|
||||
* Gets the value of @cl's flag right.
|
||||
*
|
||||
* Returns: right flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -201,9 +285,9 @@ int scols_column_is_right(struct libscols_column *cl)
|
|||
}
|
||||
/**
|
||||
* scols_column_is_strict_width:
|
||||
* @cl: column
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Get the value of strict_width
|
||||
* Gets the value of @cl's flag strict_width.
|
||||
*
|
||||
* Returns: strict_width flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -216,9 +300,9 @@ int scols_column_is_strict_width(struct libscols_column *cl)
|
|||
}
|
||||
/**
|
||||
* scols_column_is_no_extremes:
|
||||
* @cl: column
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Get the value of no_extremes
|
||||
* Gets the value of @cl's flag no_extremes.
|
||||
*
|
||||
* Returns: no_extremes flag value, negative value in case of an error.
|
||||
*/
|
||||
|
|
|
@ -19,11 +19,46 @@ extern "C" {
|
|||
|
||||
#define LIBSMARTCOLS_VERSION "@LIBSMARTCOLS_VERSION@"
|
||||
|
||||
/**
|
||||
* libscols_iter:
|
||||
*
|
||||
* Generic iterator
|
||||
*/
|
||||
struct libscols_iter;
|
||||
|
||||
/**
|
||||
* libscols_symbols:
|
||||
*
|
||||
* Symbol groups for printing tree hierarchies
|
||||
*/
|
||||
struct libscols_symbols;
|
||||
|
||||
/**
|
||||
* libscols_cell:
|
||||
*
|
||||
* A cell - the smallest library object
|
||||
*/
|
||||
struct libscols_cell;
|
||||
|
||||
/**
|
||||
* libscols_line:
|
||||
*
|
||||
* A line - an array of cells
|
||||
*/
|
||||
struct libscols_line;
|
||||
|
||||
/**
|
||||
* libscols_table:
|
||||
*
|
||||
* A table - The most abstract object, encapsulating lines, columns, symbols and cells
|
||||
*/
|
||||
struct libscols_table;
|
||||
|
||||
/**
|
||||
* libscols_column:
|
||||
*
|
||||
* A column - defines the number of columns and column names
|
||||
*/
|
||||
struct libscols_column;
|
||||
|
||||
/* iter.c */
|
||||
|
@ -33,10 +68,10 @@ enum {
|
|||
SCOLS_ITER_BACKWARD
|
||||
};
|
||||
|
||||
/*
|
||||
* Column flags
|
||||
*/
|
||||
enum {
|
||||
/*
|
||||
* Column flags
|
||||
*/
|
||||
SCOLS_FL_TRUNC = (1 << 15), /* truncate fields data if necessary */
|
||||
SCOLS_FL_TREE = (1 << 16), /* use tree "ascii art" */
|
||||
SCOLS_FL_RIGHT = (1 << 17), /* align to the right */
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
* GNU Lesser General Public License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION: line
|
||||
* @title: Line
|
||||
* @short_description: line API
|
||||
*
|
||||
* An API to access and modify per-line data and information.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -16,11 +24,15 @@
|
|||
|
||||
#include "smartcolsP.h"
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_new_line:
|
||||
*
|
||||
* Note that the line is allocated without cells, the cells will be allocated
|
||||
* later when you add the line to the table. If you want to use the line
|
||||
* without table then you have to explicitly allocate the cells by
|
||||
* scols_line_alloc_cells().
|
||||
*
|
||||
* Returns: a pointer to a new struct libscols_line instance.
|
||||
*/
|
||||
struct libscols_line *scols_new_line(void)
|
||||
{
|
||||
|
@ -36,12 +48,24 @@ struct libscols_line *scols_new_line(void)
|
|||
return ln;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_ref_line:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Increases the refcount of @ln.
|
||||
*/
|
||||
void scols_ref_line(struct libscols_line *ln)
|
||||
{
|
||||
if (ln)
|
||||
ln->refcount++;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_unref_line:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Decreases the refcount of @ln.
|
||||
*/
|
||||
void scols_unref_line(struct libscols_line *ln)
|
||||
{
|
||||
|
||||
|
@ -56,6 +80,12 @@ void scols_unref_line(struct libscols_line *ln)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_free_cells:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Frees the allocated cells referenced to by @ln.
|
||||
*/
|
||||
void scols_line_free_cells(struct libscols_line *ln)
|
||||
{
|
||||
size_t i;
|
||||
|
@ -71,7 +101,15 @@ void scols_line_free_cells(struct libscols_line *ln)
|
|||
ln->cells = NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* scols_line_alloc_cells:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @n: the number of elements
|
||||
*
|
||||
* Allocates space for @n cells.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_alloc_cells(struct libscols_line *ln, size_t n)
|
||||
{
|
||||
struct libscols_cell *ce;
|
||||
|
@ -101,6 +139,15 @@ int scols_line_alloc_cells(struct libscols_line *ln, size_t n)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_set_userdata:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @data: user data
|
||||
*
|
||||
* Binds @data to @ln.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_set_userdata(struct libscols_line *ln, void *data)
|
||||
{
|
||||
assert(ln);
|
||||
|
@ -110,12 +157,27 @@ int scols_line_set_userdata(struct libscols_line *ln, void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_get_userdata:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
void *scols_line_get_userdata(struct libscols_line *ln)
|
||||
{
|
||||
assert(ln);
|
||||
return ln ? ln->userdata : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_remove_child:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @child: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Removes @child as a child of @ln.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_remove_child(struct libscols_line *ln, struct libscols_line *child)
|
||||
{
|
||||
assert(ln);
|
||||
|
@ -131,6 +193,15 @@ int scols_line_remove_child(struct libscols_line *ln, struct libscols_line *chil
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_add_child:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @child: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Sets @child as a child of @ln.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_add_child(struct libscols_line *ln, struct libscols_line *child)
|
||||
{
|
||||
assert(ln);
|
||||
|
@ -154,18 +225,40 @@ int scols_line_add_child(struct libscols_line *ln, struct libscols_line *child)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_get_parent:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Returns: a pointer to @ln's parent, NULL in case it has no parent or if there was an error.
|
||||
*/
|
||||
struct libscols_line *scols_line_get_parent(struct libscols_line *ln)
|
||||
{
|
||||
assert(ln);
|
||||
return ln ? ln->parent : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_has_children:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Returns: 1 if @ln has any children, otherwise 0.
|
||||
*/
|
||||
int scols_line_has_children(struct libscols_line *ln)
|
||||
{
|
||||
assert(ln);
|
||||
return ln ? !list_empty(&ln->ln_branch) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_next_child:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @itr: a pointer to a struct libscols_iter instance
|
||||
* @chld: a pointer to a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Finds the next child and returns a pointer to it via @chld.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_next_child(struct libscols_line *ln,
|
||||
struct libscols_iter *itr,
|
||||
struct libscols_line **chld)
|
||||
|
@ -186,8 +279,12 @@ int scols_line_next_child(struct libscols_line *ln,
|
|||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* The default line color, used when cell color unspecified.
|
||||
/**
|
||||
* scols_line_set_color:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @color: a color string
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_set_color(struct libscols_line *ln, const char *color)
|
||||
{
|
||||
|
@ -213,18 +310,37 @@ int scols_line_set_color(struct libscols_line *ln, const char *color)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_get_color:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Returns: @ln's color string, NULL in case of an error.
|
||||
*/
|
||||
const char *scols_line_get_color(struct libscols_line *ln)
|
||||
{
|
||||
assert(ln);
|
||||
return ln ? ln->color : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_get_ncells:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Returns: @ln's number of cells
|
||||
*/
|
||||
size_t scols_line_get_ncells(struct libscols_line *ln)
|
||||
{
|
||||
assert(ln);
|
||||
return ln ? ln->ncells : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_line_get_cell:
|
||||
* @ln: a pointer to a struct libscols_line instance
|
||||
* @n: cell number to retrieve
|
||||
*
|
||||
* Returns: the @n-th cell in @ln, NULL in case of an error.
|
||||
*/
|
||||
struct libscols_cell *scols_line_get_cell(struct libscols_line *ln,
|
||||
size_t n)
|
||||
{
|
||||
|
@ -235,7 +351,14 @@ struct libscols_cell *scols_line_get_cell(struct libscols_line *ln,
|
|||
return &ln->cells[n];
|
||||
}
|
||||
|
||||
/* just shortcut */
|
||||
/**
|
||||
* scols_line_set_data:
|
||||
* @ln: a pointer to a struct libscols_cell instance
|
||||
* @n: number of the cell, whose data is to be set
|
||||
* @data: actual data to set
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_set_data(struct libscols_line *ln, size_t n, const char *data)
|
||||
{
|
||||
struct libscols_cell *ce = scols_line_get_cell(ln, n);
|
||||
|
@ -245,7 +368,14 @@ int scols_line_set_data(struct libscols_line *ln, size_t n, const char *data)
|
|||
return scols_cell_set_data(ce, data);
|
||||
}
|
||||
|
||||
/* just shortcut */
|
||||
/**
|
||||
* scols_line_set_data:
|
||||
* @ln: a pointer to a struct libscols_cell instance
|
||||
* @n: number of the cell which will refer to @data
|
||||
* @data: actual data to refer to
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_line_refer_data(struct libscols_line *ln, size_t n, char *data)
|
||||
{
|
||||
struct libscols_cell *ce = scols_line_get_cell(ln, n);
|
||||
|
@ -255,6 +385,12 @@ int scols_line_refer_data(struct libscols_line *ln, size_t n, char *data)
|
|||
return scols_cell_refer_data(ce, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_copy_line:
|
||||
* @ln: a pointer to a struct libscols_cell instance
|
||||
*
|
||||
* Returns: A newly allocated copy of @ln, NULL in case of an error.
|
||||
*/
|
||||
struct libscols_line *scols_copy_line(struct libscols_line *ln)
|
||||
{
|
||||
struct libscols_line *ret;
|
||||
|
|
|
@ -6,6 +6,15 @@
|
|||
* This file may be redistributed under the terms of the
|
||||
* GNU Lesser General Public License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION: symbols
|
||||
* @title: Symbols
|
||||
* @short_description: symbols API
|
||||
*
|
||||
* An API to access and modify data and information per symbol/symbol group.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -13,6 +22,11 @@
|
|||
|
||||
#include "smartcolsP.h"
|
||||
|
||||
/**
|
||||
* scols_new_symbols:
|
||||
*
|
||||
* Returns: a pointer to a newly allocated struct libscols_symbols instance.
|
||||
*/
|
||||
struct libscols_symbols *scols_new_symbols(void)
|
||||
{
|
||||
struct libscols_symbols *sy = calloc(1, sizeof(struct libscols_symbols));
|
||||
|
@ -23,13 +37,24 @@ struct libscols_symbols *scols_new_symbols(void)
|
|||
return sy;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* scols_ref_symbols:
|
||||
* @sy: a pointer to a struct libscols_symbols instance
|
||||
*
|
||||
* Increases the refcount of @sy.
|
||||
*/
|
||||
void scols_ref_symbols(struct libscols_symbols *sy)
|
||||
{
|
||||
if (sy)
|
||||
sy->refcount++;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_unref_symbols:
|
||||
* @sy: a pointer to a struct libscols_symbols instance
|
||||
*
|
||||
* Decreases the refcount of @sy.
|
||||
*/
|
||||
void scols_unref_symbols(struct libscols_symbols *sy)
|
||||
{
|
||||
if (sy && --sy->refcount <= 0) {
|
||||
|
@ -40,7 +65,13 @@ void scols_unref_symbols(struct libscols_symbols *sy)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* scols_symbols_set_branch:
|
||||
* @sb: a pointer to a struct libscols_symbols instance
|
||||
* @str: a string which will represent the branch part of a tree output
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_symbols_set_branch(struct libscols_symbols *sb, const char *str)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
@ -59,6 +90,13 @@ int scols_symbols_set_branch(struct libscols_symbols *sb, const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_symbols_set_vertical:
|
||||
* @sb: a pointer to a struct libscols_symbols instance
|
||||
* @str: a string which will represent the vertical part of a tree output
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_symbols_set_vertical(struct libscols_symbols *sb, const char *str)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
@ -77,6 +115,13 @@ int scols_symbols_set_vertical(struct libscols_symbols *sb, const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_symbols_set_right:
|
||||
* @sb: a pointer to a struct libscols_symbols instance
|
||||
* @str: a string which will represent the right part of a tree output
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_symbols_set_right(struct libscols_symbols *sb, const char *str)
|
||||
{
|
||||
char *p = NULL;
|
||||
|
@ -95,7 +140,12 @@ int scols_symbols_set_right(struct libscols_symbols *sb, const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* scols_copy_symbols:
|
||||
* @sb: a pointer to a struct libscols_symbols instance
|
||||
*
|
||||
* Returns: a newly allocated copy of the @sb symbol group or NULL in caes of an error.
|
||||
*/
|
||||
struct libscols_symbols *scols_copy_symbols(const struct libscols_symbols *sb)
|
||||
{
|
||||
struct libscols_symbols *ret;
|
||||
|
|
|
@ -7,6 +7,15 @@
|
|||
* This file may be redistributed under the terms of the
|
||||
* GNU Lesser General Public License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION: table
|
||||
* @title: Table
|
||||
* @short_description: table API
|
||||
*
|
||||
* Table manipulation API.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -29,12 +38,13 @@
|
|||
list_entry_is_last(&(_cl)->cl_columns, &(_tb)->tb_columns)
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_new_table:
|
||||
* @syms: tree symbols or NULL for default
|
||||
*
|
||||
* Note that this function add a new reference to @syms
|
||||
* Note that this function add a new reference to @syms.
|
||||
*
|
||||
* Returns: newly allocated table
|
||||
* Returns: A newly allocated table.
|
||||
*/
|
||||
struct libscols_table *scols_new_table(struct libscols_symbols *syms)
|
||||
{
|
||||
|
@ -57,12 +67,24 @@ struct libscols_table *scols_new_table(struct libscols_symbols *syms)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_ref_table:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
*
|
||||
* Increases the refcount of @tb.
|
||||
*/
|
||||
void scols_ref_table(struct libscols_table *tb)
|
||||
{
|
||||
if (tb)
|
||||
tb->refcount++;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_unref_table:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
*
|
||||
* Decreases the refcount of @tb.
|
||||
*/
|
||||
void scols_unref_table(struct libscols_table *tb)
|
||||
{
|
||||
if (tb && (--tb->refcount <= 0)) {
|
||||
|
@ -73,6 +95,16 @@ void scols_unref_table(struct libscols_table *tb)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_add_column:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
* @flags: a flag mask integer
|
||||
*
|
||||
* Adds @cl to @tb's column list, setting the appropriate flags to @flags.
|
||||
*
|
||||
* Returns: 0, a negative number in case of an error.
|
||||
*/
|
||||
int scols_table_add_column(struct libscols_table *tb, struct libscols_column *cl, int flags)
|
||||
{
|
||||
assert(tb);
|
||||
|
@ -97,6 +129,15 @@ int scols_table_add_column(struct libscols_table *tb, struct libscols_column *cl
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_remove_column:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
* @cl: a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Removes @cl from @tb.
|
||||
*
|
||||
* Returns: 0, a negative number in case of an error.
|
||||
*/
|
||||
int scols_table_remove_column(struct libscols_table *tb,
|
||||
struct libscols_column *cl)
|
||||
{
|
||||
|
@ -112,6 +153,14 @@ int scols_table_remove_column(struct libscols_table *tb,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_remove_columns:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
*
|
||||
* Removes all of @tb's columns.
|
||||
*
|
||||
* Returns: 0, a negative number in case of an error.
|
||||
*/
|
||||
int scols_table_remove_columns(struct libscols_table *tb)
|
||||
{
|
||||
assert(tb);
|
||||
|
@ -128,10 +177,12 @@ int scols_table_remove_columns(struct libscols_table *tb)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_table_new_column:
|
||||
* @tb: table
|
||||
* @name: column header
|
||||
* @whint: column width hint (absolute width: N > 1; relative width: N < 1)
|
||||
* @flags: flags integer
|
||||
*
|
||||
* This is shortcut for
|
||||
*
|
||||
|
@ -148,7 +199,7 @@ int scols_table_remove_columns(struct libscols_table *tb)
|
|||
*
|
||||
* @whint = 1..N
|
||||
*
|
||||
* The column is necessary to address (for example for scols_line_set_cell_data()) by
|
||||
* 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
|
||||
|
@ -195,6 +246,16 @@ err:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_next_column:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
* @itr: a pointer to a struct libscols_iter instance
|
||||
* @cl: a pointer to a pointer to a struct libscols_column instance
|
||||
*
|
||||
* Returns the next column of @tb via @cl.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_table_next_column(struct libscols_table *tb,
|
||||
struct libscols_iter *itr,
|
||||
struct libscols_column **cl)
|
||||
|
@ -216,10 +277,11 @@ int scols_table_next_column(struct libscols_table *tb,
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_table_get_ncols:
|
||||
* @tb: table
|
||||
*
|
||||
* Returns: ncols integer
|
||||
* Returns: the ncols table member, a negative number in case of an error.
|
||||
*/
|
||||
int scols_table_get_ncols(struct libscols_table *tb)
|
||||
{
|
||||
|
@ -228,9 +290,10 @@ int scols_table_get_ncols(struct libscols_table *tb)
|
|||
}
|
||||
|
||||
/*
|
||||
* scols_table_get_nlines:
|
||||
* @tb: table
|
||||
*
|
||||
* Returns: nlines integer
|
||||
* Returns: the nlines table member, a negative number in case of an error.
|
||||
*/
|
||||
int scols_table_get_nlines(struct libscols_table *tb)
|
||||
{
|
||||
|
@ -238,6 +301,15 @@ int scols_table_get_nlines(struct libscols_table *tb)
|
|||
return tb ? tb->nlines : -EINVAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_set_stream:
|
||||
* @tb: table
|
||||
* @stream: output stream
|
||||
*
|
||||
* Sets the output stream for table @tb.
|
||||
*
|
||||
* Returns: 0, a negative number in case of an error.
|
||||
*/
|
||||
int scols_table_set_stream(struct libscols_table *tb, FILE *stream)
|
||||
{
|
||||
assert(tb);
|
||||
|
@ -248,12 +320,29 @@ int scols_table_set_stream(struct libscols_table *tb, FILE *stream)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_get_stream:
|
||||
* @tb: table
|
||||
*
|
||||
* Gets the output stream for table @tb.
|
||||
*
|
||||
* Returns: stream pointer, NULL in case of an error or an unset stream.
|
||||
*/
|
||||
FILE *scols_table_get_stream(struct libscols_table *tb)
|
||||
{
|
||||
assert(tb);
|
||||
return tb ? tb->out: NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_reduce_termwidth:
|
||||
* @tb: table
|
||||
* @reduce: width
|
||||
*
|
||||
* Reduce the output width to @reduce.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_table_reduce_termwidth(struct libscols_table *tb, size_t reduce)
|
||||
{
|
||||
assert(tb);
|
||||
|
@ -264,9 +353,10 @@ int scols_table_reduce_termwidth(struct libscols_table *tb, size_t reduce)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_table_get_column:
|
||||
* @tb: table
|
||||
* @: number of column (0..N)
|
||||
* @n: number of column (0..N)
|
||||
*
|
||||
* Returns: pointer to column or NULL
|
||||
*/
|
||||
|
@ -290,9 +380,15 @@ struct libscols_column *scols_table_get_column(struct libscols_table *tb,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Note that this functiion calls scols_line_alloc_cells() if number
|
||||
/**
|
||||
* scols_table_add_line:
|
||||
* @tb: table
|
||||
* @ln: line
|
||||
*
|
||||
* Note that this function calls scols_line_alloc_cells() if number
|
||||
* of the cells in the line is too small for @tb.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_table_add_line(struct libscols_table *tb, struct libscols_line *ln)
|
||||
{
|
||||
|
@ -315,8 +411,15 @@ int scols_table_add_line(struct libscols_table *tb, struct libscols_line *ln)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Note that this function does not destroy parent->child relation between lines.
|
||||
/**
|
||||
* scols_table_remove_line:
|
||||
* @tb: table
|
||||
* @ln: line
|
||||
*
|
||||
* Note that this function does not destroy the parent<->child relationship between lines.
|
||||
* You have to call scols_line_remove_child()
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_table_remove_line(struct libscols_table *tb,
|
||||
struct libscols_line *ln)
|
||||
|
@ -333,7 +436,12 @@ int scols_table_remove_line(struct libscols_table *tb,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* This make the table empty and also destroy all parent<->child relations */
|
||||
/**
|
||||
* scols_table_remove_lines:
|
||||
* @tb: table
|
||||
*
|
||||
* This empties the table and also destroys all the parent<->child relationships.
|
||||
*/
|
||||
void scols_table_remove_lines(struct libscols_table *tb)
|
||||
{
|
||||
assert(tb);
|
||||
|
@ -349,6 +457,16 @@ void scols_table_remove_lines(struct libscols_table *tb)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_next_line:
|
||||
* @tb: a pointer to a struct libscols_table instance
|
||||
* @itr: a pointer to a struct libscols_iter instance
|
||||
* @ln: a pointer to a pointer to a struct libscols_line instance
|
||||
*
|
||||
* Finds the next line and returns a pointer to it via @ln.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_table_next_line(struct libscols_table *tb,
|
||||
struct libscols_iter *itr,
|
||||
struct libscols_line **ln)
|
||||
|
@ -369,13 +487,14 @@ int scols_table_next_line(struct libscols_table *tb,
|
|||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_table_new_line:
|
||||
* @tb: table
|
||||
* @parent: parental line or NULL
|
||||
*
|
||||
* This is shortcut for
|
||||
*
|
||||
* ln = scols_new_linen();
|
||||
* ln = scols_new_line();
|
||||
* scols_line_set_....(cl, ...);
|
||||
* scols_table_add_line(tb, ln);
|
||||
|
||||
|
@ -408,7 +527,19 @@ err:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* scols_table_get_line:
|
||||
* @tb: table
|
||||
* @n: column number (0..N)
|
||||
*
|
||||
* This is a shortcut for
|
||||
*
|
||||
* ln = scols_new_line();
|
||||
* scols_line_set_....(cl, ...);
|
||||
* scols_table_add_line(tb, ln);
|
||||
*
|
||||
* Returns: a newly allocate line
|
||||
*/
|
||||
struct libscols_line *scols_table_get_line(struct libscols_table *tb,
|
||||
size_t n)
|
||||
{
|
||||
|
@ -429,9 +560,14 @@ struct libscols_line *scols_table_get_line(struct libscols_table *tb,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* scols_copy_table:
|
||||
* @tb: table
|
||||
*
|
||||
* Creates a new independent table copy, except struct libscols_symbols that
|
||||
* are shared between the tables.
|
||||
*
|
||||
* Returns: a newly allocated copy of @tb
|
||||
*/
|
||||
struct libscols_table *scols_copy_table(struct libscols_table *tb)
|
||||
{
|
||||
|
@ -481,6 +617,13 @@ err:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* scols_table_set_symbols:
|
||||
* @tb: table
|
||||
* @sy: symbols
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_table_set_symbols(struct libscols_table *tb,
|
||||
struct libscols_symbols *sy)
|
||||
{
|
||||
|
@ -639,7 +782,7 @@ int scols_table_set_tree(struct libscols_table *tb, int enable)
|
|||
* scols_table_colors_wanted:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of colors_wanted
|
||||
* Gets the value of the colors_wanted flag.
|
||||
*
|
||||
* Returns: colors_wanted flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -654,7 +797,7 @@ int scols_table_colors_wanted(struct libscols_table *tb)
|
|||
* scols_table_is_raw:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of raw
|
||||
* Gets the value of the raw flag.
|
||||
*
|
||||
* Returns: raw flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -669,7 +812,7 @@ int scols_table_is_raw(struct libscols_table *tb)
|
|||
* scols_table_is_ascii:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of ascii
|
||||
* Gets the value of the ascii flag.
|
||||
*
|
||||
* Returns: ascii flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -684,7 +827,7 @@ int scols_table_is_ascii(struct libscols_table *tb)
|
|||
* scols_table_is_no_headings:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of no_headings
|
||||
* Gets the value of the no_headings flag.
|
||||
*
|
||||
* Returns: no_headings flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -699,7 +842,7 @@ int scols_table_is_no_headings(struct libscols_table *tb)
|
|||
* scols_table_is_export:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of export
|
||||
* Gets the value of the export flag.
|
||||
*
|
||||
* Returns: export flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -714,7 +857,7 @@ int scols_table_is_export(struct libscols_table *tb)
|
|||
* scols_table_is_max:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of max
|
||||
* Gets the value of the max flag.
|
||||
*
|
||||
* Returns: max flag value, negative value in case of an error.
|
||||
*/
|
||||
|
@ -729,7 +872,7 @@ int scols_table_is_max(struct libscols_table *tb)
|
|||
* scols_table_is_tree:
|
||||
* @tb: table
|
||||
*
|
||||
* Get the value of tree
|
||||
* Gets the value of the tree flag.
|
||||
*
|
||||
* Returns: tree flag value, negative value in case of an error.
|
||||
*/
|
||||
|
|
|
@ -535,9 +535,12 @@ static size_t strlen_line(struct libscols_line *ln)
|
|||
}
|
||||
|
||||
/*
|
||||
* scols_print_table:
|
||||
* @tb: table
|
||||
*
|
||||
* Prints the table to the output stream.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_print_table(struct libscols_table *tb)
|
||||
{
|
||||
|
@ -582,6 +585,15 @@ int scols_print_table(struct libscols_table *tb)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* scols_print_table_to_string:
|
||||
* @tb: table
|
||||
* @data: pointer to the beginning of a memory area to print to
|
||||
*
|
||||
* Prints the table to @data.
|
||||
*
|
||||
* Returns: 0, a negative value in case of an error.
|
||||
*/
|
||||
int scols_print_table_to_string(struct libscols_table *tb, char **data)
|
||||
{
|
||||
#ifdef HAVE_OPEN_MEMSTREAM
|
||||
|
@ -591,7 +603,7 @@ int scols_print_table_to_string(struct libscols_table *tb, char **data)
|
|||
if (!tb)
|
||||
return -EINVAL;
|
||||
|
||||
/* create a streem for output */
|
||||
/* create a stream for output */
|
||||
stream = open_memstream(data, &sz);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
|
Loading…
Reference in New Issue