msmith - in flumotion/trunk: .
flumotion/component/producers/playlist
flumotion-commit at lists.fluendo.com
flumotion-commit at lists.fluendo.com
Thu Jun 7 12:55:00 CEST 2007
Author: msmith
Date: Thu Jun 7 12:54:57 2007
New Revision: 5126
Modified:
flumotion/trunk/ChangeLog
flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py
Log:
* flumotion/component/producers/playlist/playlistparser.py:
Handle non-ascii filenames properly. Assumes a UTF-8 filesystem.
Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog (original)
+++ flumotion/trunk/ChangeLog Thu Jun 7 12:54:57 2007
@@ -1,3 +1,8 @@
+2007-06-07 Michael Smith <msmith at fluendo.com>
+
+ * flumotion/component/producers/playlist/playlistparser.py:
+ Handle non-ascii filenames properly. Assumes a UTF-8 filesystem.
+
2007-06-07 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* flumotion/component/combiners/switch/switch.py (Switch.init,
Modified: flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py
==============================================================================
--- flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py (original)
+++ flumotion/trunk/flumotion/component/producers/playlist/playlistparser.py Thu Jun 7 12:54:57 2007
@@ -302,11 +302,28 @@
self.debug("Parsing entry")
self._parsePlaylistEntry(parser, child, id)
+ # A simplified private version of this code from fxml without the
+ # undesirable unicode->str conversions.
+ def _parseAttributes(self, node, required, optional):
+ out = []
+ for k in required:
+ if node.hasAttribute(k):
+ out.append(node.getAttribute(k))
+ else:
+ raise fxml.ParserError("Missing required attribute %s" % k)
+
+ for k in optional:
+ if node.hasAttribute(k):
+ out.append(node.getAttribute(k))
+ else:
+ out.append(None)
+ return out
+
def _parsePlaylistEntry(self, parser, entry, id):
mandatory = ['filename', 'time']
optional = ['duration', 'offset']
- (filename, timestamp, duration, offset) = parser.parseAttributes(
+ (filename, timestamp, duration, offset) = self._parseAttributes(
entry, mandatory, optional)
if duration is not None:
@@ -317,6 +334,9 @@
timestamp = self._parseTimestamp(timestamp)
+ # Assume UTF-8 filesystem.
+ filename = filename.encode("UTF-8")
+
self.addItemToPlaylist(filename, timestamp, duration, offset, id)
def _parseTimestamp(self, ts):
More information about the flumotion-commit
mailing list