diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-05-17 02:05:59 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-05-17 02:05:59 +0300 |
| commit | a82b8358b0c0fe43ec4dc023b789d98cc95240c5 (patch) | |
| tree | 419ac175254ba10b483b30d990e60bd9c8326dd5 /main.c | |
| parent | bc0b78f2eee37f577396c7c03ec3413912b569e2 (diff) | |
use fmemopen
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -90,28 +90,31 @@ static int isdir(const char *path) static void print_battery_status(void) { -#define PRINT(...) str += snprintf(str, sizeof(status) - (str - status), __VA_ARGS__) - - static char status[512]; - - char *str = status; + char status[512]; + FILE *fp; if (! isdir(SYSPATH)) return; + fp = fmemopen(status, sizeof(status), "w"); + if (! strcasecmp("charging", readline(SYSPATH, "status"))) - PRINT("%s ", charging); + fprintf(fp, "%s ", charging); int capacity = atoi(readline(SYSPATH, "capacity")); if (capacity == 100) - PRINT("full"); + fprintf(fp, "full"); else - PRINT("%d%%", capacity); + fprintf(fp, "%d%%", capacity); + + fflush(fp); printf(", bat: %s", status); readline(NULL, NULL); + + fclose(fp); } static bool is_proc_entry(struct dirent *de) |
