Revision: 2626 http://tmux.svn.sourceforge.net/tmux/?rev=2626&view=rev Author: tcunha Date: 2011-10-31 13:54:28 +0000 (Mon, 31 Oct 2011) Log Message: ----------- Sync OpenBSD patchset 971:
When copying, make repeat count indicate buffer to replace if used. Modified Paths: -------------- trunk/window-copy.c Modified: trunk/window-copy.c =================================================================== --- trunk/window-copy.c 2011-10-27 23:00:45 UTC (rev 2625) +++ trunk/window-copy.c 2011-10-31 13:54:28 UTC (rev 2626) @@ -52,7 +52,7 @@ void window_copy_update_cursor(struct window_pane *, u_int, u_int); void window_copy_start_selection(struct window_pane *); int window_copy_update_selection(struct window_pane *); -void window_copy_copy_selection(struct window_pane *); +void window_copy_copy_selection(struct window_pane *, int); void window_copy_clear_selection(struct window_pane *); void window_copy_copy_line( struct window_pane *, char **, size_t *, u_int, u_int, u_int); @@ -134,7 +134,7 @@ const char *inputprompt; char *inputstr; - u_int numprefix; + int numprefix; enum window_copy_input_type searchtype; char *searchstr; @@ -165,7 +165,7 @@ data->inputtype = WINDOW_COPY_OFF; data->inputprompt = NULL; data->inputstr = xstrdup(""); - data->numprefix = 0; + data->numprefix = -1; data->searchtype = WINDOW_COPY_OFF; data->searchstr = NULL; @@ -358,12 +358,12 @@ const char *word_separators; struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; - u_int n, np; - int keys; + u_int n; + int np, keys; enum mode_key_cmd cmd; np = data->numprefix; - if (np == 0) + if (np <= 0) np = 1; if (data->inputtype == WINDOW_COPY_JUMPFORWARD || @@ -513,7 +513,7 @@ if (sess != NULL && (cmd == MODEKEYCOPY_COPYLINE || cmd == MODEKEYCOPY_COPYENDOFLINE)) { - window_copy_copy_selection(wp); + window_copy_copy_selection(wp, -1); window_pane_reset_mode(wp); return; } @@ -524,7 +524,7 @@ break; case MODEKEYCOPY_COPYSELECTION: if (sess != NULL) { - window_copy_copy_selection(wp); + window_copy_copy_selection(wp, data->numprefix); window_pane_reset_mode(wp); return; } @@ -664,7 +664,7 @@ break; } - data->numprefix = 0; + data->numprefix = -1; return; input_on: @@ -696,11 +696,11 @@ struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; size_t inputlen; - u_int np; + int np; switch (mode_key_lookup(&data->mdata, key)) { case MODEKEYEDIT_CANCEL: - data->numprefix = 0; + data->numprefix = -1; return (-1); case MODEKEYEDIT_BACKSPACE: inputlen = strlen(data->inputstr); @@ -712,7 +712,7 @@ break; case MODEKEYEDIT_ENTER: np = data->numprefix; - if (np == 0) + if (np <= 0) np = 1; switch (data->inputtype) { @@ -738,7 +738,7 @@ *data->inputstr = '\0'; break; } - data->numprefix = 0; + data->numprefix = -1; return (1); case MODEKEY_OTHER: if (key < 32 || key > 126) @@ -767,7 +767,7 @@ if (key < '0' || key > '9') return 1; - if (data->numprefix >= 100) /* no more than three digits */ + if (data->numprefix >= 100) /* no more than three digits */ return 0; data->numprefix = data->numprefix * 10 + key - '0'; @@ -834,7 +834,7 @@ s->mode &= ~MODE_MOUSE_BUTTON; s->mode |= MODE_MOUSE_STANDARD; if (sess != NULL) { - window_copy_copy_selection(wp); + window_copy_copy_selection(wp, -1); window_pane_reset_mode(wp); } } @@ -1235,7 +1235,7 @@ } void -window_copy_copy_selection(struct window_pane *wp) +window_copy_copy_selection(struct window_pane *wp, int idx) { struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; @@ -1315,7 +1315,7 @@ } else { if (keys == MODEKEY_EMACS) lastex = ex; - else + else lastex = ex + 1; restex = xx; firstsx = sx; @@ -1347,8 +1347,11 @@ screen_write_setselection(&wp->ictx.ctx, buf, off); /* Add the buffer to the stack. */ - limit = options_get_number(&global_options, "buffer-limit"); - paste_add(&global_buffers, buf, off, limit); + if (idx == -1) { + limit = options_get_number(&global_options, "buffer-limit"); + paste_add(&global_buffers, buf, off, limit); + } else + paste_replace(&global_buffers, idx, buf, off); } void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Get your Android app more play: Bring it to the BlackBerry PlayBook in minutes. BlackBerry App World™ now supports Android™ Apps for the BlackBerry® PlayBook™. Discover just how easy and simple it is! http://p.sf.net/sfu/android-dev2dev _______________________________________________ tmux-cvs mailing list tmux-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-cvs