From e89cd8102231ef39e8c1e889f11440a919588f10 Mon Sep 17 00:00:00 2001
From: INADA Naoki <songofacandy@gmail.com>
Date: Fri, 28 Jan 2011 18:59:05 +0900
Subject: [PATCH] Add use_list option to unpack and unpackb

---
 python/msgpack/_msgpack.pyx | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/python/msgpack/_msgpack.pyx b/python/msgpack/_msgpack.pyx
index 9f817ddd..95641710 100644
--- a/python/msgpack/_msgpack.pyx
+++ b/python/msgpack/_msgpack.pyx
@@ -167,7 +167,7 @@ cdef extern from "unpack.h":
     object template_data(template_context* ctx)
 
 
-def unpackb(object packed, object object_hook=None, object list_hook=None):
+def unpackb(object packed, object object_hook=None, object list_hook=None, bint use_list=0):
     """Unpack packed_bytes to object. Returns an unpacked object."""
     cdef template_context ctx
     cdef size_t off = 0
@@ -178,7 +178,7 @@ def unpackb(object packed, object object_hook=None, object list_hook=None):
     PyObject_AsReadBuffer(packed, <const_void_ptr*>&buf, &buf_len)
 
     template_init(&ctx)
-    ctx.user.use_list = 0
+    ctx.user.use_list = use_list
     ctx.user.object_hook = ctx.user.list_hook = NULL
     if object_hook is not None:
         if not PyCallable_Check(object_hook):
@@ -196,9 +196,9 @@ def unpackb(object packed, object object_hook=None, object list_hook=None):
 
 loads = unpacks = unpackb
 
-def unpack(object stream, object object_hook=None, object list_hook=None):
+def unpack(object stream, object object_hook=None, object list_hook=None, bint use_list=0):
     """unpack an object from stream."""
-    return unpackb(stream.read(),
+    return unpackb(stream.read(), use_list=use_list,
                    object_hook=object_hook, list_hook=list_hook)
 
 cdef class UnpackIterator(object):