Blob Blame History Raw
To: vim-dev@vim.org
Subject: Patch 7.1.307
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 7.1.307
Problem:    Many warnings when compiling with Python 2.5.
Solution:   Use ssize_t instead of int for some types. (James Vega)
Files:	    src/if_python.c


*** ../vim-7.1.306/src/if_python.c	Thu Mar  8 10:20:28 2007
--- src/if_python.c	Wed May  7 16:55:44 2008
***************
*** 38,43 ****
--- 38,45 ----
  # undef HAVE_STDARG_H	/* Python's config.h defines it as well. */
  #endif
  
+ #define PY_SSIZE_T_CLEAN
+ 
  #include <Python.h>
  #if defined(MACOS) && !defined(MACOS_X_UNIX)
  # include "macglue.h"
***************
*** 55,60 ****
--- 57,78 ----
  # define PySequenceMethods int
  #endif
  
+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
+ # define PyInt Py_ssize_t
+ # define PyInquiry lenfunc
+ # define PyIntArgFunc ssizeargfunc
+ # define PyIntIntArgFunc ssizessizeargfunc
+ # define PyIntObjArgProc ssizeobjargproc
+ # define PyIntIntObjArgProc ssizessizeobjargproc
+ #else
+ # define PyInt int
+ # define PyInquiry inquiry
+ # define PyIntArgFunc intargfunc
+ # define PyIntIntArgFunc intintargfunc
+ # define PyIntObjArgProc intobjargproc
+ # define PyIntIntObjArgProc intintobjargproc
+ #endif
+ 
  /* Parser flags */
  #define single_input	256
  #define file_input	257
***************
*** 150,160 ****
  static long(*dll_PyInt_AsLong)(PyObject *);
  static PyObject*(*dll_PyInt_FromLong)(long);
  static PyTypeObject* dll_PyInt_Type;
! static PyObject*(*dll_PyList_GetItem)(PyObject *, int);
  static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
! static PyObject*(*dll_PyList_New)(int size);
! static int(*dll_PyList_SetItem)(PyObject *, int, PyObject *);
! static int(*dll_PyList_Size)(PyObject *);
  static PyTypeObject* dll_PyList_Type;
  static PyObject*(*dll_PyImport_ImportModule)(const char *);
  static PyObject*(*dll_PyDict_New)(void);
--- 168,178 ----
  static long(*dll_PyInt_AsLong)(PyObject *);
  static PyObject*(*dll_PyInt_FromLong)(long);
  static PyTypeObject* dll_PyInt_Type;
! static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
  static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
! static PyObject*(*dll_PyList_New)(PyInt size);
! static int(*dll_PyList_SetItem)(PyObject *, PyInt, PyObject *);
! static PyInt(*dll_PyList_Size)(PyObject *);
  static PyTypeObject* dll_PyList_Type;
  static PyObject*(*dll_PyImport_ImportModule)(const char *);
  static PyObject*(*dll_PyDict_New)(void);
***************
*** 163,170 ****
  static int(*dll_PyRun_SimpleString)(char *);
  static char*(*dll_PyString_AsString)(PyObject *);
  static PyObject*(*dll_PyString_FromString)(const char *);
! static PyObject*(*dll_PyString_FromStringAndSize)(const char *, int);
! static int(*dll_PyString_Size)(PyObject *);
  static PyTypeObject* dll_PyString_Type;
  static int(*dll_PySys_SetObject)(char *, PyObject *);
  static int(*dll_PySys_SetArgv)(int, char **);
--- 181,188 ----
  static int(*dll_PyRun_SimpleString)(char *);
  static char*(*dll_PyString_AsString)(PyObject *);
  static PyObject*(*dll_PyString_FromString)(const char *);
! static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
! static PyInt(*dll_PyString_Size)(PyObject *);
  static PyTypeObject* dll_PyString_Type;
  static int(*dll_PySys_SetObject)(char *, PyObject *);
  static int(*dll_PySys_SetArgv)(int, char **);
***************
*** 367,376 ****
   * ----------------------------------------------
   */
  static PyObject *GetBufferLine(buf_T *, int);
! static PyObject *GetBufferLineList(buf_T *, int, int);
  
  static int SetBufferLine(buf_T *, int, PyObject *, int *);
! static int SetBufferLineList(buf_T *, int, int, PyObject *, int *);
  static int InsertBufferLines(buf_T *, int, PyObject *, int *);
  
  static PyObject *LineToString(const char *);
