changeset 16688:e791f29affae v8.1.1346

patch 8.1.1346: error for Python exception does not show useful info commit https://github.com/vim/vim/commit/7f3a28490abb7c495239fc438825e3d1aaafa76d Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 18 15:02:25 2019 +0200 patch 8.1.1346: error for Python exception does not show useful info Problem: Error for Python exception does not show useful info. Solution: Show the last line instead of the first one. (Ben Jackson, closes #4381)
author Bram Moolenaar <Bram@vim.org>
date Sat, 18 May 2019 15:15:05 +0200
parents 28e88bcb7681
children 7f784d132212
files src/if_py_both.h src/testdir/test86.ok src/testdir/test87.ok src/testdir/test_python2.vim src/testdir/test_python3.vim src/testdir/test_pyx2.vim src/testdir/test_pyx3.vim src/version.c
diffstat 8 files changed, 38 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -412,6 +412,8 @@ write_output(OutputObject *self, PyObjec
 
     Py_BEGIN_ALLOW_THREADS
     Python_Lock_Vim();
+    if (error)
+	emsg_severe = TRUE;
     writer((writefn)(error ? emsg : msg), (char_u *)str, len);
     Python_Release_Vim();
     Py_END_ALLOW_THREADS
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -91,7 +91,7 @@ pyeval("None") = v:none
 0.0
 "\0":	Vim(let):E859:
 {"\0": 1}:	Vim(let):E859:
-undefined_name:	Vim(let):Trace
+undefined_name:	Vim(let):NameE
 vim:	Vim(let):E859:
 [1]
 [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1]
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -91,7 +91,7 @@ py3eval("None") = v:none
 0.0
 "\0":	Vim(let):E859:
 {"\0": 1}:	Vim(let):E859:
-undefined_name:	Vim(let):Trace
+undefined_name:	Vim(let):NameE
 vim:	Vim(let):E859:
 [1]
 [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1]
--- a/src/testdir/test_python2.vim
+++ b/src/testdir/test_python2.vim
@@ -160,3 +160,11 @@ func Test_Write_To_Current_Buffer_Fixes_
 
   bwipe!
 endfunction
+
+func Test_Catch_Exception_Message()
+  try
+    py raise RuntimeError( 'TEST' )
+  catch /.*/
+    call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
+  endtry
+endfunc
--- a/src/testdir/test_python3.vim
+++ b/src/testdir/test_python3.vim
@@ -160,3 +160,11 @@ func Test_Write_To_Current_Buffer_Fixes_
 
   bwipe!
 endfunction
+
+func Test_Catch_Exception_Message()
+  try
+    py3 raise RuntimeError( 'TEST' )
+  catch /.*/
+    call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
+  endtry
+endfunc
--- a/src/testdir/test_pyx2.vim
+++ b/src/testdir/test_pyx2.vim
@@ -72,3 +72,11 @@ func Test_pyxfile()
     call assert_match(s:py3pattern, split(var)[0])
   endif
 endfunc
+
+func Test_Catch_Exception_Message()
+  try
+    pyx raise RuntimeError( 'TEST' )
+  catch /.*/
+    call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
+  endtry
+endfunc
--- a/src/testdir/test_pyx3.vim
+++ b/src/testdir/test_pyx3.vim
@@ -72,3 +72,11 @@ func Test_pyxfile()
     call assert_match(s:py2pattern, split(var)[0])
   endif
 endfunc
+
+func Test_Catch_Exception_Message()
+  try
+    pyx raise RuntimeError( 'TEST' )
+  catch /.*/
+    call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
+  endtry
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1346,
+/**/
     1345,
 /**/
     1344,