mercurial/util.py
changeset 16834 cafd8a8fb713
parent 16803 107a3270a24a
child 16873 37e081609828
--- a/mercurial/util.py	Sat Jun 02 15:35:53 2012 -0500
+++ b/mercurial/util.py	Fri Jun 01 17:05:31 2012 -0700
@@ -202,10 +202,22 @@
 
     return f
 
+try:
+    collections.deque.remove
+    deque = collections.deque
+except AttributeError:
+    # python 2.4 lacks deque.remove
+    class deque(collections.deque):
+        def remove(self, val):
+            for i, v in enumerate(self):
+                if v == val:
+                    del self[i]
+                    break
+
 def lrucachefunc(func):
     '''cache most recent results of function calls'''
     cache = {}
-    order = collections.deque()
+    order = deque()
     if func.func_code.co_argcount == 1:
         def f(arg):
             if arg not in cache:
@@ -865,7 +877,7 @@
         Returns less than L bytes if the iterator runs dry."""
         left = l
         buf = ''
-        queue = collections.deque(self._queue)
+        queue = deque(self._queue)
         while left > 0:
             # refill the queue
             if not queue: