aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/flac
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/flac')
-rw-r--r--src/plugins/Input/flac/cueparser.cpp5
-rw-r--r--src/plugins/Input/flac/decoder_flac.cpp2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/Input/flac/cueparser.cpp b/src/plugins/Input/flac/cueparser.cpp
index 173b31e54..bedaadd52 100644
--- a/src/plugins/Input/flac/cueparser.cpp
+++ b/src/plugins/Input/flac/cueparser.cpp
@@ -59,7 +59,10 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName)
}
else if (words[0] == "TRACK")
{
- FileInfo info("flac://" + fileName + QString("#%1").arg(words[1].toInt()));
+ QString path = fileName;
+ path.replace("%", QString(QUrl::toPercentEncoding("%"))); //replace special symbols
+ path.replace("#", QString(QUrl::toPercentEncoding("#")));
+ FileInfo info("flac://" + path + QString("#%1").arg(words[1].toInt()));
info.setMetaData(Qmmp::TRACK, words[1].toInt());
m_infoList << info;
m_offsets << 0;
diff --git a/src/plugins/Input/flac/decoder_flac.cpp b/src/plugins/Input/flac/decoder_flac.cpp
index d80916d69..372635511 100644
--- a/src/plugins/Input/flac/decoder_flac.cpp
+++ b/src/plugins/Input/flac/decoder_flac.cpp
@@ -372,6 +372,8 @@ bool DecoderFLAC::initialize()
qWarning("DecoderFLAC: invalid url.");
return FALSE;
}
+ p.replace(QString(QUrl::toPercentEncoding("#")), "#");
+ p.replace(QString(QUrl::toPercentEncoding("%")), "%");
TagLib::FLAC::File fileRef(p.toLocal8Bit ());
//looking for cuesheet comment
TagLib::Ogg::XiphComment *xiph_comment = fileRef.xiphComment();