summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt/package.py7
-rw-r--r--debian/changelog5
-rw-r--r--debian/control2
-rw-r--r--python/string.cc6
4 files changed, 15 insertions, 5 deletions
diff --git a/apt/package.py b/apt/package.py
index af5dd327..39e2993c 100644
--- a/apt/package.py
+++ b/apt/package.py
@@ -166,7 +166,12 @@ class Package(object):
desc_iter = ver.TranslatedDescription
self._records.Lookup(desc_iter.FileList.pop(0))
desc = ""
- for line in string.split(unicode(self._records.LongDesc,"utf-8"),"\n"):
+ try:
+ s = unicode(self._records.LongDesc,"utf-8")
+ except UnicodeDecodeError,e:
+ s = _("Invalid unicode in description for '%s' (%s). "
+ "Please report.") % (name,e)
+ for line in string.split(s,"\n"):
tmp = string.strip(line)
if tmp == ".":
desc += "\n"
diff --git a/debian/changelog b/debian/changelog
index cb818eea..9e0fe1be 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,11 @@ python-apt (0.6.20ubuntu6) feisty; urgency=low
* aptsources/distro.py:
- fix crash in add_source (LP#85806)
+ * apt/package.py:
+ - handle invalid unicode more gracefully (LP#86215)
+ * rebuild against latest apt
- --
+ -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 19 Feb 2007 16:34:52 +0100
python-apt (0.6.20ubuntu5) feisty; urgency=low
diff --git a/debian/control b/debian/control
index bf1ca1de..b243adb1 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Maintainer: APT Development Team <deity@lists.debian.org>
Uploaders: Matt Zimmerman <mdz@debian.org>, Michael Vogt <mvo@debian.org>
Standards-Version: 3.7.2
XS-Python-Version: all
-Build-Depends: debhelper (>= 5.0.37.1), libapt-pkg-dev (>= 0.6.46.4ubuntu7), apt-utils, python-all-dev, python-distutils-extra, cdbs, python-central (>= 0.5)
+Build-Depends: debhelper (>= 5.0.37.1), libapt-pkg-dev (>= 0.6.46.4ubuntu8), apt-utils, python-all-dev, python-distutils-extra, cdbs, python-central (>= 0.5)
Package: python-apt
Architecture: any
diff --git a/python/string.cc b/python/string.cc
index 16adc8cd..d0926da5 100644
--- a/python/string.cc
+++ b/python/string.cc
@@ -53,9 +53,11 @@ PyObject *StrSizeToStr(PyObject *Self,PyObject *Args)
if (PyArg_ParseTuple(Args,"O",&Obj) == 0)
return 0;
if (PyInt_Check(Obj))
- return CppPyString(SizeToStr(PyInt_AS_LONG(Obj)));
+ return CppPyString(SizeToStr(PyInt_AsLong(Obj)));
+ if (PyLong_Check(Obj))
+ return CppPyString(SizeToStr(PyLong_AsLong(Obj)));
if (PyFloat_Check(Obj))
- return CppPyString(SizeToStr(PyFloat_AS_DOUBLE(Obj)));
+ return CppPyString(SizeToStr(PyFloat_AsDouble(Obj)));
PyErr_SetString(PyExc_TypeError,"Only understand integers and floats");
return 0;