csv: fix inferring separator from .ssv/.tsv file extensions
This was documented but untested and may have never worked.
This commit is contained in:
		
							parent
							
								
									fbf47b85dd
								
							
						
					
					
						commit
						a3c749f9e7
					
				| @ -725,10 +725,18 @@ readJournalFromCsv mrulesfile csvfile csvdata = | ||||
|                     Just s  -> readDef (throwerr $ "could not parse skip value: " ++ show s) s | ||||
| 
 | ||||
|   -- parse csv | ||||
|   let | ||||
|     -- parsec seems to fail if you pass it "-" here TODO: try again with megaparsec | ||||
|   let parsecfilename = if csvfile == "-" then "(stdin)" else csvfile | ||||
|   let separator = fromMaybe ',' (getDirective "separator" rules >>= parseSeparator) | ||||
|   dbg6IO "separator" separator | ||||
|     parsecfilename = if csvfile == "-" then "(stdin)" else csvfile | ||||
|     separator = | ||||
|       case getDirective "separator" rules >>= parseSeparator of | ||||
|         Just c           -> c | ||||
|         _ | ext == "ssv" -> ';' | ||||
|         _ | ext == "tsv" -> '\t' | ||||
|         _                -> ',' | ||||
|         where | ||||
|           ext = map toLower $ drop 1 $ takeExtension csvfile | ||||
|   dbg6IO "using separator" separator | ||||
|   records <- (either throwerr id . | ||||
|               dbg7 "validateCsv" . validateCsv rules skiplines . | ||||
|               dbg7 "parseCsv") | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user