static void SetupStreams (Encoding inputEncoding, Encoding outputEncoding)
{
- stderr = new UnexceptionalStreamWriter (OpenStandardError (0), outputEncoding);
- ((StreamWriter)stderr).AutoFlush = true;
- stderr = TextWriter.Synchronized (stderr, true);
-
#if !NET_2_1
if (!Environment.IsRunningOnWindows && ConsoleDriver.IsConsole) {
StreamWriter w = new CStreamWriter (OpenStandardOutput (0), outputEncoding);
w.AutoFlush = true;
stdout = TextWriter.Synchronized (w, true);
+
+ w = new CStreamWriter (OpenStandardOutput (0), outputEncoding);
+ w.AutoFlush = true;
+ stderr = TextWriter.Synchronized (w, true);
+
stdin = new CStreamReader (OpenStandardInput (0), inputEncoding);
} else {
#endif
+#if FULL_AOT_RUNTIME
+ Type nslogwriter = Type.GetType ("MonoTouch.Foundation.NSLogWriter, monotouch, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null");
+ stdout = (TextWriter) Activator.CreateInstance (nslogwriter);
+#else
stdout = new UnexceptionalStreamWriter (OpenStandardOutput (0), outputEncoding);
((StreamWriter)stdout).AutoFlush = true;
+#endif
stdout = TextWriter.Synchronized (stdout, true);
+
+#if FULL_AOT_RUNTIME
+ stderr = (TextWriter) Activator.CreateInstance (nslogwriter);
+#else
+ stderr = new UnexceptionalStreamWriter (OpenStandardError (0), outputEncoding);
+ ((StreamWriter)stderr).AutoFlush = true;
+#endif
+ stderr = TextWriter.Synchronized (stderr, true);
+
stdin = new UnexceptionalStreamReader (OpenStandardInput (0), inputEncoding);
stdin = TextReader.Synchronized (stdin);
#if !NET_2_1
console_stdin = stdin;
#endif
+#if MONODROID
+ if (LogcatTextWriter.IsRunningOnAndroid ()) {
+ stdout = TextWriter.Synchronized (new LogcatTextWriter ("mono-stdout", stdout));
+ stderr = TextWriter.Synchronized (new LogcatTextWriter ("mono-stderr", stderr));
+ }
+#endif // MONODROID
+
GC.SuppressFinalize (stdout);
GC.SuppressFinalize (stderr);
GC.SuppressFinalize (stdin);