From e15b95ae2bce1a7b579a61c0f994c81a4caaa307 Mon Sep 17 00:00:00 2001 From: Bob van Loosen Date: Sat, 6 Apr 2013 16:44:26 +0200 Subject: [PATCH] added: do a urldecode on the filename --- src/bitvis/mpdclient.cpp | 13 ++++++++++++- wscript | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/bitvis/mpdclient.cpp b/src/bitvis/mpdclient.cpp index 19a441a..85fbf55 100644 --- a/src/bitvis/mpdclient.cpp +++ b/src/bitvis/mpdclient.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "mpdclient.h" #include "util/timeutils.h" @@ -315,6 +316,16 @@ std::string CMpdClient::StripFilename(const std::string& filename) else nchars = end - start; - return filename.substr(start, nchars); + string stripped = filename.substr(start, nchars); + + //do a url decode + char* tmp = new char[stripped.length() + 1]; + strcpy(tmp, stripped.c_str()); + uriUnescapeInPlaceA(tmp); + + stripped = tmp; + delete[] tmp; + + return stripped; } diff --git a/wscript b/wscript index cd9e64b..92f51c2 100644 --- a/wscript +++ b/wscript @@ -23,6 +23,7 @@ def configure(conf): conf.check(header_name='samplerate.h') conf.check(header_name='sys/ipc.h') conf.check(header_name='sys/shm.h') + conf.check(header_name='uriparser/Uri.h') if not conf.options.disable_vlc: conf.check(header_name='vlc/vlc.h') @@ -38,6 +39,7 @@ def configure(conf): conf.check(lib='X11', uselib_store='X11') conf.check(lib='Xext', uselib_store='Xext') conf.check(lib='Xrender', uselib_store='Xrender') + conf.check(lib='uriparser', uselib_store='uriparser') conf.check(lib='m', uselib_store='m', mandatory=False) conf.check(lib='pthread', uselib_store='pthread', mandatory=False) @@ -64,7 +66,7 @@ def build(bld): src/util/condition.cpp\ src/util/tcpsocket.cpp\ src/util/thread.cpp', - use=['m','pthread','rt', 'jack', 'fftw3', 'fftw3f', 'samplerate', 'X11', 'Xrender'], + use=['m','pthread','rt', 'jack', 'fftw3', 'fftw3f', 'samplerate', 'uriparser', 'X11', 'Xrender'], includes='./src', cxxflags='-Wall -g -DUTILNAMESPACE=BitVisUtil -O3 -march=native', target='bitvis')