From f499dafe13185a3f90a3a99390c44555708309c2 Mon Sep 17 00:00:00 2001 From: Lukas Vogel Date: Thu, 23 Oct 2014 02:57:57 +0200 Subject: [PATCH 1/3] Escape newline characters when dispatching data --- mopidy/mpd/dispatcher.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mopidy/mpd/dispatcher.py b/mopidy/mpd/dispatcher.py index 9c2f3471..c48db43a 100644 --- a/mopidy/mpd/dispatcher.py +++ b/mopidy/mpd/dispatcher.py @@ -196,12 +196,18 @@ class MpdDispatcher(object): def _format_lines(self, line): if isinstance(line, dict): - return ['%s: %s' % (key, value) for (key, value) in line.items()] + result = [] + for (key, value) in line.items(): + result.extend(self._escape_newlines('%s: %s' % (key, value))) + return [result] if isinstance(line, tuple): (key, value) = line - return ['%s: %s' % (key, value)] + return [self._escape_newlines('%s: %s' % (key, value))] return [line] + def _escape_newlines(self, text): + return text.replace('\n', '\\n') + class MpdContext(object): """ From f0574d1c8e8dd38c6e5f6a296abb47174e829ae1 Mon Sep 17 00:00:00 2001 From: Lukas Vogel Date: Thu, 23 Oct 2014 03:24:18 +0200 Subject: [PATCH 2/3] fixed embarassing bug left over from refactoring to meet coding standards --- mopidy/mpd/dispatcher.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mopidy/mpd/dispatcher.py b/mopidy/mpd/dispatcher.py index c48db43a..ad99327a 100644 --- a/mopidy/mpd/dispatcher.py +++ b/mopidy/mpd/dispatcher.py @@ -198,8 +198,8 @@ class MpdDispatcher(object): if isinstance(line, dict): result = [] for (key, value) in line.items(): - result.extend(self._escape_newlines('%s: %s' % (key, value))) - return [result] + result.append(self._escape_newlines('%s: %s' % (key, value))) + return result if isinstance(line, tuple): (key, value) = line return [self._escape_newlines('%s: %s' % (key, value))] From c8bc0afc930c9328d6f14fb8c2f728741ed05175 Mon Sep 17 00:00:00 2001 From: Lukas Vogel Date: Thu, 23 Oct 2014 12:31:55 +0200 Subject: [PATCH 3/3] reintroduce generator expression --- mopidy/mpd/dispatcher.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mopidy/mpd/dispatcher.py b/mopidy/mpd/dispatcher.py index ad99327a..d063637e 100644 --- a/mopidy/mpd/dispatcher.py +++ b/mopidy/mpd/dispatcher.py @@ -196,10 +196,9 @@ class MpdDispatcher(object): def _format_lines(self, line): if isinstance(line, dict): - result = [] - for (key, value) in line.items(): - result.append(self._escape_newlines('%s: %s' % (key, value))) - return result + return [self._escape_newlines('%s: %s' % (key, value)) + for (key, value) + in line.items()] if isinstance(line, tuple): (key, value) = line return [self._escape_newlines('%s: %s' % (key, value))]