This is a first step to decouple formatting from information because of
two reasons:
1. The components should only gather and return the values by design
2. Fine grained user control should be a focus
Scaling will be implemented in a different way in a later commit.
- return bprintf("%d%%", perc);
+ return bprintf("%d", perc);
struct apm_power_info apm_info;
if (load_apm_power_info(&apm_info)) {
struct apm_power_info apm_info;
if (load_apm_power_info(&apm_info)) {
- return bprintf("%d%%", apm_info.battery_life);
+ return bprintf("%d", apm_info.battery_life);
- return fmt_human_10(freq * 1000, "Hz");
+ return fmt_human_10(freq * 1000);
- return bprintf("%d%%", (int)(100 *
+ return bprintf("%d", (int)(100 *
((b[0] + b[1] + b[2] + b[5] + b[6]) -
(a[0] + a[1] + a[2] + a[5] + a[6])) /
((b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + b[6]) -
((b[0] + b[1] + b[2] + b[5] + b[6]) -
(a[0] + a[1] + a[2] + a[5] + a[6])) /
((b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + b[6]) -
- return fmt_human_10((size_t)freq * 1000 * 1000, "Hz");
+ return fmt_human_10((size_t)freq * 1000 * 1000);
- return bprintf("%d%%", 100 *
+ return bprintf("%d", 100 *
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR]) -
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR])) /
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] +
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR]) -
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR])) /
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] +
- return fmt_human_2(fs.f_frsize * fs.f_bavail, "B");
+ return fmt_human_2(fs.f_frsize * fs.f_bavail);
- return bprintf("%d%%", (int)(100 *
+ return bprintf("%d", (int)(100 *
(1.0f - ((float)fs.f_bavail / (float)fs.f_blocks))));
}
(1.0f - ((float)fs.f_bavail / (float)fs.f_blocks))));
}
- return fmt_human_2(fs.f_frsize * fs.f_blocks, "B");
+ return fmt_human_2(fs.f_frsize * fs.f_blocks);
- return fmt_human_2(fs.f_frsize * (fs.f_blocks - fs.f_bfree), "B");
+ return fmt_human_2(fs.f_frsize * (fs.f_blocks - fs.f_bfree));
- return fmt_human_2((rxbytes - oldrxbytes) *
- 1000 / interval, "B/s");
+ return fmt_human_2((rxbytes - oldrxbytes) * 1000 / interval);
- return fmt_human_2((txbytes - oldtxbytes) *
- 1000 / interval, "B/s");
+ return fmt_human_2((txbytes - oldtxbytes) * 1000 / interval);
}
#elif defined(__OpenBSD__)
#include <string.h>
}
#elif defined(__OpenBSD__)
#include <string.h>
- return fmt_human_2((rxbytes - oldrxbytes) *
- 1000 / interval, "B/s");
+ return fmt_human_2((rxbytes - oldrxbytes) * 1000 / interval);
- return fmt_human_2((txbytes - oldtxbytes) *
- 1000 / interval, "B/s");
+ return fmt_human_2((txbytes - oldtxbytes) * 1000 / interval);
- return fmt_human_2(free * 1024, "B");
+ return fmt_human_2(free * 1024);
- return bprintf("%d%%", 100 * ((total - free) -
- (buffers + cached)) / total);
+ return bprintf("%d", 100 * ((total - free) -
+ (buffers + cached)) / total);
- return fmt_human_2(total * 1024, "B");
+ return fmt_human_2(total * 1024);
- return fmt_human_2((total - free - buffers - cached) * 1024,
- "B");
+ return fmt_human_2((total - free - buffers - cached) * 1024);
}
#elif defined(__OpenBSD__)
#include <stdlib.h>
}
#elif defined(__OpenBSD__)
#include <stdlib.h>
if (load_uvmexp(&uvmexp)) {
free_pages = uvmexp.npages - uvmexp.active;
if (load_uvmexp(&uvmexp)) {
free_pages = uvmexp.npages - uvmexp.active;
- return fmt_human_2(pagetok(free_pages, uvmexp.pageshift) * 1024, "B");
+ return fmt_human_2(pagetok(free_pages,
+ uvmexp.pageshift) * 1024);
if (load_uvmexp(&uvmexp)) {
percent = uvmexp.active * 100 / uvmexp.npages;
if (load_uvmexp(&uvmexp)) {
percent = uvmexp.active * 100 / uvmexp.npages;
- return bprintf("%d%%", percent);
+ return bprintf("%d", percent);
struct uvmexp uvmexp;
if (load_uvmexp(&uvmexp)) {
struct uvmexp uvmexp;
if (load_uvmexp(&uvmexp)) {
- return fmt_human_2(pagetok(uvmexp.npages, uvmexp.pageshift) * 1024, "B");
+ return fmt_human_2(pagetok(uvmexp.npages,
+ uvmexp.pageshift) * 1024);
struct uvmexp uvmexp;
if (load_uvmexp(&uvmexp)) {
struct uvmexp uvmexp;
if (load_uvmexp(&uvmexp)) {
- return fmt_human_2(pagetok(uvmexp.active, uvmexp.pageshift) * 1024, "B");
+ return fmt_human_2(pagetok(uvmexp.active,
+ uvmexp.pageshift) * 1024);
}
sscanf(match, "SwapFree: %ld kB\n", &free);
}
sscanf(match, "SwapFree: %ld kB\n", &free);
- return fmt_human_2(free * 1024, "B");
+ return fmt_human_2(free * 1024);
- return bprintf("%d%%", 100 * (total - free - cached) / total);
+ return bprintf("%d", 100 * (total - free - cached) / total);
}
sscanf(match, "SwapTotal: %ld kB\n", &total);
}
sscanf(match, "SwapTotal: %ld kB\n", &total);
- return fmt_human_2(total * 1024, "B");
+ return fmt_human_2(total * 1024);
}
sscanf(match, "SwapFree: %ld kB\n", &free);
}
sscanf(match, "SwapFree: %ld kB\n", &free);
- return fmt_human_2((total - free - cached) * 1024, "B");
+ return fmt_human_2((total - free - cached) * 1024);
}
#elif defined(__OpenBSD__)
#include <stdlib.h>
}
#elif defined(__OpenBSD__)
#include <stdlib.h>
- return fmt_human_2((total - used) * 1024, "B");
+ return fmt_human_2((total - used) * 1024);
- return bprintf("%d%%", 100 * used / total);
+ return bprintf("%d", 100 * used / total);
- return fmt_human_2(total * 1024, "B");
+ return fmt_human_2(total * 1024);
- return fmt_human_2(used * 1024, "B");
+ return fmt_human_2(used * 1024);
- return bprintf("%d°C", temp / 1000);
+ return bprintf("%d", temp / 1000);
}
#elif defined(__OpenBSD__)
#include <errno.h>
}
#elif defined(__OpenBSD__)
#include <errno.h>
}
/* kelvin to celsius */
}
/* kelvin to celsius */
- return bprintf("%d°C", (temp.value - 273150000) / 1000000);
+ return bprintf("%d", (temp.value - 273150000) / 1000000);
- return bprintf("%d%%", v & 0xff);
+ return bprintf("%d", v & 0xff);
sscanf(datastart + 1, " %*d %d %*d %*d\t\t %*d\t "
"%*d\t\t%*d\t\t %*d\t %*d\t\t %*d", &cur);
sscanf(datastart + 1, " %*d %d %*d %*d\t\t %*d\t "
"%*d\t\t%*d\t\t %*d\t %*d\t\t %*d", &cur);
- return bprintf("%d%%", (int)((float)cur / total * 100));
+ return bprintf("%d", (int)((float)cur / total * 100));
q = nr.nr_rssi >= -50 ? 100 : (nr.nr_rssi <= -100 ? 0 :
(2 * (nr.nr_rssi + 100)));
}
q = nr.nr_rssi >= -50 ? 100 : (nr.nr_rssi <= -100 ? 0 :
(2 * (nr.nr_rssi + 100)));
}
- return bprintf("%d%%", q);
+ return bprintf("%d", q);
-fmt_human_2(size_t num, char *unit)
{
size_t i;
double scaled;
{
size_t i;
double scaled;
- return bprintf("%.1f%s%s", scaled, prefix[i], unit);
+ return bprintf("%.1f%s", scaled, prefix[i]);
-fmt_human_10(size_t num, char *unit)
+fmt_human_10(size_t num)
{
size_t i;
double scaled;
{
size_t i;
double scaled;
- return bprintf("%.1f%s%s", scaled, prefix[i], unit);
+ return bprintf("%.1f%s", scaled, prefix[i]);
int esnprintf(char *str, size_t size, const char *fmt, ...);
const char *bprintf(const char *fmt, ...);
int esnprintf(char *str, size_t size, const char *fmt, ...);
const char *bprintf(const char *fmt, ...);
-const char *fmt_human_2(size_t num, char *unit);
-const char *fmt_human_10(size_t num, char *unit);
+const char *fmt_human_2(size_t num);
+const char *fmt_human_10(size_t num);
int pscanf(const char *path, const char *fmt, ...);
int pscanf(const char *path, const char *fmt, ...);