=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.124 retrieving revision 1.125 diff -c -r1.124 -r1.125 *** src/usr.bin/tmux/window-copy.c 2015/03/31 17:45:10 1.124 --- src/usr.bin/tmux/window-copy.c 2015/04/10 16:00:08 1.125 *************** *** 1,4 **** ! /* $OpenBSD: window-copy.c,v 1.124 2015/03/31 17:45:10 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-copy.c,v 1.125 2015/04/10 16:00:08 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 147,152 **** --- 147,153 ---- enum window_copy_input_type inputtype; const char *inputprompt; char *inputstr; + int inputexit; int numprefix; *************** *** 424,431 **** case MODEKEYCOPY_APPENDSELECTION: if (sess != NULL) { window_copy_append_selection(wp, NULL); ! window_pane_reset_mode(wp); ! return; } break; case MODEKEYCOPY_CANCEL: --- 425,436 ---- case MODEKEYCOPY_APPENDSELECTION: if (sess != NULL) { window_copy_append_selection(wp, NULL); ! if (arg == NULL) { ! window_pane_reset_mode(wp); ! return; ! } ! window_copy_clear_selection(wp); ! window_copy_redraw_screen(wp); } break; case MODEKEYCOPY_CANCEL: *************** *** 572,579 **** case MODEKEYCOPY_COPYSELECTION: if (sess != NULL) { window_copy_copy_selection(wp, NULL); ! window_pane_reset_mode(wp); ! return; } break; case MODEKEYCOPY_STARTOFLINE: --- 577,588 ---- case MODEKEYCOPY_COPYSELECTION: if (sess != NULL) { window_copy_copy_selection(wp, NULL); ! if (arg == NULL) { ! window_pane_reset_mode(wp); ! return; ! } ! window_copy_clear_selection(wp); ! window_copy_redraw_screen(wp); } break; case MODEKEYCOPY_STARTOFLINE: *************** *** 718,723 **** --- 727,733 ---- goto input_on; case MODEKEYCOPY_STARTNAMEDBUFFER: data->inputtype = WINDOW_COPY_NAMEDBUFFER; + data->inputexit = (arg == NULL); data->inputprompt = "Buffer"; *data->inputstr = '\0'; goto input_on; *************** *** 828,835 **** case WINDOW_COPY_NAMEDBUFFER: window_copy_copy_selection(wp, data->inputstr); *data->inputstr = '\0'; ! window_pane_reset_mode(wp); ! return (0); case WINDOW_COPY_GOTOLINE: window_copy_goto_line(wp, data->inputstr); *data->inputstr = '\0'; --- 838,850 ---- case WINDOW_COPY_NAMEDBUFFER: window_copy_copy_selection(wp, data->inputstr); *data->inputstr = '\0'; ! if (data->inputexit) { ! window_pane_reset_mode(wp); ! return (0); ! } ! window_copy_clear_selection(wp); ! window_copy_redraw_screen(wp); ! break; case WINDOW_COPY_GOTOLINE: window_copy_goto_line(wp, data->inputstr); *data->inputstr = '\0';