From c4944f4c857a08b0f5d2cf607967051551bcab81 Mon Sep 17 00:00:00 2001
From: Fuad Ismail <fuad1502@gmail.com>
Date: Wed, 27 Nov 2024 15:59:03 +0700
Subject: [PATCH] dmesg: remove int to float conversion for adding sign.

---
 src/uu/dmesg/src/time_formatter.rs | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/uu/dmesg/src/time_formatter.rs b/src/uu/dmesg/src/time_formatter.rs
index 8c09907..d2d7287 100644
--- a/src/uu/dmesg/src/time_formatter.rs
+++ b/src/uu/dmesg/src/time_formatter.rs
@@ -73,12 +73,10 @@ impl ReltimeFormatter {
     fn delta(delta_us: i64) -> String {
         let seconds = i64::abs(delta_us / 1000000);
         let sub_seconds = i64::abs(delta_us % 1000000);
-        let sign = if delta_us >= 0 { 1.0 } else { -1.0 };
-        format!(
-            "{:>+4.0}.{:0>6}",
-            sign * f64::from(seconds as i32),
-            sub_seconds
-        )
+        let sign = if delta_us >= 0 { '+' } else { '-' };
+        let mut res = format!("{}.{:0>6}", seconds, sub_seconds);
+        res.insert(0, sign);
+        format!("{:>11}", res)
     }
 }
 
@@ -106,12 +104,11 @@ impl DeltaFormatter {
     fn delta(delta_us: i64) -> String {
         let seconds = i64::abs(delta_us / 1000000);
         let sub_seconds = i64::abs(delta_us % 1000000);
-        let sign = if delta_us >= 0 { 1.0 } else { -1.0 };
-        format!(
-            "<{:>5.0}.{:0>6}>",
-            sign * f64::from(seconds as i32),
-            sub_seconds
-        )
+        let mut res = format!("{}.{:0>6}", seconds, sub_seconds);
+        if delta_us < 0 {
+            res.insert(0, '-');
+        }
+        format!("<{:>12}>", res)
     }
 }