lib: more robust multi-line joining in csv parser
This commit is contained in:
parent
9440664fc4
commit
24bba96ea2
@ -77,9 +77,9 @@ rstrip = reverse . lstrip . reverse
|
||||
chomp :: String -> String
|
||||
chomp = reverse . dropWhile (`elem` "\r\n") . reverse
|
||||
|
||||
-- | Remove line breaks
|
||||
-- | Remove consequtive line breaks, replacing them with single space
|
||||
singleline :: String -> String
|
||||
singleline = map (\c -> if c `elem` "\r\n" then ' ' else c)
|
||||
singleline = unwords . filter (/="") . (map strip) . lines
|
||||
|
||||
stripbrackets :: String -> String
|
||||
stripbrackets = dropWhile (`elem` "([") . reverse . dropWhile (`elem` "])") . reverse :: String -> String
|
||||
|
||||
@ -145,7 +145,7 @@ $ printf 'account1 Assets:MyAccount\ndate %%1\ndate-format %%d/%%Y/%%m\ndescrip
|
||||
>=0
|
||||
|
||||
# 14. multiline descriptions
|
||||
$ printf 'fields date, description, amount\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\n' >t.$$.csv.rules; printf '10/2009/09,"Flubber Co\nCo\nCo",50\n' | hledger -f csv:- --rules-file t.$$.csv.rules print && rm -rf t.$$.csv.rules
|
||||
$ printf 'fields date, description, amount\ndate-format %%d/%%Y/%%m\ncurrency $\naccount1 assets:myacct\n' >t.$$.csv.rules; printf '10/2009/09,"Flubber Co\n\n\n\nCo\nCo\n\n\n\n\n",50\n' | hledger -f csv:- --rules-file t.$$.csv.rules print && rm -rf t.$$.csv.rules
|
||||
2009/09/10 Flubber Co Co Co
|
||||
assets:myacct $50
|
||||
expense:unknown
|
||||
|
||||
Loading…
Reference in New Issue
Block a user