diff options
author | softworkz <softworkz@hotmail.com> | 2025-04-14 05:28:45 +0200 |
---|---|---|
committer | softworkz <softworkz@hotmail.com> | 2025-05-15 23:04:44 +0200 |
commit | 8f42d90413f64574b8e15de27fc2430102843dbf (patch) | |
tree | e2d9e695cf093b84bf257d467c2a63529888ee82 /fftools/textformat/tf_compact.c | |
parent | f51c385a8e643ee12eb6be160e2fa4b5ae57a50b (diff) | |
download | ffmpeg-8f42d90413f64574b8e15de27fc2430102843dbf.tar.gz |
fftools/textformat: Apply formatting and whitespace changes
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: softworkz <softworkz@hotmail.com>
Diffstat (limited to 'fftools/textformat/tf_compact.c')
-rw-r--r-- | fftools/textformat/tf_compact.c | 87 |
1 files changed, 49 insertions, 38 deletions
diff --git a/fftools/textformat/tf_compact.c b/fftools/textformat/tf_compact.c index 31bfc81513..dae8b3de6a 100644 --- a/fftools/textformat/tf_compact.c +++ b/fftools/textformat/tf_compact.c @@ -58,10 +58,10 @@ static const char *c_escape_str(AVBPrint *dst, const char *src, const char sep, for (p = src; *p; p++) { switch (*p) { - case '\b': av_bprintf(dst, "%s", "\\b"); break; - case '\f': av_bprintf(dst, "%s", "\\f"); break; - case '\n': av_bprintf(dst, "%s", "\\n"); break; - case '\r': av_bprintf(dst, "%s", "\\r"); break; + case '\b': av_bprintf(dst, "%s", "\\b"); break; + case '\f': av_bprintf(dst, "%s", "\\f"); break; + case '\n': av_bprintf(dst, "%s", "\\n"); break; + case '\r': av_bprintf(dst, "%s", "\\r"); break; case '\\': av_bprintf(dst, "%s", "\\\\"); break; default: if (*p == sep) @@ -78,6 +78,7 @@ static const char *c_escape_str(AVBPrint *dst, const char *src, const char sep, static const char *csv_escape_str(AVBPrint *dst, const char *src, const char sep, void *log_ctx) { char meta_chars[] = { sep, '"', '\n', '\r', '\0' }; + int needs_quoting = !!src[strcspn(src, meta_chars)]; if (needs_quoting) @@ -114,16 +115,16 @@ typedef struct CompactContext { #undef OFFSET #define OFFSET(x) offsetof(CompactContext, x) -static const AVOption compact_options[]= { - {"item_sep", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, {.str="|"}, 0, 0 }, - {"s", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, {.str="|"}, 0, 0 }, - {"nokey", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 }, - {"nk", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 }, - {"escape", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="c"}, 0, 0 }, - {"e", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="c"}, 0, 0 }, - {"print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 }, - {"p", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 }, - {NULL}, +static const AVOption compact_options[] = { + { "item_sep", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, { .str = "|" }, 0, 0 }, + { "s", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, { .str = "|" }, 0, 0 }, + { "nokey", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1 }, + { "nk", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1 }, + { "escape", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, { .str = "c" }, 0, 0 }, + { "e", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, { .str = "c" }, 0, 0 }, + { "print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 }, + { "p", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 }, + { NULL }, }; DEFINE_FORMATTER_CLASS(compact); @@ -139,10 +140,13 @@ static av_cold int compact_init(AVTextFormatContext *wctx) } compact->item_sep = compact->item_sep_str[0]; - if (!strcmp(compact->escape_mode_str, "none")) compact->escape_str = none_escape_str; - else if (!strcmp(compact->escape_mode_str, "c" )) compact->escape_str = c_escape_str; - else if (!strcmp(compact->escape_mode_str, "csv" )) compact->escape_str = csv_escape_str; - else { + if (!strcmp(compact->escape_mode_str, "none")) { + compact->escape_str = none_escape_str; + } else if (!strcmp(compact->escape_mode_str, "c" )) { + compact->escape_str = c_escape_str; + } else if (!strcmp(compact->escape_mode_str, "csv" )) { + compact->escape_str = csv_escape_str; + } else { av_log(wctx, AV_LOG_ERROR, "Unknown escape mode '%s'\n", compact->escape_mode_str); return AVERROR(EINVAL); } @@ -162,8 +166,8 @@ static void compact_print_section_header(AVTextFormatContext *wctx, const void * av_bprint_clear(&wctx->section_pbuf[wctx->level]); if (parent_section && (section->flags & AV_TEXTFORMAT_SECTION_FLAG_HAS_TYPE || - (!(section->flags & AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY) && - !(parent_section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER|AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY))))) { + (!(section->flags & AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY) && + !(parent_section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER | AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY))))) { /* define a prefix for elements not contained in an array or in a wrapper, or for array elements with a type */ @@ -171,10 +175,10 @@ static void compact_print_section_header(AVTextFormatContext *wctx, const void * AVBPrint *section_pbuf = &wctx->section_pbuf[wctx->level]; compact->nested_section[wctx->level] = 1; - compact->has_nested_elems[wctx->level-1] = 1; + compact->has_nested_elems[wctx->level - 1] = 1; av_bprintf(section_pbuf, "%s%s", - wctx->section_pbuf[wctx->level-1].str, element_name); + wctx->section_pbuf[wctx->level - 1].str, element_name); if (section->flags & AV_TEXTFORMAT_SECTION_FLAG_HAS_TYPE) { // add /TYPE to prefix @@ -191,24 +195,25 @@ static void compact_print_section_header(AVTextFormatContext *wctx, const void * } av_bprint_chars(section_pbuf, ':', 1); - wctx->nb_item[wctx->level] = wctx->nb_item[wctx->level-1]; + wctx->nb_item[wctx->level] = wctx->nb_item[wctx->level - 1]; } else { - if (parent_section && !(parent_section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER|AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY)) && - wctx->level && wctx->nb_item[wctx->level-1]) + if (parent_section && !(parent_section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER | AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY)) && + wctx->level && wctx->nb_item[wctx->level - 1]) writer_w8(wctx, compact->item_sep); if (compact->print_section && - !(section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER|AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY))) + !(section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER | AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY))) writer_printf(wctx, "%s%c", section->name, compact->item_sep); } } static void compact_print_section_footer(AVTextFormatContext *wctx) { + const struct AVTextFormatSection *section = wctx->section[wctx->level]; CompactContext *compact = wctx->priv; if (!compact->nested_section[wctx->level] && compact->terminate_line[wctx->level] && - !(wctx->section[wctx->level]->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER|AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY))) + !(section->flags & (AV_TEXTFORMAT_SECTION_FLAG_IS_WRAPPER | AV_TEXTFORMAT_SECTION_FLAG_IS_ARRAY))) writer_w8(wctx, '\n'); } @@ -217,9 +222,12 @@ static void compact_print_str(AVTextFormatContext *wctx, const char *key, const CompactContext *compact = wctx->priv; AVBPrint buf; - if (wctx->nb_item[wctx->level]) writer_w8(wctx, compact->item_sep); + if (wctx->nb_item[wctx->level]) + writer_w8(wctx, compact->item_sep); + if (!compact->nokey) writer_printf(wctx, "%s%s=", wctx->section_pbuf[wctx->level].str, key); + av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED); writer_put_str(wctx, compact->escape_str(&buf, value, compact->item_sep, wctx)); av_bprint_finalize(&buf, NULL); @@ -229,9 +237,12 @@ static void compact_print_int(AVTextFormatContext *wctx, const char *key, int64_ { CompactContext *compact = wctx->priv; - if (wctx->nb_item[wctx->level]) writer_w8(wctx, compact->item_sep); + if (wctx->nb_item[wctx->level]) + writer_w8(wctx, compact->item_sep); + if (!compact->nokey) writer_printf(wctx, "%s%s=", wctx->section_pbuf[wctx->level].str, key); + writer_printf(wctx, "%"PRId64, value); } @@ -253,15 +264,15 @@ const AVTextFormatter avtextformatter_compact = { #define OFFSET(x) offsetof(CompactContext, x) static const AVOption csv_options[] = { - {"item_sep", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, {.str=","}, 0, 0 }, - {"s", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, {.str=","}, 0, 0 }, - {"nokey", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 }, - {"nk", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 }, - {"escape", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="csv"}, 0, 0 }, - {"e", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="csv"}, 0, 0 }, - {"print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 }, - {"p", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1 }, - {NULL}, + { "item_sep", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, { .str = "," }, 0, 0 }, + { "s", "set item separator", OFFSET(item_sep_str), AV_OPT_TYPE_STRING, { .str = "," }, 0, 0 }, + { "nokey", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 }, + { "nk", "force no key printing", OFFSET(nokey), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 }, + { "escape", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, { .str = "csv" }, 0, 0 }, + { "e", "set escape mode", OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, { .str = "csv" }, 0, 0 }, + { "print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 }, + { "p", "print section name", OFFSET(print_section), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 }, + { NULL }, }; DEFINE_FORMATTER_CLASS(csv); |