From: Bram Moolenaar Date: Wed, 1 Jan 2020 14:04:17 +0000 (+0100) Subject: patch 8.2.0070: crash when using Python 3 with "debug" encoding X-Git-Tag: v8.2.0070 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d518f952f0812778758b25139308bcf45df6988c;p=vim patch 8.2.0070: crash when using Python 3 with "debug" encoding Problem: Crash when using Python 3 with "debug" encoding. (Dominique Pelle) Solution: Use "euc-jp" whenever enc_dbcs is set. --- diff --git a/src/if_py_both.h b/src/if_py_both.h index bdac3fc3e..d81638655 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -19,7 +19,8 @@ static char_u e_py_systemexit[] = "E880: Can't handle SystemExit of %s exception typedef int Py_ssize_t; // Python 2.4 and earlier don't have this type. #endif -#define ENC_OPT (enc_utf8 ? "utf-8" : (char *)p_enc) +// Use values that are known to work, others may make Vim crash. +#define ENC_OPT (enc_utf8 ? "utf-8" : enc_dbcs ? "euc-jp" : (char *)p_enc) #define DOPY_FUNC "_vim_pydo" static const char *vim_special_path = "_vim_path_"; diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim index 397299e11..97f797e44 100644 --- a/src/testdir/test_python3.vim +++ b/src/testdir/test_python3.vim @@ -172,5 +172,9 @@ func Test_unicode() " this crashed Vim once set encoding=utf32 py3 print('hello') + set encoding=debug + py3 print('hello') + set encoding=euc-tw + py3 print('hello') set encoding=utf8 endfunc diff --git a/src/version.c b/src/version.c index e09006ded..58211bcce 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 70, /**/ 69, /**/