summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2016-06-19 18:55:35 -0300
committerGitHub <noreply@github.com>2016-06-19 18:55:35 -0300
commit0fa03322a935a6ffc564852068f13302f3dd1e72 (patch)
tree2f7fc7ef742e55a46cec55fac9114256c68cb002 /linux
parent52f814481cdfa4be2290953978a81014f8bfd391 (diff)
Dynamically adjust the size of line reads
* Dynamically adjust the size of line reads. * Remove some more uses of fgets with arbitrary sizes. * Fix reading of lines and width of n column. Fixes #514.
Diffstat (limited to 'linux')
-rw-r--r--linux/Battery.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/linux/Battery.c b/linux/Battery.c
index 572bad48..10681844 100644
--- a/linux/Battery.c
+++ b/linux/Battery.c
@@ -65,10 +65,11 @@ static unsigned long int parseBatInfo(const char *fileName, const unsigned short
break;
}
- char line[50] = "";
+ char* line = NULL;
for (unsigned short int i = 0; i < lineNum; i++) {
- char* ok = fgets(line, sizeof line, file);
- if (!ok) break;
+ free(line);
+ line = String_readLine(file);
+ if (!line) break;
}
fclose(file);
@@ -76,7 +77,8 @@ static unsigned long int parseBatInfo(const char *fileName, const unsigned short
char *foundNumStr = String_getToken(line, wordNum);
const unsigned long int foundNum = atoi(foundNumStr);
free(foundNumStr);
-
+ free(line);
+
total += foundNum;
}
@@ -116,14 +118,13 @@ static ACPresence procAcpiCheck() {
continue;
}
- char line[100];
- char* ok = fgets(line, sizeof line, file);
- if (!ok) continue;
- line[sizeof(line) - 1] = '\0';
+ char* line = String_readLine(file);
+ if (!line) continue;
fclose(file);
const char *isOnline = String_getToken(line, 2);
+ free(line);
if (strcmp(isOnline, "on-line") == 0) {
isOn = AC_PRESENT;

© 2014-2024 Faster IT GmbH | imprint | privacy policy