[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