From ec835a405a536f1304a41ad6c1964aae4e68fe1a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Aug 12 2014 08:46:13 +0000 Subject: - patchlevel 380 --- diff --git a/7.4.380 b/7.4.380 new file mode 100644 index 0000000..8c93e07 --- /dev/null +++ b/7.4.380 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.380 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.380 +Problem: Loading python may cause Vim to exit. +Solution: Avoid loading the "site" module. (Taro Muraoka) +Files: src/if_python.c + + +*** ../vim-7.4.379/src/if_python.c 2014-03-30 16:11:37.176530823 +0200 +--- src/if_python.c 2014-07-23 16:46:42.863880615 +0200 +*************** +*** 295,300 **** +--- 295,303 ---- + # define PyCObject_FromVoidPtr dll_PyCObject_FromVoidPtr + # define PyCObject_AsVoidPtr dll_PyCObject_AsVoidPtr + # endif ++ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 ++ # define Py_NoSiteFlag (*dll_Py_NoSiteFlag) ++ # endif + + /* + * Pointers for dynamic link +*************** +*** 440,445 **** +--- 443,451 ---- + static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *)); + static void* (*dll_PyCObject_AsVoidPtr)(PyObject *); + # endif ++ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 ++ static int* dll_Py_NoSiteFlag; ++ # endif + + static HINSTANCE hinstPython = 0; /* Instance of python.dll */ + +*************** +*** 633,638 **** +--- 639,647 ---- + {"PyCObject_FromVoidPtr", (PYTHON_PROC*)&dll_PyCObject_FromVoidPtr}, + {"PyCObject_AsVoidPtr", (PYTHON_PROC*)&dll_PyCObject_AsVoidPtr}, + # endif ++ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 ++ {"Py_NoSiteFlag", (PYTHON_PROC*)&dll_Py_NoSiteFlag}, ++ # endif + {"", NULL}, + }; + +*************** +*** 901,906 **** +--- 910,919 ---- + { + if (!initialised) + { ++ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 ++ PyObject *site; ++ #endif ++ + #ifdef DYNAMIC_PYTHON + if (!python_enabled(TRUE)) + { +*************** +*** 915,925 **** +--- 928,956 ---- + + init_structs(); + ++ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 ++ /* Disable implicit 'import site', because it may cause Vim to exit ++ * when it can't be found. */ ++ Py_NoSiteFlag++; ++ #endif ++ + #if !defined(MACOS) || defined(MACOS_X_UNIX) + Py_Initialize(); + #else + PyMac_Initialize(); + #endif ++ ++ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000 ++ /* 'import site' explicitly. */ ++ site = PyImport_ImportModule("site"); ++ if (site == NULL) ++ { ++ EMSG(_("E887: Sorry, this command is disabled, the Python's site module could not be loaded.")); ++ goto fail; ++ } ++ Py_DECREF(site); ++ #endif ++ + /* Initialise threads, and below save the state using + * PyEval_SaveThread. Without the call to PyEval_SaveThread, thread + * specific state (such as the system trace hook), will be lost +*** ../vim-7.4.379/src/version.c 2014-07-23 16:33:04.079886500 +0200 +--- src/version.c 2014-07-23 16:43:47.939881872 +0200 +*************** +*** 736,737 **** +--- 736,739 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 380, + /**/ + +-- +Looking at Perl through Lisp glasses, Perl looks atrocious. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///