lib: Properly escape quotes in csv output.
This commit is contained in:
		
							parent
							
								
									4609e79f2c
								
							
						
					
					
						commit
						4cb9dfb5b8
					
				| @ -813,8 +813,8 @@ parseResultToCsv = toListList . unpackFields | |||||||
| 
 | 
 | ||||||
| printCSV :: CSV -> TL.Text | printCSV :: CSV -> TL.Text | ||||||
| printCSV = TB.toLazyText . unlinesB . map printRecord | printCSV = TB.toLazyText . unlinesB . map printRecord | ||||||
|     where printRecord = mconcat . map TB.fromText . intersperse "," . map printField |     where printRecord = foldMap TB.fromText . intersperse "," . map printField | ||||||
|           printField = wrap "\"" "\"" . T.replace "\"" "\\\"\\\"" |           printField = wrap "\"" "\"" . T.replace "\"" "\"\"" | ||||||
| 
 | 
 | ||||||
| -- | Return the cleaned up and validated CSV data (can be empty), or an error. | -- | Return the cleaned up and validated CSV data (can be empty), or an error. | ||||||
| validateCsv :: CsvRules -> Int -> Either String CSV -> Either String [CsvRecord] | validateCsv :: CsvRules -> Int -> Either String CSV -> Either String [CsvRecord] | ||||||
|  | |||||||
| @ -143,3 +143,14 @@ hledger -f - balance -b 2016/10 -e 2016/11 | |||||||
| >>>2 | >>>2 | ||||||
| >>>= 0 | >>>= 0 | ||||||
| 
 | 
 | ||||||
|  | # 7. Test csv output | ||||||
|  | hledger -f - balance -N --output-format=csv | ||||||
|  | <<< | ||||||
|  | 2021-01-01 Test | ||||||
|  |     Assets:ABC   "AB.C" 1 | ||||||
|  |     Assets:Cash       -$1 | ||||||
|  | >>> | ||||||
|  | "account","balance" | ||||||
|  | "Assets:ABC","""AB.C"" 1" | ||||||
|  | "Assets:Cash","$-1" | ||||||
|  | >>>= 0 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user