diff options
author | Nathan Scott <nathans@redhat.com> | 2020-08-20 14:13:07 +1000 |
---|---|---|
committer | Nathan Scott <nathans@redhat.com> | 2020-08-20 14:13:07 +1000 |
commit | cdff8aea2ab10870af1aad5bdb6949ea0fd407b0 (patch) | |
tree | 5fc420f7745c5a734bb59a99f897f61ba1dd59b1 /linux/Battery.c | |
parent | b30c22d687e692fb2a16ce50d491f3d724301af5 (diff) | |
parent | 1886117c721c4d66a61f58bbfe5367e6fc527367 (diff) |
Merge branch 'hishamhm-pull-946'
Diffstat (limited to 'linux/Battery.c')
-rw-r--r-- | linux/Battery.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/linux/Battery.c b/linux/Battery.c index aedacabc..029eff59 100644 --- a/linux/Battery.c +++ b/linux/Battery.c @@ -193,7 +193,18 @@ static void Battery_getSysData(double* level, ACPresence* isOnAC) { char* entryName = (char *) dirEntry->d_name; const char filePath[50]; - if (entryName[0] == 'B' && entryName[1] == 'A' && entryName[2] == 'T') { + xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/type", entryName); + int fd = open(filePath, O_RDONLY); + if (fd == -1) + continue; + + char type[8]; + ssize_t typelen = xread(fd, type, 7); + close(fd); + if (typelen < 1) + continue; + + if (type[0] == 'B' && type[1] == 'a' && type[2] == 't') { xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/uevent", entryName); int fd = open(filePath, O_RDONLY); |