diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2014-08-10 12:28:10 +0400 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2014-08-10 12:28:10 +0400 |
| commit | c8b2112dfb262f5b099b1083ed080cd8f9ad58f9 (patch) | |
| tree | e4fa7328afe4e5884bc304dd4e64972412a7e931 /main.c | |
| parent | d417cfd1e6e55e5f56f6539fb88ffb5c9de9a79c (diff) | |
check for dir in sys
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -1,5 +1,7 @@ #define _GNU_SOURCE #include <sys/sysinfo.h> +#include <sys/types.h> +#include <sys/stat.h> #include <unistd.h> #include <stdlib.h> #include <string.h> @@ -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); |
