From: Karel Zak Date: Tue, 12 Jan 2016 10:39:03 +0000 (+0100) Subject: libsmartcols: allow to set data by reference to libscols_column X-Git-Tag: v2.28-rc1~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7837186515a642bfc7178e14508156bca89bad58;p=thirdparty%2Futil-linux.git libsmartcols: allow to set data by reference to libscols_column References: https://github.com/karelzak/util-linux/issues/251 Signed-off-by: Karel Zak --- diff --git a/libsmartcols/docs/libsmartcols-sections.txt b/libsmartcols/docs/libsmartcols-sections.txt index 30fb30225f..f2cb62b79c 100644 --- a/libsmartcols/docs/libsmartcols-sections.txt +++ b/libsmartcols/docs/libsmartcols-sections.txt @@ -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 diff --git a/libsmartcols/src/libsmartcols.h.in b/libsmartcols/src/libsmartcols.h.in index 381a8eb9b6..0331f3713f 100644 --- a/libsmartcols/src/libsmartcols.h.in +++ b/libsmartcols/src/libsmartcols.h.in @@ -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 */ diff --git a/libsmartcols/src/libsmartcols.sym b/libsmartcols/src/libsmartcols.sym index e3176ba5b3..9a060cf73e 100644 --- a/libsmartcols/src/libsmartcols.sym +++ b/libsmartcols/src/libsmartcols.sym @@ -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; diff --git a/libsmartcols/src/line.c b/libsmartcols/src/line.c index 12826a9619..b80ad675ff 100644 --- a/libsmartcols/src/line.c +++ b/libsmartcols/src/line.c @@ -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