##// END OF EJS Templates
util: introduce unpacker...
Matt Mackall -
r23789:94951db8 default
parent child Browse files
Show More
@@ -19,7 +19,7 b' import error, osutil, encoding'
19 import errno, shutil, sys, tempfile, traceback
19 import errno, shutil, sys, tempfile, traceback
20 import re as remod
20 import re as remod
21 import os, time, datetime, calendar, textwrap, signal, collections
21 import os, time, datetime, calendar, textwrap, signal, collections
22 import imp, socket, urllib
22 import imp, socket, urllib, struct
23 import gc
23 import gc
24
24
25 if os.name == 'nt':
25 if os.name == 'nt':
@@ -229,6 +229,15 b' except NameError:'
229 import subprocess
229 import subprocess
230 closefds = os.name == 'posix'
230 closefds = os.name == 'posix'
231
231
232 def unpacker(fmt):
233 """create a struct unpacker for the specified format"""
234 try:
235 # 2.5+
236 return struct.Struct(fmt).unpack
237 except NameError:
238 # 2.4
239 return lambda buf: struct.unpack(fmt)
240
232 def popen2(cmd, env=None, newlines=False):
241 def popen2(cmd, env=None, newlines=False):
233 # Setting bufsize to -1 lets the system decide the buffer size.
242 # Setting bufsize to -1 lets the system decide the buffer size.
234 # The default for bufsize is 0, meaning unbuffered. This leads to
243 # The default for bufsize is 0, meaning unbuffered. This leads to
General Comments 0
You need to be logged in to leave comments. Login now