Hello community,

here is the log from the commit of package python3-cffi for openSUSE:Factory 
checked in at 2015-03-09 10:10:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-cffi (Old)
 and      /work/SRC/openSUSE:Factory/.python3-cffi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-cffi"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-cffi/python3-cffi.changes        
2015-03-05 18:16:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-cffi.new/python3-cffi.changes   
2015-03-09 10:10:20.000000000 +0100
@@ -1,0 +2,8 @@
+Sun Mar  8 17:29:09 UTC 2015 - a...@gmx.de
+
+- update to version 0.9.1:
+  * Add the MD5/SHA
+  * gcc complains if given the obscure flag
+    "-Werror=declaration-after-statement"
+
+-------------------------------------------------------------------

Old:
----
  cffi-0.9.0.tar.gz

New:
----
  cffi-0.9.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-cffi.spec ++++++
--- /var/tmp/diff_new_pack.tFzJq1/_old  2015-03-09 10:10:21.000000000 +0100
+++ /var/tmp/diff_new_pack.tFzJq1/_new  2015-03-09 10:10:21.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           python3-cffi
-Version:        0.9.0
+Version:        0.9.1
 Release:        0
 Summary:        Foreign Function Interface for Python calling C code
 License:        MIT

++++++ cffi-0.9.0.tar.gz -> cffi-0.9.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/PKG-INFO new/cffi-0.9.1/PKG-INFO
--- old/cffi-0.9.0/PKG-INFO     2015-03-03 10:42:33.000000000 +0100
+++ new/cffi-0.9.1/PKG-INFO     2015-03-08 09:07:14.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: cffi
-Version: 0.9.0
+Version: 0.9.1
 Summary: Foreign Function Interface for Python calling C code.
 Home-page: http://cffi.readthedocs.org
 Author: Armin Rigo, Maciej Fijalkowski
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/c/_cffi_backend.c 
new/cffi-0.9.1/c/_cffi_backend.c
--- old/cffi-0.9.0/c/_cffi_backend.c    2015-03-03 10:32:45.000000000 +0100
+++ new/cffi-0.9.1/c/_cffi_backend.c    2015-03-08 09:06:59.000000000 +0100
@@ -5689,7 +5689,7 @@
     if (v == NULL || PyModule_AddObject(m, "_C_API", v) < 0)
         INITERROR;
 
-    v = PyText_FromString("0.9.0");
+    v = PyText_FromString("0.9.1");
     if (v == NULL || PyModule_AddObject(m, "__version__", v) < 0)
         INITERROR;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/c/malloc_closure.h 
new/cffi-0.9.1/c/malloc_closure.h
--- old/cffi-0.9.0/c/malloc_closure.h   2015-02-26 10:22:04.000000000 +0100
+++ new/cffi-0.9.1/c/malloc_closure.h   2015-03-08 09:06:59.000000000 +0100
@@ -125,6 +125,7 @@
     if (item == NULL)
         return;
 #else
+    {
     int prot = PROT_READ | PROT_WRITE | PROT_EXEC;
     if (is_emutramp_enabled ())
         prot &= ~PROT_EXEC;
@@ -136,6 +137,7 @@
                         0);
     if (item == (void *)MAP_FAILED)
         return;
+    }
 #endif
 
 #ifdef MALLOC_CLOSURE_DEBUG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/c/test_c.py new/cffi-0.9.1/c/test_c.py
--- old/cffi-0.9.0/c/test_c.py  2015-03-03 10:32:54.000000000 +0100
+++ new/cffi-0.9.1/c/test_c.py  2015-03-08 09:06:59.000000000 +0100
@@ -3260,4 +3260,4 @@
 
 def test_version():
     # this test is here mostly for PyPy
-    assert __version__ == "0.9.0"
+    assert __version__ == "0.9.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/cffi/__init__.py 
new/cffi-0.9.1/cffi/__init__.py
--- old/cffi-0.9.0/cffi/__init__.py     2015-03-03 10:32:28.000000000 +0100
+++ new/cffi-0.9.1/cffi/__init__.py     2015-03-08 09:06:59.000000000 +0100
@@ -4,8 +4,8 @@
 from .api import FFI, CDefError, FFIError
 from .ffiplatform import VerificationError, VerificationMissing
 
-__version__ = "0.9.0"
-__version_info__ = (0, 9, 0)
+__version__ = "0.9.1"
+__version_info__ = (0, 9, 1)
 
 # The verifier module file names are based on the CRC32 of a string that
 # contains the following version number.  It may be older than __version__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/cffi.egg-info/PKG-INFO 
new/cffi-0.9.1/cffi.egg-info/PKG-INFO
--- old/cffi-0.9.0/cffi.egg-info/PKG-INFO       2015-03-03 10:42:33.000000000 
+0100
+++ new/cffi-0.9.1/cffi.egg-info/PKG-INFO       2015-03-08 09:07:13.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: cffi
-Version: 0.9.0
+Version: 0.9.1
 Summary: Foreign Function Interface for Python calling C code.
 Home-page: http://cffi.readthedocs.org
 Author: Armin Rigo, Maciej Fijalkowski
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/cffi.egg-info/SOURCES.txt 
new/cffi-0.9.1/cffi.egg-info/SOURCES.txt
--- old/cffi-0.9.0/cffi.egg-info/SOURCES.txt    2015-03-03 10:42:33.000000000 
+0100
+++ new/cffi-0.9.1/cffi.egg-info/SOURCES.txt    2015-03-08 09:07:14.000000000 
+0100
@@ -39,28 +39,20 @@
 cffi.egg-info/requires.txt
 cffi.egg-info/top_level.txt
 demo/_curses.py
-demo/a.py
 demo/api.py
-demo/audioop.py
 demo/bsdopendirtype.py
 demo/btrfs-snap.py
 demo/cffi-cocoa.py
 demo/fastcsv.py
 demo/gmp.py
-demo/issue169.py
 demo/pwuid.py
 demo/py.cleanup
 demo/pyobj.py
 demo/readdir.py
 demo/readdir2.py
-demo/readdir3.py
-demo/readdir3_build.py
 demo/readdir_ctypes.py
 demo/setup.py
-demo/test1.py
-demo/test_audioop.py
 demo/winclipboard.py
-demo/x.py
 demo/xclient.py
 doc/Makefile
 doc/design.rst
@@ -90,22 +82,15 @@
 testing/udir.py
 testing/snippets/distutils_module/setup.py
 testing/snippets/distutils_module/snip_basic_verify.py
-testing/snippets/distutils_module/build/lib.linux-x86_64-2.7/snip_basic_verify.py
 testing/snippets/distutils_package_1/setup.py
-testing/snippets/distutils_package_1/build/lib.linux-x86_64-2.7/snip_basic_verify1/__init__.py
 testing/snippets/distutils_package_1/snip_basic_verify1/__init__.py
 testing/snippets/distutils_package_2/setup.py
-testing/snippets/distutils_package_2/build/lib.linux-x86_64-2.7/snip_basic_verify2/__init__.py
 testing/snippets/distutils_package_2/snip_basic_verify2/__init__.py
 testing/snippets/infrastructure/setup.py
