@@ -258,7 +258,7 @@ def _fb_unpack(self, execute=EX_CONSTRUCT, write_bytes=None):
258258 obj = struct .unpack ("b" , chr (b ))[0 ]
259259 elif b & 0b11100000 == 0b10100000 :
260260 n = b & 0b00011111
261- obj = struct . unpack ( "%ds" % n , self ._fb_read (n , write_bytes ))[ 0 ]
261+ obj = self ._fb_read (n , write_bytes )
262262 typ = TYPE_RAW
263263 elif b & 0b11110000 == 0b10010000 :
264264 n = b & 0b00001111
@@ -294,11 +294,11 @@ def _fb_unpack(self, execute=EX_CONSTRUCT, write_bytes=None):
294294 obj = struct .unpack (">q" , self ._fb_read (8 , write_bytes ))[0 ]
295295 elif b == 0xda :
296296 n = struct .unpack (">H" , self ._fb_read (2 , write_bytes ))[0 ]
297- obj = struct . unpack ( "%ds" % n , self ._fb_read (n , write_bytes ))[ 0 ]
297+ obj = self ._fb_read (n , write_bytes )
298298 typ = TYPE_RAW
299299 elif b == 0xdb :
300300 n = struct .unpack (">I" , self ._fb_read (4 , write_bytes ))[0 ]
301- obj = struct . unpack ( "%ds" % n , self ._fb_read (n , write_bytes ))[ 0 ]
301+ obj = self ._fb_read (n , write_bytes )
302302 typ = TYPE_RAW
303303 elif b == 0xdc :
304304 n = struct .unpack (">H" , self ._fb_read (2 , write_bytes ))[0 ]
@@ -433,9 +433,11 @@ def _pack(self, obj, nest_limit=DEFAULT_RECURSE_LIMIT):
433433 self .buffer .write (chr (0xa0 + n ))
434434 return self .buffer .write (obj )
435435 if n <= 0xffff :
436- return self .buffer .write (struct .pack (">BH%ds" % n ,0xda , n , obj ))
436+ self .buffer .write (struct .pack (">BH" , 0xda , n ))
437+ return self .buffer .write (obj )
437438 if n <= 0xffffffff :
438- return self .buffer .write (struct .pack (">BI%ds" % n ,0xdb , n , obj ))
439+ self .buffer .write (struct .pack (">BI" , 0xdb , n ))
440+ return self .buffer .write (obj )
439441 raise PackValueError ("String is too large" )
440442 if isinstance (obj , float ):
441443 if self .use_float :
0 commit comments