Mercurial > vim
changeset 19015:a3d9a5e14c1f v8.2.0068
patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Commit: https://github.com/vim/vim/commit/556684ff71e044a642879d759373a7ebc5047fad
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Dec 31 21:59:01 2019 +0100
patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Problem: Crash when using Python 3 with "utf32" encoding. (Dominique Pelle)
Solution: Use "utf-8" whenever enc_utf8 is set. (closes https://github.com/vim/vim/issues/5423)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 31 Dec 2019 22:00:03 +0100 |
parents | 0ecf33c2ad4b |
children | 2c87424f5ea1 |
files | src/if_py_both.h src/testdir/test_python3.vim src/version.c |
diffstat | 3 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -19,7 +19,7 @@ static char_u e_py_systemexit[] = "E880: typedef int Py_ssize_t; // Python 2.4 and earlier don't have this type. #endif -#define ENC_OPT ((char *)p_enc) +#define ENC_OPT (enc_utf8 ? "utf-8" : (char *)p_enc) #define DOPY_FUNC "_vim_pydo" static const char *vim_special_path = "_vim_path_";
--- a/src/testdir/test_python3.vim +++ b/src/testdir/test_python3.vim @@ -167,3 +167,10 @@ func Test_Catch_Exception_Message() call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception ) endtry endfunc + +func Test_unicode() + " this crashed Vim once + set encoding=utf32 + py3 print('hello') + set encoding=utf8 +endfunc