rpm/LinkedList.delete: return the previous node
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 4 Jan 2013 12:37:13 +0000 (14:37 +0200)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Thu, 5 Jun 2014 11:20:06 +0000 (14:20 +0300)
The preceding node of the deleted node. However, return the next (i.e.
the new first node) of the list if deleting the first node, and, return
None if the list is empty after deletion.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/rpm/linkedlist.py

index f13217768a1866001e1ed6c89319dbe3c9b7ba2a..ca00045364008d00b870c33815051ede68fa99c2 100644 (file)
@@ -189,23 +189,26 @@ class LinkedList(collections.Iterable):
         >>> node3 = list.insert_before(node2, 'baz')
         >>> [str(data) for data in list]
         ['foo', 'baz', 'bar']
-        >>> list.delete(node3)
+        >>> str(list.delete(node3))
+        'foo'
         >>> [str(data) for data in list]
         ['foo', 'bar']
         >>> print "%s" % node3
         <BLANKLINE>
-        >>> list.delete(node1)
+        >>> str(list.delete(node1))
+        'bar'
         >>> [str(data) for data in list]
         ['bar']
         >>> list.delete(node2)
         >>> [str(data) for data in list]
         []
         """
+        ret = node.prev
         if node is self._first:
-            self._first = self._first.next
+            ret = self._first = self._first.next
         if node is self._last:
             self._last = self._last.prev
         node.delete()
-
+        return ret
 
 # vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: