From a82b8358b0c0fe43ec4dc023b789d98cc95240c5 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Sun, 17 May 2020 02:05:59 +0300 Subject: use fmemopen --- main.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/main.c b/main.c index 7ee6d13..8fc757c 100644 --- a/main.c +++ b/main.c @@ -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) -- cgit v1.2.3-70-g09d2