diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-12-04 21:24:53 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-12-04 21:24:53 +0100 |
commit | 2ab2e8608f9b2c85432715bb9a7f226fdbf8cd35 (patch) | |
tree | 0a361d816527e615a7b64298e7c51c16d65fb015 /src/if_python3.c | |
parent | 9834b96820bec95d6858229d6fb256310365efff (diff) | |
download | vim-git-2ab2e8608f9b2c85432715bb9a7f226fdbf8cd35.tar.gz |
patch 8.1.2387: using old C style commentsv8.1.2387
Problem: Using old C style comments.
Solution: Use // comments where appropriate.
Diffstat (limited to 'src/if_python3.c')
-rw-r--r-- | src/if_python3.c | 312 |
1 files changed, 145 insertions, 167 deletions
diff --git a/src/if_python3.c b/src/if_python3.c index 26b973b9c..8c22514b7 100644 --- a/src/if_python3.c +++ b/src/if_python3.c @@ -22,13 +22,12 @@ * Adaptations to support both python3.x and python2.x */ -/* uncomment this if used with the debug version of python */ -/* #define Py_DEBUG */ -/* Note: most of time you can add -DPy_DEBUG to CFLAGS in place of uncommenting - */ -/* uncomment this if used with the debug version of python, but without its - * allocator */ -/* #define Py_DEBUG_NO_PYMALLOC */ +// uncomment this if used with the debug version of python +// #define Py_DEBUG +// Note: most of time you can add -DPy_DEBUG to CFLAGS in place of uncommenting +// uncomment this if used with the debug version of python, but without its +// allocator +// #define Py_DEBUG_NO_PYMALLOC #include "vim.h" @@ -56,30 +55,30 @@ # undef HAVE_PUTENV #endif #ifdef HAVE_STDARG_H -# undef HAVE_STDARG_H /* Python's config.h defines it as well. */ +# undef HAVE_STDARG_H // Python's config.h defines it as well. #endif -#ifdef _POSIX_C_SOURCE /* defined in feature.h */ +#ifdef _POSIX_C_SOURCE // defined in feature.h # undef _POSIX_C_SOURCE #endif #ifdef _XOPEN_SOURCE -# undef _XOPEN_SOURCE /* pyconfig.h defines it as well. */ +# undef _XOPEN_SOURCE // pyconfig.h defines it as well. #endif #define PY_SSIZE_T_CLEAN #include <Python.h> -#undef main /* Defined in python.h - aargh */ -#undef HAVE_FCNTL_H /* Clash with os_win32.h */ +#undef main // Defined in python.h - aargh +#undef HAVE_FCNTL_H // Clash with os_win32.h -/* The "surrogateescape" error handler is new in Python 3.1 */ +// The "surrogateescape" error handler is new in Python 3.1 #if PY_VERSION_HEX >= 0x030100f0 # define CODEC_ERROR_HANDLER "surrogateescape" #else # define CODEC_ERROR_HANDLER NULL #endif -/* Python 3 does not support CObjects, always use Capsules */ +// Python 3 does not support CObjects, always use Capsules #define PY_USE_CAPSULE #define PyInt Py_ssize_t @@ -432,9 +431,9 @@ static void(*py3_PyObject_GC_Del)(void *); static void(*py3_PyObject_GC_UnTrack)(void *); static int (*py3_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *); -static HINSTANCE hinstPy3 = 0; /* Instance of python.dll */ +static HINSTANCE hinstPy3 = 0; // Instance of python.dll -/* Imported exception objects */ +// Imported exception objects static PyObject *p3imp_PyExc_AttributeError; static PyObject *p3imp_PyExc_IndexError; static PyObject *p3imp_PyExc_KeyError; @@ -664,9 +663,9 @@ py3_runtime_link_init(char *libname, int verbose) (PYTHON_PROC *)&py3_PyUnicode_AsEncodedString; # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON) - /* Can't have Python and Python3 loaded at the same time. - * It cause a crash, because RTLD_GLOBAL is needed for - * standard C extension libraries of one or both python versions. */ + // Can't have Python and Python3 loaded at the same time. + // It cause a crash, because RTLD_GLOBAL is needed for + // standard C extension libraries of one or both python versions. if (python_loaded()) { if (verbose) @@ -699,8 +698,8 @@ py3_runtime_link_init(char *libname, int verbose) } } - /* Load unicode functions separately as only the ucs2 or the ucs4 functions - * will be present in the library. */ + // Load unicode functions separately as only the ucs2 or the ucs4 functions + // will be present in the library. # if PY_VERSION_HEX >= 0x030300f0 *ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString"); *ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode"); @@ -746,7 +745,8 @@ python3_enabled(int verbose) return py3_runtime_link_init((char *)p_py3dll, verbose) == OK; } -/* Load the standard Python exceptions - don't import the symbols from the +/* + * Load the standard Python exceptions - don't import the symbols from the * DLL, as this can cause errors (importing data symbols is not reliable). */ static void @@ -776,7 +776,7 @@ get_py3_exceptions(void) Py_XINCREF(p3imp_PyExc_OverflowError); Py_XDECREF(exmod); } -#endif /* DYNAMIC_PYTHON3 */ +#endif // DYNAMIC_PYTHON3 static int py3initialised = 0; #define PYINITIALISED py3initialised @@ -843,22 +843,20 @@ static struct PyModuleDef vimmodule; #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0) -/****************************************************** - * Internal function prototypes. - */ +/////////////////////////////////////////////////////// +// Internal function prototypes. static PyObject *Py3Init_vim(void); -/****************************************************** - * 1. Python interpreter main program. - */ +/////////////////////////////////////////////////////// +// 1. Python interpreter main program. void python3_end(void) { static int recurse = 0; - /* If a crash occurs while doing this, don't try again. */ + // If a crash occurs while doing this, don't try again. if (recurse != 0) return; @@ -870,7 +868,7 @@ python3_end(void) #endif if (Py_IsInitialized()) { - /* acquire lock before finalizing */ + // acquire lock before finalizing PyGILState_Ensure(); Py_Finalize(); @@ -912,7 +910,7 @@ Python3_Init(void) { size_t len = mbstowcs(NULL, (char *)p_py3home, 0) + 1; - /* The string must not change later, make a copy in static memory. */ + // The string must not change later, make a copy in static memory. py_home_buf = ALLOC_MULT(wchar_t, len); if (py_home_buf != NULL && mbstowcs( py_home_buf, (char *)p_py3home, len) != (size_t)-1) @@ -927,10 +925,10 @@ Python3_Init(void) Py_Initialize(); - /* 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 - * between invocations of Python code. */ + // 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 + // between invocations of Python code. PyEval_InitThreads(); #ifdef DYNAMIC_PYTHON3 get_py3_exceptions(); @@ -941,22 +939,20 @@ Python3_Init(void) globals = PyModule_GetDict(PyImport_AddModule("__main__")); - /* Remove the element from sys.path that was added because of our - * argv[0] value in Py3Init_vim(). Previously we used an empty - * string, but depending on the OS we then get an empty entry or - * the current directory in sys.path. - * Only after vim has been imported, the element does exist in - * sys.path. - */ + // Remove the element from sys.path that was added because of our + // argv[0] value in Py3Init_vim(). Previously we used an empty + // string, but depending on the OS we then get an empty entry or + // the current directory in sys.path. + // Only after vim has been imported, the element does exist in + // sys.path. PyRun_SimpleString("import vim; import sys; sys.path = list(filter(lambda x: not x.endswith('must>not&exist'), sys.path))"); - /* lock is created and acquired in PyEval_InitThreads() and thread - * state is created in Py_Initialize() - * there _PyGILState_NoteThreadState() also sets gilcounter to 1 - * (python must have threads enabled!) - * so the following does both: unlock GIL and save thread state in TLS - * without deleting thread state - */ + // lock is created and acquired in PyEval_InitThreads() and thread + // state is created in Py_Initialize() + // there _PyGILState_NoteThreadState() also sets gilcounter to 1 + // (python must have threads enabled!) + // so the following does both: unlock GIL and save thread state in TLS + // without deleting thread state PyEval_SaveThread(); py3initialised = 1; @@ -965,11 +961,10 @@ Python3_Init(void) return 0; fail: - /* We call PythonIO_Flush() here to print any Python errors. - * This is OK, as it is possible to call this function even - * if PythonIO_Init_io() has not completed successfully (it will - * not do anything in this case). - */ + // We call PythonIO_Flush() here to print any Python errors. + // This is OK, as it is possible to call this function even + // if PythonIO_Init_io() has not completed successfully (it will + // not do anything in this case). PythonIO_Flush(); return -1; } @@ -995,16 +990,16 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg) init_range(arg); - Python_Release_Vim(); /* leave vim */ + Python_Release_Vim(); // leave Vim #if defined(HAVE_LOCALE_H) || defined(X_LOCALE) - /* Python only works properly when the LC_NUMERIC locale is "C". */ + // Python only works properly when the LC_NUMERIC locale is "C". saved_locale = setlocale(LC_NUMERIC, NULL); if (saved_locale == NULL || STRCMP(saved_locale, "C") == 0) saved_locale = NULL; else { - /* Need to make a copy, value may change when setting new locale. */ + // Need to make a copy, value may change when setting new locale. saved_locale = (char *)vim_strsave((char_u *)saved_locale); (void)setlocale(LC_NUMERIC, "C"); } @@ -1012,8 +1007,8 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg) pygilstate = PyGILState_Ensure(); - /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause - * SyntaxError (unicode error). */ + // PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause + // SyntaxError (unicode error). cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, CODEC_ERROR_HANDLER); cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER); @@ -1032,11 +1027,11 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg) } #endif - Python_Lock_Vim(); /* enter vim */ + Python_Lock_Vim(); // enter Vim PythonIO_Flush(); theend: - return; /* keeps lint happy */ + return; // keeps lint happy } /* @@ -1077,22 +1072,21 @@ ex_py3file(exarg_T *eap) if (p_pyx == 0) p_pyx = 3; - /* Have to do it like this. PyRun_SimpleFile requires you to pass a - * stdio file pointer, but Vim and the Python DLL are compiled with - * different options under Windows, meaning that stdio pointers aren't - * compatible between the two. Yuk. - * - * construct: exec(compile(open('a_filename', 'rb').read(), 'a_filename', 'exec')) - * - * Using bytes so that Python can detect the source encoding as it normally - * does. The doc does not say "compile" accept bytes, though. - * - * We need to escape any backslashes or single quotes in the file name, so that - * Python won't mangle the file name. - */ + // Have to do it like this. PyRun_SimpleFile requires you to pass a + // stdio file pointer, but Vim and the Python DLL are compiled with + // different options under Windows, meaning that stdio pointers aren't + // compatible between the two. Yuk. + // + // construct: exec(compile(open('a_filename', 'rb').read(), 'a_filename', 'exec')) + // + // Using bytes so that Python can detect the source encoding as it normally + // does. The doc does not say "compile" accept bytes, though. + // + // We need to escape any backslashes or single quotes in the file name, so that + // Python won't mangle the file name. strcpy(buffer, "exec(compile(open('"); - p = buffer + 19; /* size of "exec(compile(open('" */ + p = buffer + 19; // size of "exec(compile(open('" for (i=0; i<2; ++i) { @@ -1103,7 +1097,7 @@ ex_py3file(exarg_T *eap) *p++ = '\\'; *p++ = *file++; } - /* If we didn't finish the file name, we hit a buffer overflow */ + // If we didn't finish the file name, we hit a buffer overflow if (*file != '\0') return; if (i==0) @@ -1119,7 +1113,7 @@ ex_py3file(exarg_T *eap) } - /* Execute the file */ + // Execute the file DoPyCommand(buffer, (rangeinitializer) init_range_cmd, (runner) run_cmd, @@ -1138,12 +1132,10 @@ ex_py3do(exarg_T *eap) (void *)eap); } -/****************************************************** - * 2. Python output stream: writes output via [e]msg(). - */ +/////////////////////////////////////////////////////// +// 2. Python output stream: writes output via [e]msg(). -/* Implementation functions - */ +// Implementation functions static PyObject * OutputGetattro(PyObject *self, PyObject *nameobj) @@ -1168,28 +1160,24 @@ OutputSetattro(PyObject *self, PyObject *nameobj, PyObject *val) return OutputSetattr((OutputObject *)(self), name, val); } -/****************************************************** - * 3. Implementation of the Vim module for Python - */ +/////////////////////////////////////////////////////// +// 3. Implementation of the Vim module for Python -/* Window type - Implementation functions - * -------------------------------------- - */ +// Window type - Implementation functions +// -------------------------------------- #define WindowType_Check(obj) ((obj)->ob_base.ob_type == &WindowType) -/* Buffer type - Implementation functions - * -------------------------------------- - */ +// Buffer type - Implementation functions +// -------------------------------------- #define BufferType_Check(obj) ((obj)->ob_base.ob_type == &BufferType) static PyObject* BufferSubscript(PyObject *self, PyObject *idx); static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject *idx, PyObject *val); -/* Line range type - Implementation functions - * -------------------------------------- - */ +// Line range type - Implementation functions +// -------------------------------------- #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType) @@ -1197,21 +1185,20 @@ static PyObject* RangeSubscript(PyObject *self, PyObject *idx); static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *); static Py_ssize_t RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val); -/* Current objects type - Implementation functions - * ----------------------------------------------- - */ +// Current objects type - Implementation functions +// ----------------------------------------------- static PySequenceMethods BufferAsSeq = { - (lenfunc) BufferLength, /* sq_length, len(x) */ - (binaryfunc) 0, /* sq_concat, x+y */ - (ssizeargfunc) 0, /* sq_repeat, x*n */ - (ssizeargfunc) BufferItem, /* sq_item, x[i] */ - 0, /* was_sq_slice, x[i:j] */ - 0, /* sq_ass_item, x[i]=v */ - 0, /* sq_ass_slice, x[i:j]=v */ - 0, /* sq_contains */ - 0, /* sq_inplace_concat */ - 0, /* sq_inplace_repeat */ + (lenfunc) BufferLength, // sq_length, len(x) + (binaryfunc) 0, // sq_concat, x+y + (ssizeargfunc) 0, // sq_repeat, x*n + (ssizeargfunc) BufferItem, // sq_item, x[i] + 0, // was_sq_slice, x[i:j] + 0, // sq_ass_item, x[i]=v + 0, // sq_ass_slice, x[i:j]=v + 0, // sq_contains + 0, // sq_inplace_concat + 0, // sq_inplace_repeat }; static PyMappingMethods BufferAsMapping = { @@ -1221,8 +1208,7 @@ static PyMappingMethods BufferAsMapping = { }; -/* Buffer object - */ +// Buffer object static PyObject * BufferGetattro(PyObject *self, PyObject *nameobj) @@ -1252,7 +1238,7 @@ BufferSetattro(PyObject *self, PyObject *nameobj, PyObject *val) return BufferSetattr((BufferObject *)(self), name, val); } -/******************/ +////////////////// static PyObject * BufferSubscript(PyObject *self, PyObject* idx) @@ -1315,16 +1301,16 @@ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val) } static PySequenceMethods RangeAsSeq = { - (lenfunc) RangeLength, /* sq_length, len(x) */ - (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */ - (ssizeargfunc) 0, /* RangeRepeat, sq_repeat, x*n */ - (ssizeargfunc) RangeItem, /* sq_item, x[i] */ - 0, /* was_sq_slice, x[i:j] */ - (ssizeobjargproc) RangeAsItem, /* sq_as_item, x[i]=v */ - 0, /* sq_ass_slice, x[i:j]=v */ - 0, /* sq_contains */ - 0, /* sq_inplace_concat */ - 0, /* sq_inplace_repeat */ + (lenfunc) RangeLength, // sq_length, len(x) + (binaryfunc) 0, // RangeConcat, sq_concat, x+y + (ssizeargfunc) 0, // RangeRepeat, sq_repeat, x*n + (ssizeargfunc) RangeItem, // sq_item, x[i] + 0, // was_sq_slice, x[i:j] + (ssizeobjargproc) RangeAsItem, // sq_as_item, x[i]=v + 0, // sq_ass_slice, x[i:j]=v + 0, // sq_contains + 0, // sq_inplace_concat + 0, // sq_inplace_repeat }; static PyMappingMethods RangeAsMapping = { @@ -1333,8 +1319,7 @@ static PyMappingMethods RangeAsMapping = { /* mp_ass_subscript */ (objobjargproc)RangeAsSubscript, }; -/* Line range object - Implementation - */ +// Line range object - Implementation static PyObject * RangeGetattro(PyObject *self, PyObject *nameobj) @@ -1349,7 +1334,7 @@ RangeGetattro(PyObject *self, PyObject *nameobj) return PyObject_GenericGetAttr(self, nameobj); } -/****************/ +//////////////// static Py_ssize_t RangeAsItem(PyObject *self, Py_ssize_t n, PyObject *val) @@ -1420,8 +1405,7 @@ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val) } } -/* TabPage object - Implementation - */ +// TabPage object - Implementation static PyObject * TabPageGetattro(PyObject *self, PyObject *nameobj) @@ -1443,8 +1427,7 @@ TabPageGetattro(PyObject *self, PyObject *nameobj) return PyObject_GenericGetAttr(self, nameobj); } -/* Window object - Implementation - */ +// Window object - Implementation static PyObject * WindowGetattro(PyObject *self, PyObject *nameobj) @@ -1474,39 +1457,38 @@ WindowSetattro(PyObject *self, PyObject *nameobj, PyObject *val) return WindowSetattr((WindowObject *)(self), name, val); } -/* Tab page list object - Definitions - */ +// Tab page list object - Definitions static PySequenceMethods TabListAsSeq = { - (lenfunc) TabListLength, /* sq_length, len(x) */ - (binaryfunc) 0, /* sq_concat, x+y */ - (ssizeargfunc) 0, /* sq_repeat, x*n */ - (ssizeargfunc) TabListItem, /* sq_item, x[i] */ - 0, /* sq_slice, x[i:j] */ - (ssizeobjargproc)0, /* sq_as_item, x[i]=v */ - 0, /* sq_ass_slice, x[i:j]=v */ - 0, /* sq_contains */ - 0, /* sq_inplace_concat */ - 0, /* sq_inplace_repeat */ + (lenfunc) TabListLength, // sq_length, len(x) + (binaryfunc) 0, // sq_concat, x+y + (ssizeargfunc) 0, // sq_repeat, x*n + (ssizeargfunc) TabListItem, // sq_item, x[i] + 0, // sq_slice, x[i:j] + (ssizeobjargproc)0, // sq_as_item, x[i]=v + 0, // sq_ass_slice, x[i:j]=v + 0, // sq_contains + 0, // sq_inplace_concat + 0, // sq_inplace_repeat }; -/* Window list object - Definitions - */ +// Window list object - Definitions static PySequenceMethods WinListAsSeq = { - (lenfunc) WinListLength, /* sq_length, len(x) */ - (binaryfunc) 0, /* sq_concat, x+y */ - (ssizeargfunc) 0, /* sq_repeat, x*n */ - (ssizeargfunc) WinListItem, /* sq_item, x[i] */ - 0, /* sq_slice, x[i:j] */ - (ssizeobjargproc)0, /* sq_as_item, x[i]=v */ - 0, /* sq_ass_slice, x[i:j]=v */ - 0, /* sq_contains */ - 0, /* sq_inplace_concat */ - 0, /* sq_inplace_repeat */ + (lenfunc) WinListLength, // sq_length, len(x) + (binaryfunc) 0, // sq_concat, x+y + (ssizeargfunc) 0, // sq_repeat, x*n + (ssizeargfunc) WinListItem, // sq_item, x[i] + 0, // sq_slice, x[i:j] + (ssizeobjargproc)0, // sq_as_item, x[i]=v + 0, // sq_ass_slice, x[i:j]=v + 0, // sq_contains + 0, // sq_inplace_concat + 0, // sq_inplace_repeat }; -/* Current items object - Implementation +/* + * Current items object - Implementation */ static PyObject * CurrentGetattro(PyObject *self, PyObject *nameobj) @@ -1525,8 +1507,7 @@ CurrentSetattro(PyObject *self, PyObject *nameobj, PyObject *value) return CurrentSetattr(self, name, value); } -/* Dictionary object - Definitions - */ +// Dictionary object - Definitions static PyObject * DictionaryGetattro(PyObject *self, PyObject *nameobj) @@ -1550,8 +1531,7 @@ DictionarySetattro(PyObject *self, PyObject *nameobj, PyObject *val) return DictionarySetattr((DictionaryObject *)(self), name, val); } -/* List object - Definitions - */ +// List object - Definitions static PyObject * ListGetattro(PyObject *self, PyObject *nameobj) @@ -1571,8 +1551,7 @@ ListSetattro(PyObject *self, PyObject *nameobj, PyObject *val) return ListSetattr((ListObject *)(self), name, val); } -/* Function object - Definitions - */ +// Function object - Definitions static PyObject * FunctionGetattro(PyObject *self, PyObject *nameobj) @@ -1589,8 +1568,7 @@ FunctionGetattro(PyObject *self, PyObject *nameobj) return PyObject_GenericGetAttr(self, nameobj); } -/* External interface - */ +// External interface void python3_buffer_free(buf_T *buf) @@ -1628,13 +1606,13 @@ python3_tabpage_free(tabpage_T *tab) static PyObject * Py3Init_vim(void) { - /* The special value is removed from sys.path in Python3_Init(). */ + // The special value is removed from sys.path in Python3_Init(). static wchar_t *(argv[2]) = {L"/must>not&exist/foo", NULL}; if (init_types()) return NULL; - /* Set sys.argv[] to avoid a crash in warn(). */ + // Set sys.argv[] to avoid a crash in warn(). PySys_SetArgv(1, argv); if ((vim_module = PyModule_Create(&vimmodule)) == NULL) @@ -1649,11 +1627,11 @@ Py3Init_vim(void) return vim_module; } -/************************************************************************* - * 4. Utility functions for handling the interface between Vim and Python. - */ +////////////////////////////////////////////////////////////////////////// +// 4. Utility functions for handling the interface between Vim and Python. -/* Convert a Vim line into a Python string. +/* + * Convert a Vim line into a Python string. * All internal newlines are replaced by null characters. * * On errors, the Python exception data is set, and NULL is returned. |