-testing/snippets/infrastructure/build/lib.linux-x86_64-2.7/snip_infrastructure/__init__.py
 testing/snippets/infrastructure/snip_infrastructure/__init__.py
 testing/snippets/setuptools_module/setup.py
 testing/snippets/setuptools_module/snip_setuptools_verify.py
-testing/snippets/setuptools_module/build/lib.linux-x86_64-2.7/snip_setuptools_verify.py
 testing/snippets/setuptools_package_1/setup.py
-testing/snippets/setuptools_package_1/build/lib.linux-x86_64-2.7/snip_setuptools_verify1/__init__.py
 testing/snippets/setuptools_package_1/snip_setuptools_verify1/__init__.py
 testing/snippets/setuptools_package_2/setup.py
-testing/snippets/setuptools_package_2/build/lib.linux-x86_64-2.7/snip_setuptools_verify2/__init__.py
 testing/snippets/setuptools_package_2/snip_setuptools_verify2/__init__.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/a.py new/cffi-0.9.1/demo/a.py
--- old/cffi-0.9.0/demo/a.py    2014-12-31 18:52:33.000000000 +0100
+++ new/cffi-0.9.1/demo/a.py    1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-import cffi
-ffi = cffi.FFI()
-ffi.cdef('int foo();')
-lib = ffi.verify('int foo();', sources=['a.cpp'], force_generic_engine=True)
-print(lib.foo())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/audioop.py 
new/cffi-0.9.1/demo/audioop.py
--- old/cffi-0.9.0/demo/audioop.py      2015-02-10 18:19:19.000000000 +0100
+++ new/cffi-0.9.1/demo/audioop.py      1970-01-01 01:00:00.000000000 +0100
@@ -1,551 +0,0 @@
-from __future__ import division
-import __builtin__ as builtins
-import math
-import cffi
-from fractions import gcd
-
-
-_ffi = cffi.FFI()
-
-
-class error(Exception):
-    pass
-
-
-def _check_size(size):
-    if size != 1 and size != 2 and size != 4:
-        raise error("Size should be 1, 2 or 4")
-
-
-def _check_params(length, size):
-    _check_size(size)
-    if length % size != 0:
-        raise error("not a whole number of frames")
-
-
-def _sample_count(cp, size):
-    return len(cp) // size
-
-
-def _get_samples(cp, size):
-    for i in range(_sample_count(cp, size)):
-        yield _get_sample(cp, size, i, True)
-
-
-def _struct_format(size):
-    if size == 1:
-        return "b"
-    elif size == 2:
-        return "h"
-    elif size == 4:
-        return "i"
-
-
-def _get_sample(cp, size, i):
-    fmt = _struct_format(size)
-    start = i * size
-    end = start + size
-    return struct.unpack_from(fmt, _buffer(cp)[start:end])[0]
-
-
-def _put_sample(cp, size, i, val):
-    fmt = _struct_format(size)
-    struct.pack_into(fmt, cp, i * size, val)
-
-
-def _get_maxval(size, signed=True):
-    if signed and size == 1:
-        return 0x7f
-    elif size == 1:
-        return 0xff
-    elif signed and size == 2:
-        return 0x7fff
-    elif size == 2:
-        return 0xffff
-    elif signed and size == 4:
-        return 0x7fffffff
-    elif size == 4:
-        return 0xffffffff
-
-
-def _get_minval(size, signed=True):
-    if not signed:
-        return 0
-    elif size == 1:
-        return -0x80
-    elif size == 2:
-        return -0x8000
-    elif size == 4:
-        return -0x80000000
-
-
-def _get_clipfn(size, signed=True):
-    maxval = _get_maxval(size, signed)
-    minval = _get_minval(size, signed)
-    return lambda val: builtins.max(min(val, maxval), minval)
-
-
-def _overflow(val, size, signed=True):
-    minval = _get_minval(size, signed)
-    maxval = _get_maxval(size, signed)
-    if minval <= val <= maxval:
-        return val
-
-    bits = size * 8
-    if signed:
-        offset = 2**(bits-1)
-        return ((val + offset) % (2**bits)) - offset
-    else:
-        return val % (2**bits)
-
-
-def getsample(cp, size, i):
-    _check_params(len(cp), size)
-    if not (0 <= i < len(cp) // size):
-        raise error("Index out of range")
-    return _get_sample(cp, size, i)
-
-
-def max(cp, size):
-    _check_params(len(cp), size)
-
-    if len(cp) == 0:
-        return 0
-
-    return builtins.max(abs(sample) for sample in _get_samples(cp, size))
-
-
-def minmax(cp, size):
-    _check_params(len(cp), size)
-
-    min_sample, max_sample = 0x7fffffff, -0x80000000
-    for sample in _get_samples(cp, size):
-        max_sample = builtins.max(sample, max_sample)
-        min_sample = builtins.min(sample, min_sample)
-
-    return min_sample, max_sample
-
-
-def avg(cp, size):
-    _check_params(len(cp), size)
-    sample_count = _sample_count(cp, size)
-    if sample_count == 0:
-        return 0
-    return sum(_get_samples(cp, size)) // sample_count
-
-
-def rms(cp, size):
-    _check_params(len(cp), size)
-
-    sample_count = _sample_count(cp, size)
-    if sample_count == 0:
-        return 0
-
-    sum_squares = sum(sample**2 for sample in _get_samples(cp, size))
-    return int(math.sqrt(sum_squares // sample_count))
-
-
-def _sum2(cp1, cp2, length):
-    size = 2
-    return sum(getsample(cp1, size, i) * getsample(cp2, size, i)
-               for i in range(length))
-
-
-def findfit(cp1, cp2):
-    size = 2
-
-    if len(cp1) % 2 != 0 or len(cp2) % 2 != 0:
-        raise error("Strings should be even-sized")
-
-    if len(cp1) < len(cp2):
-        raise error("First sample should be longer")
-
-    len1 = _sample_count(cp1, size)
-    len2 = _sample_count(cp2, size)
-
-    sum_ri_2 = _sum2(cp2, cp2, len2)
-    sum_aij_2 = _sum2(cp1, cp1, len2)
-    sum_aij_ri = _sum2(cp1, cp2, len2)
-
-    result = (sum_ri_2 * sum_aij_2 - sum_aij_ri * sum_aij_ri) / sum_aij_2
-
-    best_result = result
-    best_i = 0
-
-    for i in range(1, len1 - len2 + 1):
-        aj_m1 = _get_sample(cp1, size, i - 1)
-        aj_lm1 = _get_sample(cp1, size, i + len2 - 1)
-
-        sum_aij_2 += aj_lm1**2 - aj_m1**2
-        sum_aij_ri = _sum2(_buffer(cp1)[i*size:], cp2, len2)
-
-        result = (sum_ri_2 * sum_aij_2 - sum_aij_ri * sum_aij_ri) / sum_aij_2
-
-        if result < best_result:
-            best_result = result
-            best_i = i
-
-    factor = _sum2(_buffer(cp1)[best_i*size:], cp2, len2) / sum_ri_2
-
-    return best_i, factor
-
-
-def findfactor(cp1, cp2):
-    size = 2
-
-    if len(cp1) % 2 != 0:
-        raise error("Strings should be even-sized")
-
-    if len(cp1) != len(cp2):
-        raise error("Samples should be same size")
-
-    sample_count = _sample_count(cp1, size)
-
-    sum_ri_2 = _sum2(cp2, cp2, sample_count)
-    sum_aij_ri = _sum2(cp1, cp2, sample_count)
-
-    return sum_aij_ri / sum_ri_2
-
-
-def findmax(cp, len2):
-    size = 2
-    sample_count = _sample_count(cp, size)
-
-    if len(cp) % 2 != 0:
-        raise error("Strings should be even-sized")
-
-    if len2 < 0 or sample_count < len2:
-        raise error("Input sample should be longer")
-
-    if sample_count == 0:
-        return 0
-
-    result = _sum2(cp, cp, len2)
-    best_result = result
-    best_i = 0
-
-    for i in range(1, sample_count - len2 + 1):
-        sample_leaving_window = getsample(cp, size, i - 1)
-        sample_entering_window = getsample(cp, size, i + len2 - 1)
-
-        result -= sample_leaving_window**2
-        result += sample_entering_window**2
-
-        if result > best_result:
-            best_result = result
-            best_i = i
-
-    return best_i
-
-
-def avgpp(cp, size):
-    _check_params(len(cp), size)
-    sample_count = _sample_count(cp, size)
-    if sample_count <= 2:
-        return 0
-
-    prevextremevalid = False
-    prevextreme = None
-    avg = 0
-    nextreme = 0
-
-    prevval = getsample(cp, size, 0)
-    val = getsample(cp, size, 1)
-
-    prevdiff = val - prevval
-
-    for i in range(1, sample_count):
-        val = getsample(cp, size, i)
-        diff = val - prevval
-
-        if diff * prevdiff < 0:
-            if prevextremevalid:
-                avg += abs(prevval - prevextreme)
-                nextreme += 1
-
-            prevextremevalid = True
-            prevextreme = prevval
-
-        prevval = val
-        if diff != 0:
-            prevdiff = diff
-
-    if nextreme == 0:
-        return 0
-
-    return avg // nextreme
-
-
-def maxpp(cp, size):
-    _check_params(len(cp), size)
-    sample_count = _sample_count(cp, size)
-    if sample_count <= 1:
-        return 0
-
-    prevextremevalid = False
-    prevextreme = None
-    max = 0
-
-    prevval = getsample(cp, size, 0)
-    val = getsample(cp, size, 1)
-
-    prevdiff = val - prevval
-
-    for i in range(1, sample_count):
-        val = getsample(cp, size, i)
-        diff = val - prevval
-
-        if diff * prevdiff < 0:
-            if prevextremevalid:
-                extremediff = abs(prevval - prevextreme)
-                if extremediff > max:
-                    max = extremediff
-            prevextremevalid = True
-            prevextreme = prevval
-
-        prevval = val
-        if diff != 0:
-            prevdiff = diff
-
-    return max
-
-
-def cross(cp, size):
-    _check_params(len(cp), size)
-
-    crossings = -1
-    last_sample = 17
-    for sample in _get_samples(cp, size):
-        sample = sample < 0
-        if sample != last_sample:
-            crossings += 1
-        last_sample = sample
-    return crossings
-
-
-def mul(cp, size, factor):
-    _check_params(len(cp), size)
-    clip = _get_clipfn(size)
-
-    result = create_string_buffer(len(cp))
-
-    for i, sample in enumerate(_get_samples(cp, size)):
-        sample = clip(int(sample * factor))
-        _put_sample(result, size, i, sample)
-
-    return result.raw
-
-
-def tomono(cp, size, fac1, fac2):
-    _check_params(len(cp), size)
-    clip = _get_clipfn(size)
-
-    sample_count = _sample_count(cp, size)
-
-    result = create_string_buffer(len(cp) // 2)
-
-    for i in range(0, sample_count, 2):
-        l_sample = getsample(cp, size, i)
-        r_sample = getsample(cp, size, i + 1)
-
-        sample = (l_sample * fac1) + (r_sample * fac2)
-        sample = int(clip(sample))
-
-        _put_sample(result, size, i // 2, sample)
-
-    return result.raw
-
-
-def tostereo(cp, size, fac1, fac2):
-    _check_params(len(cp), size)
-
-    sample_count = _sample_count(cp, size)
-
-    result = create_string_buffer(len(cp) * 2)
-    clip = _get_clipfn(size)
-
-    for i in range(sample_count):
-        sample = _get_sample(cp, size, i)
-
-        l_sample = clip(sample * fac1)
-        r_sample = clip(sample * fac2)
-
-        _put_sample(result, size, i * 2, l_sample)
-        _put_sample(result, size, i * 2 + 1, r_sample)
-
-    return result.raw
-
-
-def add(cp1, cp2, size):
-    _check_params(len(cp1), size)
-
-    if len(cp1) != len(cp2):
-        raise error("Lengths should be the same")
-
-    clip = _get_clipfn(size)
-    sample_count = _sample_count(cp1, size)
-    result = create_string_buffer(len(cp1))
-
-    for i in range(sample_count):
-        sample1 = getsample(cp1, size, i)
-        sample2 = getsample(cp2, size, i)
-
-        sample = clip(sample1 + sample2)
-
-        _put_sample(result, size, i, sample)
-
-    return result.raw
-
-
-def bias(cp, size, bias):
-    _check_params(len(cp), size)
-
-    result = create_string_buffer(len(cp))
-
-    for i, sample in enumerate(_get_samples(cp, size)):
-        sample = _overflow(sample + bias, size)
-        _put_sample(result, size, i, sample)
-
-    return result.raw
-
-
-def reverse(cp, size):
-    _check_params(len(cp), size)
-    sample_count = _sample_count(cp, size)
-
-    result = create_string_buffer(len(cp))
-    for i, sample in enumerate(_get_samples(cp, size)):
-        _put_sample(result, size, sample_count - i - 1, sample)
-
-    return result.raw
-
-
-def lin2lin(cp, size, size2):
-    _check_params(len(cp), size)
-    _check_size(size2)
-
-    if size == size2:
-        return cp
-
-    new_len = (len(cp) // size) * size2
-    result = create_string_buffer(new_len)
-
-    for i in range(_sample_count(cp, size)):
-        sample = _get_sample(cp, size, i)
-        if size == 1:
-            sample <<= 24
-        elif size == 2:
-            sample <<= 16
-        if size2 == 1:
-            sample >>= 24
-        elif size2 == 2:
-            sample >>= 16
-        sample = _overflow(sample, size2)
-        _put_sample(result, size2, i, sample)
-
-    return result.raw
-
-
-def ratecv(cp, size, nchannels, inrate, outrate, state, weightA=1, weightB=0):
-    _check_params(len(cp), size)
-    if nchannels < 1:
-        raise error("# of channels should be >= 1")
-
-    bytes_per_frame = size * nchannels
-    frame_count = len(cp) // bytes_per_frame
-
-    if bytes_per_frame // nchannels != size:
-        raise OverflowError("width * nchannels too big for a C int")
-
-    if weightA < 1 or weightB < 0:
-        raise error("weightA should be >= 1, weightB should be >= 0")
-
-    if len(cp) % bytes_per_frame != 0:
-        raise error("not a whole number of frames")
-
-    if inrate <= 0 or outrate <= 0:
-        raise error("sampling rate not > 0")
-
-    d = gcd(inrate, outrate)
-    inrate //= d
-    outrate //= d
-
-    prev_i = [0] * nchannels
-    cur_i = [0] * nchannels
-
-    if state is None:
-        d = -outrate
-    else:
-        d, samps = state
-
-        if len(samps) != nchannels:
-            raise error("illegal state argument")
-
-        prev_i, cur_i = zip(*samps)
-        prev_i, cur_i = list(prev_i), list(cur_i)
-
-    q = frame_count // inrate
-    ceiling = (q + 1) * outrate
-    nbytes = ceiling * bytes_per_frame
-
-    result = create_string_buffer(nbytes)
-
-    samples = _get_samples(cp, size)
-    out_i = 0
-    while True:
-        while d < 0:
-            if frame_count == 0:
-                samps = zip(prev_i, cur_i)
-                retval = result.raw
-
-                # slice off extra bytes
-                trim_index = (out_i * bytes_per_frame) - len(retval)
-                retval = retval[:trim_index]
-
-                return (retval, (d, tuple(samps)))
-
-            for chan in range(nchannels):
-                prev_i[chan] = cur_i[chan]
-                cur_i[chan] = next(samples)
-
-                cur_i[chan] = (
-                    (weightA * cur_i[chan] + weightB * prev_i[chan])
-                    // (weightA + weightB)
-                )
-
-            frame_count -= 1
-            d += outrate
-
-        while d >= 0:
-            for chan in range(nchannels):
-                cur_o = (
-                    (prev_i[chan] * d + cur_i[chan] * (outrate - d))
-                    // outrate
-                )
-                _put_sample(result, size, out_i, _overflow(cur_o, size))
-                out_i += 1
-                d -= inrate
-
-
-def lin2ulaw(cp, size):
-    raise NotImplementedError()
-
-
-def ulaw2lin(cp, size):
-    raise NotImplementedError()
-
-
-def lin2alaw(cp, size):
-    raise NotImplementedError()
-
-
-def alaw2lin(cp, size):
-    raise NotImplementedError()
-
-
-def lin2adpcm(cp, size, state):
-    raise NotImplementedError()
-
-
-def adpcm2lin(cp, size, state):
-    raise NotImplementedError()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/issue169.py 
new/cffi-0.9.1/demo/issue169.py
--- old/cffi-0.9.0/demo/issue169.py     2014-12-03 11:48:33.000000000 +0100
+++ new/cffi-0.9.1/demo/issue169.py     1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-import cffi
-
-ffi = cffi.FFI()
-ffi.cdef('''struct my_struct {
-   int a;
-   struct {
-      int b;
-      int c;
-   } s;
-};''')
-
-
-def offsetof(type_str, field_names):
-    type_ = ffi.typeof(type_str)
-    res = 0
-    for field_name in field_names.split('.'):
-        field = dict(type_.fields)[field_name]
-        res += field.offset
-        type_ = field.type
-    return res
-
-
-print offsetof('struct my_struct', 's.b')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/readdir3.py 
new/cffi-0.9.1/demo/readdir3.py
--- old/cffi-0.9.0/demo/readdir3.py     2014-09-21 13:28:25.000000000 +0200
+++ new/cffi-0.9.1/demo/readdir3.py     1970-01-01 01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-# A Linux-only demo, using verify() instead of hard-coding the exact layouts
-#
-import sys
-from cffi import FFI
-
-ffi = FFI()
-ffi.cdef("""
-
-    typedef ... DIR;
-
-    struct dirent {
-        unsigned char  d_type;      /* type of file; not supported
-                                       by all file system types */
-        char           d_name[...]; /* filename */
-        ...;
-    };
-
-    int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
-    int openat(int dirfd, const char *pathname, int flags);
-    DIR *fdopendir(int fd);
-    int closedir(DIR *dirp);
-
-    static const int DT_DIR;
-
-""")
-ffi.C = ffi.verify(None, modulename='_readdir3')
-
-
-def walk(basefd, path):
-    print '{', path
-    dirfd = ffi.C.openat(basefd, path, 0)
-    if dirfd < 0:
-        # error in openat()
-        return
-    dir = ffi.C.fdopendir(dirfd)
-    dirent = ffi.new("struct dirent *")
-    result = ffi.new("struct dirent **")
-    while True:
-        if ffi.C.readdir_r(dir, dirent, result):
-            # error in readdir_r()
-            break
-        if result[0] == ffi.NULL:
-            break
-        name = ffi.string(dirent.d_name)
-        print '%3d %s' % (dirent.d_type, name)
-        if dirent.d_type == ffi.C.DT_DIR and name != '.' and name != '..':
-            walk(dirfd, name)
-    ffi.C.closedir(dir)
-    print '}'
-
-
-walk(-1, "/tmp")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/readdir3_build.py 
new/cffi-0.9.1/demo/readdir3_build.py
--- old/cffi-0.9.0/demo/readdir3_build.py       2014-09-21 13:27:16.000000000 
+0200
+++ new/cffi-0.9.1/demo/readdir3_build.py       1970-01-01 01:00:00.000000000 
+0100
@@ -1,40 +0,0 @@
-# A Linux-only demo, using verify() instead of hard-coding the exact layouts
-#
-import sys
-from cffi import FFI
-
-if not sys.platform.startswith('linux'):
-    raise Exception("Linux-only demo")
-
-
-ffi = FFI()
-ffi.cdef("""
-
-    typedef ... DIR;
-
-    struct dirent {
-        unsigned char  d_type;      /* type of file; not supported
-                                       by all file system types */
-        char           d_name[...]; /* filename */
-        ...;
-    };
-
-    int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
-    int openat(int dirfd, const char *pathname, int flags);
-    DIR *fdopendir(int fd);
-    int closedir(DIR *dirp);
-
-    static const int DT_DIR;
-
-""")
-ffi.verify("""
-#ifndef _ATFILE_SOURCE
-#  define _ATFILE_SOURCE
-#endif
-#ifndef _BSD_SOURCE
-#  define _BSD_SOURCE
-#endif
-#include <fcntl.h>
-#include <sys/types.h>
-#include <dirent.h>
-""", modulename='_readdir3', tmpdir='.')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/test1.py new/cffi-0.9.1/demo/test1.py
--- old/cffi-0.9.0/demo/test1.py        2014-11-16 19:14:15.000000000 +0100
+++ new/cffi-0.9.1/demo/test1.py        1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-import cffi
-
-ffi = cffi.FFI()
-
-
-ffi.cdef("""
-struct foo_s {
-    int a, b, c;
-    ...;
-};
-""")
-
-lib = ffi.verify("""
-struct foo_s {
-    int b, d, a;
-    const int c;
-};
-""")
-
-s = ffi.new("struct foo_s *")
-for name in ('a', 'b', 'c'):
-    print ffi.offsetof("struct foo_s", name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/test_audioop.py 
new/cffi-0.9.1/demo/test_audioop.py
--- old/cffi-0.9.0/demo/test_audioop.py 2015-02-10 18:16:57.000000000 +0100
+++ new/cffi-0.9.1/demo/test_audioop.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,401 +0,0 @@
-import audioop
-import sys
-import unittest
-import struct
-from test.test_support import run_unittest, impl_detail
-
-
-formats = {
-    1: 'b',
-    2: 'h',
-    4: 'i',
-}
-
-def pack(width, data):
-    return struct.pack('=%d%s' % (len(data), formats[width]), *data)
-
-packs = {
-    1: lambda *data: pack(1, data),
-    2: lambda *data: pack(2, data),
-    4: lambda *data: pack(4, data),
-}
-maxvalues = {w: (1 << (8 * w - 1)) - 1 for w in (1, 2, 4)}
-minvalues = {w: -1 << (8 * w - 1) for w in (1, 2, 4)}
-
-datas = {
-    1: b'\x00\x12\x45\xbb\x7f\x80\xff',
-    2: packs[2](0, 0x1234, 0x4567, -0x4567, 0x7fff, -0x8000, -1),
-    4: packs[4](0, 0x12345678, 0x456789ab, -0x456789ab,
-                0x7fffffff, -0x80000000, -1),
-}
-
-INVALID_DATA = [
-    (b'abc', 0),
-    (b'abc', 2),
-    (b'abc', 4),
-]
-
-
-class TestAudioop(unittest.TestCase):
-
-    def test_max(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.max(b'', w), 0)
-            p = packs[w]
-            self.assertEqual(audioop.max(p(5), w), 5)
-            self.assertEqual(audioop.max(p(5, -8, -1), w), 8)
-            self.assertEqual(audioop.max(p(maxvalues[w]), w), maxvalues[w])
-            self.assertEqual(audioop.max(p(minvalues[w]), w), -minvalues[w])
-            self.assertEqual(audioop.max(datas[w], w), -minvalues[w])
-
-    def XXtest_minmax(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.minmax(b'', w),
-                             (0x7fffffff, -0x80000000))
-            p = packs[w]
-            self.assertEqual(audioop.minmax(p(5), w), (5, 5))
-            self.assertEqual(audioop.minmax(p(5, -8, -1), w), (-8, 5))
-            self.assertEqual(audioop.minmax(p(maxvalues[w]), w),
-                             (maxvalues[w], maxvalues[w]))
-            self.assertEqual(audioop.minmax(p(minvalues[w]), w),
-                             (minvalues[w], minvalues[w]))
-            self.assertEqual(audioop.minmax(datas[w], w),
-                             (minvalues[w], maxvalues[w]))
-
-    def XXtest_maxpp(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.maxpp(b'', w), 0)
-            self.assertEqual(audioop.maxpp(packs[w](*range(100)), w), 0)
-            self.assertEqual(audioop.maxpp(packs[w](9, 10, 5, 5, 0, 1), w), 10)
-            self.assertEqual(audioop.maxpp(datas[w], w),
-                             maxvalues[w] - minvalues[w])
-
-    def XXtest_avg(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.avg(b'', w), 0)
-            p = packs[w]
-            self.assertEqual(audioop.avg(p(5), w), 5)
-            self .assertEqual(audioop.avg(p(5, 8), w), 6)
-            self.assertEqual(audioop.avg(p(5, -8), w), -2)
-            self.assertEqual(audioop.avg(p(maxvalues[w], maxvalues[w]), w),
-                             maxvalues[w])
-            self.assertEqual(audioop.avg(p(minvalues[w], minvalues[w]), w),
-                             minvalues[w])
-        self.assertEqual(audioop.avg(packs[4](0x50000000, 0x70000000), 4),
-                         0x60000000)
-        self.assertEqual(audioop.avg(packs[4](-0x50000000, -0x70000000), 4),
-                         -0x60000000)
-
-    def XXtest_avgpp(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.avgpp(b'', w), 0)
-            self.assertEqual(audioop.avgpp(packs[w](*range(100)), w), 0)
-            self.assertEqual(audioop.avgpp(packs[w](9, 10, 5, 5, 0, 1), w), 10)
-        self.assertEqual(audioop.avgpp(datas[1], 1), 196)
-        self.assertEqual(audioop.avgpp(datas[2], 2), 50534)
-        self.assertEqual(audioop.avgpp(datas[4], 4), 3311897002)
-
-    def XXtest_rms(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.rms(b'', w), 0)
-            p = packs[w]
-            self.assertEqual(audioop.rms(p(*range(100)), w), 57)
-            self.assertAlmostEqual(audioop.rms(p(maxvalues[w]) * 5, w),
-                                   maxvalues[w], delta=1)
-            self.assertAlmostEqual(audioop.rms(p(minvalues[w]) * 5, w),
-                                   -minvalues[w], delta=1)
-        self.assertEqual(audioop.rms(datas[1], 1), 77)
-        self.assertEqual(audioop.rms(datas[2], 2), 20001)
-        self.assertEqual(audioop.rms(datas[4], 4), 1310854152)
-
-    def XXtest_cross(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.cross(b'', w), -1)
-            p = packs[w]
-            self.assertEqual(audioop.cross(p(0, 1, 2), w), 0)
-            self.assertEqual(audioop.cross(p(1, 2, -3, -4), w), 1)
-            self.assertEqual(audioop.cross(p(-1, -2, 3, 4), w), 1)
-            self.assertEqual(audioop.cross(p(0, minvalues[w]), w), 1)
-            self.assertEqual(audioop.cross(p(minvalues[w], maxvalues[w]), w), 
1)
-
-    def XXtest_add(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.add(b'', b'', w), b'')
-            self.assertEqual(audioop.add(datas[w], b'\0' * len(datas[w]), w),
-                             datas[w])
-        self.assertEqual(audioop.add(datas[1], datas[1], 1),
-                         b'\x00\x24\x7f\x80\x7f\x80\xfe')
-        self.assertEqual(audioop.add(datas[2], datas[2], 2),
-                packs[2](0, 0x2468, 0x7fff, -0x8000, 0x7fff, -0x8000, -2))
-        self.assertEqual(audioop.add(datas[4], datas[4], 4),
-                packs[4](0, 0x2468acf0, 0x7fffffff, -0x80000000,
-                       0x7fffffff, -0x80000000, -2))
-
-    def XXtest_bias(self):
-        for w in 1, 2, 4:
-            for bias in 0, 1, -1, 127, -128, 0x7fffffff, -0x80000000:
-                self.assertEqual(audioop.bias(b'', w, bias), b'')
-        self.assertEqual(audioop.bias(datas[1], 1, 1),
-                         b'\x01\x13\x46\xbc\x80\x81\x00')
-        self.assertEqual(audioop.bias(datas[1], 1, -1),
-                         b'\xff\x11\x44\xba\x7e\x7f\xfe')
-        self.assertEqual(audioop.bias(datas[1], 1, 0x7fffffff),
-                         b'\xff\x11\x44\xba\x7e\x7f\xfe')
-        self.assertEqual(audioop.bias(datas[1], 1, -0x80000000),
-                         datas[1])
-        self.assertEqual(audioop.bias(datas[2], 2, 1),
-                packs[2](1, 0x1235, 0x4568, -0x4566, -0x8000, -0x7fff, 0))
-        self.assertEqual(audioop.bias(datas[2], 2, -1),
-                packs[2](-1, 0x1233, 0x4566, -0x4568, 0x7ffe, 0x7fff, -2))
-        self.assertEqual(audioop.bias(datas[2], 2, 0x7fffffff),
-                packs[2](-1, 0x1233, 0x4566, -0x4568, 0x7ffe, 0x7fff, -2))
-        self.assertEqual(audioop.bias(datas[2], 2, -0x80000000),
-                datas[2])
-        self.assertEqual(audioop.bias(datas[4], 4, 1),
-                packs[4](1, 0x12345679, 0x456789ac, -0x456789aa,
-                         -0x80000000, -0x7fffffff, 0))
-        self.assertEqual(audioop.bias(datas[4], 4, -1),
-                packs[4](-1, 0x12345677, 0x456789aa, -0x456789ac,
-                         0x7ffffffe, 0x7fffffff, -2))
-        self.assertEqual(audioop.bias(datas[4], 4, 0x7fffffff),
-                packs[4](0x7fffffff, -0x6dcba989, -0x3a987656, 0x3a987654,
-                         -2, -1, 0x7ffffffe))
-        self.assertEqual(audioop.bias(datas[4], 4, -0x80000000),
-                packs[4](-0x80000000, -0x6dcba988, -0x3a987655, 0x3a987655,
-                         -1, 0, 0x7fffffff))
-
-    def XXtest_lin2lin(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.lin2lin(datas[w], w, w), datas[w])
-
-        self.assertEqual(audioop.lin2lin(datas[1], 1, 2),
-            packs[2](0, 0x1200, 0x4500, -0x4500, 0x7f00, -0x8000, -0x100))
-        self.assertEqual(audioop.lin2lin(datas[1], 1, 4),
-            packs[4](0, 0x12000000, 0x45000000, -0x45000000,
-                     0x7f000000, -0x80000000, -0x1000000))
-        self.assertEqual(audioop.lin2lin(datas[2], 2, 1),
-            b'\x00\x12\x45\xba\x7f\x80\xff')
-        self.assertEqual(audioop.lin2lin(datas[2], 2, 4),
-            packs[4](0, 0x12340000, 0x45670000, -0x45670000,
-                     0x7fff0000, -0x80000000, -0x10000))
-        self.assertEqual(audioop.lin2lin(datas[4], 4, 1),
-            b'\x00\x12\x45\xba\x7f\x80\xff')
-        self.assertEqual(audioop.lin2lin(datas[4], 4, 2),
-            packs[2](0, 0x1234, 0x4567, -0x4568, 0x7fff, -0x8000, -1))
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_adpcm2lin(self):
-        self.assertEqual(audioop.adpcm2lin(b'\x07\x7f\x7f', 1, None),
-                         (b'\x00\x00\x00\xff\x00\xff', (-179, 40)))
-        self.assertEqual(audioop.adpcm2lin(b'\x07\x7f\x7f', 2, None),
-                         (packs[2](0, 0xb, 0x29, -0x16, 0x72, -0xb3), (-179, 
40)))
-        self.assertEqual(audioop.adpcm2lin(b'\x07\x7f\x7f', 4, None),
-                         (packs[4](0, 0xb0000, 0x290000, -0x160000, 0x720000,
-                                   -0xb30000), (-179, 40)))
-
-        # Very cursory test
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.adpcm2lin(b'\0' * 5, w, None),
-                             (b'\0' * w * 10, (0, 0)))
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_lin2adpcm(self):
-        self.assertEqual(audioop.lin2adpcm(datas[1], 1, None),
-                         (b'\x07\x7f\x7f', (-221, 39)))
-        self.assertEqual(audioop.lin2adpcm(datas[2], 2, None),
-                         (b'\x07\x7f\x7f', (31, 39)))
-        self.assertEqual(audioop.lin2adpcm(datas[4], 4, None),
-                         (b'\x07\x7f\x7f', (31, 39)))
-
-        # Very cursory test
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.lin2adpcm(b'\0' * w * 10, w, None),
-                             (b'\0' * 5, (0, 0)))
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_lin2alaw(self):
-        self.assertEqual(audioop.lin2alaw(datas[1], 1),
-                         b'\xd5\x87\xa4\x24\xaa\x2a\x5a')
-        self.assertEqual(audioop.lin2alaw(datas[2], 2),
-                         b'\xd5\x87\xa4\x24\xaa\x2a\x55')
-        self.assertEqual(audioop.lin2alaw(datas[4], 4),
-                         b'\xd5\x87\xa4\x24\xaa\x2a\x55')
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_alaw2lin(self):
-        encoded = b'\x00\x03\x24\x2a\x51\x54\x55\x58\x6b\x71\x7f'\
-                  b'\x80\x83\xa4\xaa\xd1\xd4\xd5\xd8\xeb\xf1\xff'
-        src = [-688, -720, -2240, -4032, -9, -3, -1, -27, -244, -82, -106,
-               688, 720, 2240, 4032, 9, 3, 1, 27, 244, 82, 106]
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.alaw2lin(encoded, w),
-                             packs[w](*(x << (w * 8) >> 13 for x in src)))
-
-        encoded = ''.join(chr(x) for x in xrange(256))
-        for w in 2, 4:
-            decoded = audioop.alaw2lin(encoded, w)
-            self.assertEqual(audioop.lin2alaw(decoded, w), encoded)
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_lin2ulaw(self):
-        self.assertEqual(audioop.lin2ulaw(datas[1], 1),
-                         b'\xff\xad\x8e\x0e\x80\x00\x67')
-        self.assertEqual(audioop.lin2ulaw(datas[2], 2),
-                         b'\xff\xad\x8e\x0e\x80\x00\x7e')
-        self.assertEqual(audioop.lin2ulaw(datas[4], 4),
-                         b'\xff\xad\x8e\x0e\x80\x00\x7e')
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_ulaw2lin(self):
-        encoded = b'\x00\x0e\x28\x3f\x57\x6a\x76\x7c\x7e\x7f'\
-                  b'\x80\x8e\xa8\xbf\xd7\xea\xf6\xfc\xfe\xff'
-        src = [-8031, -4447, -1471, -495, -163, -53, -18, -6, -2, 0,
-               8031, 4447, 1471, 495, 163, 53, 18, 6, 2, 0]
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.ulaw2lin(encoded, w),
-                             packs[w](*(x << (w * 8) >> 14 for x in src)))
-
-        # Current u-law implementation has two codes fo 0: 0x7f and 0xff.
-        encoded = ''.join(chr(x) for x in range(127) + range(128, 256))
-        for w in 2, 4:
-            decoded = audioop.ulaw2lin(encoded, w)
-            self.assertEqual(audioop.lin2ulaw(decoded, w), encoded)
-
-    def XXtest_mul(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.mul(b'', w, 2), b'')
-            self.assertEqual(audioop.mul(datas[w], w, 0),
-                             b'\0' * len(datas[w]))
-            self.assertEqual(audioop.mul(datas[w], w, 1),
-                             datas[w])
-        self.assertEqual(audioop.mul(datas[1], 1, 2),
-                         b'\x00\x24\x7f\x80\x7f\x80\xfe')
-        self.assertEqual(audioop.mul(datas[2], 2, 2),
-                packs[2](0, 0x2468, 0x7fff, -0x8000, 0x7fff, -0x8000, -2))
-        self.assertEqual(audioop.mul(datas[4], 4, 2),
-                packs[4](0, 0x2468acf0, 0x7fffffff, -0x80000000,
-                         0x7fffffff, -0x80000000, -2))
-
-    def XXtest_ratecv(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.ratecv(b'', w, 1, 8000, 8000, None),
-                             (b'', (-1, ((0, 0),))))
-            self.assertEqual(audioop.ratecv(b'', w, 5, 8000, 8000, None),
-                             (b'', (-1, ((0, 0),) * 5)))
-            self.assertEqual(audioop.ratecv(b'', w, 1, 8000, 16000, None),
-                             (b'', (-2, ((0, 0),))))
-            self.assertEqual(audioop.ratecv(datas[w], w, 1, 8000, 8000, 
None)[0],
-                             datas[w])
-        state = None
-        d1, state = audioop.ratecv(b'\x00\x01\x02', 1, 1, 8000, 16000, state)
-        d2, state = audioop.ratecv(b'\x00\x01\x02', 1, 1, 8000, 16000, state)
-        self.assertEqual(d1 + d2, 
b'\000\000\001\001\002\001\000\000\001\001\002')
-
-        for w in 1, 2, 4:
-            d0, state0 = audioop.ratecv(datas[w], w, 1, 8000, 16000, None)
-            d, state = b'', None
-            for i in range(0, len(datas[w]), w):
-                d1, state = audioop.ratecv(datas[w][i:i + w], w, 1,
-                                           8000, 16000, state)
-                d += d1
-            self.assertEqual(d, d0)
-            self.assertEqual(state, state0)
-
-    def XXtest_reverse(self):
-        for w in 1, 2, 4:
-            self.assertEqual(audioop.reverse(b'', w), b'')
-            self.assertEqual(audioop.reverse(packs[w](0, 1, 2), w),
-                             packs[w](2, 1, 0))
-
-    def XXtest_tomono(self):
-        for w in 1, 2, 4:
-            data1 = datas[w]
-            data2 = bytearray(2 * len(data1))
-            for k in range(w):
-                data2[k::2*w] = data1[k::w]
-            self.assertEqual(audioop.tomono(str(data2), w, 1, 0), data1)
-            self.assertEqual(audioop.tomono(str(data2), w, 0, 1), b'\0' * 
len(data1))
-            for k in range(w):
-                data2[k+w::2*w] = data1[k::w]
-            self.assertEqual(audioop.tomono(str(data2), w, 0.5, 0.5), data1)
-
-    def XXtest_tostereo(self):
-        for w in 1, 2, 4:
-            data1 = datas[w]
-            data2 = bytearray(2 * len(data1))
-            for k in range(w):
-                data2[k::2*w] = data1[k::w]
-            self.assertEqual(audioop.tostereo(data1, w, 1, 0), data2)
-            self.assertEqual(audioop.tostereo(data1, w, 0, 0), b'\0' * 
len(data2))
-            for k in range(w):
-                data2[k+w::2*w] = data1[k::w]
-            self.assertEqual(audioop.tostereo(data1, w, 1, 1), data2)
-
-    def XXtest_findfactor(self):
-        self.assertEqual(audioop.findfactor(datas[2], datas[2]), 1.0)
-        self.assertEqual(audioop.findfactor(b'\0' * len(datas[2]), datas[2]),
-                         0.0)
-
-    def XXtest_findfit(self):
-        self.assertEqual(audioop.findfit(datas[2], datas[2]), (0, 1.0))
-        self.assertEqual(audioop.findfit(datas[2], packs[2](1, 2, 0)),
-                         (1, 8038.8))
-        self.assertEqual(audioop.findfit(datas[2][:-2] * 5 + datas[2], 
datas[2]),
-                         (30, 1.0))
-
-    def XXtest_findmax(self):
-        self.assertEqual(audioop.findmax(datas[2], 1), 5)
-
-    def XXtest_getsample(self):
-        for w in 1, 2, 4:
-            data = packs[w](0, 1, -1, maxvalues[w], minvalues[w])
-            self.assertEqual(audioop.getsample(data, w, 0), 0)
-            self.assertEqual(audioop.getsample(data, w, 1), 1)
-            self.assertEqual(audioop.getsample(data, w, 2), -1)
-            self.assertEqual(audioop.getsample(data, w, 3), maxvalues[w])
-            self.assertEqual(audioop.getsample(data, w, 4), minvalues[w])
-
-    def XXtest_negativelen(self):
-        # from issue 3306, previously it segfaulted
-        self.assertRaises(audioop.error,
-            audioop.findmax, ''.join( chr(x) for x in xrange(256)), -2392392)
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_issue7673(self):
-        state = None
-        for data, size in INVALID_DATA:
-            size2 = size
-            self.assertRaises(audioop.error, audioop.getsample, data, size, 0)
-            self.assertRaises(audioop.error, audioop.max, data, size)
-            self.assertRaises(audioop.error, audioop.minmax, data, size)
-            self.assertRaises(audioop.error, audioop.avg, data, size)
-            self.assertRaises(audioop.error, audioop.rms, data, size)
-            self.assertRaises(audioop.error, audioop.avgpp, data, size)
-            self.assertRaises(audioop.error, audioop.maxpp, data, size)
-            self.assertRaises(audioop.error, audioop.cross, data, size)
-            self.assertRaises(audioop.error, audioop.mul, data, size, 1.0)
-            self.assertRaises(audioop.error, audioop.tomono, data, size, 0.5, 
0.5)
-            self.assertRaises(audioop.error, audioop.tostereo, data, size, 
0.5, 0.5)
-            self.assertRaises(audioop.error, audioop.add, data, data, size)
-            self.assertRaises(audioop.error, audioop.bias, data, size, 0)
-            self.assertRaises(audioop.error, audioop.reverse, data, size)
-            self.assertRaises(audioop.error, audioop.lin2lin, data, size, 
size2)
-            self.assertRaises(audioop.error, audioop.ratecv, data, size, 1, 1, 
1, state)
-            self.assertRaises(audioop.error, audioop.lin2ulaw, data, size)
-            self.assertRaises(audioop.error, audioop.lin2alaw, data, size)
-            self.assertRaises(audioop.error, audioop.lin2adpcm, data, size, 
state)
-
-    @impl_detail(pypy=False, cpython=False)
-    def XXtest_wrongsize(self):
-        data = b'abcdefgh'
-        state = None
-        for size in (-1, 0, 3, 5, 1024):
-            self.assertRaises(audioop.error, audioop.ulaw2lin, data, size)
-            self.assertRaises(audioop.error, audioop.alaw2lin, data, size)
-            self.assertRaises(audioop.error, audioop.adpcm2lin, data, size, 
state)
-
-def test_main():
-    run_unittest(TestAudioop)
-
-if __name__ == '__main__':
-    test_main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/demo/x.py new/cffi-0.9.1/demo/x.py
--- old/cffi-0.9.0/demo/x.py    2015-01-28 17:18:01.000000000 +0100
+++ new/cffi-0.9.1/demo/x.py    1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-from cffi import FFI
-ffi = FFI()
-ffi.cdef("void myprint();")
-C = ffi.verify("""
-#include "test.c"
-""", include_dirs=['.'])
-C.myprint()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/doc/source/conf.py 
new/cffi-0.9.1/doc/source/conf.py
--- old/cffi-0.9.0/doc/source/conf.py   2015-03-03 10:33:11.000000000 +0100
+++ new/cffi-0.9.1/doc/source/conf.py   2015-03-08 09:06:59.000000000 +0100
@@ -47,7 +47,7 @@
 # The short X.Y version.
 version = '0.9'
 # The full version, including alpha/beta/rc tags.
-release = '0.9.0'
+release = '0.9.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/doc/source/index.rst 
new/cffi-0.9.1/doc/source/index.rst
--- old/cffi-0.9.0/doc/source/index.rst 2015-03-03 10:33:23.000000000 +0100
+++ new/cffi-0.9.1/doc/source/index.rst 2015-03-08 09:06:59.000000000 +0100
@@ -88,7 +88,7 @@
 
 Download and Installation:
 
-* http://pypi.python.org/packages/source/c/cffi/cffi-0.9.0.tar.gz
+* http://pypi.python.org/packages/source/c/cffi/cffi-0.9.1.tar.gz
 
    - Or grab the most current version by following the instructions below.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cffi-0.9.0/setup.py new/cffi-0.9.1/setup.py
--- old/cffi-0.9.0/setup.py     2015-03-03 10:32:34.000000000 +0100
+++ new/cffi-0.9.1/setup.py     2015-03-08 09:06:59.000000000 +0100
@@ -139,7 +139,7 @@
 
 `Mailing list <https://groups.google.com/forum/#!forum/python-cffi>`_
 """,
-        version='0.9.0',
+        version='0.9.1',
         packages=['cffi'],
         zip_safe=False,
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/distutils_module/build/lib.linux-x86_64-2.7/snip_basic_verify.py
 
new/cffi-0.9.1/testing/snippets/distutils_module/build/lib.linux-x86_64-2.7/snip_basic_verify.py
--- 
old/cffi-0.9.0/testing/snippets/distutils_module/build/lib.linux-x86_64-2.7/snip_basic_verify.py
    2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/distutils_module/build/lib.linux-x86_64-2.7/snip_basic_verify.py
    1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef("""     // some declarations from the man page
-    struct passwd {
-        char *pw_name;
-        ...;
-    };
-    struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify("""   // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[],    # or a list of libraries to link with
-     force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/distutils_package_1/build/lib.linux-x86_64-2.7/snip_basic_verify1/__init__.py
 
new/cffi-0.9.1/testing/snippets/distutils_package_1/build/lib.linux-x86_64-2.7/snip_basic_verify1/__init__.py
--- 
old/cffi-0.9.0/testing/snippets/distutils_package_1/build/lib.linux-x86_64-2.7/snip_basic_verify1/__init__.py
       2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/distutils_package_1/build/lib.linux-x86_64-2.7/snip_basic_verify1/__init__.py
       1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef("""     // some declarations from the man page
-    struct passwd {
-        char *pw_name;
-        ...;
-    };
-    struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify("""   // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[],    # or a list of libraries to link with
-     force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/distutils_package_2/build/lib.linux-x86_64-2.7/snip_basic_verify2/__init__.py
 
new/cffi-0.9.1/testing/snippets/distutils_package_2/build/lib.linux-x86_64-2.7/snip_basic_verify2/__init__.py
--- 
old/cffi-0.9.0/testing/snippets/distutils_package_2/build/lib.linux-x86_64-2.7/snip_basic_verify2/__init__.py
       2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/distutils_package_2/build/lib.linux-x86_64-2.7/snip_basic_verify2/__init__.py
       1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef("""     // some declarations from the man page
-    struct passwd {
-        char *pw_name;
-        ...;
-    };
-    struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify("""   // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[],    # or a list of libraries to link with
-     ext_package='snip_basic_verify2',
-     force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/infrastructure/build/lib.linux-x86_64-2.7/snip_infrastructure/__init__.py
 
new/cffi-0.9.1/testing/snippets/infrastructure/build/lib.linux-x86_64-2.7/snip_infrastructure/__init__.py
--- 
old/cffi-0.9.0/testing/snippets/infrastructure/build/lib.linux-x86_64-2.7/snip_infrastructure/__init__.py
   2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/infrastructure/build/lib.linux-x86_64-2.7/snip_infrastructure/__init__.py
   1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-
-def func():
-    return 42
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/setuptools_module/build/lib.linux-x86_64-2.7/snip_setuptools_verify.py
 
new/cffi-0.9.1/testing/snippets/setuptools_module/build/lib.linux-x86_64-2.7/snip_setuptools_verify.py
--- 
old/cffi-0.9.0/testing/snippets/setuptools_module/build/lib.linux-x86_64-2.7/snip_setuptools_verify.py
      2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/setuptools_module/build/lib.linux-x86_64-2.7/snip_setuptools_verify.py
      1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef("""     // some declarations from the man page
-    struct passwd {
-        char *pw_name;
-        ...;
-    };
-    struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify("""   // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[],    # or a list of libraries to link with
-     force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/setuptools_package_1/build/lib.linux-x86_64-2.7/snip_setuptools_verify1/__init__.py
 
new/cffi-0.9.1/testing/snippets/setuptools_package_1/build/lib.linux-x86_64-2.7/snip_setuptools_verify1/__init__.py
--- 
old/cffi-0.9.0/testing/snippets/setuptools_package_1/build/lib.linux-x86_64-2.7/snip_setuptools_verify1/__init__.py
 2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/setuptools_package_1/build/lib.linux-x86_64-2.7/snip_setuptools_verify1/__init__.py
 1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef("""     // some declarations from the man page
-    struct passwd {
-        char *pw_name;
-        ...;
-    };
-    struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify("""   // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[],    # or a list of libraries to link with
-     force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cffi-0.9.0/testing/snippets/setuptools_package_2/build/lib.linux-x86_64-2.7/snip_setuptools_verify2/__init__.py
 
new/cffi-0.9.1/testing/snippets/setuptools_package_2/build/lib.linux-x86_64-2.7/snip_setuptools_verify2/__init__.py
--- 
old/cffi-0.9.0/testing/snippets/setuptools_package_2/build/lib.linux-x86_64-2.7/snip_setuptools_verify2/__init__.py
 2014-04-30 11:16:17.000000000 +0200
+++ 
new/cffi-0.9.1/testing/snippets/setuptools_package_2/build/lib.linux-x86_64-2.7/snip_setuptools_verify2/__init__.py
 1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef("""     // some declarations from the man page
-    struct passwd {
-        char *pw_name;
-        ...;
-    };
-    struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify("""   // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[],    # or a list of libraries to link with
-     ext_package='snip_setuptools_verify2',
-     force_generic_engine=hasattr(sys, '_force_generic_engine_'))

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to