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 :: String -> String
|
||||||
chomp = reverse . dropWhile (`elem` "\r\n") . reverse
|
chomp = reverse . dropWhile (`elem` "\r\n") . reverse
|
||||||
|
|
||||||
-- | Remove line breaks
|
-- | Remove consequtive line breaks, replacing them with single space
|
||||||
singleline :: String -> String
|
singleline :: String -> String
|
||||||
singleline = map (\c -> if c `elem` "\r\n" then ' ' else c)
|
singleline = unwords . filter (/="") . (map strip) . lines
|
||||||
|
|
||||||
stripbrackets :: String -> String
|
stripbrackets :: String -> String
|
||||||
stripbrackets = dropWhile (`elem` "([") . reverse . dropWhile (`elem` "])") . reverse :: 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
|
>=0
|
||||||
|
|
||||||
# 14. multiline descriptions
|
# 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
|
2009/09/10 Flubber Co Co Co
|
||||||
assets:myacct $50
|
assets:myacct $50
|
||||||
expense:unknown
|
expense:unknown
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user