]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.556 v7.4.556
authorBram Moolenaar <Bram@vim.org>
Wed, 17 Dec 2014 13:46:09 +0000 (14:46 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 17 Dec 2014 13:46:09 +0000 (14:46 +0100)
Problem:    Failed commands in Python interface not handled correctly.
Solution:   Restore window and buffer on failure.

src/if_py_both.h
src/version.c

index 5044afbeff30df747480a94037f0425c99f8396f..206d2987a5ae7ad8438197075525d60a73f0de95 100644 (file)
@@ -3172,6 +3172,7 @@ set_option_value_for(
            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"));
@@ -4032,9 +4033,13 @@ switch_to_win_for_buf(
     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
index 0c8b39a0ec60bb03ebd389abab02d604ce554be3..017bff6d59efd9c1b223f13277a3b297f762e339 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    556,
 /**/
     555,
 /**/