Mercurial > vim
diff src/if_python3.c @ 13154:53cc7ea77c54 v8.0.1451
patch 8.0.1451: difficult to set the python home directories properly
commit https://github.com/vim/vim/commit/94073167e3aa8cbe18380e93a2fc8e8165438cc8
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 31 21:49:05 2018 +0100
patch 8.0.1451: difficult to set the python home directories properly
Problem: It is difficult to set the python home directory properly for
Python 2.7 and 3.5 since both use $PYTHONHOME.
Solution: Add the 'pythonhome' and 'pythonthreehome' options. (Kazuki
Sakamoto, closes #1266)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 31 Jan 2018 22:00:07 +0100 |
parents | 351cf7c67bbe |
children | eafe575966ff |
line wrap: on
line diff
--- a/src/if_python3.c +++ b/src/if_python3.c @@ -842,6 +842,8 @@ python3_loaded(void) } #endif +static wchar_t *py_home_buf = NULL; + static int Python3_Init(void) { @@ -857,11 +859,18 @@ Python3_Init(void) init_structs(); + if (*p_py3home != NUL) + { + size_t len = mbstowcs(NULL, (char *)p_py3home, 0) + 1; + /* The string must not change later, make a copy in static memory. */ + py_home_buf = (wchar_t *)alloc(len * sizeof(wchar_t)); + if (py_home_buf != NULL && mbstowcs( + py_home_buf, (char *)p_py3home, len) != (size_t)-1) + Py_SetPythonHome(py_home_buf); + } #ifdef PYTHON3_HOME -# ifdef DYNAMIC_PYTHON3 - if (mch_getenv((char_u *)"PYTHONHOME") == NULL) -# endif + else if (mch_getenv((char_u *)"PYTHONHOME") == NULL) Py_SetPythonHome(PYTHON3_HOME); #endif