From fe73f2a6b514f5fdf6b372cde76a49d63d5f7ebc Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 22 Jul 2018 18:42:00 +0100 Subject: [PATCH] csv: interpolated field names in values are now case insensitive Field names are supposed to be case insensitive, but a field assignment like fields ...,Transaction_Date,... date %Transaction_Date was failing, because of the capitalised letters. Fixed now. --- hledger-lib/Hledger/Read/CsvReader.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hledger-lib/Hledger/Read/CsvReader.hs b/hledger-lib/Hledger/Read/CsvReader.hs index 823e388e3..c4006f6c8 100644 --- a/hledger-lib/Hledger/Read/CsvReader.hs +++ b/hledger-lib/Hledger/Read/CsvReader.hs @@ -800,10 +800,10 @@ getEffectiveAssignment rules record f = lastMay $ assignmentsFor f renderTemplate :: CsvRules -> CsvRecord -> FieldTemplate -> String renderTemplate rules record t = regexReplaceBy "%[A-z0-9]+" replace t where - replace ('%':pat) = maybe pat (\i -> atDef "" record (i-1)) mi + replace ('%':pat) = maybe pat (\i -> atDef "" record (i-1)) mindex where - mi | all isDigit pat = readMay pat - | otherwise = lookup pat $ rcsvfieldindexes rules + mindex | all isDigit pat = readMay pat + | otherwise = lookup (map toLower pat) $ rcsvfieldindexes rules replace pat = pat -- Parse the date string using the specified date-format, or if unspecified try these default formats: