Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2013-06-02 08:41:16 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2013-06-02 08:42:49 (GMT)
commit8b42099731ba3b77fc5f90591fbcf008df2fee16 (patch)
tree99adf51f7bd3905d5bb784db8a648c54f0fb4421
parent3a6e37a954f9d4d04c334c68a791b2c506f2f351 (diff)
Do not pass context title via 0install to avoid loosing unicode chars
-rw-r--r--sugar_network/client/injector.py2
-rw-r--r--sugar_network/client/solver.py10
2 files changed, 7 insertions, 5 deletions
diff --git a/sugar_network/client/injector.py b/sugar_network/client/injector.py
index 2a8f61e..ec1c1e6 100644
--- a/sugar_network/client/injector.py
+++ b/sugar_network/client/injector.py
@@ -221,7 +221,7 @@ def _activity_env(impl, environ):
])
environ['SUGAR_BUNDLE_PATH'] = impl_path
environ['SUGAR_BUNDLE_ID'] = impl['context']
- environ['SUGAR_BUNDLE_NAME'] = impl['name']
+ environ['SUGAR_BUNDLE_NAME'] = impl['name'].encode('utf8')
environ['SUGAR_BUNDLE_VERSION'] = impl['version']
environ['SUGAR_ACTIVITY_ROOT'] = root
environ['PYTHONPATH'] = impl_path + ':' + environ.get('PYTHONPATH', '')
diff --git a/sugar_network/client/solver.py b/sugar_network/client/solver.py
index 2e59288..eb68c02 100644
--- a/sugar_network/client/solver.py
+++ b/sugar_network/client/solver.py
@@ -147,7 +147,7 @@ def _impl_new(config, iface, sel):
impl = {'id': sel.id,
'context': iface,
'version': sel.version,
- 'name': feed.name,
+ 'name': feed.title,
'stability': sel.impl.upstream_stability.name,
}
if isabs(sel.id):
@@ -176,7 +176,7 @@ def _load_feed(conn, context):
host_versin = '.'.join(config.version.split('.', 2)[:2])
for version in SUGAR_API_COMPATIBILITY.get(host_versin) or []:
feed.implement_sugar(version)
- feed.name = context
+ feed.name = feed.name = context
return feed
except ImportError:
pass
@@ -192,8 +192,9 @@ def _load_feed(conn, context):
pipe.trace('No feeds for %s', context)
return None
- # XXX 0install fails on non-ascii name
- feed.name = feed_content['name'].encode('ascii', 'backslashreplace')
+ # XXX 0install fails on non-ascii `name` values
+ feed.name = context
+ feed.title = feed_content['name']
feed.to_resolve = feed_content.get('packages')
if not feed.to_resolve:
pipe.trace('No compatible packages for %s', context)
@@ -218,6 +219,7 @@ class _Feed(model.ZeroInstallFeed):
self.last_checked = None
self.to_resolve = None
self._package_implementations = []
+ self.title = None
@property
def url(self):