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 *