fix: csv: Allow unicode in field references for csv. (#1809)
This commit is contained in:
parent
6760379d64
commit
2f47ae05c6
@ -45,7 +45,7 @@ import qualified Control.Monad.Fail as Fail
|
||||
import Control.Monad.IO.Class (MonadIO, liftIO)
|
||||
import Control.Monad.State.Strict (StateT, get, modify', evalStateT)
|
||||
import Control.Monad.Trans.Class (lift)
|
||||
import Data.Char (toLower, isDigit, isSpace, isAlphaNum, isAscii, ord)
|
||||
import Data.Char (toLower, isDigit, isSpace, isAlphaNum, ord)
|
||||
import Data.Bifunctor (first)
|
||||
import Data.List (elemIndex, foldl', intersperse, mapAccumL, nub, sortBy)
|
||||
import Data.Maybe (catMaybes, fromMaybe, isJust)
|
||||
@ -1245,7 +1245,7 @@ renderTemplate rules record t = maybe t mconcat $ parseMaybe
|
||||
t
|
||||
where
|
||||
referencep = liftA2 T.cons (char '%') (takeWhile1P (Just "reference") isFieldNameChar) :: Parsec CustomErr Text Text
|
||||
isFieldNameChar c = isAscii c && (isAlphaNum c || c == '_' || c == '-')
|
||||
isFieldNameChar c = isAlphaNum c || c == '_' || c == '-'
|
||||
|
||||
-- | Replace something that looks like a reference to a csv field ("%date" or "%1)
|
||||
-- with that field's value. If it doesn't look like a field reference, or if we
|
||||
|
||||
@ -1014,6 +1014,24 @@ $ ./csvtest.sh
|
||||
|
||||
>=0
|
||||
|
||||
# 50. Allow unicode field references (#1809)
|
||||
<
|
||||
Date, Description, Id, Amount
|
||||
12/11/2019, Foo, 123, 10.23
|
||||
|
||||
RULES
|
||||
skip 1
|
||||
fields date, description, unicöde, amount
|
||||
date-format %d/%m/%Y
|
||||
code %unicöde
|
||||
|
||||
$ ./csvtest.sh
|
||||
2019-11-12 (123) Foo
|
||||
expenses:unknown 10.23
|
||||
income:unknown -10.23
|
||||
|
||||
>=0
|
||||
|
||||
## .
|
||||
#<
|
||||
#$ ./csvtest.sh
|
||||
|
||||
Loading…
Reference in New Issue
Block a user