From 466128a44215f4bafa40a9cdeb900b5529e1420b Mon Sep 17 00:00:00 2001 From: Andreas Noack Date: Mon, 16 Aug 2021 12:25:24 +0200 Subject: [PATCH] Wrap the error reporting function of ReadStat to provide more informative error messages --- src/ReadStat.jl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ReadStat.jl b/src/ReadStat.jl index 6979f3a..a0e5e1e 100644 --- a/src/ReadStat.jl +++ b/src/ReadStat.jl @@ -277,10 +277,14 @@ function Parser() return parser end +function error_message(retval::Integer) + unsafe_string(ccall((:readstat_error_message, libreadstat), Ptr{Cchar}, (Cint,), retval)) +end + function parse_data_file!(ds::ReadStatDataFrame, parser::Ptr{Nothing}, filename::AbstractString, filetype::Val) retval = readstat_parse(filename, filetype, parser, ds) readstat_parser_free(parser) - retval == 0 || error("Error parsing $filename: $retval") + retval == 0 || error("Error parsing $filename: $(error_message(retval))") end read_dta(filename::AbstractString) = read_data_file(filename, Val(:dta))