mirror of
https://codeberg.org/dnkl/yambar.git
synced 2025-04-20 11:35:42 +02:00
tag: add kib/mib/gib formatters
This commit is contained in:
parent
8c2e5d8bde
commit
eff890ab9d
3 changed files with 36 additions and 15 deletions
|
@ -35,7 +35,7 @@
|
||||||
`*-bitrate` tags).
|
`*-bitrate` tags).
|
||||||
* tags: percentage formatter, for range tags: `{tag_name:%}`.
|
* tags: percentage formatter, for range tags: `{tag_name:%}`.
|
||||||
* tags: percentage tag formatter, for range tags: `{tag_name:%}`.
|
* tags: percentage tag formatter, for range tags: `{tag_name:%}`.
|
||||||
* tags: kb/mb/gb tag formatters.
|
* tags: kb/mb/gb, and kib/mib/gib tag formatters.
|
||||||
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
@ -72,20 +72,14 @@ be used.
|
||||||
: format
|
: format
|
||||||
: Renders a range tag's value as a percentage value
|
: Renders a range tag's value as a percentage value
|
||||||
: Range tags
|
: Range tags
|
||||||
| kb
|
| kb, mb, gb
|
||||||
: format
|
: format
|
||||||
: Renders a tag's value (in decimal) divided by 1024 (note that no
|
: Renders a tag's value (in decimal) divided by 1024, 1024^2 or
|
||||||
unit suffix is appended)
|
1024^3. Note: no unit suffix is appended)
|
||||||
: All tag types
|
: All tag types
|
||||||
| mb
|
| kib, mib, gib
|
||||||
: format
|
: format
|
||||||
: Renders a tag's value (in decimal) divided by 1024^2 (note that no
|
: Same as *kb*, *mb* and *gb*, but divide by 1000^n instead of 1024^n.
|
||||||
unit suffix is appended)
|
|
||||||
: All tag types
|
|
||||||
| gb
|
|
||||||
: format
|
|
||||||
: Renders a tag's value (in decimal) divided by 1024^3 (note that no
|
|
||||||
unit suffix is appended)
|
|
||||||
: All tag types
|
: All tag types
|
||||||
| min
|
| min
|
||||||
: selector
|
: selector
|
||||||
|
|
33
tag.c
33
tag.c
|
@ -467,8 +467,17 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
FMT_KBYTE,
|
FMT_KBYTE,
|
||||||
FMT_MBYTE,
|
FMT_MBYTE,
|
||||||
FMT_GBYTE,
|
FMT_GBYTE,
|
||||||
|
FMT_KIBYTE,
|
||||||
|
FMT_MIBYTE,
|
||||||
|
FMT_GIBYTE,
|
||||||
} format = FMT_DEFAULT;
|
} format = FMT_DEFAULT;
|
||||||
enum { VALUE_VALUE, VALUE_MIN, VALUE_MAX, VALUE_UNIT } kind = VALUE_VALUE;
|
|
||||||
|
enum {
|
||||||
|
VALUE_VALUE,
|
||||||
|
VALUE_MIN,
|
||||||
|
VALUE_MAX,
|
||||||
|
VALUE_UNIT,
|
||||||
|
} kind = VALUE_VALUE;
|
||||||
|
|
||||||
for (size_t i = 0; i < MAX_TAG_ARGS; i++) {
|
for (size_t i = 0; i < MAX_TAG_ARGS; i++) {
|
||||||
if (tag_args[i] == NULL)
|
if (tag_args[i] == NULL)
|
||||||
|
@ -485,6 +494,12 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
format = FMT_MBYTE;
|
format = FMT_MBYTE;
|
||||||
else if (strcmp(tag_args[i], "gb") == 0)
|
else if (strcmp(tag_args[i], "gb") == 0)
|
||||||
format = FMT_GBYTE;
|
format = FMT_GBYTE;
|
||||||
|
else if (strcmp(tag_args[i], "kib") == 0)
|
||||||
|
format = FMT_KIBYTE;
|
||||||
|
else if (strcmp(tag_args[i], "mib") == 0)
|
||||||
|
format = FMT_MIBYTE;
|
||||||
|
else if (strcmp(tag_args[i], "gib") == 0)
|
||||||
|
format = FMT_GIBYTE;
|
||||||
else if (strcmp(tag_args[i], "min") == 0)
|
else if (strcmp(tag_args[i], "min") == 0)
|
||||||
kind = VALUE_MIN;
|
kind = VALUE_MIN;
|
||||||
else if (strcmp(tag_args[i], "max") == 0)
|
else if (strcmp(tag_args[i], "max") == 0)
|
||||||
|
@ -525,11 +540,17 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
|
|
||||||
case FMT_KBYTE:
|
case FMT_KBYTE:
|
||||||
case FMT_MBYTE:
|
case FMT_MBYTE:
|
||||||
case FMT_GBYTE: {
|
case FMT_GBYTE:
|
||||||
|
case FMT_KIBYTE:
|
||||||
|
case FMT_MIBYTE:
|
||||||
|
case FMT_GIBYTE: {
|
||||||
const long divider =
|
const long divider =
|
||||||
format == FMT_KBYTE ? 1024 :
|
format == FMT_KBYTE ? 1024 :
|
||||||
format == FMT_MBYTE ? 1024 * 1024 :
|
format == FMT_MBYTE ? 1024 * 1024 :
|
||||||
format == FMT_GBYTE ? 1024 * 1024 * 1024 :
|
format == FMT_GBYTE ? 1024 * 1024 * 1024 :
|
||||||
|
format == FMT_KIBYTE ? 1000 :
|
||||||
|
format == FMT_MIBYTE ? 1000 * 1000 :
|
||||||
|
format == FMT_GIBYTE ? 1000 * 1000 * 1000 :
|
||||||
1;
|
1;
|
||||||
|
|
||||||
char str[24];
|
char str[24];
|
||||||
|
@ -559,11 +580,17 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
|
|
||||||
case FMT_KBYTE:
|
case FMT_KBYTE:
|
||||||
case FMT_MBYTE:
|
case FMT_MBYTE:
|
||||||
case FMT_GBYTE: {
|
case FMT_GBYTE:
|
||||||
|
case FMT_KIBYTE:
|
||||||
|
case FMT_MIBYTE:
|
||||||
|
case FMT_GIBYTE: {
|
||||||
const long divider =
|
const long divider =
|
||||||
format == FMT_KBYTE ? 1024 :
|
format == FMT_KBYTE ? 1024 :
|
||||||
format == FMT_MBYTE ? 1024 * 1024 :
|
format == FMT_MBYTE ? 1024 * 1024 :
|
||||||
format == FMT_GBYTE ? 1024 * 1024 * 1024 :
|
format == FMT_GBYTE ? 1024 * 1024 * 1024 :
|
||||||
|
format == FMT_KIBYTE ? 1000 :
|
||||||
|
format == FMT_MIBYTE ? 1000 * 1000 :
|
||||||
|
format == FMT_GIBYTE ? 1000 * 1000 * 1000 :
|
||||||
1;
|
1;
|
||||||
value /= divider;
|
value /= divider;
|
||||||
fmt = "%lu";
|
fmt = "%lu";
|
||||||
|
|
Loading…
Add table
Reference in a new issue