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 a
adding b
adding dir.h/foo
adding t.h
adding t/b
adding t/e.h
adding t/x
hg locate a
a
locate succeeded
hg locate NONEXISTENT
locate failed
hg locate
a
b
dir.h/foo
t.h
t/b
t/e.h
t/x
hg locate a
hg locate NONEXISTENT
hg locate relpath:NONEXISTENT
hg locate
b
dir.h/foo
t.h
t/b
t/e.h
t/x
hg locate -r 0 a
a
hg locate -r 0 NONEXISTENT
hg locate -r 0 relpath:NONEXISTENT
hg locate -r 0
a
b
dir.h/foo
t.h
t/b
t/e.h
t/x
% -I/-X with relative path should work
hg locate
b
dir.h/foo
t.h
t/b
t/e.h
t/x
hg locate -I ../t
t/b
t/e.h
t/x
hg locate t/**
t/b
t/e.h
t/x
hg locate b
../b
../t/b
hg locate *.h
../t.h
../t/e.h
hg locate path:t/x
../t/x
hg locate re:.*\.h$
../t.h
../t/e.h
hg locate -r 0 b
../b
../t/b
hg locate -r 0 *.h
../t.h
../t/e.h
hg locate -r 0 path:t/x
../t/x
hg locate -r 0 re:.*\.h$
../t.h
../t/e.h