]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - terminal.c
Remove the timed part of the terminal paste mechanism.
[PuTTY.git] / terminal.c
index e7095e0c2db2cf7e7a9e248e699de64ceb944e9d..d6a754c916faace187bb6347933006b6cb521498 100644 (file)
@@ -109,9 +109,6 @@ static void scroll(Terminal *, int, int, int, int);
 #ifdef OPTIMISE_SCROLL
 static void scroll_display(Terminal *, int, int, int);
 #endif /* OPTIMISE_SCROLL */
-static void term_resume_pasting(Terminal *term);
-static void term_paste_callback(void *vterm);
-static void term_paste_queue(Terminal *term, int timed);
 
 static termline *newline(Terminal *term, int cols, int bce)
 {
@@ -2969,7 +2966,6 @@ static void term_out(Terminal *term)
                term->curs.x = 0;
                term->wrapnext = FALSE;
                seen_disp_event(term);
-                term_resume_pasting(term);
 
                if (term->crhaslf) {
                    if (term->curs.y == term->marg_b)
@@ -3000,7 +2996,6 @@ static void term_out(Terminal *term)
                    term->curs.x = 0;
                term->wrapnext = FALSE;
                seen_disp_event(term);
-                term_resume_pasting(term);
                if (term->logctx)
                    logtraffic(term->logctx, (unsigned char) c, LGTYP_ASCII);
                break;
@@ -5708,48 +5703,6 @@ static void sel_spread(Terminal *term)
     }
 }
 
-static void term_resume_pasting(Terminal *term)
-{
-    expire_timer_context(&term->paste_timer_ctx);
-    term_paste_queue(term, FALSE);
-}
-
-static void term_paste_timing_callback(void *vterm, unsigned long now)
-{
-    Terminal *term = *(Terminal **)vterm;
-    term_resume_pasting(term);
-}
-
-static void term_paste_queue(Terminal *term, int timed)
-{
-    if (timed) {
-        /*
-         * Delay sending the rest of the paste buffer until we have
-         * seen a newline coming back from the server (indicating that
-         * it's absorbed the data we've sent so far). As a fallback,
-         * continue sending anyway after a longish timeout.
-         *
-         * We use the pointless structure field term->paste_timer_ctx
-         * (which is a Terminal *, and we'll make sure it points
-         * straight back to term) as our timer context, so that it can
-         * be distinguished from term itself. That way, if we see a
-         * reason to continue pasting before the timer goes off, we
-         * can cancel just this timer and none of the other terminal
-         * timers handling display updates, blinking text and cursor,
-         * and visual bells.
-         */
-        term->paste_timer_ctx = term;
-        schedule_timer(450, term_paste_timing_callback,
-                       &term->paste_timer_ctx);
-    } else {
-        /*
-         * Just arrange to call term_paste_callback from the top level
-         * at the next opportunity.
-         */
-        queue_toplevel_callback(term_paste_callback, term);
-    }
-}
-
 static void term_paste_callback(void *vterm)
 {
     Terminal *term = (Terminal *)vterm;
@@ -5768,7 +5721,7 @@ static void term_paste_callback(void *vterm)
        term->paste_pos += n;
 
        if (term->paste_pos < term->paste_len) {
-            term_paste_queue(term, TRUE);
+            queue_toplevel_callback(term_paste_callback, term);
            return;
        }
     }
@@ -5838,7 +5791,7 @@ void term_do_paste(Terminal *term)
     }
     get_clip(term->frontend, NULL, NULL);
 
-    term_paste_queue(term, FALSE);
+    queue_toplevel_callback(term_paste_callback, term);
 }
 
 void term_mouse(Terminal *term, Mouse_Button braw, Mouse_Button bcooked,
@@ -6125,7 +6078,6 @@ void term_nopaste(Terminal *term)
 {
     if (term->paste_len == 0)
        return;
-    expire_timer_context(&term->paste_timer_ctx);
     sfree(term->paste_buffer);
     term->paste_buffer = NULL;
     term->paste_len = 0;