diff --git a/csv.cpp b/csv.cpp index 97c6f8f..b674ac8 100644 --- a/csv.cpp +++ b/csv.cpp @@ -157,7 +157,12 @@ bool is_number(std::string const &s) { } } - return true; + if (*cp == '\0') { + return true; + } else { + // Something non-numeric at the end + return false; + } } return false; diff --git a/geocsv.cpp b/geocsv.cpp index 0600803..8bb7443 100644 --- a/geocsv.cpp +++ b/geocsv.cpp @@ -31,10 +31,13 @@ void parse_geocsv(std::vector &sst, std::string fnam for (size_t i = 0; i < header.size(); i++) { header[i] = csv_dequote(header[i]); - if (header[i] == "lat" || header[i] == "latitude") { + std::string lower(header[i]); + std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower); + + if (lower == "y" || lower == "lat" || (lower.find("latitude") != std::string::npos)) { latcol = i; } - if (header[i] == "lon" || header[i] == "longitude" || header[i] == "long") { + if (lower == "x" || lower == "lon" || lower == "lng" || lower == "long" || (lower.find("longitude") != std::string::npos)) { loncol = i; } }