Mercurial > vim
view pixmaps/tb_open.xpm @ 33452:ed8db57d1034 v9.0.1980
patch 9.0.1980: win32: issues with stable python ABI
Commit: https://github.com/vim/vim/commit/119fdd9293f63614ed2ca60a78993466435db639
Author: Ken Takata <kentkt@csc.jp>
Date: Wed Oct 4 20:05:05 2023 +0200
patch 9.0.1980: win32: issues with stable python ABI
Problem: win32: issues with stable python ABI
Solution: if_python3,win32: Fix Python3 stable ABI
There were some issues in current stable ABI implementation on Windows:
* Python DLL name should be `python3.dll` instead of `python311.dll` and
so on. (See: https://docs.python.org/3/c-api/stable.html)
* Some non-stable API functions were used:
- `_PyObject_NextNotImplemented`
- `PyStdPrinter_Type`
* `reset_stdin()` and `hook_py_exit()` didn't work with `python3.dll`.
`python3.dll` is a special type of DLL called forwarder DLL.
It just forwards the functions to other DLL (e.g. `python311.dll`).
There were two issues regarding these functions:
- `python3.dll` doesn't have import tables. This caused a crash in
`get_imported_func_info()`. Add a check whether the specified DLL
has an import table.
- `reset_stdin()` and `hook_py_exit()` should be applied to the
forwarded DLL (e.g. `python311.dll`), not to `python3.dll`.
Check the export directory of `python3.dll` to find the forwarded
DLL and apply the functions to it.
closes: #13260
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ken Takata <kentkt@csc.jp>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 04 Oct 2023 20:15:03 +0200 |
parents | 3fc0f57ecb91 |
children |
line wrap: on
line source
/* XPM */ static char * tb_open_xpm[] = { /* width height ncolors cpp [x_hot y_hot] */ "18 18 7 1 0 0", /* colors */ " s none m none c none", ". s iconColor1 m black c #000000", "X s bottomShadowColor m black c #5D6069", "o s iconColor2 m none c #FFFFFF", "O s iconGray1 m none c #dedede", "+ s iconGray5 m black c #737373", "@ s iconGray3 m none c #adadad", /* pixels */ " ", " .........X ", " .oooooo.o.X ", " .oooooo.oo.X ", " .oooooo....X ", " ...ooooooooo... ", " .O.OOOOOOOOo.+. ", ".............O.+.X", ".oooooooooooo..+.X", " .o@@@@@@@@@@+.+.X", " .o@@@@@@@@@@@.+.X", " .o@@@@@@@@@@+..X", " .o@@@@@@@@@@@..X", " .o+++++++++++.X", " ..............X", " XXXXXXXXXXXXX", " ", " "};