mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
lib: When displaying amounts on a single line, always display at least one amount, even if that would exceed the requested maximum width. Addresses #1526.
This commit is contained in:
parent
f5121129ec
commit
28fd7c65f2
@ -451,7 +451,9 @@ showAmountB opts a@Amount{astyle=style} =
|
||||
--
|
||||
-- If a maximum width is given then:
|
||||
-- - If displayed on one line, it will display as many Amounts as can
|
||||
-- fit in the given width, and further Amounts will be elided.
|
||||
-- fit in the given width, and further Amounts will be elided. There
|
||||
-- will always be at least one amount displayed, even if this will
|
||||
-- exceed the requested maximum width.
|
||||
-- - If displayed on multiple lines, any Amounts longer than the
|
||||
-- maximum width will be elided.
|
||||
showAmountsB :: AmountDisplayOpts -> [Amount] -> WideBuilder
|
||||
@ -507,8 +509,10 @@ showAmountsOneLineB opts@AmountDisplayOpts{displayMaxWidth=mmax,displayMinWidth=
|
||||
addElide [] = []
|
||||
addElide xs = maybeAppend (snd $ last xs) $ map fst xs
|
||||
-- Return the elements of the display list which fit within the maximum width
|
||||
-- (including their elision strings)
|
||||
takeFitting m = dropWhileRev (\(a,e) -> m < adTotal (fromMaybe a e))
|
||||
-- (including their elision strings). Always display at least one amount,
|
||||
-- regardless of width.
|
||||
takeFitting _ [] = []
|
||||
takeFitting m (x:xs) = x : dropWhileRev (\(a,e) -> m < adTotal (fromMaybe a e)) xs
|
||||
dropWhileRev p = foldr (\x xs -> if null xs && p x then [] else x:xs) []
|
||||
|
||||
-- Add the elision strings (if any) to each amount
|
||||
|
@ -221,3 +221,16 @@ hledger bal -f -
|
||||
b -,100.0 EUR
|
||||
>>>
|
||||
>>>=1
|
||||
|
||||
# 20. long numbers in multi balance reports
|
||||
hledger bal -YN -f -
|
||||
<<<
|
||||
2021-01-01
|
||||
(a) -0.12345678901234567890123456 EUR
|
||||
>>>
|
||||
Balance changes in 2021:
|
||||
|
||||
|| 2021
|
||||
===++===================================
|
||||
a || -0.12345678901234567890123456 EUR
|
||||
>>>=0
|
||||
|
Loading…
Reference in New Issue
Block a user