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.IO.Class     (MonadIO, liftIO) | ||||||
| import Control.Monad.State.Strict (StateT, get, modify', evalStateT) | import Control.Monad.State.Strict (StateT, get, modify', evalStateT) | ||||||
| import Control.Monad.Trans.Class  (lift) | 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.Bifunctor             (first) | ||||||
| import Data.List (elemIndex, foldl', intersperse, mapAccumL, nub, sortBy) | import Data.List (elemIndex, foldl', intersperse, mapAccumL, nub, sortBy) | ||||||
| import Data.Maybe (catMaybes, fromMaybe, isJust) | import Data.Maybe (catMaybes, fromMaybe, isJust) | ||||||
| @ -1245,7 +1245,7 @@ renderTemplate rules record t = maybe t mconcat $ parseMaybe | |||||||
|     t |     t | ||||||
|   where |   where | ||||||
|     referencep = liftA2 T.cons (char '%') (takeWhile1P (Just "reference") isFieldNameChar) :: Parsec CustomErr Text Text |     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) | -- | 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 | -- with that field's value. If it doesn't look like a field reference, or if we | ||||||
|  | |||||||
| @ -1014,6 +1014,24 @@ $  ./csvtest.sh | |||||||
| 
 | 
 | ||||||
| >=0 | >=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 | #$  ./csvtest.sh | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user