projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Colours now work properly, including 256-colour stuff.
[u/mdw/putty]
/
mac
/
mac.c
diff --git
a/mac/mac.c
b/mac/mac.c
index
f1f2bf3
..
b7070c0
100644
(file)
--- a/
mac/mac.c
+++ b/
mac/mac.c
@@
-71,6
+71,7
@@
static int cold = 1;
static int borednow = FALSE;
struct mac_gestalts mac_gestalts;
UInt32 sleeptime;
static int borednow = FALSE;
struct mac_gestalts mac_gestalts;
UInt32 sleeptime;
+static long timing_next_time;
static void mac_startup(void);
static void mac_eventloop(void);
static void mac_startup(void);
static void mac_eventloop(void);
@@
-244,16
+245,32
@@
static void mac_startup(void) {
NewAEEventHandlerUPP(&mac_aevt_quit), 0, FALSE);
}
NewAEEventHandlerUPP(&mac_aevt_quit), 0, FALSE);
}
+void timer_change_notify(long next)
+{
+ timing_next_time = next;
+}
+
static void mac_eventloop(void) {
Boolean gotevent;
EventRecord event;
RgnHandle cursrgn;
static void mac_eventloop(void) {
Boolean gotevent;
EventRecord event;
RgnHandle cursrgn;
+ long next;
+ long ticksleft;
cursrgn = NewRgn();
sleeptime = 0;
for (;;) {
mac_adjustcursor(cursrgn);
cursrgn = NewRgn();
sleeptime = 0;
for (;;) {
mac_adjustcursor(cursrgn);
+ ticksleft=timing_next_time-GETTICKCOUNT();
+ if (sleeptime > ticksleft && ticksleft >=0)
+ sleeptime=ticksleft;
gotevent = WaitNextEvent(everyEvent, &event, sleeptime, cursrgn);
gotevent = WaitNextEvent(everyEvent, &event, sleeptime, cursrgn);
+ if (timing_next_time <= GETTICKCOUNT()) {
+ if (run_timers(timing_next_time, &next)) {
+ timer_change_notify(next);
+ }
+ }
+
/*
* XXX For now, limit sleep time to 1/10 s to work around
* wake-before-sleep race in MacTCP code.
/*
* XXX For now, limit sleep time to 1/10 s to work around
* wake-before-sleep race in MacTCP code.