diff options
-rw-r--r-- | src/charConv.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/charConv.c b/src/charConv.c index 85eba7e88..b12bfb751 100644 --- a/src/charConv.c +++ b/src/charConv.c @@ -42,10 +42,17 @@ mpd_sint8 char_conv_latin1ToUtf8 = 0; #define BUFFER_SIZE 1024 int setCharSetConversion(char * to, char * from) { - if(char_conv_to && strcmp(to,char_conv_to)==0 && - char_conv_from && strcmp(from,char_conv_from)==0) - { - return 0; + if(char_conv_to && char_conv_from) { + if (strcmp(from,char_conv_to)==0 && + strcmp(to,char_conv_from)==0) { + char * swap = char_conv_from; + char_conv_from = char_conv_to; + char_conv_to = swap; + return 0; + } else if (strcmp(to,char_conv_to)==0 && + strcmp(from,char_conv_from)==0) { + return 0; + } } closeCharSetConversion(); |