aboutsummaryrefslogtreecommitdiff
path: root/src/os_unix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os_unix.c')
-rw-r--r--src/os_unix.c66
1 files changed, 4 insertions, 62 deletions
diff --git a/src/os_unix.c b/src/os_unix.c
index 71927fc55e..d657d6a22a 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -29,6 +29,7 @@
#include "vim.h"
#include "os_unix.h"
+#include "os/time.h"
#include "buffer.h"
#include "charset.h"
#include "eval.h"
@@ -47,6 +48,7 @@
#include "term.h"
#include "ui.h"
#include "os/os.h"
+#include "os/time.h"
#include "os_unixx.h" /* unix includes for os_unix.c only */
@@ -141,10 +143,6 @@ static char_u *extra_shell_arg = NULL;
static int show_shell_mess = TRUE;
/* volatile because it is used in signal handler deathtrap(). */
static volatile int deadly_signal = 0; /* The signal we caught */
-/* volatile because it is used in signal handler deathtrap(). */
-static volatile int in_mch_delay = FALSE; /* sleeping in mch_delay() */
-
-static int curr_tmode = TMODE_COOK; /* contains current terminal mode */
#ifdef SYS_SIGLIST_DECLARED
@@ -341,64 +339,6 @@ int mch_char_avail()
return WaitForChar(0L);
}
-void mch_delay(long msec, int ignoreinput)
-{
- int old_tmode;
-
- if (ignoreinput) {
- /* Go to cooked mode without echo, to allow SIGINT interrupting us
- * here. But we don't want QUIT to kill us (CTRL-\ used in a
- * shell may produce SIGQUIT). */
- in_mch_delay = TRUE;
- old_tmode = curr_tmode;
- if (curr_tmode == TMODE_RAW)
- settmode(TMODE_SLEEP);
-
- /*
- * Everybody sleeps in a different way...
- * Prefer nanosleep(), some versions of usleep() can only sleep up to
- * one second.
- */
-#ifdef HAVE_NANOSLEEP
- {
- struct timespec ts;
-
- ts.tv_sec = msec / 1000;
- ts.tv_nsec = (msec % 1000) * 1000000;
- (void)nanosleep(&ts, NULL);
- }
-#else
-# ifdef HAVE_USLEEP
- while (msec >= 1000) {
- usleep((unsigned int)(999 * 1000));
- msec -= 999;
- }
- usleep((unsigned int)(msec * 1000));
-# else
-# ifndef HAVE_SELECT
- poll(NULL, 0, (int)msec);
-# else
- {
- struct timeval tv;
-
- tv.tv_sec = msec / 1000;
- tv.tv_usec = (msec % 1000) * 1000;
- /*
- * NOTE: Solaris 2.6 has a bug that makes select() hang here. Get
- * a patch from Sun to fix this. Reported by Gunnar Pedersen.
- */
- select(0, NULL, NULL, NULL, &tv);
- }
-# endif /* HAVE_SELECT */
-# endif /* HAVE_NANOSLEEP */
-#endif /* HAVE_USLEEP */
-
- settmode(old_tmode);
- in_mch_delay = FALSE;
- } else
- WaitForChar(msec);
-}
-
#if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
/*
* Support for using the signal stack.
@@ -1307,6 +1247,8 @@ void mch_early_init()
signal_stack = (char *)alloc(SIGSTKSZ);
init_signal_stack();
#endif
+
+ time_init();
}
#if defined(EXITFREE) || defined(PROTO)