From c8b2112dfb262f5b099b1083ed080cd8f9ad58f9 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Sun, 10 Aug 2014 12:28:10 +0400 Subject: check for dir in sys --- main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'main.c') diff --git a/main.c b/main.c index 54f93df..39927f1 100644 --- a/main.c +++ b/main.c @@ -1,5 +1,7 @@ #define _GNU_SOURCE #include +#include +#include #include #include #include @@ -46,6 +48,13 @@ static char *readline(char *dir, char *file) return line; } +static int isdir(const char *path) +{ + struct stat st; + + return ! stat(path, &st) && S_ISDIR(st.st_mode); +} + static void print_battery_status(void) { #define PRINT(...) str += snprintf(str, sizeof(status) - (str - status), __VA_ARGS__) @@ -54,6 +63,9 @@ static void print_battery_status(void) char *str = status; + if (! isdir(SYSPATH)) + return; + if (! strcasecmp("charging", readline(SYSPATH, "status"))) PRINT("%s ", charging); -- cgit v1.2.3-70-g09d2