diff options
author | Jody Leonard <me@jodyleonard.com> | 2016-10-15 19:50:02 -0400 |
---|---|---|
committer | Jody Leonard <me@jodyleonard.com> | 2016-10-15 19:51:19 -0400 |
commit | 9bef4e889a547ed909a23bb57489bc71da80e472 (patch) | |
tree | 51430783ba27a7e7a7fc7768946b1c873387e4f8 /slstatus.c | |
parent | 4d6761e0c70942d5cab055bf12ebc6ac920d39b5 (diff) |
swap: Print UNKNOWN_STR if no swap is allocated
Diffstat (limited to 'slstatus.c')
-rw-r--r-- | slstatus.c | 29 |
1 files changed, 22 insertions, 7 deletions
@@ -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); |