Amount display styles have been reworked a bit; they are now calculated after journal parsing, not during it. This allows the fix for #196: we now search through the amounts until a decimal point is detected, instead of just looking at the first one; likewise for digit groups. Digit groups are now implemented with a better type. Digit group size detection has been improved a little: 1000,000 now gives group sizes [3,4,4,...], not [3,3,...], and 10,000 gives groups sizes [3,3,...] not [3,2,2,..]. (To get [3,2,2,...] you'd use eg 00,00,000.) There are still some old (or new ?) issues; I don't think we handle inconsistent decimal points & digit groups too well. But for now all tests pass.
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# a default commodity defined with the D directive will be used for any
 | 
						|
# subsequent commodity-less posting amounts. The sample amount's display style
 | 
						|
# is also applied, and the resulting amount may end up setting the canonical
 | 
						|
# display style for the commodity.
 | 
						|
 | 
						|
# 1. no default commodity
 | 
						|
hledgerdev -f- print
 | 
						|
<<<
 | 
						|
2010/1/1
 | 
						|
  a  1000
 | 
						|
  b
 | 
						|
>>>
 | 
						|
2010/01/01
 | 
						|
    a          1000
 | 
						|
    b         -1000
 | 
						|
 | 
						|
>>>=0
 | 
						|
 | 
						|
# 2. pound, two decimal places, no digit group separator
 | 
						|
hledgerdev -f- print
 | 
						|
<<<
 | 
						|
D £1000.00
 | 
						|
2010/1/1
 | 
						|
  a  1000
 | 
						|
  b
 | 
						|
>>>
 | 
						|
2010/01/01
 | 
						|
    a      £1000.00
 | 
						|
    b     £-1000.00
 | 
						|
 | 
						|
>>>=0
 | 
						|
 | 
						|
# 3. dollar, comma decimal point, three decimal places, no digit group separator
 | 
						|
hledgerdev -f- print
 | 
						|
<<<
 | 
						|
D $1,000
 | 
						|
2010/1/1
 | 
						|
  a  1000
 | 
						|
  b
 | 
						|
>>>
 | 
						|
2010/01/01
 | 
						|
    a     $1000,000
 | 
						|
    b    $-1000,000
 | 
						|
 | 
						|
>>>=0
 | 
						|
 | 
						|
# 4. dollar, three digit group separator, one decimal place
 | 
						|
hledgerdev -f- print
 | 
						|
<<<
 | 
						|
D $1,000.0
 | 
						|
2010/1/1
 | 
						|
  (a)  1000000
 | 
						|
>>>
 | 
						|
2010/01/01
 | 
						|
    (a)  $1,000,000.0
 | 
						|
 | 
						|
>>>=0
 | 
						|
 | 
						|
# 5. commodity and display style applied to the second posting amount..
 | 
						|
# which ends up setting the digit group style, since it's the first amount
 | 
						|
# with digit groups. The great precision is used.
 | 
						|
hledgerdev -f- print
 | 
						|
<<<
 | 
						|
D $1,000.0
 | 
						|
2010/1/1
 | 
						|
  (a)  $1000000.00
 | 
						|
  (b)   1000000
 | 
						|
>>>
 | 
						|
2010/01/01
 | 
						|
    (a)  $1,000,000.00
 | 
						|
    (b)  $1,000,000.00
 | 
						|
 | 
						|
>>>=0
 | 
						|
 |