summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLeo Zhang <leo@leozhang.me>2021-08-08 22:14:55 -0700
committerLeo Zhang <leo@leozhang.me>2021-08-08 22:14:55 -0700
commit0b1ad269d109ec46e32910a09339832181e4eb43 (patch)
treedb7fedc36ad1a78464ed2919b4295b37232ed547
parent4eb262c3e3fb2db3e4e68be17613a51c764f0b00 (diff)
downloadxmobar-0b1ad269d109ec46e32910a09339832181e4eb43.tar.gz
xmobar-0b1ad269d109ec46e32910a09339832181e4eb43.tar.bz2
fix: padString should not make strings longer
-rw-r--r--src/Xmobar/Plugins/Monitors/Common/Output.hs2
-rw-r--r--test/Xmobar/Plugins/Monitors/CommonSpec.hs8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/Xmobar/Plugins/Monitors/Common/Output.hs b/src/Xmobar/Plugins/Monitors/Common/Output.hs
index 3c18e87..248f276 100644
--- a/src/Xmobar/Plugins/Monitors/Common/Output.hs
+++ b/src/Xmobar/Plugins/Monitors/Common/Output.hs
@@ -140,7 +140,7 @@ showWithUnits d n x
padString :: Int -> Int -> String -> Bool -> String -> String -> String
padString mnw mxw pad pr ellipsis s =
let len = length s
- rmin = if mnw <= 0 then 1 else mnw
+ rmin = if mnw < 0 then 0 else mnw
rmax = if mxw <= 0 then max len rmin else mxw
(rmn, rmx) = if rmin <= rmax then (rmin, rmax) else (rmax, rmin)
rlen = min (max rmn len) rmx
diff --git a/test/Xmobar/Plugins/Monitors/CommonSpec.hs b/test/Xmobar/Plugins/Monitors/CommonSpec.hs
index 84cfbf3..578b1a5 100644
--- a/test/Xmobar/Plugins/Monitors/CommonSpec.hs
+++ b/test/Xmobar/Plugins/Monitors/CommonSpec.hs
@@ -13,7 +13,7 @@ spec :: Spec
spec =
describe "Common.padString" $ do
it "returns given string when called with default values" $
- do padString 0 0 "" False "" "test" `shouldBe` "test"
+ padString 0 0 "" False "" "test" `shouldBe` "test"
it "truncates to max width" $ do
let maxw = 3
@@ -27,3 +27,9 @@ spec =
ellipsis = "..."
expectedStr = (++ ellipsis) . take 3 $ givenStr
padString 0 maxw "" False ellipsis givenStr `shouldBe` expectedStr
+
+ it "does not pad empty strings" $ do
+ let padChars = " "
+ givenStr = ""
+ expectedStr = ""
+ padString 0 0 padChars False "" givenStr `shouldBe` expectedStr