From 350f62128ea8a681c98e4c51ef5040641df4416e Mon Sep 17 00:00:00 2001 From: Daniele Scasciafratte Date: Thu, 19 Sep 2024 10:49:30 +0200 Subject: [PATCH] feat(code): reset --- src/translate/compute.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/translate/compute.rs b/src/translate/compute.rs index 35bb3220..ffbd2451 100644 --- a/src/translate/compute.rs +++ b/src/translate/compute.rs @@ -26,16 +26,17 @@ pub fn translate_computation(meta: &TranslateMetadata, operation: ArithOp, left: match meta.arith_module { ArithType::BcSed => { let (left, right) = (left.unwrap_or_default(), right.unwrap_or_default()); - let mut math_lib_flag = true; - // Removes trailing zeros from the expression - let sed_regex = "/\\./ s/\\.\\{0,1\\}0\\{1,\\}$//"; + let mut scale = ""; let op = match operation { ArithOp::Add => "+", ArithOp::Sub => "-", ArithOp::Mul => "*", - ArithOp::Div => "/", + ArithOp::Div => { + scale = "scale=0;"; + "/" + }, ArithOp::Modulo => { - math_lib_flag = false; + scale = "scale=0;"; "%" }, ArithOp::Neg => "-", @@ -50,7 +51,7 @@ pub fn translate_computation(meta: &TranslateMetadata, operation: ArithOp, left: ArithOp::Or => "||" }; let math_lib_flag = if math_lib_flag { "-l" } else { "" }; - meta.gen_subprocess(&format!("echo {left} '{op}' {right} | bc {math_lib_flag} | sed '{sed_regex}'")) + meta.gen_subprocess(&format!("echo \"{scale}{left}{op}{right}\" | bc -l")) } } }