@@ -21,27 +21,14 @@ register-codec [
21
21
cmp-size:
22
22
unc-size: 0
23
23
24
- log-info : func [ msg] [
25
- if block? msg [msg: reform msg]
26
- print rejoin [" ^[ [1;33m[ZIP] ^[ [36m" msg "^[ [0m" ]
27
- ]
28
- log-more : func [ msg] [
29
- if block? msg [msg: reform msg]
30
- print rejoin [" ^[ [33m[ZIP] ^[ [0;36m" msg "^[ [0m" ]
31
- ]
32
- log-debug : func [ msg] [
33
- if block? msg [msg: reform msg]
34
- print rejoin [" ^[ [33m[ZIP] ^[ [0;32m" msg "^[ [0m" ]
35
- ]
36
-
37
24
decompress* : func [
38
25
data [binary! ]
39
26
validate [logic! ]
40
27
/local output crc2
41
28
] [
42
29
if verbose > 0 [
43
- log- info [
44
- "Decompressing : ^[ [33m" name
30
+ sys / log/ info 'ZIP [
31
+ "Extracting : ^[ [33m" name
45
32
" ^[ [0mbytes:^[ [33m" cmp-size "^[ [0m->^[ [33m" unc-size
46
33
]
47
34
]
@@ -86,7 +73,7 @@ register-codec [
86
73
zip-data: read zip-data
87
74
]
88
75
if verbose > 0 [
89
- print ["^[ [1;32mDecode ZIP data^[ [m (^[ [1m" length? zip-data "^[ [mbytes )" ]
76
+ sys /log/info 'ZIP ["^[ [1;32mDecode ZIP data^[ [m (^[ [1m" length? zip-data "^[ [mbytes )" ]
90
77
]
91
78
bin: binary zip-data
92
79
@@ -101,23 +88,23 @@ register-codec [
101
88
binary/read bin [AT :pos type: UI32LE]
102
89
switch /default type [
103
90
134695760 [ ;#{08074B50}
104
- if verbose > 1 [log- more "Data Descriptor" ]
91
+ if verbose > 1 [sys / log/ more 'ZIP "Data Descriptor" ]
105
92
binary/read bin [
106
93
crc: SI32LE
107
94
cmp-size: UI32LE ; compressed size
108
95
unc-size: UI32LE ; uncompressed size
109
96
]
110
97
111
98
if all [only not find files name][
112
- if verbose > 1 [log- debug "not extracting" ]
99
+ if verbose > 1 [sys / log/ debug 'ZIP "not extracting" ]
113
100
continue
114
101
]
115
102
116
103
either all [name data-pos > 0 ] [
117
104
data: decompress* at zip-data :data-pos any [validate validate-crc?]
118
105
repend result [name reduce [modified crc data]]
119
106
][
120
- if verbose > 0 [log- info [ "Decompressing : ^[ [33m" name]]
107
+ if verbose > 0 [sys / log/ info 'ZIP [ "Extracting : ^[ [33m" name]]
121
108
repend result [name none]
122
109
]
123
110
@@ -127,7 +114,7 @@ register-codec [
127
114
]
128
115
]
129
116
67324752 [ ;#{04034B50}
130
- if verbose > 1 [log- more "Local file header" ]
117
+ if verbose > 1 [sys / log/ more 'ZIP "Local file header" ]
131
118
header: binary/read bin [
132
119
UI16LE ; version
133
120
flags: BITSET16 ; flags
@@ -142,7 +129,7 @@ register-codec [
142
129
extr: BYTES :len-extr
143
130
data-pos: INDEX
144
131
]
145
- if verbose > 2 [log- debug mold header]
132
+ if verbose > 2 [sys / log/ debug 'ZIP mold header]
146
133
name: to file! name
147
134
if all [
148
135
flags/12 ; bit 3
@@ -152,20 +139,20 @@ register-codec [
152
139
][
153
140
; The correct values are put in the data descriptor
154
141
; immediately following the compressed data.
155
- if verbose > 1 [log- debug "waiting for Data Descriptor" ]
142
+ if verbose > 1 [sys / log/ debug 'ZIP "waiting for Data Descriptor" ]
156
143
continue
157
144
]
158
145
159
146
if all [only not find files name][
160
- if verbose > 1 [log- debug "not extracting" ]
147
+ if verbose > 1 [sys / log/ debug 'ZIP "not extracting" ]
161
148
continue
162
149
]
163
150
164
151
either all [unc-size > 0 ] [
165
152
data: decompress* bin/buffer any [validate validate-crc?]
166
153
repend result [name reduce [modified crc data]]
167
154
][
168
- if verbose > 0 [log- info [ "Decompressing : ^[ [33m" name]]
155
+ if verbose > 0 [sys / log/ info 'ZIP [ "Extracting : ^[ [33m" name]]
169
156
repend result [name none]
170
157
]
171
158
if only [
@@ -174,7 +161,7 @@ register-codec [
174
161
]
175
162
]
176
163
33639248 [ ;#{02014B50}
177
- if verbose > 1 [log- more "Central directory structure" ]
164
+ if verbose > 1 [sys / log/ more 'ZIP "Central directory structure" ]
178
165
cheader: binary/read bin [
179
166
UI16LE ; version made by
180
167
UI16LE ; version needed to extract
@@ -195,11 +182,11 @@ register-codec [
195
182
extr: BYTES :len-extr
196
183
comm: BYTES :len-comm
197
184
]
198
- if verbose > 2 [log- debug mold cheader]
199
- unless empty? comm [log- info ["Comment: ^[ [33m" to-string comm "^[ [0m" mold to file! name]]
185
+ if verbose > 2 [sys / log/ debug 'ZIP mold cheader]
186
+ unless empty? comm [sys / log/ info 'ZIP ["Comment: ^[ [33m" to-string comm "^[ [0m" mold to file! name]]
200
187
]
201
188
101010256 [ ;#{06054B50}
202
- if verbose > 1 [log- more "End of central directory record" ]
189
+ if verbose > 1 [sys / log/ more 'ZIP "End of central directory record" ]
203
190
data: binary/read bin [
204
191
UI16LE ; number of this disk
205
192
UI16LE ; number of the disk with the start of the central directory
@@ -210,10 +197,10 @@ register-codec [
210
197
len: UI16LE ; .ZIP file comment length
211
198
BYTES :len ; .ZIP file comment
212
199
]
213
- if verbose > 2 [log- debug mold data]
200
+ if verbose > 2 [sys / log/ debug 'ZIP mold data]
214
201
]
215
202
101075792 [ ;#{06064b50}
216
- if verbose > 1 [log- more "Zip64 end of central directory record" ]
203
+ if verbose > 1 [sys / log/ more 'ZIP "Zip64 end of central directory record" ]
217
204
data: binary/read bin [
218
205
UI64LE ; directory record
219
206
UI16LE ; version made by
@@ -226,10 +213,10 @@ register-codec [
226
213
UI64LE ; offset of start of central directory with respect to the starting disk number
227
214
;@@BYTES ?? ; zip64 extensible data sector (variable size)
228
215
]
229
- if verbose > 2 [log- debug mold data]
216
+ if verbose > 2 [sys / log/ debug 'ZIP mold data]
230
217
]
231
218
][
232
- if verbose > 1 [log- more ["Unknown ZIP signature:" mold skip to-binary type 4 ]]
219
+ if verbose > 1 [sys / log/ more 'ZIP ["Unknown ZIP signature:" mold skip to-binary type 4 ]]
233
220
]
234
221
]
235
222
buffer: none ; cleanup
@@ -251,6 +238,6 @@ register-codec [
251
238
]
252
239
]
253
240
validate-crc?: true
254
- verbose: 1
241
+ verbose: 3
255
242
level: 9
256
243
]
0 commit comments