From f416c2f05c820e348c9fc1a82b0ae0756774b293 Mon Sep 17 00:00:00 2001
From: Lorenz Stechauner <lorenz.stechauner@necronda.net>
Date: Mon, 2 Jan 2023 22:20:33 +0100
Subject: [PATCH] Change format_duration to format minutes as XX:XX

---
 src/lib/utils.c   | 2 +-
 test/test_utils.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/utils.c b/src/lib/utils.c
index 6b227d8..1d383ad 100644
--- a/src/lib/utils.c
+++ b/src/lib/utils.c
@@ -26,7 +26,7 @@ char *format_duration(unsigned long micros, char *buf) {
     } else if (micros < 60000000 - 1000000) {
         sprintf(buf, "%.1f s", (double) micros / 1000000);
     } else if (micros < 6000000000) {
-        sprintf(buf, "%.1f min", (double) micros / 1000000 / 60);
+        sprintf(buf, "%li:%02li min", micros / 1000000 / 60, micros / 1000000 % 60);
     } else {
         sprintf(buf, "%.0f min", (double) micros / 1000000 / 60);
     }
diff --git a/test/test_utils.c b/test/test_utils.c
index 912a017..ade27c7 100644
--- a/test/test_utils.c
+++ b/test/test_utils.c
@@ -72,9 +72,9 @@ ParameterizedTestParameters(utils, format_duration) {
             {999999, "1.0 s"},
             {1000000, "1.0 s"},
             {3000000, "3.0 s"},
-            {1000000 * 60, "1.0 min"},
-            {1000000 * 60 * 30L - 30000000, "29.5 min"},
-            {1000000 * 60 * 60L, "60.0 min"},
+            {1000000 * 60, "1:00 min"},
+            {1000000 * 60 * 30L - 30000000, "29:30 min"},
+            {1000000 * 60 * 60L, "60:00 min"},
             {1000000 * 60 * 120L, "120 min"},
     };
     return cr_make_param_array(struct format_duration_t, params, sizeof(params) / sizeof(struct format_duration_t));