diff options
author | Miika Turkia <miika.turkia@gmail.com> | 2018-01-07 14:58:17 +0200 |
---|---|---|
committer | mturkia <miika.turkia@gmail.com> | 2018-01-08 06:06:12 +0200 |
commit | 9cf013235c3e98b94099f12b27be72371b5b1b1d (patch) | |
tree | 90f12b6afef1a3c54fdfe3e49a083b9468520aa5 /core/import-csv.c | |
parent | d23600eb9e2b3348c510ba4a0570d078688426b9 (diff) | |
download | subsurface-9cf013235c3e98b94099f12b27be72371b5b1b1d.tar.gz |
Use dynamic indexing instead of hard coded
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Diffstat (limited to 'core/import-csv.c')
-rw-r--r-- | core/import-csv.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/core/import-csv.c b/core/import-csv.c index 1540dd060..7a72ae718 100644 --- a/core/import-csv.c +++ b/core/import-csv.c @@ -76,6 +76,7 @@ int parse_dan_format(const char *filename, char **params, int pnr) while ((end_ptr < mem.size) && (ptr = strstr(mem.buffer + end_ptr, "ZDH"))) { char *iter_end = NULL; + unsigned int pnr_local = pnr; /* * Process the dives, but let the last round be parsed @@ -93,8 +94,8 @@ int parse_dan_format(const char *filename, char **params, int pnr) if (iter) { memcpy(tmpbuf, ptr + 4, iter - ptr - 4); tmpbuf[iter - ptr - 4] = 0; - params[pnr] = "diveNro"; - params[pnr + 1] = strdup(tmpbuf); + params[pnr_local++] = "diveNro"; + params[pnr_local++] = strdup(tmpbuf); } //fprintf(stderr, "DEBUG: BEGIN end_ptr %d round %d <%s>\n", end_ptr, j++, ptr); @@ -113,8 +114,8 @@ int parse_dan_format(const char *filename, char **params, int pnr) /* Setting date */ memcpy(tmpbuf, iter, 8); tmpbuf[8] = 0; - params[pnr + 2] = "date"; - params[pnr + 3] = strdup(tmpbuf); + params[pnr_local++] = "date"; + params[pnr_local++] = strdup(tmpbuf); /* Setting time, gotta prepend it with 1 to * avoid octal parsing (this is stripped out in @@ -122,9 +123,8 @@ int parse_dan_format(const char *filename, char **params, int pnr) tmpbuf[0] = '1'; memcpy(tmpbuf + 1, iter + 8, 6); tmpbuf[7] = 0; - params[pnr + 4] = "time"; - params[pnr + 5] = strdup(tmpbuf); - params[pnr + 6] = NULL; + params[pnr_local++] = "time"; + params[pnr_local++] = strdup(tmpbuf); /* Air temperature */ memset(tmpbuf, 0, sizeof(tmpbuf)); @@ -136,12 +136,11 @@ int parse_dan_format(const char *filename, char **params, int pnr) if (iter_end) { memcpy(tmpbuf, iter, iter_end - iter); - params[pnr + 6] = "airTemp"; - params[pnr + 7] = strdup(tmpbuf); - params[pnr + 8] = NULL; + params[pnr_local++] = "airTemp"; + params[pnr_local++] = strdup(tmpbuf); } } - + params[pnr_local] = NULL; /* Search for the next line */ if (iter) |