From: Scott Anderson Date: Thu, 29 Mar 2012 10:46:34 +0200 Subject: [PATCH] arfile.py: handle six digit UIDs * Essentially, the problem is that arfile.py is splitting the ar header with white-space instead of fixed-width fields, so two fields would get treated as a single field. This makes things better than before as it now honors the fixed field widths. Signed-off-by: Martin Jansa --- arfile.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arfile.py b/arfile.py index 22548af..8291a2d 100644 --- a/arfile.py +++ b/arfile.py @@ -75,7 +75,12 @@ class ArFile: l = self.f.readline() if not l: break l = l.replace('`', '') - descriptor = l.split() + # Field lengths from /usr/include/ar.h: + ar_field_lens = [ 16, 12, 6, 6, 8, 10, 2 ] + descriptor = [] + for field_len in ar_field_lens: + descriptor.append(l[:field_len].strip()) + l = l[field_len:] # print descriptor size = int(descriptor[5]) memberName = descriptor[0][:-1]