X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/ec5da3100dcef76794f5ef028f0f822f509bb832..edd0cb8aef57080ae884e06731a7892ca8cdba44:/macosx/osxwin.m diff --git a/macosx/osxwin.m b/macosx/osxwin.m index f0ebee45..ba3a08ec 100644 --- a/macosx/osxwin.m +++ b/macosx/osxwin.m @@ -313,14 +313,16 @@ * Do so. */ sfree(alert_ctx); - if (term) - term_free(term); - if (logctx) - log_free(logctx); if (back) back->free(backhandle); if (ldisc) ldisc_free(ldisc); + /* ldisc must be freed before term, since ldisc_free expects term + * still to be around. */ + if (logctx) + log_free(logctx); + if (term) + term_free(term); [super dealloc]; } @@ -891,6 +893,13 @@ int from_backend(void *frontend, int is_stderr, const char *data, int len) return [win fromBackend:data len:len isStderr:is_stderr]; } +int get_userpass_input(prompts_t *p, unsigned char *in, int inlen) +{ + SessionWindow *win = (SessionWindow *)p->frontend; + Terminal *term = [win term]; + return term_get_userpass_input(term, p, in, inlen); +} + void frontend_keypress(void *handle) { /* FIXME */ @@ -911,6 +920,13 @@ void ldisc_update(void *frontend, int echo, int edit) */ } +char *get_ttymode(void *frontend, const char *mode) +{ + SessionWindow *win = (SessionWindow *)ctx; + Terminal *term = [win term]; + return term_get_ttymode(term, mode); +} + void update_specials_menu(void *frontend) { //SessionWindow *win = (SessionWindow *)frontend; @@ -977,10 +993,11 @@ void palette_reset(void *frontend) for (i = 0; i < NEXTCOLOURS; i++) { if (i < 216) { int r = i / 36, g = (i / 6) % 6, b = i % 6; - [win setColour:i+16 r:r/5.0 g:g/5.0 b:b/5.0]; + r = r ? r*40+55 : 0; g = g ? b*40+55 : 0; b = b ? b*40+55 : 0; + [win setColour:i+16 r:r/255.0 g:g/255.0 b:b/255.0]; } else { int shade = i - 216; - float fshade = (shade + 1) / (float)(NEXTCOLOURS - 216 + 1); + float fshade = (shade * 10 + 8) / 255.0; [win setColour:i+16 r:fshade g:fshade b:fshade]; } }