diff -ruN gpsbabel-1.3.6_orig/garmin.c gpsbabel-1.3.6/garmin.c --- gpsbabel-1.3.6_orig/garmin.c 2008-11-03 05:45:37.000000000 +1000 +++ gpsbabel-1.3.6/garmin.c 2010-01-23 20:38:01.000000000 +1000 @@ -45,6 +45,7 @@ static char *snwhiteopt = NULL; static char *deficon = NULL; static char *category = NULL; +static char *encoding = NULL; static char *categorybitsopt = NULL; static int categorybits; static int receiver_must_upper = 1; @@ -71,6 +72,8 @@ NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, { "category", &category, "Category number to use for written waypoints", NULL, ARGTYPE_INT, "1", "16"}, + { "encoding", &encoding, "Override auto-detected encoding", + NULL, ARGTYPE_STRING, ARG_NOMINMAX}, { "bitscategory", &categorybitsopt, "Bitmap of categories", NULL, ARGTYPE_INT, "1", "65535"}, ARG_TERMINATOR @@ -226,6 +229,16 @@ } } + + /* + * Encoding override + */ + if (encoding) { + receiver_charset = encoding; + if (global_opts.debug_level > 0) + fprintf(stderr, "Encoding overrided to \"%s\"\n", + receiver_charset); + } /* * If the user provided a short_length, override the calculated value. */