From 13855d6b53c8387475301e58b32df6c87e25158e Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Thu, 1 Feb 2018 09:41:03 -0800 Subject: [PATCH] csv: no csv records is no longer an error --- hledger-lib/Hledger/Read/CsvReader.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hledger-lib/Hledger/Read/CsvReader.hs b/hledger-lib/Hledger/Read/CsvReader.hs index 5bec0fd86..269a84947 100644 --- a/hledger-lib/Hledger/Read/CsvReader.hs +++ b/hledger-lib/Hledger/Read/CsvReader.hs @@ -169,13 +169,13 @@ parseCsv path csvdata = "-" -> liftM (parseCSV "(stdin)") getContents _ -> return $ parseCSV path csvdata --- | Return the cleaned up and validated CSV data, or an error. +-- | Return the cleaned up and validated CSV data (can be empty), or an error. validateCsv :: Int -> Either Parsec.ParseError CSV -> Either String [CsvRecord] validateCsv _ (Left e) = Left $ show e validateCsv numhdrlines (Right rs) = validate $ drop numhdrlines $ filternulls rs where filternulls = filter (/=[""]) - validate [] = Left "no CSV records found" + validate [] = Right [] validate rs@(first:_) | isJust lessthan2 = let r = fromJust lessthan2 in Left $ printf "CSV record %s has less than two fields" (show r) | isJust different = let r = fromJust different in Left $ printf "the first CSV record %s has %d fields but %s has %d" (show first) length1 (show r) (length r)