summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-12-31 21:59:01 +0100
committerBram Moolenaar <Bram@vim.org>2019-12-31 21:59:01 +0100
commit556684ff71e044a642879d759373a7ebc5047fad (patch)
tree693aba1258b64d3bebd7754324363067352e90a3
parentef140544f6703a7a4c0f6a15f610508ed6b09e89 (diff)
patch 8.2.0068: crash when using Python 3 with "utf32" encodingv8.2.0068
Problem: Crash when using Python 3 with "utf32" encoding. (Dominique Pelle) Solution: Use "utf-8" whenever enc_utf8 is set. (closes #5423)
-rw-r--r--src/if_py_both.h2
-rw-r--r--src/testdir/test_python3.vim7
-rw-r--r--src/version.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 0763c65b37..bdac3fc3e4 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -19,7 +19,7 @@ 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 ((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_";
diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim
index 2853302805..397299e114 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 432ae4d922..1c7dbba77a 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 */
/**/
+ 68,
+/**/
67,
/**/
66,