# HG changeset patch
# User ZyX <[email protected]>
# Date 1369564686 -14400
# Node ID 44b8f018c4fc76aaeedd9424fc987ce31593fafb
# Parent 1ea9c3409a13d2cf25faffc8ae0b832a112dad0c
Check for errors in a number of places, change some exception messages
diff -r 1ea9c3409a13 -r 44b8f018c4fc src/if_py_both.h
--- a/src/if_py_both.h Sun May 26 12:52:48 2013 +0400
+++ b/src/if_py_both.h Sun May 26 14:38:06 2013 +0400
@@ -3305,10 +3305,10 @@
for (i = 0; i < new_len; ++i)
{
- PyObject *line = PyList_GetItem(list, i);
-
- array[i] = StringToLine(line);
- if (array[i] == NULL)
+ PyObject *line;
+
+ if (!(line = PyList_GetItem(list, i)) ||
+ !(array[i] = StringToLine(line)))
{
while (i)
vim_free(array[--i]);
@@ -3320,7 +3320,7 @@
VimTryStart();
PyErr_Clear();
- // START of region without "return". Must call restore_buffer()!
+ /* START of region without "return". Must call restore_buffer()! */
switch_buffer(&savebuf, buf);
if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
@@ -3401,7 +3401,7 @@
if (buf == savebuf)
py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
- // END of region without "return".
+ /* END of region without "return". */
restore_buffer(savebuf);
if (VimTryEnd())
@@ -3480,10 +3480,10 @@
for (i = 0; i < size; ++i)
{
- PyObject *line = PyList_GetItem(lines, i);
- array[i] = StringToLine(line);
-
- if (array[i] == NULL)
+ PyObject *line;
+
+ if (!(line = PyList_GetItem(lines, i)) ||
+ !(array[i] = StringToLine(line)))
{
while (i)
vim_free(array[--i]);
@@ -4015,8 +4015,15 @@
if (!PyArg_ParseTuple(args, "s", &pmark))
return NULL;
+
+ if (STRLEN(pmark) != 1)
+ {
+ PyErr_SetString(PyExc_ValueError,
+ _("mark name must be a single character"));
+ return NULL;
+ }
+
mark = *pmark;
-
VimTryStart();
switch_buffer(&savebuf, self->buf);
posp = getmark(mark, FALSE);
@@ -4259,7 +4266,7 @@
if (value->ob_type != &BufferType)
{
- PyErr_SetString(PyExc_TypeError, _("expected vim.buffer object"));
+ PyErr_SetString(PyExc_TypeError, _("expected vim.Buffer object"));
return -1;
}
@@ -4284,7 +4291,7 @@
if (value->ob_type != &WindowType)
{
- PyErr_SetString(PyExc_TypeError, _("expected vim.window object"));
+ PyErr_SetString(PyExc_TypeError, _("expected vim.Window object"));
return -1;
}
@@ -4316,7 +4323,7 @@
{
if (value->ob_type != &TabPageType)
{
- PyErr_SetString(PyExc_TypeError, _("expected vim.tabpage object"));
+ PyErr_SetString(PyExc_TypeError, _("expected vim.TabPage object"));
return -1;
}
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
*** /tmp/extdiff.YcvmMt/vim.1ea9c3409a13/src/if_py_both.h 2013-05-26 16:24:22.285907825 +0400
--- vim.44b8f018c4fc/src/if_py_both.h 2013-05-26 16:24:22.291907746 +0400
***************
*** 3305,3314 ****
for (i = 0; i < new_len; ++i)
{
! PyObject *line = PyList_GetItem(list, i);
! array[i] = StringToLine(line);
! if (array[i] == NULL)
{
while (i)
vim_free(array[--i]);
--- 3305,3314 ----
for (i = 0; i < new_len; ++i)
{
! PyObject *line;
! if (!(line = PyList_GetItem(list, i)) ||
! !(array[i] = StringToLine(line)))
{
while (i)
vim_free(array[--i]);
***************
*** 3320,3326 ****
VimTryStart();
PyErr_Clear();
! // START of region without "return". Must call restore_buffer()!
switch_buffer(&savebuf, buf);
if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
--- 3320,3326 ----
VimTryStart();
PyErr_Clear();
! /* START of region without "return". Must call restore_buffer()! */
switch_buffer(&savebuf, buf);
if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
***************
*** 3401,3407 ****
if (buf == savebuf)
py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
! // END of region without "return".
restore_buffer(savebuf);
if (VimTryEnd())
--- 3401,3407 ----
if (buf == savebuf)
py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
! /* END of region without "return". */
restore_buffer(savebuf);
if (VimTryEnd())
***************
*** 3480,3489 ****
for (i = 0; i < size; ++i)
{
! PyObject *line = PyList_GetItem(lines, i);
! array[i] = StringToLine(line);
! if (array[i] == NULL)
{
while (i)
vim_free(array[--i]);
--- 3480,3489 ----
for (i = 0; i < size; ++i)
{
! PyObject *line;
! if (!(line = PyList_GetItem(lines, i)) ||
! !(array[i] = StringToLine(line)))
{
while (i)
vim_free(array[--i]);
***************
*** 4015,4022 ****
if (!PyArg_ParseTuple(args, "s", &pmark))
return NULL;
- mark = *pmark;
VimTryStart();
switch_buffer(&savebuf, self->buf);
posp = getmark(mark, FALSE);
--- 4015,4029 ----
if (!PyArg_ParseTuple(args, "s", &pmark))
return NULL;
+ if (STRLEN(pmark) != 1)
+ {
+ PyErr_SetString(PyExc_ValueError,
+ _("mark name must be a single character"));
+ return NULL;
+ }
+
+ mark = *pmark;
VimTryStart();
switch_buffer(&savebuf, self->buf);
posp = getmark(mark, FALSE);
***************
*** 4259,4265 ****
if (value->ob_type != &BufferType)
{
! PyErr_SetString(PyExc_TypeError, _("expected vim.buffer object"));
return -1;
}
--- 4266,4272 ----
if (value->ob_type != &BufferType)
{
! PyErr_SetString(PyExc_TypeError, _("expected vim.Buffer object"));
return -1;
}
***************
*** 4284,4290 ****
if (value->ob_type != &WindowType)
{
! PyErr_SetString(PyExc_TypeError, _("expected vim.window object"));
return -1;
}
--- 4291,4297 ----
if (value->ob_type != &WindowType)
{
! PyErr_SetString(PyExc_TypeError, _("expected vim.Window object"));
return -1;
}
***************
*** 4316,4322 ****
{
if (value->ob_type != &TabPageType)
{
! PyErr_SetString(PyExc_TypeError, _("expected vim.tabpage object"));
return -1;
}
--- 4323,4329 ----
{
if (value->ob_type != &TabPageType)
{
! PyErr_SetString(PyExc_TypeError, _("expected vim.TabPage object"));
return -1;
}