summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-01-01 15:04:17 +0100
committerBram Moolenaar <Bram@vim.org>2020-01-01 15:04:17 +0100
commitd518f952f0812778758b25139308bcf45df6988c (patch)
treebe1e160638c6ae91eeded2962329dc708ba03d3d /src
parent87396072c5c468f0c129e4ec7cd944ac897b7752 (diff)
downloadvim-git-d518f952f0812778758b25139308bcf45df6988c.tar.gz
patch 8.2.0070: crash when using Python 3 with "debug" encodingv8.2.0070
Problem: Crash when using Python 3 with "debug" encoding. (Dominique Pelle) Solution: Use "euc-jp" whenever enc_dbcs is set.
Diffstat (limited to 'src')
-rw-r--r--src/if_py_both.h3
-rw-r--r--src/testdir/test_python3.vim4
-rw-r--r--src/version.c2
3 files changed, 8 insertions, 1 deletions
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
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 70,
+/**/
69,
/**/
68,