summaryrefslogtreecommitdiff
path: root/slstatus.c
diff options
context:
space:
mode:
authorJody Leonard <me@jodyleonard.com>2016-10-15 19:50:02 -0400
committerJody Leonard <me@jodyleonard.com>2016-10-15 19:51:19 -0400
commit9bef4e889a547ed909a23bb57489bc71da80e472 (patch)
tree51430783ba27a7e7a7fc7768946b1c873387e4f8 /slstatus.c
parent4d6761e0c70942d5cab055bf12ebc6ac920d39b5 (diff)
swap: Print UNKNOWN_STR if no swap is allocated
Diffstat (limited to 'slstatus.c')
-rw-r--r--slstatus.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/slstatus.c b/slstatus.c
index f39a2dc..9559226 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -424,7 +424,7 @@ run_command(const char *cmd)
static char *
swap_free(void)
{
- long free;
+ long total, free;
FILE *fp;
char buf[2048];
size_t bytes_read;
@@ -443,6 +443,12 @@ swap_free(void)
return smprintf(UNKNOWN_STR);
}
+ match = strstr(buf, "SwapTotal");
+ sscanf(match, "SwapTotal: %ld kB\n", &total);
+ if (total == 0) {
+ return smprintf(UNKNOWN_STR);
+ }
+
match = strstr(buf, "SwapFree");
sscanf(match, "SwapFree: %ld kB\n", &free);
@@ -471,11 +477,14 @@ swap_perc(void)
return smprintf(UNKNOWN_STR);
}
- match = strstr(buf, "SwapCached");
- sscanf(match, "SwapCached: %ld kB\n", &cached);
-
match = strstr(buf, "SwapTotal");
sscanf(match, "SwapTotal: %ld kB\n", &total);
+ if (total == 0) {
+ return smprintf(UNKNOWN_STR);
+ }
+
+ match = strstr(buf, "SwapCached");
+ sscanf(match, "SwapCached: %ld kB\n", &cached);
match = strstr(buf, "SwapFree");
sscanf(match, "SwapFree: %ld kB\n", &free);
@@ -507,6 +516,9 @@ swap_total(void)
match = strstr(buf, "SwapTotal");
sscanf(match, "SwapTotal: %ld kB\n", &total);
+ if (total == 0) {
+ return smprintf(UNKNOWN_STR);
+ }
return smprintf("%f", (float)total / 1024 / 1024);
}
@@ -533,11 +545,14 @@ swap_used(void)
return smprintf(UNKNOWN_STR);
}
- match = strstr(buf, "SwapCached");
- sscanf(match, "SwapCached: %ld kB\n", &cached);
-
match = strstr(buf, "SwapTotal");
sscanf(match, "SwapTotal: %ld kB\n", &total);
+ if (total == 0) {
+ return smprintf(UNKNOWN_STR);
+ }
+
+ match = strstr(buf, "SwapCached");
+ sscanf(match, "SwapCached: %ld kB\n", &cached);
match = strstr(buf, "SwapFree");
sscanf(match, "SwapFree: %ld kB\n", &free);