New tests.
[mono.git] / mono / metadata / console-unix.c
index ecb3a3f524db27adb894fdf4eb712b1c22448e9e..0845c64f466729cb8c9e58dc85793f413548d670 100644 (file)
 #ifdef HAVE_SYS_FILIO_H
 #    include <sys/filio.h>
 #endif
-#ifndef TIOCGWINSZ
-#    ifdef HAVE_SYS_IOCTL_H
-#        include <sys/ioctl.h>
-#    endif
+#ifdef HAVE_SYS_IOCTL_H
+#    include <sys/ioctl.h>
 #endif
 
 #include <mono/metadata/console-io.h>
@@ -219,6 +217,7 @@ do_console_cancel_event (void)
        MonoMethod *method;
        MonoMethodMessage *msg;
        MonoMethod *im;
+       MonoVTable *vtable;
 
        if (!domain->domain)
                return;
@@ -232,7 +231,10 @@ do_console_cancel_event (void)
                g_assert (cancel_handler_field);
        }
 
-       mono_field_static_get_value (mono_class_vtable (domain, klass), cancel_handler_field, &load_value);
+       vtable = mono_class_vtable_full (domain, klass, FALSE);
+       if (vtable == NULL)
+               return;
+       mono_field_static_get_value (vtable, cancel_handler_field, &load_value);
        if (load_value == NULL)
                return;
 
@@ -426,6 +428,10 @@ ves_icall_System_ConsoleDriver_TtySetup (MonoString *keypad, MonoString *teardow
        mono_attr.c_iflag &= ~(IXON|IXOFF);
        mono_attr.c_cc [VMIN] = 1;
        mono_attr.c_cc [VTIME] = 0;
+#ifdef VDSUSP
+       /* Disable C-y being used as a suspend character on OSX */
+       mono_attr.c_cc [VDSUSP] = 255;
+#endif
        if (tcsetattr (STDIN_FILENO, TCSANOW, &mono_attr) == -1)
                return FALSE;