Don't try to determine interactivity if ui() called with interactive=False.
WSGI applications are not supposed to refer to sys.stdin. In ed6df6b1c29a,
hgweb and hgwebdir were fixed to pass interactive=False to their ui()'s, but
sys.stdin.isatty() was still called by the ui objects. This change makes sure
only the ui.fixconfig() method will call ui.isatty() (by making the
ui._readline() method, which is currently only called from ui.prompt(),
private). ui.fixconfig() is changed to let config files override the initial
interactivity setting, but not check isatty() if interactive=False was
specified in the creation of the ui.
adding foo
>>> two diffs showing three added lines <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
+
hello world
+
goodbye world
+
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
+
hello world
+
goodbye world
+
>>> no diffs <<<
hg diff -B
hg diff -Bb
>>> four diffs showing added space first on the first line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
>>> two diffs showing space appended to the first line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+hello world
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+hello world
goodbye world
>>> no diffs <<<
hg diff -b
hg diff -Bb
>>> four diffs showing space inserted into "goodbye" <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
>>> two diffs showing changed whitespace amount in the last line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+goodbye world
>>> no diffs <<<
hg diff -b
hg diff -Bb
>>> four diffs showing added blank line w/horizontal space <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -Bb
>>> three diffs showing added blank line w/other space <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -Bb
>>> four diffs showing changed whitespace <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -w
>>> five diffs showing changed whitespace <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -w
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -wB