diff --git a/src/ecma119.c b/src/ecma119.c index 7752242..f4a319c 100644 --- a/src/ecma119.c +++ b/src/ecma119.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include static void ecma119_image_free(Ecma119Image *t) @@ -40,6 +42,7 @@ void ecma119_image_free(Ecma119Image *t) free(writer); } free(t->input_charset); + free(t->output_charset); free(t->writers); free(t); } @@ -748,7 +751,11 @@ int ecma119_image_new(IsoImage *src, Ecma119WriteOpts *opts, target->now = time(NULL); target->ms_block = 0; - target->input_charset = strdup("UTF-8"); //TODO + + /* default to locale charset */ + setlocale(LC_CTYPE, ""); + target->input_charset = strdup(nl_langinfo(CODESET)); + target->output_charset = strdup(target->input_charset); //TODO /* * 2. Based on those options, create needed writers: iso, joliet... diff --git a/src/ecma119.h b/src/ecma119.h index f998ea2..02d025e 100644 --- a/src/ecma119.h +++ b/src/ecma119.h @@ -61,6 +61,7 @@ struct ecma119_image { ino_t ino; char *input_charset; + char *output_charset; uint32_t ms_block; /**< start block for a ms image */ time_t now; /**< Time at which writing began. */