summaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2009-01-02 22:35:57 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2009-01-02 22:35:57 +0000
commita251dc779c6eaf0d29b126b02877fc10838aaec0 (patch)
tree364c90119fea42cd28016305b7768696243dc680 /src/input
parent852aff94b4586982ff33bf21471cda90124a65bf (diff)
parentefaeb575230625611f3f5fc1f9eae2b36d375fea (diff)
downloadxine-lib-a251dc779c6eaf0d29b126b02877fc10838aaec0.tar.gz
xine-lib-a251dc779c6eaf0d29b126b02877fc10838aaec0.tar.bz2
Merge from 1.1.
--HG-- rename : include/xine.h.in => include/xine.h rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
Diffstat (limited to 'src/input')
-rw-r--r--src/input/mms.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/input/mms.c b/src/input/mms.c
index 812e2ed43..c3cc15401 100644
--- a/src/input/mms.c
+++ b/src/input/mms.c
@@ -290,7 +290,7 @@ static int send_command (mms_t *this, int command,
#ifdef USE_ICONV
static iconv_t string_utf16_open() {
- return iconv_open("UTF-16LE", nl_langinfo(CODESET));
+ return iconv_open("UTF-16LE", "UTF-8");
}
static void string_utf16_close(iconv_t url_conv) {
@@ -771,10 +771,17 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
/* command 0x5 */
{
mms_buffer_t command_buffer;
- char *path = this->uri;
- size_t pathlen = strlen(path);
+ char *path, *unescaped;
+ size_t pathlen;
+
+ unescaped = strdup (this->uri);
+ if (!unescaped)
+ goto fail;
+ _x_mrl_unescape (unescaped);
/* remove the first '/' */
+ path = unescaped;
+ pathlen = strlen (path);
if (pathlen > 1) {
path++;
pathlen--;
@@ -785,6 +792,7 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */
mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */
string_utf16 (url_conv, this->scmd_body + command_buffer.pos, path, pathlen);
+ free (unescaped);
if (!send_command (this, 5, 1, 0xffffffff, pathlen * 2 + 12))
goto fail;
}