Package: python2.3-xmms
Version: 2.04-2
Severity: important
Tags: patch

I just received a bugreport against iPodder (see #326890), and I
believe, that python-xmms behaves wrongly here. I was able to add
non-ASCII filenames to the XMMS playlist without an exception after
making the changes below which make sure that each filename is
UTF8-encoded. 

To my knowledge, this does not break any ASCII pathnames, but it might
be better to check for the current locale or something here.

Traceback (most recent call last):
  File "./iPodderGui.py", line 2563, in OnEpisodesListLeftDown
    self.PlayEpisode(path)
  File "./iPodderGui.py", line 2625, in PlayEpisode
    self.ipodder.config.player.play_file(path,rude=True)
  File "/home/bengen/src/deb/ipodder/ipodder/ipodder/players.py", line 151, in 
play_file
    xmms.enqueue_and_play_launch_if_session_not_started( [ filename ] )
  File "/usr/lib/python2.3/site-packages/xmms/control.py", line 368, in 
enqueue_and_play_launch_if_session_not_started
    enqueue_and_play(seq, session)
  File "/usr/lib/python2.3/site-packages/xmms/control.py", line 294, in 
enqueue_and_play
    playlist_add_allow_relative(seq, session)
  File "/usr/lib/python2.3/site-packages/xmms/control.py", line 279, in 
playlist_add_allow_relative
    playlist_add(abs_seq, session)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 
68: ordinal not in range(128)

--- pyxmms-2.04.orig/src/_xmmscontrolmodule.c
+++ pyxmms-2.04/src/_xmmscontrolmodule.c
@@ -313,7 +313,7 @@
         {
             /* Retreive a string from the sequence */
             item = PySequence_Fast_GET_ITEM(fast_seq, i);
-            if ((py_internal_str = PyString_AsString(item)) == NULL)
+           if ((py_internal_str = 
PyString_AsString(PyUnicode_AsUTF8String(item))) == NULL)
                 goto error;
 
             /* In case xmms would write to py_internal_str ... */
@@ -391,7 +391,7 @@
     for (i=0; i < seq_len; i++)
         {
             item = PySequence_Fast_GET_ITEM(fast_seq, i);
-            if ((str = PyString_AsString(item)) == NULL)
+           if ((str = PyString_AsString(PyUnicode_AsUTF8String(item))) == NULL)
                 goto error;
 
             /* In case xmms would write to the string... */


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12-1-k7
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages python2.3-xmms depends on:
ii  libc6               2.3.5-6              GNU C Library: Shared libraries an
ii  libglib1.2          1.2.10-10            The GLib library of C routines
ii  python2.3           2.3.5-8              An interactive high-level object-o
ii  xmms                1.2.10+cvs20050209-2 Versatile X audio player that look

python2.3-xmms recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to