1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
From: Scott Anderson <o2e@saaworld.com>
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 <Martin.Jansa@gmail.com>
---
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]
|