]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - terminal.c
first pass
[PuTTY.git] / terminal.c
index 26a3f0c93f64b90228802ea6a50027a6500dd21d..c79944cda889cb8822be342b4557bebc38de85a9 100644 (file)
@@ -1403,6 +1403,7 @@ void term_copy_stuff_from_conf(Terminal *term)
     term->no_remote_charset = conf_get_int(term->conf, CONF_no_remote_charset);
     term->no_remote_resize = conf_get_int(term->conf, CONF_no_remote_resize);
     term->no_remote_wintitle = conf_get_int(term->conf, CONF_no_remote_wintitle);
+    term->no_remote_clearscroll = conf_get_int(term->conf, CONF_no_remote_clearscroll);
     term->rawcnp = conf_get_int(term->conf, CONF_rawcnp);
     term->rect_select = conf_get_int(term->conf, CONF_rect_select);
     term->remote_qtitle_action = conf_get_int(term->conf, CONF_remote_qtitle_action);
@@ -3606,7 +3607,8 @@ static void term_out(Terminal *term)
                            if (i == 3) {
                                /* Erase Saved Lines (xterm)
                                 * This follows Thomas Dickey's xterm. */
-                               term_clrsb(term);
+                                if (!term->no_remote_clearscroll)
+                                    term_clrsb(term);
                            } else {
                                i++;
                                if (i > 3)
@@ -5445,7 +5447,7 @@ typedef struct {
 static void clip_addchar(clip_workbuf *b, wchar_t chr, int attr)
 {
     if (b->bufpos >= b->buflen) {
-       b->buflen += 128;
+       b->buflen *= 2;
        b->textbuf = sresize(b->textbuf, b->buflen, wchar_t);
        b->textptr = b->textbuf + b->bufpos;
        b->attrbuf = sresize(b->attrbuf, b->buflen, int);
@@ -6374,6 +6376,8 @@ char *term_get_ttymode(Terminal *term, const char *mode)
     const char *val = NULL;
     if (strcmp(mode, "ERASE") == 0) {
        val = term->bksp_is_delete ? "^?" : "^H";
+    } else if (strcmp(mode, "IUTF8") == 0) {
+       val = frontend_is_utf8(term->frontend) ? "yes" : "no";
     }
     /* FIXME: perhaps we should set ONLCR based on lfhascr as well? */
     /* FIXME: or ECHO and friends based on local echo state? */