forked from external/yambar
tag: add 'b' formatter
Divides the tag's decimal value by 8. Closes #392
This commit is contained in:
parent
f8ba887dcd
commit
700bf5b28c
3 changed files with 46 additions and 15 deletions
|
@ -20,9 +20,12 @@
|
||||||
environment variable.
|
environment variable.
|
||||||
* network: `type` tag ([#380][380]).
|
* network: `type` tag ([#380][380]).
|
||||||
* network: `type` and `kind` tags ([#380][380]).
|
* network: `type` and `kind` tags ([#380][380]).
|
||||||
|
* tags: `b` tag formatter; divides the tag's decimal value with `8`
|
||||||
|
([#392][392]).
|
||||||
|
|
||||||
[96]: https://codeberg.org/dnkl/yambar/issues/96
|
[96]: https://codeberg.org/dnkl/yambar/issues/96
|
||||||
[380]: https://codeberg.org/dnkl/yambar/issues/380
|
[380]: https://codeberg.org/dnkl/yambar/issues/380
|
||||||
|
[392]: https://codeberg.org/dnkl/yambar/issues/392
|
||||||
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
@ -86,11 +86,16 @@ be used.
|
||||||
: format
|
: format
|
||||||
: Range tags
|
: Range tags
|
||||||
: Renders a range tag's value as a percentage value
|
: Renders a range tag's value as a percentage value
|
||||||
|
| b
|
||||||
|
: format
|
||||||
|
: All tag types
|
||||||
|
: Renders a tag's value (in decimal) divided by 8. Note: no unit
|
||||||
|
suffix is appended
|
||||||
| kb, mb, gb
|
| kb, mb, gb
|
||||||
: format
|
: format
|
||||||
: All tag types
|
: All tag types
|
||||||
: Renders a tag's value (in decimal) divided by 1000, 1000^2 or
|
: Renders a tag's value (in decimal) divided by 1000, 1000^2 or
|
||||||
1000^3. Note: no unit suffix is appended)
|
1000^3. Note: no unit suffix is appended
|
||||||
| kib, mib, gib
|
| kib, mib, gib
|
||||||
: format
|
: format
|
||||||
: All tag types
|
: All tag types
|
||||||
|
|
47
tag.c
47
tag.c
|
@ -510,6 +510,7 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
FMT_HEX,
|
FMT_HEX,
|
||||||
FMT_OCT,
|
FMT_OCT,
|
||||||
FMT_PERCENT,
|
FMT_PERCENT,
|
||||||
|
FMT_BYTE,
|
||||||
FMT_KBYTE,
|
FMT_KBYTE,
|
||||||
FMT_MBYTE,
|
FMT_MBYTE,
|
||||||
FMT_GBYTE,
|
FMT_GBYTE,
|
||||||
|
@ -541,6 +542,8 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
format = FMT_OCT;
|
format = FMT_OCT;
|
||||||
else if (strcmp(tag_args[i], "%") == 0)
|
else if (strcmp(tag_args[i], "%") == 0)
|
||||||
format = FMT_PERCENT;
|
format = FMT_PERCENT;
|
||||||
|
else if (strcmp(tag_args[i], "b") == 0)
|
||||||
|
format = FMT_BYTE;
|
||||||
else if (strcmp(tag_args[i], "kb") == 0)
|
else if (strcmp(tag_args[i], "kb") == 0)
|
||||||
format = FMT_KBYTE;
|
format = FMT_KBYTE;
|
||||||
else if (strcmp(tag_args[i], "mb") == 0)
|
else if (strcmp(tag_args[i], "mb") == 0)
|
||||||
|
@ -634,18 +637,28 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case FMT_BYTE:
|
||||||
case FMT_KBYTE:
|
case FMT_KBYTE:
|
||||||
case FMT_MBYTE:
|
case FMT_MBYTE:
|
||||||
case FMT_GBYTE:
|
case FMT_GBYTE:
|
||||||
case FMT_KIBYTE:
|
case FMT_KIBYTE:
|
||||||
case FMT_MIBYTE:
|
case FMT_MIBYTE:
|
||||||
case FMT_GIBYTE: {
|
case FMT_GIBYTE: {
|
||||||
const long divider = format == FMT_KBYTE ? 1000
|
const long divider =
|
||||||
: format == FMT_MBYTE ? 1000 * 1000
|
format == FMT_BYTE
|
||||||
: format == FMT_GBYTE ? 1000 * 1000 * 1000
|
? 8
|
||||||
: format == FMT_KIBYTE ? 1024
|
: format == FMT_KBYTE
|
||||||
: format == FMT_MIBYTE ? 1024 * 1024
|
? 1000
|
||||||
: format == FMT_GIBYTE ? 1024 * 1024 * 1024
|
: format == FMT_MBYTE
|
||||||
|
? 1000 * 1000
|
||||||
|
: format == FMT_GBYTE
|
||||||
|
? 1000 * 1000 * 1000
|
||||||
|
: format == FMT_KIBYTE
|
||||||
|
? 1024
|
||||||
|
: format == FMT_MIBYTE
|
||||||
|
? 1024 * 1024
|
||||||
|
: format == FMT_GIBYTE
|
||||||
|
? 1024 * 1024 * 1024
|
||||||
: 1;
|
: 1;
|
||||||
|
|
||||||
char str[24];
|
char str[24];
|
||||||
|
@ -684,18 +697,28 @@ tags_expand_template(const char *template, const struct tag_set *tags)
|
||||||
fmt = zero_pad ? "%0*lu" : "%*lu";
|
fmt = zero_pad ? "%0*lu" : "%*lu";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case FMT_BYTE:
|
||||||
case FMT_KBYTE:
|
case FMT_KBYTE:
|
||||||
case FMT_MBYTE:
|
case FMT_MBYTE:
|
||||||
case FMT_GBYTE:
|
case FMT_GBYTE:
|
||||||
case FMT_KIBYTE:
|
case FMT_KIBYTE:
|
||||||
case FMT_MIBYTE:
|
case FMT_MIBYTE:
|
||||||
case FMT_GIBYTE: {
|
case FMT_GIBYTE: {
|
||||||
const long divider = format == FMT_KBYTE ? 1024
|
const long divider =
|
||||||
: format == FMT_MBYTE ? 1024 * 1024
|
format == FMT_BYTE
|
||||||
: format == FMT_GBYTE ? 1024 * 1024 * 1024
|
? 8
|
||||||
: format == FMT_KIBYTE ? 1000
|
: format == FMT_KBYTE
|
||||||
: format == FMT_MIBYTE ? 1000 * 1000
|
? 1024
|
||||||
: format == FMT_GIBYTE ? 1000 * 1000 * 1000
|
: format == FMT_MBYTE
|
||||||
|
? 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 = zero_pad ? "%0*lu" : "%*lu";
|
fmt = zero_pad ? "%0*lu" : "%*lu";
|
||||||
|
|
Loading…
Add table
Reference in a new issue