]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
findmnt: use scols_column_set_json_type()
authorKarel Zak <kzak@redhat.com>
Wed, 18 Apr 2018 12:45:21 +0000 (14:45 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 18 Apr 2018 12:45:21 +0000 (14:45 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
misc-utils/findmnt.c

index 184b6f7d7b8bcdd7a8ea49f5810d0197805706dc..4d55cde33d2f1314d2b29497774e54f2ee9a85db 100644 (file)
@@ -1606,6 +1606,7 @@ int main(int argc, char *argv[])
                scols_table_set_name(table, "filesystems");
 
        for (i = 0; i < ncolumns; i++) {
+               struct libscols_column *cl;
                int fl = get_column_flags(i);
                int id = get_column_id(i);
 
@@ -1617,11 +1618,32 @@ int main(int argc, char *argv[])
                               "is not enabled"), get_column_name(i));
                        goto leave;
                }
-               if (!scols_table_new_column(table, get_column_name(i),
-                                       get_column_whint(i), fl)) {
+               cl = scols_table_new_column(table, get_column_name(i),
+                                       get_column_whint(i), fl);
+               if (!cl)        {
                        warn(_("failed to allocate output column"));
                        goto leave;
                }
+
+               if (flags & FL_JSON) {
+                       switch (id) {
+                       case COL_SIZE:
+                       case COL_AVAIL:
+                       case COL_USED:
+                               if (!(flags & FL_BYTES))
+                                       break;
+                               /* fallthrough */
+                       case COL_ID:
+                       case COL_FREQ:
+                       case COL_PASSNO:
+                       case COL_TID:
+                               scols_column_set_json_type(cl, SCOLS_JSON_NUMBER);
+                               break;
+                       default:
+                               scols_column_set_json_type(cl, SCOLS_JSON_STRING);
+                               break;
+                       }
+               }
        }
 
        /*