summaryrefslogtreecommitdiff
path: root/csv.h
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2020-06-21 11:28:57 +0200
committerThomas Schmucker <ts@its1.de>2020-06-21 11:28:57 +0200
commit1c5bb82c5e991d71e9ae5a6645c032f220131f5d (patch)
tree6c32d7fa03d83fbbee400ebd91af2d857d6d8167 /csv.h
parentdd7e73ec6c990c23a08d4e82f050804caa9789df (diff)
downloadlibcsv-1c5bb82c5e991d71e9ae5a6645c032f220131f5d.tar.gz
libcsv-1c5bb82c5e991d71e9ae5a6645c032f220131f5d.tar.bz2
libcsv-1c5bb82c5e991d71e9ae5a6645c032f220131f5d.zip
Überarbeitets Error-Handling
Diffstat (limited to 'csv.h')
-rw-r--r--csv.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/csv.h b/csv.h
index fe59f5b..a8be413 100644
--- a/csv.h
+++ b/csv.h
@@ -8,11 +8,19 @@
8extern "C" { 8extern "C" {
9#endif 9#endif
10 10
11typedef enum {
12 CSV_ERR_OK = 0,
13 CSV_ERR_OUT_OF_MEMORY = -1,
14 CSV_ERR_OUT_OF_RANGE = -2,
15 CSV_ERR_IO_READ = -3,
16 CSV_ERR_IO_WRITE = -4
17} csv_error_t;
18
11typedef struct { 19typedef struct {
12 char quote_symbol; 20 char quote_symbol;
13 char sep_symbol; 21 char sep_symbol;
14 22
15 void (*cb_error)(const char *, void *); 23 void (*cb_error)(csv_error_t, void *);
16 void *cb_error_arg; 24 void *cb_error_arg;
17 25
18 void *(*cb_allocate)(size_t, size_t, void *); 26 void *(*cb_allocate)(size_t, size_t, void *);
@@ -45,6 +53,7 @@ void csv_cleanup(csv_t *csv);
45int csv_nfields(csv_t *csv); 53int csv_nfields(csv_t *csv);
46const char * csv_field(csv_t *csv, int idx); 54const char * csv_field(csv_t *csv, int idx);
47int csv_read(csv_t *csv, FILE *in); 55int csv_read(csv_t *csv, FILE *in);
56const char * csv_err_str(csv_error_t csv_error);
48void csv_write(FILE *out, int n, const char *fields[], const csv_options_t * const csv_options); 57void csv_write(FILE *out, int n, const char *fields[], const csv_options_t * const csv_options);
49 58
50#ifdef __cplusplus 59#ifdef __cplusplus