lib: disallow tabs in simplecommoditysymbolp (fixes #1301)
This commit is contained in:
		
							parent
							
								
									76b04ceb4f
								
							
						
					
					
						commit
						a82c383370
					
				@ -26,12 +26,10 @@ import Hledger.Utils
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- characters that may not be used in a non-quoted commodity symbol
 | 
					-- characters that may not be used in a non-quoted commodity symbol
 | 
				
			||||||
nonsimplecommoditychars = "0123456789-+.@*;\n \"{}=" :: String
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
isNonsimpleCommodityChar :: Char -> Bool
 | 
					isNonsimpleCommodityChar :: Char -> Bool
 | 
				
			||||||
isNonsimpleCommodityChar c = isDigit c || c `textElem` otherChars
 | 
					isNonsimpleCommodityChar c = isDigit c || c `textElem` otherChars
 | 
				
			||||||
 where
 | 
					 where
 | 
				
			||||||
   otherChars = "-+.@*;\n \"{}=" :: T.Text
 | 
					   otherChars = "-+.@*;\t\n \"{}=" :: T.Text
 | 
				
			||||||
   textElem = T.any . (==)
 | 
					   textElem = T.any . (==)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
quoteCommoditySymbolIfNeeded s | T.any (isNonsimpleCommodityChar) s = "\"" <> s <> "\""
 | 
					quoteCommoditySymbolIfNeeded s | T.any (isNonsimpleCommodityChar) s = "\"" <> s <> "\""
 | 
				
			||||||
 | 
				
			|||||||
@ -151,6 +151,21 @@ $ hledger -f- print
 | 
				
			|||||||
$ hledger -f- print
 | 
					$ hledger -f- print
 | 
				
			||||||
> //    # any stdout, no stderr, 0 exit code
 | 
					> //    # any stdout, no stderr, 0 exit code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 12. After commodity on the right, don't parse tab
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					2020-07-21
 | 
				
			||||||
 | 
						a    	-1600 EUR
 | 
				
			||||||
 | 
						a		1600 EUR	
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					; import Stock value at 2020-07-22
 | 
				
			||||||
 | 
					2020-07-21 
 | 
				
			||||||
 | 
						a 	-1 EUR  
 | 
				
			||||||
 | 
						a 	 1 EUR	
 | 
				
			||||||
 | 
					$ hledger -f- bal a
 | 
				
			||||||
 | 
					--------------------
 | 
				
			||||||
 | 
					                   0
 | 
				
			||||||
 | 
					>=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 12. Example of surprising decimal mark parsing behaviour.
 | 
					# 12. Example of surprising decimal mark parsing behaviour.
 | 
				
			||||||
# Without a commodity declaration, these amounts are parsed as 10 and 10000.
 | 
					# Without a commodity declaration, these amounts are parsed as 10 and 10000.
 | 
				
			||||||
# <
 | 
					# <
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user