[PATCH 1/2] Fix Seabear new line detection

Miika Turkia miika.turkia at gmail.com
Sun Mar 22 08:13:46 PDT 2015


We need to take both \r\n and \n new line formats into account before
failing Seabear validity check on import. (Seabear file has empty lines,
if import file does not have one -> return.)

Signed-off-by: Miika Turkia <miika.turkia at gmail.com>
---
 file.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/file.c b/file.c
index cf25705..a1871ec 100644
--- a/file.c
+++ b/file.c
@@ -929,7 +929,7 @@ int parse_seabear_csv_file(const char *filename, int timef, int depthf, int temp
 	char curdate[DATESTR];
 	char curtime[TIMESTR];
 	char *ptr, *ptr_old = NULL;
-	char *NL;
+	char *NL = NULL;
 
 	if (timef >= MAXCOLS || depthf >= MAXCOLS || tempf >= MAXCOLS || po2f >= MAXCOLS || cnsf >= MAXCOLS || ndlf >= MAXCOLS || cnsf >= MAXCOLS || stopdepthf >= MAXCOLS || pressuref >= MAXCOLS)
 		return report_error(translate("gettextFromC", "Maximum number of supported columns on CSV import is %d"), MAXCOLS);
@@ -950,13 +950,6 @@ int parse_seabear_csv_file(const char *filename, int timef, int depthf, int temp
 		NL = "\r\n";
 	}
 
-	/*
-	 * If file does not contain empty lines, it is not a valid
-	 * Seabear CSV file.
-	 */
-	if (!ptr)
-		return -1;
-
 	if (!ptr_old) {
 		while ((ptr = strstr(ptr, "\n\n")) != NULL) {
 			ptr_old = ptr;
@@ -968,6 +961,13 @@ int parse_seabear_csv_file(const char *filename, int timef, int depthf, int temp
 		ptr_old += 4;
 
 	/*
+	 * If file does not contain empty lines, it is not a valid
+	 * Seabear CSV file.
+	 */
+	if (NL == NULL)
+		return -1;
+
+	/*
 	 * On my current sample of Seabear DC log file, the date is
 	 * without any identifier. Thus we must search for the previous
 	 * line and step through from there.
-- 
2.1.0



More information about the subsurface mailing list