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 | ||||
|       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