X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/d3a22f7952add0b13fac029efb18faae537795bd..e571c4d7ffa1cf60330ac0c7e3fb8b62533ff60e:/terminal.c?ds=sidebyside diff --git a/terminal.c b/terminal.c index f205c31f..9ef0c5cf 100644 --- a/terminal.c +++ b/terminal.c @@ -803,8 +803,30 @@ static int beep_overload = 0; * * An xterm returns "xterm" (5 characters) */ - compatibility(OTHER); - ldisc_send ("PuTTY", 5); + compatibility(ANSIMIN); + { + char abuf[256], *s, *d; + int state=0; + for(s=cfg.answerback, d=abuf; *s; s++) { + if (state) + { + if (*s >= 'a' && *s <= 'z') + *d++ = (*s - ('a'-1)); + else if ((*s >='@' && *s<='_') || + *s == '?' || (*s&0x80)) + *d++ = ('@'^*s); + else if (*s == '~') + *d++ = '^'; + state = 0; + } + else if (*s == '^') { + state = 1; + } + else + *d++ = xlat_kbd2tty((unsigned char)*s); + } + ldisc_send (abuf, d-abuf); + } break; case '\007': beep_count++; @@ -1836,8 +1858,8 @@ static void do_paint (Context ctx, int may_optimise){ */ void term_blink(int flg) { -static long last_blink = 0; -static long last_tblink = 0; + static long last_blink = 0; + static long last_tblink = 0; long now, blink_diff; now = GetTickCount(); @@ -1858,8 +1880,8 @@ static long last_tblink = 0; blink_diff = now-last_blink; - /* Make sure the cursor blinks no more than 2Hz */ - if (blink_diff>=0 && blink_diff<450) + /* Make sure the cursor blinks no faster than GetCaretBlinkTime() */ + if (blink_diff>=0 && blink_diff<(long)GetCaretBlinkTime()) return; last_blink = now;