]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libsmartcols: keep JSON field names lower-case
authorKarel Zak <kzak@redhat.com>
Fri, 5 Jun 2015 09:58:42 +0000 (11:58 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 5 Jun 2015 09:58:42 +0000 (11:58 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
include/carefulputc.h
libsmartcols/src/table_print.c

index 3a0ec5b66939f8b052f9d7a413562e1500bb861e..681e6666023b903cbe1ce5743d58c4828957c0af 100644 (file)
@@ -26,7 +26,7 @@ static inline int fputc_careful(int c, FILE *fp, const char fail)
        return (ret < 0) ? EOF : 0;
 }
 
-static inline void fputs_quoted(const char *data, FILE *out)
+static inline void fputs_quoted_case(const char *data, FILE *out, int dir)
 {
        const char *p;
 
@@ -41,11 +41,17 @@ static inline void fputs_quoted(const char *data, FILE *out)
 
                        fprintf(out, "\\x%02x", (unsigned char) *p);
                } else
-                       fputc(*p, out);
+                       fputc(dir ==  1 ? toupper(*p) :
+                             dir == -1 ? tolower(*p) :
+                             *p, out);
        }
        fputc('"', out);
 }
 
+#define fputs_quoted(_d, _o)           fputs_quoted_case(_d, _o, 0)
+#define fputs_quoted_upper(_d, _o)     fputs_quoted_case(_d, _o, 1)
+#define fputs_quoted_lower(_d, _o)     fputs_quoted_case(_d, _o, -1)
+
 static inline void fputs_nonblank(const char *data, FILE *out)
 {
        const char *p;
index 731879cae6fd29bd672096fe2ebf7424f16d7aec..c743bf7bd2a52522392e4b6af733ac0d4b333cd8 100644 (file)
@@ -284,7 +284,7 @@ static int print_data(struct libscols_table *tb,
                return 0;
 
        case SCOLS_FMT_JSON:
-               fputs_quoted(scols_cell_get_data(&cl->header), tb->out);
+               fputs_quoted_lower(scols_cell_get_data(&cl->header), tb->out);
                fputs(": ", tb->out);
                if (!data || !*data)
                        fputs("null", tb->out);