From c36a738c62bf8fd48468e1c07a62e2f37c1fb9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> Date: Sat, 7 Jul 2018 11:31:23 +0300 Subject: [PATCH] pls: autodetect Latin-1 if input is not UTF-8 --- modules/demux/playlist/pls.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/demux/playlist/pls.c b/modules/demux/playlist/pls.c index 8ea3202b7071..b9ed4f88ac7a 100644 --- a/modules/demux/playlist/pls.c +++ b/modules/demux/playlist/pls.c @@ -31,6 +31,7 @@ #include <vlc_common.h> #include <vlc_access.h> +#include <vlc_charset.h> #include "playlist.h" @@ -76,11 +77,26 @@ static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems ) char *psz_value; int i_item = -1; input_item_t *p_input; + bool ascii = true; + bool unicode = true; input_item_t *p_current_input = GetCurrentItem(p_demux); while( ( psz_line = vlc_stream_ReadLine( p_demux->s ) ) ) { + if (ascii && !IsASCII(psz_line)) + { + unicode = IsUTF8(psz_line); + ascii = false; + } + + if (!unicode) + { + char *latin = FromLatin1(psz_line); + free(psz_line); + psz_line = latin; + } + if( !strncasecmp( psz_line, "[playlist]", sizeof("[playlist]")-1 ) || !strncasecmp( psz_line, "[Reference]", sizeof("[Reference]")-1 ) ) { -- GitLab