X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/9f89f96ec65c0bf747313052a161a89ab0f7add2..582c005495b54e9c107029b70a0ae9e8c892634c:/window.c?ds=sidebyside diff --git a/window.c b/window.c index 3bb16423..4c4360c4 100644 --- a/window.c +++ b/window.c @@ -444,7 +444,9 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) { error = back->init (cfg.host, cfg.port, &realhost); if (error) { - sprintf(msg, "Unable to open connection:\n%s", error); + sprintf(msg, "Unable to open connection to\n" + "%.800s\n" + "%s", cfg.host, error); MessageBox(NULL, msg, "PuTTY Error", MB_ICONERROR | MB_OK); return 0; } @@ -2321,6 +2323,24 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam, /* Reorder edit keys to physical order */ if (cfg.funky_type == 3 && code <= 6 ) code = "\0\2\1\4\5\3\6"[code]; + if (vt52_mode && code > 0 && code <= 6) { + p += sprintf((char *)p, "\x1B%c", " HLMEIG"[code]); + return p - output; + } + + if (cfg.funky_type == 5 && code >= 11 && code <= 24) { + p += sprintf((char *)p, "\x1B[%c", code + 'M' - 11); + return p - output; + } + if ((vt52_mode || cfg.funky_type == 4) && code >= 11 && code <= 24) { + int offt = 0; + if (code>15) offt++; if (code>21) offt++; + if (vt52_mode) + p += sprintf((char *)p, "\x1B%c", code + 'P' - 11 - offt); + else + p += sprintf((char *)p, "\x1BO%c", code + 'P' - 11 - offt); + return p - output; + } if (cfg.funky_type == 1 && code >= 11 && code <= 15) { p += sprintf((char *)p, "\x1B[[%c", code + 'A' - 11); return p - output;