diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-02-03 15:43:30 +1100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-02-03 15:43:30 +1100 |
commit | 9edde5ff28780ed60a7ccfc47d4bf305c5c83fe1 (patch) | |
tree | 5a3e3f23a03850bce47a59b0022b817b6e19d12d /info.c | |
parent | 6fa9e02723d17c6ccc0e001b9e4b11c2acb93e98 (diff) | |
download | subsurface-9edde5ff28780ed60a7ccfc47d4bf305c5c83fe1.tar.gz |
Correctly parse translated cardinal directions
We now compare to both the standard English characters ('N', 'E', etc) as
well as to the translated strings (_("N"), _("E")) when parsing GPS
strings.
Reported-by: Sergey Starosek <sergey.starosek@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'info.c')
-rw-r--r-- | info.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -401,9 +401,11 @@ static gboolean parse_gps_text(const char *gps_text, double *latitude, double *l return TRUE; } /* ok, let's parse by hand - first degrees of latitude */ - if (g_unichar_toupper(g_utf8_get_char(text)) == 'N') + if (g_unichar_toupper(g_utf8_get_char(text)) == 'N' || + !strncmp(text, _("N"), strlen(_("N")))) text++; - if (g_unichar_toupper(g_utf8_get_char(text)) == 'S') { + if (g_unichar_toupper(g_utf8_get_char(text)) == 'S' || + !strncmp(text, _("S"), strlen(_("S")))) { text++; south = TRUE; } @@ -433,9 +435,11 @@ static gboolean parse_gps_text(const char *gps_text, double *latitude, double *l text = g_utf8_next_char(text); /* next degrees of longitude */ - if (g_unichar_toupper(g_utf8_get_char(text)) == 'E') + if (g_unichar_toupper(g_utf8_get_char(text)) == 'E' || + !strncmp(text, _("E"), strlen(_("E")))) text++; - if (g_unichar_toupper(g_utf8_get_char(text)) == 'W') { + if (g_unichar_toupper(g_utf8_get_char(text)) == 'W' || + !strncmp(text, _("W"), strlen(_("W")))) { text++; west = TRUE; } |