[vim/f18] - patchlevel 671
Karsten Hopp
karsten at fedoraproject.org
Thu Oct 4 21:39:29 UTC 2012
commit 62c2fb821acac642f45ecb141d694a2add3052ad
Author: Karsten Hopp <karsten at redhat.com>
Date: Fri Oct 5 00:36:24 2012 +0200
- patchlevel 671
7.3.671 | 311 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 311 insertions(+), 0 deletions(-)
---
diff --git a/7.3.671 b/7.3.671
new file mode 100644
index 0000000..c47e6f3
--- /dev/null
+++ b/7.3.671
@@ -0,0 +1,311 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.671
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.671
+Problem: More Python code can be shared between Python 2 and 3.
+Solution: Move code to if_py_both.h. (ZyX)
+Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
+
+
+*** ../vim-7.3.670/src/if_py_both.h 2012-09-21 13:43:09.000000000 +0200
+--- src/if_py_both.h 2012-09-21 13:45:02.000000000 +0200
+***************
+*** 71,76 ****
+--- 71,101 ----
+ /* Output buffer management
+ */
+
++ static int
++ OutputSetattr(PyObject *self, char *name, PyObject *val)
++ {
++ if (val == NULL)
++ {
++ PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
++ return -1;
++ }
++
++ if (strcmp(name, "softspace") == 0)
++ {
++ if (!PyInt_Check(val))
++ {
++ PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
++ return -1;
++ }
++
++ ((OutputObject *)(self))->softspace = PyInt_AsLong(val);
++ return 0;
++ }
++
++ PyErr_SetString(PyExc_AttributeError, _("invalid attribute"));
++ return -1;
++ }
++
+ static PyObject *
+ OutputWrite(PyObject *self, PyObject *args)
+ {
+*** ../vim-7.3.670/src/if_python.c 2012-09-12 20:21:38.000000000 +0200
+--- src/if_python.c 2012-09-21 13:45:02.000000000 +0200
+***************
+*** 951,981 ****
+ return Py_FindMethod(OutputMethods, self, name);
+ }
+
+- static int
+- OutputSetattr(PyObject *self, char *name, PyObject *val)
+- {
+- if (val == NULL)
+- {
+- PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
+- return -1;
+- }
+-
+- if (strcmp(name, "softspace") == 0)
+- {
+- if (!PyInt_Check(val))
+- {
+- PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
+- return -1;
+- }
+-
+- ((OutputObject *)(self))->softspace = PyInt_AsLong(val);
+- return 0;
+- }
+-
+- PyErr_SetString(PyExc_AttributeError, _("invalid attribute"));
+- return -1;
+- }
+-
+ /***************/
+
+ static int
+--- 951,956 ----
+*** ../vim-7.3.670/src/if_python3.c 2012-09-12 20:21:38.000000000 +0200
+--- src/if_python3.c 2012-09-21 13:45:02.000000000 +0200
+***************
+*** 88,93 ****
+--- 88,96 ----
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+ #define PyString_FromString(repr) PyUnicode_FromString(repr)
+ #define PyString_AsStringAndSize(obj, buffer, len) PyBytes_AsStringAndSize(obj, buffer, len)
++ #define PyInt_Check(obj) PyLong_Check(obj)
++ #define PyInt_FromLong(i) PyLong_FromLong(i)
++ #define PyInt_AsLong(obj) PyLong_AsLong(obj)
+
+ #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+
+***************
+*** 586,591 ****
+--- 589,599 ----
+ */
+ #include "if_py_both.h"
+
++ #define GET_ATTR_STRING(name, nameobj) \
++ char *name = ""; \
++ if(PyUnicode_Check(nameobj)) \
++ name = _PyUnicode_AsString(nameobj)
++
+ #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
+
+ static void
+***************
+*** 923,931 ****
+ static PyObject *
+ OutputGetattro(PyObject *self, PyObject *nameobj)
+ {
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+
+ if (strcmp(name, "softspace") == 0)
+ return PyLong_FromLong(((OutputObject *)(self))->softspace);
+--- 931,937 ----
+ static PyObject *
+ OutputGetattro(PyObject *self, PyObject *nameobj)
+ {
+! GET_ATTR_STRING(name, nameobj);
+
+ if (strcmp(name, "softspace") == 0)
+ return PyLong_FromLong(((OutputObject *)(self))->softspace);
+***************
+*** 936,965 ****
+ static int
+ OutputSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
+ {
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+!
+! if (val == NULL)
+! {
+! PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
+! return -1;
+! }
+
+! if (strcmp(name, "softspace") == 0)
+! {
+! if (!PyLong_Check(val))
+! {
+! PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
+! return -1;
+! }
+!
+! ((OutputObject *)(self))->softspace = PyLong_AsLong(val);
+! return 0;
+! }
+!
+! PyErr_SetString(PyExc_AttributeError, _("invalid attribute"));
+! return -1;
+ }
+
+ /***************/
+--- 942,950 ----
+ static int
+ OutputSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
+ {
+! GET_ATTR_STRING(name, nameobj);
+
+! return OutputSetattr(self, name, val);
+ }
+
+ /***************/
+***************
+*** 1091,1099 ****
+ {
+ BufferObject *this = (BufferObject *)(self);
+
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+
+ if (CheckBuffer(this))
+ return NULL;
+--- 1076,1082 ----
+ {
+ BufferObject *this = (BufferObject *)(self);
+
+! GET_ATTR_STRING(name, nameobj);
+
+ if (CheckBuffer(this))
+ return NULL;
+***************
+*** 1257,1265 ****
+ static PyObject *
+ RangeGetattro(PyObject *self, PyObject *nameobj)
+ {
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+
+ if (strcmp(name, "start") == 0)
+ return Py_BuildValue("n", ((RangeObject *)(self))->start - 1);
+--- 1240,1246 ----
+ static PyObject *
+ RangeGetattro(PyObject *self, PyObject *nameobj)
+ {
+! GET_ATTR_STRING(name, nameobj);
+
+ if (strcmp(name, "start") == 0)
+ return Py_BuildValue("n", ((RangeObject *)(self))->start - 1);
+***************
+*** 1430,1439 ****
+ {
+ WindowObject *this = (WindowObject *)(self);
+
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+!
+
+ if (CheckWindow(this))
+ return NULL;
+--- 1411,1417 ----
+ {
+ WindowObject *this = (WindowObject *)(self);
+
+! GET_ATTR_STRING(name, nameobj);
+
+ if (CheckWindow(this))
+ return NULL;
+***************
+*** 1461,1470 ****
+ static int
+ WindowSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
+ {
+! char *name = "";
+!
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+
+ return WindowSetattr(self, name, val);
+ }
+--- 1439,1445 ----
+ static int
+ WindowSetattro(PyObject *self, PyObject *nameobj, PyObject *val)
+ {
+! GET_ATTR_STRING(name, nameobj);
+
+ return WindowSetattr(self, name, val);
+ }
+***************
+*** 1508,1516 ****
+ static PyObject *
+ CurrentGetattro(PyObject *self UNUSED, PyObject *nameobj)
+ {
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+
+ if (strcmp(name, "buffer") == 0)
+ return (PyObject *)BufferNew(curbuf);
+--- 1483,1489 ----
+ static PyObject *
+ CurrentGetattro(PyObject *self UNUSED, PyObject *nameobj)
+ {
+! GET_ATTR_STRING(name, nameobj);
+
+ if (strcmp(name, "buffer") == 0)
+ return (PyObject *)BufferNew(curbuf);
+***************
+*** 1681,1689 ****
+ FunctionGetattro(PyObject *self, PyObject *nameobj)
+ {
+ FunctionObject *this = (FunctionObject *)(self);
+! char *name = "";
+! if (PyUnicode_Check(nameobj))
+! name = _PyUnicode_AsString(nameobj);
+
+ if (strcmp(name, "name") == 0)
+ return PyUnicode_FromString((char *)(this->name));
+--- 1654,1661 ----
+ FunctionGetattro(PyObject *self, PyObject *nameobj)
+ {
+ FunctionObject *this = (FunctionObject *)(self);
+!
+! GET_ATTR_STRING(name, nameobj);
+
+ if (strcmp(name, "name") == 0)
+ return PyUnicode_FromString((char *)(this->name));
+*** ../vim-7.3.670/src/version.c 2012-09-21 13:43:09.000000000 +0200
+--- src/version.c 2012-09-21 13:45:28.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 671,
+ /**/
+
+--
+The war between Emacs and Vi is over. Vi has won with 3 to 1.
+ http://www.ssc.com/lg/issue30/raymond.html
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
More information about the scm-commits
mailing list