58 lines
1.2 KiB
Diff
58 lines
1.2 KiB
Diff
From deb5b349c2551268b4cf93f267a672c136fba74e Mon Sep 17 00:00:00 2001
|
|
From: Jan Chaloupka <jchaloup@redhat.com>
|
|
Date: Mon, 23 Mar 2015 11:44:13 +0100
|
|
Subject: [PATCH] time
|
|
|
|
---
|
|
joe/tty.c | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/joe/tty.c b/joe/tty.c
|
|
index 3404455..830b9d3 100644
|
|
--- a/joe/tty.c
|
|
+++ b/joe/tty.c
|
|
@@ -244,18 +244,19 @@ void ttclose(void)
|
|
}
|
|
|
|
static int winched = 0;
|
|
+int ticked = 0;
|
|
#ifdef SIGWINCH
|
|
/* Window size interrupt handler */
|
|
static RETSIGTYPE winchd(int unused)
|
|
{
|
|
++winched;
|
|
+ ticked = 1;
|
|
REINSTALL_SIGHANDLER(SIGWINCH, winchd);
|
|
}
|
|
#endif
|
|
|
|
/* Second ticker */
|
|
|
|
-int ticked = 0;
|
|
static RETSIGTYPE dotick(int unused)
|
|
{
|
|
ticked = 1;
|
|
@@ -279,6 +280,8 @@ void tickon(void)
|
|
{
|
|
#ifdef HAVE_SETITIMER
|
|
struct itimerval val;
|
|
+ struct timeval now;
|
|
+ gettimeofday(&now, NULL);
|
|
val.it_interval.tv_sec = 0;
|
|
val.it_interval.tv_usec = 0;
|
|
if (auto_scroll) {
|
|
@@ -289,8 +292,8 @@ void tickon(void)
|
|
val.it_value.tv_sec = 0;
|
|
val.it_value.tv_usec = tim;
|
|
} else {
|
|
- val.it_value.tv_sec = 1;
|
|
- val.it_value.tv_usec = 0;
|
|
+ val.it_value.tv_sec = 60 - (now.tv_sec % 60);
|
|
+ val.it_value.tv_usec = 1000000 - now.tv_usec;
|
|
}
|
|
ticked = 0;
|
|
joe_set_signal(SIGALRM, dotick);
|
|
--
|
|
1.9.3
|
|
|