if (switch_win(&save_curwin, &save_curtab, (win_T *)from,
win_find_tabpage((win_T *)from), FALSE) == FAIL)
{
+ restore_win(save_curwin, save_curtab, TRUE);
if (VimTryEnd())
return -1;
PyErr_SET_VIM(N_("problem while switching windows"));
win_T *wp;
tabpage_T *tp;
- if (find_win_for_buf(buf, &wp, &tp) == FAIL
- || switch_win(save_curwinp, save_curtabp, wp, tp, TRUE) == FAIL)
+ if (find_win_for_buf(buf, &wp, &tp) == FAIL)
switch_buffer(save_curbufp, buf);
+ else if (switch_win(save_curwinp, save_curtabp, wp, tp, TRUE) == FAIL)
+ {
+ restore_win(*save_curwinp, *save_curtabp, TRUE);
+ switch_buffer(save_curbufp, buf);
+ }
}
static void