]> granicus.if.org Git - vim/commitdiff
patch 8.2.0070: crash when using Python 3 with "debug" encoding v8.2.0070
authorBram Moolenaar <Bram@vim.org>
Wed, 1 Jan 2020 14:04:17 +0000 (15:04 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 1 Jan 2020 14:04:17 +0000 (15:04 +0100)
Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pelle)
Solution:   Use "euc-jp" whenever enc_dbcs is set.

src/if_py_both.h
src/testdir/test_python3.vim
src/version.c

index bdac3fc3e467fc21460e2191ccbea58b088edbcd..d816386558b658dde320a2349c2e8299553b28f6 100644 (file)
@@ -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_";
index 397299e1142526932df3b07d58ccbd88712b18e8..97f797e440cc2b76614a1bd7df1918462ecd255e 100644 (file)
@@ -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
index e09006dedf4a5e452c0048899687e01597376359..58211bccefbad4f2bd902f1a7c9b528a0ec509f8 100644 (file)
@@ -742,6 +742,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    70,
 /**/
     69,
 /**/