Mercurial > vim
comparison src/if_python3.c @ 4405:907b1f035ee7 v7.3.951
updated for version 7.3.951
Problem: Python exceptions have problems.
Solution: Change some IndexErrors to TypeErrors. Make ?line number out of
range? an IndexError. Make ?unable to get option value? a
RuntimeError. Make all PyErr_SetString messages start with
lowercase letter and use _(). (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 15 May 2013 15:44:28 +0200 |
parents | d4816e7c3328 |
children | 7b789d337820 |
comparison
equal
deleted
inserted
replaced
4404:8c9926befc6c | 4405:907b1f035ee7 |
---|---|
334 static PyObject *p3imp_PyExc_IndexError; | 334 static PyObject *p3imp_PyExc_IndexError; |
335 static PyObject *p3imp_PyExc_KeyError; | 335 static PyObject *p3imp_PyExc_KeyError; |
336 static PyObject *p3imp_PyExc_KeyboardInterrupt; | 336 static PyObject *p3imp_PyExc_KeyboardInterrupt; |
337 static PyObject *p3imp_PyExc_TypeError; | 337 static PyObject *p3imp_PyExc_TypeError; |
338 static PyObject *p3imp_PyExc_ValueError; | 338 static PyObject *p3imp_PyExc_ValueError; |
339 static PyObject *p3imp_PyExc_RuntimeError; | |
339 | 340 |
340 # define PyExc_AttributeError p3imp_PyExc_AttributeError | 341 # define PyExc_AttributeError p3imp_PyExc_AttributeError |
341 # define PyExc_IndexError p3imp_PyExc_IndexError | 342 # define PyExc_IndexError p3imp_PyExc_IndexError |
342 # define PyExc_KeyError p3imp_PyExc_KeyError | 343 # define PyExc_KeyError p3imp_PyExc_KeyError |
343 # define PyExc_KeyboardInterrupt p3imp_PyExc_KeyboardInterrupt | 344 # define PyExc_KeyboardInterrupt p3imp_PyExc_KeyboardInterrupt |
344 # define PyExc_TypeError p3imp_PyExc_TypeError | 345 # define PyExc_TypeError p3imp_PyExc_TypeError |
345 # define PyExc_ValueError p3imp_PyExc_ValueError | 346 # define PyExc_ValueError p3imp_PyExc_ValueError |
347 # define PyExc_RuntimeError p3imp_PyExc_RuntimeError | |
346 | 348 |
347 /* | 349 /* |
348 * Table of name to function pointer of python. | 350 * Table of name to function pointer of python. |
349 */ | 351 */ |
350 # define PYTHON_PROC FARPROC | 352 # define PYTHON_PROC FARPROC |
578 p3imp_PyExc_IndexError = PyDict_GetItemString(exdict, "IndexError"); | 580 p3imp_PyExc_IndexError = PyDict_GetItemString(exdict, "IndexError"); |
579 p3imp_PyExc_KeyError = PyDict_GetItemString(exdict, "KeyError"); | 581 p3imp_PyExc_KeyError = PyDict_GetItemString(exdict, "KeyError"); |
580 p3imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt"); | 582 p3imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt"); |
581 p3imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError"); | 583 p3imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError"); |
582 p3imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError"); | 584 p3imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError"); |
585 p3imp_PyExc_RuntimeError = PyDict_GetItemString(exdict, "RuntimeError"); | |
583 Py_XINCREF(p3imp_PyExc_AttributeError); | 586 Py_XINCREF(p3imp_PyExc_AttributeError); |
584 Py_XINCREF(p3imp_PyExc_IndexError); | 587 Py_XINCREF(p3imp_PyExc_IndexError); |
585 Py_XINCREF(p3imp_PyExc_KeyError); | 588 Py_XINCREF(p3imp_PyExc_KeyError); |
586 Py_XINCREF(p3imp_PyExc_KeyboardInterrupt); | 589 Py_XINCREF(p3imp_PyExc_KeyboardInterrupt); |
587 Py_XINCREF(p3imp_PyExc_TypeError); | 590 Py_XINCREF(p3imp_PyExc_TypeError); |
588 Py_XINCREF(p3imp_PyExc_ValueError); | 591 Py_XINCREF(p3imp_PyExc_ValueError); |
592 Py_XINCREF(p3imp_PyExc_RuntimeError); | |
589 Py_XDECREF(exmod); | 593 Py_XDECREF(exmod); |
590 } | 594 } |
591 #endif /* DYNAMIC_PYTHON3 */ | 595 #endif /* DYNAMIC_PYTHON3 */ |
592 | 596 |
593 static PyObject *BufferNew (buf_T *); | 597 static PyObject *BufferNew (buf_T *); |
1130 } | 1134 } |
1131 return BufferSlice(self, start, stop); | 1135 return BufferSlice(self, start, stop); |
1132 } | 1136 } |
1133 else | 1137 else |
1134 { | 1138 { |
1135 PyErr_SetString(PyExc_IndexError, "Index must be int or slice"); | 1139 PyErr_SetString(PyExc_TypeError, _("index must be int or slice")); |
1136 return NULL; | 1140 return NULL; |
1137 } | 1141 } |
1138 } | 1142 } |
1139 | 1143 |
1140 static Py_ssize_t | 1144 static Py_ssize_t |
1164 (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count, | 1168 (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count, |
1165 NULL); | 1169 NULL); |
1166 } | 1170 } |
1167 else | 1171 else |
1168 { | 1172 { |
1169 PyErr_SetString(PyExc_IndexError, "Index must be int or slice"); | 1173 PyErr_SetString(PyExc_TypeError, _("index must be int or slice")); |
1170 return -1; | 1174 return -1; |
1171 } | 1175 } |
1172 } | 1176 } |
1173 | 1177 |
1174 static PySequenceMethods RangeAsSeq = { | 1178 static PySequenceMethods RangeAsSeq = { |
1246 } | 1250 } |
1247 return RangeSlice(self, start, stop); | 1251 return RangeSlice(self, start, stop); |
1248 } | 1252 } |
1249 else | 1253 else |
1250 { | 1254 { |
1251 PyErr_SetString(PyExc_IndexError, "Index must be int or slice"); | 1255 PyErr_SetString(PyExc_TypeError, _("index must be int or slice")); |
1252 return NULL; | 1256 return NULL; |
1253 } | 1257 } |
1254 } | 1258 } |
1255 | 1259 |
1256 static Py_ssize_t | 1260 static Py_ssize_t |
1273 } | 1277 } |
1274 return RangeAsSlice(self, start, stop, val); | 1278 return RangeAsSlice(self, start, stop, val); |
1275 } | 1279 } |
1276 else | 1280 else |
1277 { | 1281 { |
1278 PyErr_SetString(PyExc_IndexError, "Index must be int or slice"); | 1282 PyErr_SetString(PyExc_TypeError, _("index must be int or slice")); |
1279 return -1; | 1283 return -1; |
1280 } | 1284 } |
1281 } | 1285 } |
1282 | 1286 |
1283 /* TabPage object - Implementation | 1287 /* TabPage object - Implementation |
1448 return NULL; | 1452 return NULL; |
1449 return ListSlice(self, start, stop); | 1453 return ListSlice(self, start, stop); |
1450 } | 1454 } |
1451 else | 1455 else |
1452 { | 1456 { |
1453 PyErr_SetString(PyExc_IndexError, "Index must be int or slice"); | 1457 PyErr_SetString(PyExc_TypeError, _("index must be int or slice")); |
1454 return NULL; | 1458 return NULL; |
1455 } | 1459 } |
1456 } | 1460 } |
1457 | 1461 |
1458 static Py_ssize_t | 1462 static Py_ssize_t |
1472 return -1; | 1476 return -1; |
1473 return ListAssSlice(self, start, stop, obj); | 1477 return ListAssSlice(self, start, stop, obj); |
1474 } | 1478 } |
1475 else | 1479 else |
1476 { | 1480 { |
1477 PyErr_SetString(PyExc_IndexError, "Index must be int or slice"); | 1481 PyErr_SetString(PyExc_TypeError, _("index must be int or slice")); |
1478 return -1; | 1482 return -1; |
1479 } | 1483 } |
1480 } | 1484 } |
1481 | 1485 |
1482 static PyObject * | 1486 static PyObject * |