diff options
-rw-r--r-- | battstat/apmlib/apmlib.c | 34 | ||||
-rw-r--r-- | geyes/themes.c | 8 |
2 files changed, 32 insertions, 10 deletions
diff --git a/battstat/apmlib/apmlib.c b/battstat/apmlib/apmlib.c index 41c8fdf7..0e9946cd 100644 --- a/battstat/apmlib/apmlib.c +++ b/battstat/apmlib/apmlib.c @@ -59,7 +59,10 @@ int apm_read(apm_info * i) if (!(str = fopen(APM_PROC, "r"))) return 1; - fgets(buffer, sizeof(buffer) - 1, str); + + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + buffer[sizeof(buffer) - 1] = '\0'; /* Should check for other driver versions; driver 1.9 (and some @@ -95,12 +98,19 @@ int apm_read(apm_info * i) sscanf(buffer, "BIOS version: %d.%d", &i->apm_version_major, &i->apm_version_minor); - fgets(buffer, sizeof(buffer) - 1, str); + + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + sscanf(buffer, "Flags: 0x%02x", &i->apm_flags); if (i->apm_flags & APM_32_BIT_SUPPORT) { - fgets(buffer, sizeof(buffer) - 1, str); - fgets(buffer, sizeof(buffer) - 1, str); + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + if (buffer[0] != 'P') { if (!strncmp(buffer + 4, "off line", 8)) @@ -110,7 +120,9 @@ int apm_read(apm_info * i) else if (!strncmp(buffer + 4, "on back", 7)) i->ac_line_status = 2; - fgets(buffer, sizeof(buffer) - 1, str); + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + if (!strncmp(buffer + 16, "high", 4)) i->battery_status = 0; else if (!strncmp(buffer + 16, "low", 3)) @@ -120,15 +132,21 @@ int apm_read(apm_info * i) else if (!strncmp(buffer + 16, "charg", 5)) i->battery_status = 3; - fgets(buffer, sizeof(buffer) - 1, str); + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + if (strncmp(buffer + 14, "unknown", 7)) i->battery_percentage = atoi(buffer + 14); if (i->apm_version_major >= 1 && i->apm_version_minor >= 1) { - fgets(buffer, sizeof(buffer) - 1, str); + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + sscanf(buffer, "Battery flag: 0x%02x", &i->battery_flags); - fgets(buffer, sizeof(buffer) - 1, str); + if (fgets(buffer, sizeof(buffer) - 1, str) == NULL) + printf("fgets error\n"); + if (strncmp(buffer + 14, "unknown", 7)) i->battery_time = atoi(buffer + 14); } diff --git a/geyes/themes.c b/geyes/themes.c index 01924ea8..687c4694 100644 --- a/geyes/themes.c +++ b/geyes/themes.c @@ -56,7 +56,10 @@ parse_theme_file (EyesApplet *eyes_applet, FILE *theme_file) { gchar line_buf [512]; /* prolly overkill */ gchar *token; - fgets (line_buf, 512, theme_file); + + if (fgets (line_buf, 512, theme_file) == NULL) + printf("fgets error\n"); + while (!feof (theme_file)) { token = strtok (line_buf, "="); if (strncmp (token, "wall-thickness", @@ -92,7 +95,8 @@ parse_theme_file (EyesApplet *eyes_applet, FILE *theme_file) eyes_applet->theme_dir, token); } - fgets (line_buf, 512, theme_file); + if (fgets (line_buf, 512, theme_file) == NULL) + printf("fgets error\n"); } } |