X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/c7bd96b8b0848ba5fabe6e0b36d94e4071c1638a..d46a9154e9a0e15f9e4561a1f7f563e21f211208:/mac/mac.c?ds=sidebyside diff --git a/mac/mac.c b/mac/mac.c index 4f7c2fcf..a2e89f91 100644 --- a/mac/mac.c +++ b/mac/mac.c @@ -1,4 +1,4 @@ -/* $Id: mac.c,v 1.59 2003/05/10 12:27:38 ben Exp $ */ +/* $Id$ */ /* * Copyright (c) 1999, 2003 Ben Harris * All rights reserved. @@ -71,6 +71,7 @@ static int cold = 1; 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); @@ -244,16 +245,31 @@ static void mac_startup(void) { 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; + long next; + long ticksleft; 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); + 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. @@ -267,9 +283,8 @@ static void mac_eventloop(void) { if (borednow) cleanup_exit(0); } - sk_poll(); if (!gotevent) - mac_pollterm(); + sk_poll(); if (mac_gestalts.apprvers >= 0x100 && mac_frontwindow() != NULL) IdleControls(mac_frontwindow()); } @@ -457,6 +472,9 @@ static void mac_menucommand(long result) { case iOpen: mac_opensession(); goto done; + case iChange: + mac_reconfig(); + goto done; case iClose: mac_closewindow(window); goto done; @@ -552,6 +570,7 @@ static void mac_adjustmenus(void) { if (window != NULL && mac_wininfo(window)->adjustmenus != NULL) (*mac_wininfo(window)->adjustmenus)(window); else { + DisableItem(menu, iChange); DisableItem(menu, iSave); DisableItem(menu, iSaveAs); DisableItem(menu, iDuplicate); @@ -704,7 +723,7 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, } } -void askcipher(void *frontend, char *ciphername, int cs) +void askalg(void *frontend, const char *algtype, const char *algname) { } @@ -784,6 +803,8 @@ void update_specials_menu(void *frontend) mac_adjustmenus(); } +void notify_remote_exit(void *fe) { /* XXX anything needed here? */ } + /* * Local Variables: * c-file-style: "simon"