X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/0bc6855741cc9fbdf5c3ffd0d9cb983b0a66f635..7f91ce265ea456b3096ccba7fdbb890bcf00e225:/components/cpu.c

diff --git a/components/cpu.c b/components/cpu.c
index 2e910d9..ecd45a6 100644
--- a/components/cpu.c
+++ b/components/cpu.c
@@ -20,13 +20,12 @@
 			return NULL;
 		}
 
-		return fmt_human_10(freq * 1000, "Hz");
+		return fmt_human(freq * 1000, 1000);
 	}
 
 	const char *
 	cpu_perc(void)
 	{
-		static int valid;
 		static long double a[7];
 		long double b[7];
 
@@ -36,12 +35,11 @@
 		           &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != 7) {
 			return NULL;
 		}
-		if (!valid) {
-			valid = 1;
+		if (b[0] == 0) {
 			return NULL;
 		}
 
-		return bprintf("%d%%", (int)(100 *
+		return bprintf("%d", (int)(100 *
 		               ((b[0] + b[1] + b[2] + b[5] + b[6]) -
 		                (a[0] + a[1] + a[2] + a[5] + a[6])) /
 		               ((b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + b[6]) -
@@ -69,14 +67,13 @@
 			return NULL;
 		}
 
-		return fmt_human_10((size_t)freq * 1000 * 1000, "Hz");
+		return fmt_human((size_t)freq * 1000 * 1000, 1000);
 	}
 
 	const char *
 	cpu_perc(void)
 	{
 		int mib[2];
-		static int valid;
 		static long int a[CPUSTATES];
 		long int b[CPUSTATES];
 		size_t size;
@@ -91,12 +88,11 @@
 			warn("sysctl 'KERN_CPTIME':");
 			return NULL;
 		}
-		if (!valid) {
-			valid = 1;
+		if (b[0] == 0) {
 			return NULL;
 		}
 
-		return bprintf("%d%%", 100 *
+		return bprintf("%d", 100 *
 		               ((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR]) -
 		                (b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR])) /
 		               ((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] +