--- 385,394 ----
   * ----------------------------------------------
   */
  static PyObject *GetBufferLine(buf_T *, int);
! static PyObject *GetBufferLineList(buf_T *, PyInt, PyInt);
  
  static int SetBufferLine(buf_T *, int, PyObject *, int *);
! static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, int *);
  static int InsertBufferLines(buf_T *, int, PyObject *, int *);
  
  static PyObject *LineToString(const char *);
***************
*** 773,780 ****
      static PyObject *
  OutputWritelines(PyObject *self, PyObject *args)
  {
!     int n;
!     int i;
      PyObject *list;
      int error = ((OutputObject *)(self))->error;
  
--- 791,798 ----
      static PyObject *
  OutputWritelines(PyObject *self, PyObject *args)
  {
!     PyInt n;
!     PyInt i;
      PyObject *list;
      int error = ((OutputObject *)(self))->error;
  
***************
*** 986,996 ****
  static PyObject *BufferGetattr(PyObject *, char *);
  static PyObject *BufferRepr(PyObject *);
  
! static int BufferLength(PyObject *);
! static PyObject *BufferItem(PyObject *, int);
! static PyObject *BufferSlice(PyObject *, int, int);
! static int BufferAssItem(PyObject *, int, PyObject *);
! static int BufferAssSlice(PyObject *, int, int, PyObject *);
  
  static PyObject *BufferAppend(PyObject *, PyObject *);
  static PyObject *BufferMark(PyObject *, PyObject *);
--- 1004,1014 ----
  static PyObject *BufferGetattr(PyObject *, char *);
  static PyObject *BufferRepr(PyObject *);
  
! static PyInt BufferLength(PyObject *);
! static PyObject *BufferItem(PyObject *, PyInt);
! static PyObject *BufferSlice(PyObject *, PyInt, PyInt);
! static PyInt BufferAssItem(PyObject *, PyInt, PyObject *);
! static PyInt BufferAssSlice(PyObject *, PyInt, PyInt, PyObject *);
  
  static PyObject *BufferAppend(PyObject *, PyObject *);
  static PyObject *BufferMark(PyObject *, PyObject *);
***************
*** 1017,1027 ****
  static PyObject *RangeGetattr(PyObject *, char *);
  static PyObject *RangeRepr(PyObject *);
  
! static int RangeLength(PyObject *);
! static PyObject *RangeItem(PyObject *, int);
! static PyObject *RangeSlice(PyObject *, int, int);
! static int RangeAssItem(PyObject *, int, PyObject *);
! static int RangeAssSlice(PyObject *, int, int, PyObject *);
  
  static PyObject *RangeAppend(PyObject *, PyObject *);
  
--- 1035,1045 ----
  static PyObject *RangeGetattr(PyObject *, char *);
  static PyObject *RangeRepr(PyObject *);
  
! static PyInt RangeLength(PyObject *);
! static PyObject *RangeItem(PyObject *, PyInt);
! static PyObject *RangeSlice(PyObject *, PyInt, PyInt);
! static PyInt RangeAssItem(PyObject *, PyInt, PyObject *);
! static PyInt RangeAssSlice(PyObject *, PyInt, PyInt, PyObject *);
  
  static PyObject *RangeAppend(PyObject *, PyObject *);
  
***************
*** 1029,1043 ****
   * -------------------------------------------
   */
  
! static int WinListLength(PyObject *);
! static PyObject *WinListItem(PyObject *, int);
  
  /* Buffer list type - Implementation functions
   * -------------------------------------------
   */
  
! static int BufListLength(PyObject *);
! static PyObject *BufListItem(PyObject *, int);
  
  /* Current objects type - Implementation functions
   * -----------------------------------------------
--- 1047,1061 ----
   * -------------------------------------------
   */
  
! static PyInt WinListLength(PyObject *);
! static PyObject *WinListItem(PyObject *, PyInt);
  
  /* Buffer list type - Implementation functions
   * -------------------------------------------
   */
  
! static PyInt BufListLength(PyObject *);
! static PyObject *BufListItem(PyObject *, PyInt);
  
  /* Current objects type - Implementation functions
   * -----------------------------------------------
***************
*** 1130,1135 ****
--- 1148,1163 ----
  	result = Py_BuildValue("s", buf);
  	PyDict_SetItemString(lookupDict, ptrBuf, result);
      }
+ #ifdef FEAT_FLOAT
+     else if (our_tv->v_type == VAR_FLOAT)
+     {
+ 	char buf[NUMBUFLEN];
+ 
+ 	sprintf(buf, "%f", our_tv->vval.v_float);
+ 	result = Py_BuildValue("s", buf);
+ 	PyDict_SetItemString(lookupDict, ptrBuf, result);
+     }
+ #endif
      else if (our_tv->v_type == VAR_LIST)
      {
  	list_T		*list = our_tv->vval.v_list;
***************
*** 1245,1251 ****
  }
  
      static PyObject *
! RBItem(BufferObject *self, int n, int start, int end)
  {
      if (CheckBuffer(self))
  	return NULL;
--- 1273,1279 ----
  }
  
      static PyObject *
! RBItem(BufferObject *self, PyInt n, int start, int end)
  {
      if (CheckBuffer(self))
  	return NULL;
***************
*** 1260,1268 ****
  }
  
      static PyObject *
! RBSlice(BufferObject *self, int lo, int hi, int start, int end)
  {
!     int size;
  
      if (CheckBuffer(self))
  	return NULL;
--- 1288,1296 ----
  }
  
      static PyObject *
! RBSlice(BufferObject *self, PyInt lo, PyInt hi, int start, int end)
  {
!     PyInt size;
  
      if (CheckBuffer(self))
  	return NULL;
***************
*** 1283,1290 ****
      return GetBufferLineList(self->buf, lo+start, hi+start);
  }
  
!     static int
! RBAssItem(BufferObject *self, int n, PyObject *val, int start, int end, int *new_end)
  {
      int len_change;
  
--- 1311,1318 ----
      return GetBufferLineList(self->buf, lo+start, hi+start);
  }
  
!     static PyInt
! RBAssItem(BufferObject *self, PyInt n, PyObject *val, int start, int end, int *new_end)
  {
      int len_change;
  
***************
*** 1306,1313 ****
      return 0;
  }
  
!     static int
! RBAssSlice(BufferObject *self, int lo, int hi, PyObject *val, int start, int end, int *new_end)
  {
      int size;
      int len_change;
--- 1334,1341 ----
      return 0;
  }
  
!     static PyInt
! RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, int start, int end, int *new_end)
  {
      int size;
      int len_change;
***************
*** 1384,1396 ****
  };
  
  static PySequenceMethods BufferAsSeq = {
!     (inquiry)		BufferLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0, /* BufferConcat, */	     /* sq_concat,    x+y      */
!     (intargfunc)	0, /* BufferRepeat, */	     /* sq_repeat,    x*n      */
!     (intargfunc)	BufferItem,	    /* sq_item,      x[i]     */
!     (intintargfunc)	BufferSlice,	    /* sq_slice,     x[i:j]   */
!     (intobjargproc)	BufferAssItem,	    /* sq_ass_item,  x[i]=v   */
!     (intintobjargproc)	BufferAssSlice,     /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject BufferType = {
--- 1412,1424 ----
  };
  
  static PySequenceMethods BufferAsSeq = {
!     (PyInquiry)		BufferLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0, /* BufferConcat, */	     /* sq_concat,    x+y      */
!     (PyIntArgFunc)	0, /* BufferRepeat, */	     /* sq_repeat,    x*n      */
!     (PyIntArgFunc)	BufferItem,	    /* sq_item,      x[i]     */
!     (PyIntIntArgFunc)	BufferSlice,	    /* sq_slice,     x[i:j]   */
!     (PyIntObjArgProc)	BufferAssItem,	    /* sq_ass_item,  x[i]=v   */
!     (PyIntIntObjArgProc)	BufferAssSlice,     /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject BufferType = {
***************
*** 1516,1522 ****
  
  /******************/
  
!     static int
  BufferLength(PyObject *self)
  {
      /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
--- 1544,1550 ----
  
  /******************/
  
!     static PyInt
  BufferLength(PyObject *self)
  {
      /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
***************
*** 1527,1555 ****
  }
  
      static PyObject *
! BufferItem(PyObject *self, int n)
  {
      return RBItem((BufferObject *)(self), n, 1,
  		  (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
  }
  
      static PyObject *
! BufferSlice(PyObject *self, int lo, int hi)
  {
      return RBSlice((BufferObject *)(self), lo, hi, 1,
  		   (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
  }
  
!     static int
! BufferAssItem(PyObject *self, int n, PyObject *val)
  {
      return RBAssItem((BufferObject *)(self), n, val, 1,
  		     (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
  		     NULL);
  }
  
!     static int
! BufferAssSlice(PyObject *self, int lo, int hi, PyObject *val)
  {
      return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
  		      (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
--- 1555,1583 ----
  }
  
      static PyObject *
! BufferItem(PyObject *self, PyInt n)
  {
      return RBItem((BufferObject *)(self), n, 1,
  		  (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
  }
  
      static PyObject *
! BufferSlice(PyObject *self, PyInt lo, PyInt hi)
  {
      return RBSlice((BufferObject *)(self), lo, hi, 1,
  		   (int)((BufferObject *)(self))->buf->b_ml.ml_line_count);
  }
  
!     static PyInt
! BufferAssItem(PyObject *self, PyInt n, PyObject *val)
  {
      return RBAssItem((BufferObject *)(self), n, val, 1,
  		     (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
  		     NULL);
  }
  
!     static PyInt
! BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
  {
      return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
  		      (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
***************
*** 1627,1639 ****
  };
  
  static PySequenceMethods RangeAsSeq = {
!     (inquiry)		RangeLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0, /* RangeConcat, */	     /* sq_concat,    x+y      */
!     (intargfunc)	0, /* RangeRepeat, */	     /* sq_repeat,    x*n      */
!     (intargfunc)	RangeItem,	    /* sq_item,      x[i]     */
!     (intintargfunc)	RangeSlice,	    /* sq_slice,     x[i:j]   */
!     (intobjargproc)	RangeAssItem,	    /* sq_ass_item,  x[i]=v   */
!     (intintobjargproc)	RangeAssSlice,	    /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject RangeType = {
--- 1655,1667 ----
  };
  
  static PySequenceMethods RangeAsSeq = {
!     (PyInquiry)		RangeLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0, /* RangeConcat, */	     /* sq_concat,    x+y      */
!     (PyIntArgFunc)	0, /* RangeRepeat, */	     /* sq_repeat,    x*n      */
!     (PyIntArgFunc)	RangeItem,	    /* sq_item,      x[i]     */
!     (PyIntIntArgFunc)	RangeSlice,	    /* sq_slice,     x[i:j]   */
!     (PyIntObjArgProc)	RangeAssItem,	    /* sq_ass_item,  x[i]=v   */
!     (PyIntIntObjArgProc)	RangeAssSlice,	    /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject RangeType = {
***************
*** 1738,1744 ****
  
  /****************/
  
!     static int
  RangeLength(PyObject *self)
  {
      /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
--- 1766,1772 ----
  
  /****************/
  
!     static PyInt
  RangeLength(PyObject *self)
  {
      /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */
***************
*** 1749,1755 ****
  }
  
      static PyObject *
! RangeItem(PyObject *self, int n)
  {
      return RBItem(((RangeObject *)(self))->buf, n,
  		  ((RangeObject *)(self))->start,
--- 1777,1783 ----
  }
  
      static PyObject *
! RangeItem(PyObject *self, PyInt n)
  {
      return RBItem(((RangeObject *)(self))->buf, n,
  		  ((RangeObject *)(self))->start,
***************
*** 1757,1771 ****
  }
  
      static PyObject *
! RangeSlice(PyObject *self, int lo, int hi)
  {
      return RBSlice(((RangeObject *)(self))->buf, lo, hi,
  		   ((RangeObject *)(self))->start,
  		   ((RangeObject *)(self))->end);
  }
  
!     static int
! RangeAssItem(PyObject *self, int n, PyObject *val)
  {
      return RBAssItem(((RangeObject *)(self))->buf, n, val,
  		     ((RangeObject *)(self))->start,
--- 1785,1799 ----
  }
  
      static PyObject *
! RangeSlice(PyObject *self, PyInt lo, PyInt hi)
  {
      return RBSlice(((RangeObject *)(self))->buf, lo, hi,
  		   ((RangeObject *)(self))->start,
  		   ((RangeObject *)(self))->end);
  }
  
!     static PyInt
! RangeAssItem(PyObject *self, PyInt n, PyObject *val)
  {
      return RBAssItem(((RangeObject *)(self))->buf, n, val,
  		     ((RangeObject *)(self))->start,
***************
*** 1773,1780 ****
  		     &((RangeObject *)(self))->end);
  }
  
!     static int
! RangeAssSlice(PyObject *self, int lo, int hi, PyObject *val)
  {
      return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
  		      ((RangeObject *)(self))->start,
--- 1801,1808 ----
  		     &((RangeObject *)(self))->end);
  }
  
!     static PyInt
! RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
  {
      return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
  		      ((RangeObject *)(self))->start,
***************
*** 1801,1813 ****
  BufListObject;
  
  static PySequenceMethods BufListAsSeq = {
!     (inquiry)		BufListLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0,		    /* sq_concat,    x+y      */
!     (intargfunc)	0,		    /* sq_repeat,    x*n      */
!     (intargfunc)	BufListItem,	    /* sq_item,      x[i]     */
!     (intintargfunc)	0,		    /* sq_slice,     x[i:j]   */
!     (intobjargproc)	0,		    /* sq_ass_item,  x[i]=v   */
!     (intintobjargproc)	0,		    /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject BufListType = {
--- 1829,1841 ----
  BufListObject;
  
  static PySequenceMethods BufListAsSeq = {
!     (PyInquiry)		BufListLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0,		    /* sq_concat,    x+y      */
!     (PyIntArgFunc)	0,		    /* sq_repeat,    x*n      */
!     (PyIntArgFunc)	BufListItem,	    /* sq_item,      x[i]     */
!     (PyIntIntArgFunc)	0,		    /* sq_slice,     x[i:j]   */
!     (PyIntObjArgProc)	0,		    /* sq_ass_item,  x[i]=v   */
!     (PyIntIntObjArgProc)	0,		    /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject BufListType = {
***************
*** 1837,1843 ****
   */
  
  /*ARGSUSED*/
!     static int
  BufListLength(PyObject *self)
  {
      buf_T	*b = firstbuf;
--- 1865,1871 ----
   */
  
  /*ARGSUSED*/
!     static PyInt
  BufListLength(PyObject *self)
  {
      buf_T	*b = firstbuf;
***************
*** 1854,1860 ****
  
  /*ARGSUSED*/
      static PyObject *
! BufListItem(PyObject *self, int n)
  {
      buf_T *b;
  
--- 1882,1888 ----
  
  /*ARGSUSED*/
      static PyObject *
! BufListItem(PyObject *self, PyInt n)
  {
      buf_T *b;
  
***************
*** 2119,2131 ****
  WinListObject;
  
  static PySequenceMethods WinListAsSeq = {
!     (inquiry)		WinListLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0,		    /* sq_concat,    x+y      */
!     (intargfunc)	0,		    /* sq_repeat,    x*n      */
!     (intargfunc)	WinListItem,	    /* sq_item,      x[i]     */
!     (intintargfunc)	0,		    /* sq_slice,     x[i:j]   */
!     (intobjargproc)	0,		    /* sq_ass_item,  x[i]=v   */
!     (intintobjargproc)	0,		    /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject WinListType = {
--- 2147,2159 ----
  WinListObject;
  
  static PySequenceMethods WinListAsSeq = {
!     (PyInquiry)		WinListLength,	    /* sq_length,    len(x)   */
      (binaryfunc)	0,		    /* sq_concat,    x+y      */
!     (PyIntArgFunc)	0,		    /* sq_repeat,    x*n      */
!     (PyIntArgFunc)	WinListItem,	    /* sq_item,      x[i]     */
!     (PyIntIntArgFunc)	0,		    /* sq_slice,     x[i:j]   */
!     (PyIntObjArgProc)	0,		    /* sq_ass_item,  x[i]=v   */
!     (PyIntIntObjArgProc)	0,		    /* sq_ass_slice, x[i:j]=v */
  };
  
  static PyTypeObject WinListType = {
***************
*** 2154,2160 ****
  /* Window list object - Implementation
   */
  /*ARGSUSED*/
!     static int
  WinListLength(PyObject *self)
  {
      win_T	*w = firstwin;
--- 2182,2188 ----
  /* Window list object - Implementation
   */
  /*ARGSUSED*/
!     static PyInt
  WinListLength(PyObject *self)
  {
      win_T	*w = firstwin;
***************
*** 2171,2177 ****
  
  /*ARGSUSED*/
      static PyObject *
! WinListItem(PyObject *self, int n)
  {
      win_T *w;
  
--- 2199,2205 ----
  
  /*ARGSUSED*/
      static PyObject *
! WinListItem(PyObject *self, PyInt n)
  {
      win_T *w;
  
***************
*** 2351,2360 ****
   * including, hi. The list is returned as a Python list of string objects.
   */
      static PyObject *
! GetBufferLineList(buf_T *buf, int lo, int hi)
  {
!     int i;
!     int n = hi - lo;
      PyObject *list = PyList_New(n);
  
      if (list == NULL)
--- 2379,2388 ----
   * including, hi. The list is returned as a Python list of string objects.
   */
      static PyObject *
! GetBufferLineList(buf_T *buf, PyInt lo, PyInt hi)
  {
!     PyInt i;
!     PyInt n = hi - lo;
      PyObject *list = PyList_New(n);
  
      if (list == NULL)
***************
*** 2517,2523 ****
   * is set to the change in the buffer length.
   */
      static int
! SetBufferLineList(buf_T *buf, int lo, int hi, PyObject *list, int *len_change)
  {
      /* First of all, we check the thpe of the supplied Python object.
       * There are three cases:
--- 2545,2551 ----
   * is set to the change in the buffer length.
   */
      static int
! SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, int *len_change)
  {
      /* First of all, we check the thpe of the supplied Python object.
       * There are three cases:
***************
*** 2527,2534 ****
       */
      if (list == Py_None || list == NULL)
      {
! 	int	i;
! 	int	n = hi - lo;
  	buf_T	*savebuf = curbuf;
  
  	PyErr_Clear();
--- 2555,2562 ----
       */
      if (list == Py_None || list == NULL)
      {
! 	PyInt	i;
! 	PyInt	n = hi - lo;
  	buf_T	*savebuf = curbuf;
  
  	PyErr_Clear();
***************
*** 2564,2572 ****
      }
      else if (PyList_Check(list))
      {
! 	int	i;
! 	int	new_len = PyList_Size(list);
! 	int	old_len = hi - lo;
  	int	extra = 0;	/* lines added to text, can be negative */
  	char	**array;
  	buf_T	*savebuf;
--- 2592,2600 ----
      }
      else if (PyList_Check(list))
      {
! 	PyInt	i;
! 	PyInt	new_len = PyList_Size(list);
! 	PyInt	old_len = hi - lo;
  	int	extra = 0;	/* lines added to text, can be negative */
  	char	**array;
  	buf_T	*savebuf;
***************
*** 2745,2752 ****
      }
      else if (PyList_Check(lines))
      {
! 	int	i;
! 	int	size = PyList_Size(lines);
  	char	**array;
  	buf_T	*savebuf;
  
--- 2773,2780 ----
      }
      else if (PyList_Check(lines))
      {
! 	PyInt	i;
! 	PyInt	size = PyList_Size(lines);
  	char	**array;
  	buf_T	*savebuf;
  
***************
*** 2831,2837 ****
  LineToString(const char *str)
  {
      PyObject *result;
!     int len = strlen(str);
      char *p;
  
      /* Allocate an Python string object, with uninitialised contents. We
--- 2859,2865 ----
  LineToString(const char *str)
  {
      PyObject *result;
!     PyInt len = strlen(str);
      char *p;
  
      /* Allocate an Python string object, with uninitialised contents. We
***************
*** 2871,2878 ****
  {
      const char *str;
      char *save;
!     int len;
!     int i;
      char *p;
  
      if (obj == NULL || !PyString_Check(obj))
--- 2899,2906 ----
  {
      const char *str;
      char *save;
!     PyInt len;
!     PyInt i;
      char *p;
  
      if (obj == NULL || !PyString_Check(obj))
*** ../vim-7.1.306/src/version.c	Wed Jun  4 10:59:18 2008
--- src/version.c	Wed Jun  4 13:31:40 2008
***************
*** 668,669 ****
--- 673,676 ----
  {   /* Add new patch number below this line */
+ /**/
+     307,
  /**/

-- 
For humans, honesty is a matter of degree.  Engineers are always honest in
matters of technology and human relationships.  That's why it's a good idea
to keep engineers away from customers, romantic interests, and other people
who can't handle the truth.
				(Scott Adams - The Dilbert principle)

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///