]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libsmartcols: custom wrap fixes
authorKarel Zak <kzak@redhat.com>
Tue, 27 Sep 2016 12:16:18 +0000 (14:16 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 27 Sep 2016 12:16:18 +0000 (14:16 +0200)
Reported-by: Igor Gnatenko <i.gnatenko.brain@gmail.com
Signed-off-by: Karel Zak <kzak@redhat.com>
libsmartcols/src/column.c
libsmartcols/src/libsmartcols.h.in
libsmartcols/src/smartcolsP.h

index 2dee2c02a282cb97f0a3c0e67c3bbab47d3e9566..6f74f76fbfb0898c46f4b5d2c30ce2f4421fe6be 100644 (file)
@@ -72,6 +72,7 @@ void scols_unref_column(struct libscols_column *cl)
                list_del(&cl->cl_columns);
                scols_reset_cell(&cl->header);
                free(cl->color);
+               free(cl->safechars);
                free(cl->pending_data_buf);
                free(cl);
        }
@@ -176,7 +177,7 @@ int scols_column_set_flags(struct libscols_column *cl, int flags)
  *
  * Returns: pointer to the table where columns is used
  */
-struct libscols_table *scols_column_get_table(struct libscols_column *cl)
+struct libscols_table *scols_column_get_table(const struct libscols_column *cl)
 {
        return cl->table;
 }
@@ -246,7 +247,7 @@ const char *scols_column_get_color(const struct libscols_column *cl)
  * @data: string
  * @userdata: callback private data
  *
- * This is build-in function for scols_column_set_wrapfunc(). This function
+ * This is built-in function for scols_column_set_wrapfunc(). This function
  * terminates the current chunk by \0 and returns pointer to the begin of
  * the next chunk. The chunks are based on \n.
  *
@@ -379,10 +380,7 @@ int scols_column_set_wrapfunc(struct libscols_column *cl,
  */
 int scols_column_set_safechars(struct libscols_column *cl, const char *safe)
 {
-       if (!cl)
-               return -EINVAL;
-       cl->safechars = safe;
-       return 0;
+       return strdup_to_struct_member(cl, safechars, safe);
 }
 
 /**
index 94b1aada2dc52eb1359428aaa54134f63833f371..d7f1da6b1cdd30ac0126c2b9016a3ff1ddc1da18 100644 (file)
@@ -161,7 +161,7 @@ extern double scols_column_get_whint(const struct libscols_column *cl);
 extern struct libscols_cell *scols_column_get_header(struct libscols_column *cl);
 extern int scols_column_set_color(struct libscols_column *cl, const char *color);
 extern const char *scols_column_get_color(const struct libscols_column *cl);
-extern struct libscols_table *scols_column_get_table(struct libscols_column *cl);
+extern struct libscols_table *scols_column_get_table(const struct libscols_column *cl);
 
 extern int scols_column_set_cmpfunc(struct libscols_column *cl,
                        int (*cmp)(struct libscols_cell *a,
index 2f29c9f630ae2ade28bf8ec6e575619b2d80f110..2a76048e1d586d940864ac08de0242ed99858bee 100644 (file)
@@ -85,6 +85,7 @@ struct libscols_column {
        int     flags;
        int     is_extreme;
        char    *color;         /* default column color */
+       char    *safechars;     /* do not encode this bytes */
 
        char    *pending_data;
        size_t  pending_data_sz;
@@ -101,7 +102,6 @@ struct libscols_column {
                        char *, void *);
        void *wrapfunc_data;
 
-       const char *safechars;  /* do not encode this bytes */
 
        struct libscols_cell    header;
        struct list_head        cl_columns;