Patch 7.3.581
Problem:    Problems compiling with Python.
Solution:   Pick UCS2 or UCS4 function at runtime. (lilydjwg)
Files:      src/if_python.c


*** ../vim-7.3.580/src/if_python.c      2012-06-29 16:28:23.000000000 +0200
--- src/if_python.c     2012-06-29 19:10:53.000000000 +0200
***************
*** 196,202 ****
  # define PyString_Size dll_PyString_Size
  # define PyString_Type (*dll_PyString_Type)
  # define PyUnicode_Type (*dll_PyUnicode_Type)
! # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString)
  # define PyFloat_AsDouble dll_PyFloat_AsDouble
  # define PyFloat_FromDouble dll_PyFloat_FromDouble
  # define PyFloat_Type (*dll_PyFloat_Type)
--- 196,203 ----
  # define PyString_Size dll_PyString_Size
  # define PyString_Type (*dll_PyString_Type)
  # define PyUnicode_Type (*dll_PyUnicode_Type)
! # undef PyUnicode_AsEncodedString
! # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString
  # define PyFloat_AsDouble dll_PyFloat_AsDouble
  # define PyFloat_FromDouble dll_PyFloat_FromDouble
  # define PyFloat_Type (*dll_PyFloat_Type)
***************
*** 290,296 ****
  static PyInt(*dll_PyString_Size)(PyObject *);
  static PyTypeObject* dll_PyString_Type;
  static PyTypeObject* dll_PyUnicode_Type;
! static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *);
  static double(*dll_PyFloat_AsDouble)(PyObject *);
  static PyObject*(*dll_PyFloat_FromDouble)(double);
  static PyTypeObject* dll_PyFloat_Type;
--- 291,297 ----
  static PyInt(*dll_PyString_Size)(PyObject *);
  static PyTypeObject* dll_PyString_Type;
  static PyTypeObject* dll_PyUnicode_Type;
! static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *);
  static double(*dll_PyFloat_AsDouble)(PyObject *);
  static PyObject*(*dll_PyFloat_FromDouble)(double);
  static PyTypeObject* dll_PyFloat_Type;
***************
*** 406,412 ****
      {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
      {"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type},
      {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
-     {"PyUnicodeUCS4_AsEncodedString", 
(PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString},
      {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
      {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
      {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
--- 407,412 ----
***************
*** 471,476 ****
--- 471,477 ----
  python_runtime_link_init(char *libname, int verbose)
  {
      int i;
+     void *ucs_as_encoded_string;
  
  #if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && 
defined(UNIX) && defined(FEAT_PYTHON3)
      /* Can't have Python and Python3 loaded at the same time.
***************
*** 506,511 ****
--- 507,531 ----
            return FAIL;
        }
      }
+ 
+     /* Load unicode functions separately as only the ucs2 or the ucs4 
functions
+      * will be present in the library. */
+     ucs_as_encoded_string = symbol_from_dll(hinstPython,
+                                            "PyUnicodeUCS2_AsEncodedString");
+     if (ucs_as_encoded_string == NULL)
+       ucs_as_encoded_string = symbol_from_dll(hinstPython,
+                                            "PyUnicodeUCS4_AsEncodedString");
+     if (ucs_as_encoded_string != NULL)
+       py_PyUnicode_AsEncodedString = ucs_as_encoded_string;
+     else
+     {
+       close_dll(hinstPython);
+       hinstPython = 0;
+       if (verbose)
+           EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*");
+       return FAIL;
+     }
+ 
      return OK;
  }
  
*** ../vim-7.3.580/src/version.c        2012-06-29 17:51:58.000000000 +0200
--- src/version.c       2012-06-29 19:13:47.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     581,
  /**/

-- 
ASCII stupid question, get a stupid ANSI.

 /// Bram Moolenaar -- [email protected] -- 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    ///

-- 
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

Raspunde prin e-mail lui