summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2016-01-12 11:39:03 +0100
committerKarel Zak2016-01-12 11:39:03 +0100
commit7837186515a642bfc7178e14508156bca89bad58 (patch)
treef993036ae1cc04deccdffbd7baa7e4307f8b3024
parentlibfdisk: Add GPT type GUID for Itanium Linux root (diff)
downloadkernel-qcow2-util-linux-7837186515a642bfc7178e14508156bca89bad58.tar.gz
kernel-qcow2-util-linux-7837186515a642bfc7178e14508156bca89bad58.tar.xz
kernel-qcow2-util-linux-7837186515a642bfc7178e14508156bca89bad58.zip
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>
-rw-r--r--libsmartcols/docs/libsmartcols-sections.txt2
-rw-r--r--libsmartcols/src/libsmartcols.h.in2
-rw-r--r--libsmartcols/src/libsmartcols.sym2
-rw-r--r--libsmartcols/src/line.c34
4 files changed, 40 insertions, 0 deletions
diff --git a/libsmartcols/docs/libsmartcols-sections.txt b/libsmartcols/docs/libsmartcols-sections.txt
index 30fb30225..f2cb62b79 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 381a8eb9b..0331f3713 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 e3176ba5b..9a060cf73 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 12826a961..b80ad675f 100644
--- a/libsmartcols/src/line.c
+++ b/libsmartcols/src/line.c
@@ -386,6 +386,23 @@ int scols_line_set_data(struct libscols_line *ln, size_t n, const char *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
* @n: number of the cell which will refer to @data
@@ -403,6 +420,23 @@ int scols_line_refer_data(struct libscols_line *ln, size_t n, char *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
*