[meld] Don't use select() on Windows (closes bgo#578985)



commit d85080008a900629e0fa504000081ae852ca5d70
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Mar 31 06:20:01 2013 +1000

    Don't use select() on Windows (closes bgo#578985)
    
    Patch from Vincent Legoll and Robert Wahler.

 meld/misc.py |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/meld/misc.py b/meld/misc.py
index ab0855f..e78db07 100644
--- a/meld/misc.py
+++ b/meld/misc.py
@@ -23,11 +23,11 @@
 import copy
 import os
 from gettext import gettext as _
-import select
 import errno
 import shutil
 import re
 import subprocess
+import sys
 
 import gio
 import gobject
@@ -37,6 +37,16 @@ import gtk
 whitespace_re = re.compile(r"\s")
 NULL = open(os.devnull, "w+b")
 
+if sys.platform == "win32":
+    from select import select
+else:
+    import time
+
+    def select(rlist, wlist, xlist, timeout):
+        time.sleep(timeout)
+        return rlist, wlist, xlist
+
+
 def cmdout(cmd, text=None, **kwargs):
     stdin = NULL
     if text is not None:
@@ -201,7 +211,8 @@ def read_pipe_iter(command, errorstream, yield_interval=0.1, workdir=None):
             childout, childerr = self.proc.stdout, self.proc.stderr
             bits = []
             while len(bits) == 0 or bits[-1] != "":
-                state = select.select([childout, childerr], [], [childout, childerr], yield_interval)
+                state = select([childout, childerr], [], [childout, childerr],
+                               yield_interval)
                 if len(state[0]) == 0:
                     if len(state[2]) == 0:
                         yield None


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]