Message11358

Author djc
Recipients
Date 2010-01-02.09:20:47
Content
Isn't this something we used to get right?

djc@miles crew $ hg id -nib
1139fcfeaeda+ 10195+ default
djc@miles crew $ hg diff
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -234,7 +234,8 @@

     def write_err(self, *args):
         try:
-            if not sys.stdout.closed: sys.stdout.flush()
+            if not hasattr(sys.stdout, 'closed') or not sys.stdout.closed:
+                sys.stdout.flush()
             for a in args:
                 sys.stderr.write(str(a))
             # stderr may be buffered under win32 when redirected to files,
djc@miles crew $ hg up stable
merging mercurial/ui.py
251 files updated, 1 files merged, 148 files removed, 0 files unresolved
djc@miles crew $ hg id -nib
a275c3997e03+ 10194+ stable
djc@miles crew $ hg diff
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -29,8 +29,11 @@
             self._ocfg = src._ocfg.copy()
             self._trustusers = src._trustusers.copy()
             self._trustgroups = src._trustgroups.copy()
+            self.environ = src.environ
             self.fixconfig()
         else:
+            # shared read-only environment
+            self.environ = os.environ
             # we always trust global config files
             for f in util.rcpath():
                 self.readconfig(f, trust=True)
@@ -231,7 +234,8 @@

     def write_err(self, *args):
         try:
-            if not sys.stdout.closed: sys.stdout.flush()
+            if not hasattr(sys.stdout, 'closed') or not sys.stdout.closed:
+                sys.stdout.flush()
             for a in args:
                 sys.stderr.write(str(a))
             # stderr may be buffered under win32 when redirected to files,
@@ -250,7 +254,13 @@
     def interactive(self):
         i = self.configbool("ui", "interactive", None)
         if i is None:
-            return sys.stdin.isatty()
+            try:
+                return sys.stdin.isatty()
+            except AttributeError:
+                # some environments replace stdin without implementing isatty
+                # usually those are non-interactive
+                return False
+
         return i

     def _readline(self, prompt=''):
History
Date User Action Args
2010-01-02 09:20:47djcsetmessageid: <1262424047.87.0.936979332972.issue1966@mercurial.selenic.com>
2010-01-02 09:20:47djclinkissue1966 messages
2010-01-02 09:20:47djccreate