libsmartcols: allow to set data by reference to libscols_column

References: https://github.com/karelzak/util-linux/issues/251
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2016-01-12 11:39:03 +01:00
parent f136260aeb
commit 7837186515
4 changed files with 40 additions and 0 deletions

View File

@ -60,9 +60,11 @@ scols_line_get_parent
scols_line_get_userdata
scols_line_has_children
scols_line_next_child
scols_line_refer_column_data
scols_line_refer_data
scols_line_remove_child
scols_line_set_color
scols_line_set_column_data
scols_line_set_data
scols_line_set_userdata
scols_new_line

View File

@ -170,6 +170,8 @@ extern struct libscols_cell *scols_line_get_column_cell(
struct libscols_column *cl);
extern int scols_line_set_data(struct libscols_line *ln, size_t n, const char *data);
extern int scols_line_refer_data(struct libscols_line *ln, size_t n, char *data);
extern int scols_line_set_column_data(struct libscols_line *ln, struct libscols_column *cl, const char *data);
extern int scols_line_refer_column_data(struct libscols_line *ln, struct libscols_column *cl, char *data);
extern struct libscols_line *scols_copy_line(struct libscols_line *ln);
/* table */

View File

@ -123,5 +123,7 @@ global:
SMARTCOLS_2.28 {
global:
scols_line_refer_column_data;
scols_line_set_column_data;
scols_table_enable_nowrap;
} SMARTCOLS_2.27;

View File

@ -385,6 +385,23 @@ int scols_line_set_data(struct libscols_line *ln, size_t n, const char *data)
return scols_cell_set_data(ce, data);
}
/**
* scols_line_set_column_data:
* @ln: a pointer to a struct libscols_cell instance
* @cl: column, whose data is to be set
* @data: actual data to set
*
* The same as scols_line_set_data() but cell is referenced by column object.
*
* Returns: 0, a negative value in case of an error.
*/
int scols_line_set_column_data(struct libscols_line *ln,
struct libscols_column *cl,
const char *data)
{
return scols_line_set_data(ln, cl->seqnum, data);
}
/**
* scols_line_refer_data:
* @ln: a pointer to a struct libscols_cell instance
@ -402,6 +419,23 @@ int scols_line_refer_data(struct libscols_line *ln, size_t n, char *data)
return scols_cell_refer_data(ce, data);
}
/**
* scols_line_refer_column_data:
* @ln: a pointer to a struct libscols_cell instance
* @cl: column, whose data is to be set
* @data: actual data to refer to
*
* The same as scols_line_refer_data() but cell is referenced by column object.
*
* Returns: 0, a negative value in case of an error.
*/
int scols_line_refer_column_data(struct libscols_line *ln,
struct libscols_column *cl,
char *data)
{
return scols_line_refer_data(ln, cl->seqnum, data);
}
/**
* scols_copy_line:
* @ln: a pointer to a struct libscols_cell instance