From e241dbeba4bd8e4f9cd2786d76697afd6057e406 Mon Sep 17 00:00:00 2001
From: Vincent Loupmon <vincentloupmon@gmail.com>
Date: Wed, 9 Mar 2016 12:38:22 +0100
Subject: Changed RAM calculation formula.

Former : MemTotal - MemAvailable
New : (MemTotal - MemFree) - (Buffers + Cached)
---
 slstatus.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/slstatus.c b/slstatus.c
index cd2def6..331a345 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -162,7 +162,7 @@ char *
 get_ram_usage()
 {
     int ram_perc;
-    long total, free, available;
+    long total, free, buffers, cached;
     FILE *fp;
 
     /* open meminfo file */
@@ -174,13 +174,14 @@ get_ram_usage()
     /* read the values */
     fscanf(fp, "MemTotal: %ld kB\n", &total);
     fscanf(fp, "MemFree: %ld kB\n", &free);
-    fscanf(fp, "MemAvailable: %ld kB\n", &available);
+    fscanf(fp, "MemAvailable: %ld kB\nBuffers: %ld kB\n", &buffers, &buffers);
+    fscanf(fp, "Cached: %ld kB\n", &cached);
 
     /* close meminfo file */
     fclose(fp);
 
     /* calculate percentage */
-    ram_perc = 100 * (total - available) / total;
+    ram_perc = 100 * ((total - free) - (buffers + cached)) / total;
 
     /* return ram_perc as string */
     return smprintf("%d%%",ram_perc);
-- 
cgit v1.2.3