Inside NewsManager.updateItems(), use a mutable set for skiplist and sort the
authorZac Medico <zmedico@gentoo.org>
Wed, 12 Nov 2008 18:57:49 +0000 (18:57 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 12 Nov 2008 18:57:49 +0000 (18:57 -0000)
contents when writing the file.

svn path=/main/trunk/; revision=11864

pym/portage/news.py

index 57db9ff41fb6b7b2b1a216d23d57f517983d5380..0363b7197b29e8bc7dcf1a602fd76bafbd977aaa 100644 (file)
@@ -77,7 +77,7 @@ class NewsManager(object):
                news = os.listdir(path)
 
                skipfile = os.path.join(self.unread_path, "news-%s.skip" % repoid)
-               skiplist = frozenset(grabfile(skipfile))
+               skiplist = set(grabfile(skipfile))
                updates = []
                for itemid in news:
                        if itemid in skiplist:
@@ -107,12 +107,13 @@ class NewsManager(object):
 
                        for item in updates:
                                unread_file.write(item.name + "\n")
-                               skiplist.append(item.name)
+                               skiplist.add(item.name)
                        unread_file.close()
                finally:
                        if unread_lock:
                                unlockfile(unread_lock)
-                       write_atomic(skipfile, "\n".join(skiplist)+"\n")
+                       write_atomic(skipfile,
+                               "".join("%s\n" % x for x in sorted(skiplist)))
                try:
                        apply_permissions(filename=skipfile, 
                                uid=int(self.config["PORTAGE_INST_UID"]), gid=portage_gid, mode=0664)