[pypy-commit] pypy ffi-backend: List the places that will need wchar_t support
arigo
noreply at buildbot.pypy.org
Thu Jul 26 21:57:21 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch: ffi-backend
Changeset: r56481:dd764345d088
Date: 2012-07-26 16:42 +0200
http://bitbucket.org/pypy/pypy/changeset/dd764345d088/
Log: List the places that will need wchar_t support
diff --git a/pypy/module/_cffi_backend/cdataobj.py b/pypy/module/_cffi_backend/cdataobj.py
--- a/pypy/module/_cffi_backend/cdataobj.py
+++ b/pypy/module/_cffi_backend/cdataobj.py
@@ -316,6 +316,7 @@
__float__ = interp2app(W_CData.float),
__len__ = interp2app(W_CData.len),
__str__ = interp2app(W_CData.str),
+ #XXX WCHAR __unicode__ =
__lt__ = interp2app(W_CData.lt),
__le__ = interp2app(W_CData.le),
__eq__ = interp2app(W_CData.eq),
diff --git a/pypy/module/_cffi_backend/ctypearray.py b/pypy/module/_cffi_backend/ctypearray.py
--- a/pypy/module/_cffi_backend/ctypearray.py
+++ b/pypy/module/_cffi_backend/ctypearray.py
@@ -109,6 +109,7 @@
cdata[i] = s[i]
if n != self.length:
cdata[n] = '\x00'
+ #XXX WCHAR
else:
raise self._convert_error("list or tuple", w_ob)
diff --git a/pypy/module/_cffi_backend/ctypefunc.py b/pypy/module/_cffi_backend/ctypefunc.py
--- a/pypy/module/_cffi_backend/ctypefunc.py
+++ b/pypy/module/_cffi_backend/ctypefunc.py
@@ -126,6 +126,8 @@
# set the "must free" flag to 0
set_mustfree_flag(data, 0)
#
+ #XXX WCHAR unicode raises NotImplementedError
+ #
argtype.convert_from_object(data, w_obj)
resultdata = rffi.ptradd(buffer, cif_descr.exchange_result)
diff --git a/pypy/module/_cffi_backend/ctypeprim.py b/pypy/module/_cffi_backend/ctypeprim.py
--- a/pypy/module/_cffi_backend/ctypeprim.py
+++ b/pypy/module/_cffi_backend/ctypeprim.py
@@ -44,6 +44,7 @@
elif space.isinstance_w(w_ob, space.w_str):
value = self.cast_str(w_ob)
value = r_ulonglong(value)
+ #XXX WCHAR space.w_unicode
else:
value = misc.as_unsigned_long_long(space, w_ob, strict=False)
w_cdata = cdataobj.W_CDataCasted(space, self.size, self)
@@ -59,6 +60,7 @@
class W_CTypePrimitiveChar(W_CTypePrimitive):
cast_anything = True
+ #XXX WCHAR class PrimitiveUniChar
def int(self, cdata):
return self.space.wrap(ord(cdata[0]))
diff --git a/pypy/module/_cffi_backend/newtype.py b/pypy/module/_cffi_backend/newtype.py
--- a/pypy/module/_cffi_backend/newtype.py
+++ b/pypy/module/_cffi_backend/newtype.py
@@ -36,6 +36,7 @@
eptype("unsigned long long", rffi.LONGLONG, ctypeprim.W_CTypePrimitiveUnsigned)
eptype("float", rffi.FLOAT, ctypeprim.W_CTypePrimitiveFloat)
eptype("double", rffi.DOUBLE, ctypeprim.W_CTypePrimitiveFloat)
+#XXX WCHAR
@unwrap_spec(name=str)
def new_primitive_type(space, name):
@@ -158,6 +159,7 @@
isinstance(ftype, ctypeprim.W_CTypePrimitiveChar)) or
fbitsize == 0 or
fbitsize > 8 * ftype.size):
+ #XXX WCHAR: reach here if ftype is PrimitiveUniChar
raise operationerrfmt(space.w_TypeError,
"invalid bit field '%s'", fname)
if prev_bit_position > 0:
More information about the pypy-commit
mailing list