This might be enough to fix it - I just compare the values against each
other rather than doing 4 explicit cases. I call bool() on them first
before comparing them as we want a boolean comparison here, and that
should work even if you pass None or "" or whatever I guess.

diff --git a/aptsources/sourceslist.py b/aptsources/sourceslist.py
index 89cef642..d4e52c4d 100644
--- a/aptsources/sourceslist.py
+++ b/aptsources/sourceslist.py
@@ -332,10 +332,10 @@ class SourcesList(object):
         for source in sources:
             # if there is a repo with the same (type, uri, dist) just add the
             # components
-            if source.disabled and set(source.comps) == set(comps):
-                source.disabled = False
+            if bool(source.disabled) != bool(disabled) and set(source.comps) 
== set(comps):
+                source.disabled = bool(disabled)
                 return source
-            elif not source.disabled:
+            elif bool(disabled) == bool(source.disabled):
                 source.comps = uniq(source.comps + comps)
                 return source
         # there isn't any matching source, so create a new line and parse it

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1311056

Title:
  apt-add-repository adds duplicate commented/disabled source lines

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-apt/+bug/1311056/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to