diff options
Diffstat (limited to 'mem.c')
| -rw-r--r-- | mem.c | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -3,7 +3,7 @@ #define ICON_MEM " " #define FG "#222222" #define BG "#95b18b99" -#define mem_val(n)\ +#define get_mem_val(n)\ for(n = 0; (c = fgetc(meminfo)) != '\n';)\ if (c >= '0' && c <= '9')\ n = 10 * n + (c - '0') @@ -11,19 +11,20 @@ FILE *meminfo; int mem_delay = 3; char mem_str[15]; -void mem(void) { +void mem(void) +{ if (mem_delay++ < 3) goto show_stat; else mem_delay = 0; if (!meminfo) meminfo = fopen("/proc/meminfo","r"); int c, mem; int total, free, buffers, cached, shared, reclaim; - jmpl(1); mem_val(total); - jmpl(2); mem_val(free); - jmpl(4); mem_val(buffers); - jmpl(5); mem_val(cached); - jmpl(23); mem_val(shared); - jmpl(26); mem_val(reclaim); + jmpl(1); get_mem_val(total); + jmpl(2); get_mem_val(free); + jmpl(4); get_mem_val(buffers); + jmpl(5); get_mem_val(cached); + jmpl(23); get_mem_val(shared); + jmpl(26); get_mem_val(reclaim); mem = total + reclaim - (free+buffers+cached+shared); mem /= 1024; snprintf(mem_str,15,ICON_MEM"%5d MiB",mem); |