=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- src/usr.bin/tmux/window-copy.c 2010/02/06 17:35:01 1.42 +++ src/usr.bin/tmux/window-copy.c 2010/02/11 20:39:40 1.43 @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.42 2010/02/06 17:35:01 nicm Exp $ */ +/* $OpenBSD: window-copy.c,v 1.43 2010/02/11 20:39:40 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -224,6 +224,7 @@ struct screen *s = &data->screen; u_int n; int keys; + enum mode_key_cmd cmd; if (data->inputtype != WINDOW_COPY_OFF) { if (window_copy_key_input(wp, key) != 0) @@ -231,7 +232,8 @@ return; } - switch (mode_key_lookup(&data->mdata, key)) { + cmd = mode_key_lookup(&data->mdata, key); + switch (cmd) { case MODEKEYCOPY_CANCEL: window_pane_reset_mode(wp); break; @@ -367,15 +369,22 @@ data->inputprompt = "Search Down"; goto input_on; case MODEKEYCOPY_SEARCHAGAIN: + case MODEKEYCOPY_SEARCHREVERSE: switch (data->searchtype) { case WINDOW_COPY_OFF: case WINDOW_COPY_GOTOLINE: break; case WINDOW_COPY_SEARCHUP: - window_copy_search_up(wp, data->searchstr); + if (cmd == MODEKEYCOPY_SEARCHAGAIN) + window_copy_search_up(wp, data->searchstr); + else + window_copy_search_down(wp, data->searchstr); break; case WINDOW_COPY_SEARCHDOWN: - window_copy_search_down(wp, data->searchstr); + if (cmd == MODEKEYCOPY_SEARCHAGAIN) + window_copy_search_down(wp, data->searchstr); + else + window_copy_search_up(wp, data->searchstr); break; } break;