Mercurial > cpython-lru_cache-weakref
annotate Mac/scripts/cfmfile.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 3d7890236a4e |
| children | 5e48d83c0fce |
| rev | line source |
|---|---|
|
5419
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 """cfmfile - Interface to code fragments on file""" |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 import struct |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 import Res |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 import macfs |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 import string |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 Error = 'cfmfile.Error' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 READ = 1 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 WRITE = 2 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 smAllScripts = -3 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 BUFSIZE = 0x100000 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 class FragmentInfo: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 """Information on a single fragment""" |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 def __init__(self): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 self.arch = 'pwpc' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 self.current_version = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 self.oldest_version = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 self.stacksize = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 self.libdir = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 self.fragtype = 1 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 self.location = 1 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 self.offset = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 self.length = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 self.res_0 = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 self.res_1 = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 self.name = '' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 self.ifp = None |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 def load(self, data): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 if len(data) < 43: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 raise Error, 'Not enough data in cfrg resource' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 self.arch = data[:4] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 self.update, self.current_version, self.oldest_version, \ |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 self.stacksize, self.libdir, self.fragtype, self.location, \ |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 self.offset, self.length, self.res_0, self.res_1, length = \ |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 struct.unpack("llllhbbllllh", data[4:42]) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 namelen = ord(data[42]) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 self.name = data[43:43+namelen] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 if len(self.name) != namelen: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 raise Error, 'Not enough data in cfrg resource' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 return length |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 def save(self): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 length = (43+len(self.name)+3) & ~3 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 data = self.arch + struct.pack("llllhbbllllh", self.update, \ |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 self.current_version, self.oldest_version, self.stacksize, \ |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 self.libdir, self.fragtype, self.location, self.offset, \ |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 self.length, self.res_0, self.res_1, length) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 data = data + chr(len(self.name)) + self.name |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 data = data + ('\0'*(length-len(data))) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 return data |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 def copydata(self, ofp): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 """Copy fragment data to a new file, updating self.offset""" |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 if self.location != 1: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 raise Error, 'Can only copy kOnDiskFlat (data fork) fragments' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 if not self.ifp: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 raise Error, 'No source file for fragment' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 # Find out real length (if zero) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 if self.length == 0: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 self.ifp.seek(0, 2) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 self.length = self.ifp.tell() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 # Position input file and record new offset from output file |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 self.ifp.seek(self.offset) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 self.offset = ofp.tell() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 l = self.length |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 while l: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 if l > BUFSIZE: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 ofp.write(self.ifp.read(BUFSIZE)) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 l = l - BUFSIZE |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 else: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 ofp.write(self.ifp.read(l)) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 l = 0 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 self.ifp = ofp |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 def setfile(self, ifp): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 self.ifp = ifp |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 class FragmentResource: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
82 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 def __init__(self, data): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 self.load(data) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 def load(self, data): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 r0, r1, version, r3, r4, r5, r6, nfrag = struct.unpack("llllllll", data[:32]) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 if version != 1: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 raise Error, 'Unsupported cfrg version number %d'%version |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 data = data[32:] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 self.fragments = [] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 for i in range(nfrag): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
93 f = FragmentInfo() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 len = f.load(data) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
95 data = data[len:] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
96 self.fragments.append(f) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
97 if data: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 raise Error, 'Spurious data after fragment descriptions' |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 def save(self): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
101 data = struct.pack("llllllll", 0, 0, 1, 0, 0, 0, 0, len(self.fragments)) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
102 for f in self.fragments: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 data = data+f.save() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 return data |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
106 def setfile(self, ifp): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 for f in self.fragments: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 f.setfile(ifp) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
109 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
110 def copydata(self, ofp): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
111 for f in self.fragments: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
112 f.copydata(ofp) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
113 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
114 def getfragments(self): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
115 return self.fragments |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
116 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
117 def addfragments(self, fragments): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
118 self.fragments = self.fragments + fragments |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
119 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
120 class ResourceCollection: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
121 def __init__(self, fhandle): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 self.reslist = [] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
123 self.fhandle = fhandle |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
124 oldresfile = Res.CurResFile() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
125 Res.UseResFile(fhandle) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
126 Res.SetResLoad(0) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
127 ntypes = Res.Count1Types() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
128 for itype in range(1, 1+ntypes): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
129 type = Res.Get1IndType(itype) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
130 nresources = Res.Count1Resources(type) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
131 for ires in range(1, 1+nresources): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
132 res = Res.Get1IndResource(type, ires) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
133 id, type, name = res.GetResInfo() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
134 self.reslist.append((type, id)) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
135 Res.SetResLoad(1) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
136 Res.UseResFile(oldresfile) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
137 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
138 def contains(self, type, id): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
139 return (type, id) in self.reslist |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
140 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
141 def getresource(self, type, id): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
142 oldresfile = Res.CurResFile() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
143 Res.UseResFile(self.fhandle) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
144 Res.SetResLoad(1) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
145 resource = Res.Get1Resource(type, id) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
146 Res.UseResFile(oldresfile) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
147 return resource |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
148 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
149 def saveresto(self, type, id, fhandle): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
150 oldresfile = Res.CurResFile() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
151 resource = self.getresource(type, id) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
152 id, type, name = resource.GetResInfo() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
153 resource.DetachResource() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
154 Res.UseResFile(fhandle) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
155 resource.AddResource(type, id, name) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
156 Res.UseResFile(oldresfile) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
157 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
158 def getreslist(self): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
159 return self.reslist |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
160 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
161 class CfmFile(ResourceCollection, FragmentResource): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
163 def __init__(self, fsspec): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
164 rfork = Res.FSpOpenResFile(fsspec, READ) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
165 dfork = open(fsspec.as_pathname(), 'rb') |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 ResourceCollection.__init__(self, rfork) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
167 cfrg_resource = self.getresource('cfrg', 0) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
168 FragmentResource.__init__(self, cfrg_resource.data) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 self.setfile(dfork) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 def mergecfmfiles(inputs, output): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
172 # Convert inputs/outputs to fsspecs |
|
5434
3d7890236a4e
Sometimes tried to modify a tuple. Fixed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5419
diff
changeset
|
173 inputs = map(None, inputs) |
|
5419
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
174 for i in range(len(inputs)): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
175 if type(inputs[i]) == type(''): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
176 inputs[i] = macfs.FSSpec(inputs[i]) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
177 if type(output) == type(''): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
178 output = macfs.FSSpec(output) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
179 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
180 input_list = [] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
181 for i in inputs: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
182 input_list.append(CfmFile(i)) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
183 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
184 # Create output file, if needed |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
185 creator, tp = inputs[0].GetCreatorType() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
186 try: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
187 Res.FSpCreateResFile(output, creator, tp, smAllScripts) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
188 except Res.Error: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
189 pass |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
190 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
191 # Copy fragments |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
192 dfork = open(output.as_pathname(), 'wb') |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
193 for i in input_list: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
194 i.copydata(dfork) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
195 dfork.close() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
196 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
197 # Merge cfrg's |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
198 for i in input_list[1:]: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
199 input_list[0].addfragments(i.getfragments()) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
200 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
201 old_res_file = Res.CurResFile() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
202 rfork = Res.FSpOpenResFile(output, WRITE) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
203 Res.UseResFile(rfork) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
204 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
205 # Write cfrg |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
206 data = input_list[0].save() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
207 cfrg_resource = Res.Resource(data) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 cfrg_resource.AddResource('cfrg', 0, '') |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
209 resources_done = [('cfrg', 0)] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
210 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
211 # Write other resources |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
212 for i in input_list: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
213 todo = i.getreslist() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
214 for tp, id in todo: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
215 if (tp, id) in resources_done: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
216 continue |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
217 i.saveresto(tp, id, rfork) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
218 resources_done.append(tp, id) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
219 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
220 def main(): |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
221 list = [] |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
222 while 1: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
223 fss, ok = macfs.PromptGetFile("Next input file:", "shlb", "APPL") |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
224 if not ok: break |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
225 list.append(fss) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
226 if not list: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
227 sys.exit(0) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
228 output, ok = macfs.StandardPutFile("Output file:") |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
229 if not ok: |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
230 sys.exit(0) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
231 mergecfmfiles(list, output) |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
232 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
233 if __name__ == '__main__': |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
234 main() |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
235 |
|
d9941a895c02
Module to merge 'cfrg' resources (to create fat ppc/cfm68k programs
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
236 |
