//
// (C) Ximian, Inc. http://www.ximian.com
// (C) 2004,2005 Novell, Inc. (http://www.novell.com)
-//
+// Copyright 2013 Xamarin Inc. (http://www.xamarin.com)
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
private static TextWriter stderr;
private static TextReader stdin;
-#if NET_4_5 && !MOBILE
- static TextWriter console_stdout;
- static TextWriter console_stderr;
- static TextReader console_stdin;
-#endif
-
static Console ()
{
#if NET_2_1
stdin = new CStreamReader (OpenStandardInput (0), inputEncoding);
} else {
#endif
-#if MONOTOUCH
+// FULL_AOT_RUNTIME is used (instead of MONOTOUCH) since we only want this code when running on
+// iOS (simulator or devices) and *not* when running tools (e.g. btouch #12179) that needs to use
+// the mscorlib.dll shipped with Xamarin.iOS
+#if MONOTOUCH && FULL_AOT_RUNTIME
stdout = new NSLogWriter ();
#else
stdout = new UnexceptionalStreamWriter (OpenStandardOutput (0), outputEncoding);
#endif
stdout = TextWriter.Synchronized (stdout, true);
-#if MONOTOUCH
+#if MONOTOUCH && FULL_AOT_RUNTIME
stderr = new NSLogWriter ();
#else
stderr = new UnexceptionalStreamWriter (OpenStandardError (0), outputEncoding);
}
#endif
-#if NET_4_5 && !MOBILE
- console_stderr = stderr;
- console_stdout = stdout;
- console_stdin = stdin;
-#endif
-
#if MONODROID
if (LogcatTextWriter.IsRunningOnAndroid ()) {
stdout = TextWriter.Synchronized (new LogcatTextWriter ("mono-stdout", stdout));
#if NET_4_5
public static bool IsErrorRedirected {
get {
- return stderr != console_stderr || ConsoleDriver.IsErrorRedirected;
+ return ConsoleDriver.IsErrorRedirected;
}
}
public static bool IsOutputRedirected {
get {
- return stdout != console_stdout || ConsoleDriver.IsOutputRedirected;
+ return ConsoleDriver.IsOutputRedirected;
}
}
public static bool IsInputRedirected {
get {
- return stdin != console_stdin || ConsoleDriver.IsInputRedirected;
+ return ConsoleDriver.IsInputRedirected;
}
}
#endif