From 11f4e64e4571aa809e35e51d882c038666d168e3 Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Thu, 29 Dec 2016 13:53:11 +0100 Subject: [PATCH] Revert "Use BC_LINE_LENGTH=2 for bc." This would fail on very long numbers, e.g. `math "1 + 1233242342353453463458972349873489273984873289472914712894791824712941"` would now return "42", where it previously returned the correct "1233242342353453463458972349873489273984873289472914712894791824712942". This reverts commit 26e781ef5a66a776310a4a47ef02f122e1dc0170. --- share/functions/math.fish | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/share/functions/math.fish b/share/functions/math.fish index 806d3f570..ed638c695 100644 --- a/share/functions/math.fish +++ b/share/functions/math.fish @@ -21,12 +21,9 @@ function math --description "Perform math calculations in bc" return 2 # no arguments is an error end - # With BC_LINE_LENGTH set to 2, the first line is a slash and the following line can be arbitrarily long. - # We can't set this to 0 because some systems don't have a new enough version of bc. - set -lx BC_LINE_LENGTH 2 - set -l out (echo "scale=$scale; $argv" | bc) - set -q out[2] - and set out $out[2] + # Stitch lines together manually. We can't rely on BC_LINE_LENGTH because some systems don't + # have a new enough version of bc. + set -l out (echo "scale=$scale; $argv" | bc | string replace -r '\\\\$' '' | string join '') switch "$out" case '' # No output indicates an error occurred.