display non-simple commodity names with double-quotes
This ensures print's output remains parseable. The other commands also double-quote them, for consistency, like c++ ledger.
This commit is contained in:
parent
8257c98440
commit
586c824cac
@ -106,9 +106,10 @@ showAmount :: Amount -> String
|
||||
showAmount (Amount (Commodity {symbol="AUTO"}) _ _) = "" -- can appear in an error message
|
||||
showAmount a@(Amount (Commodity {symbol=sym,side=side,spaced=spaced}) _ pri) =
|
||||
case side of
|
||||
L -> printf "%s%s%s%s" sym space quantity price
|
||||
R -> printf "%s%s%s%s" quantity space sym price
|
||||
where
|
||||
L -> printf "%s%s%s%s" sym' space quantity price
|
||||
R -> printf "%s%s%s%s" quantity space sym' price
|
||||
where
|
||||
sym' = quoteCommoditySymbolIfNeeded sym
|
||||
space = if spaced then " " else ""
|
||||
quantity = showAmount' a
|
||||
price = case pri of (Just pamt) -> " @ " ++ showMixedAmount pamt
|
||||
|
||||
@ -16,6 +16,9 @@ import Data.Map ((!))
|
||||
|
||||
nonsimplecommoditychars = "0123456789-.@;\n \""
|
||||
|
||||
quoteCommoditySymbolIfNeeded s | any (`elem` nonsimplecommoditychars) s = "\"" ++ s ++ "\""
|
||||
| otherwise = s
|
||||
|
||||
-- convenient amount and commodity constructors, for tests etc.
|
||||
|
||||
unknown = Commodity {symbol="", side=L,spaced=False,comma=False,precision=0}
|
||||
|
||||
@ -7,7 +7,7 @@ bin/hledger -f- print
|
||||
b
|
||||
>>>2 /parse error.*unexpected "0"/
|
||||
>>>= 1
|
||||
# 2. with quotes
|
||||
# 2. with quotes, ok; quotes appear in print output
|
||||
bin/hledger -f- print
|
||||
<<<
|
||||
2010-04-05 x
|
||||
@ -15,6 +15,17 @@ bin/hledger -f- print
|
||||
b
|
||||
>>>
|
||||
2010/04/05 x
|
||||
a 10 DE0002635307
|
||||
b -10 DE0002635307
|
||||
a 10 "DE0002635307"
|
||||
b -10 "DE0002635307"
|
||||
|
||||
# 3. and in other reports too, I guess
|
||||
bin/hledger -f- balance
|
||||
<<<
|
||||
2010-04-05 x
|
||||
a 10 "DE0002635307"
|
||||
b
|
||||
>>>
|
||||
10 "DE0002635307" a
|
||||
-10 "DE0002635307" b
|
||||
--------------------
|
||||
0 "DE0002635307"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user