CFPropertyList 2.2.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rbBinaryCFPropertyList.rb +13 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2981869849555b1191a490d703cc2f79bb322a6
|
4
|
+
data.tar.gz: ffed3e7815aed638c812435432fa0a793af3d39d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95b2b7dcb15553efdd3d5dd80cb0f5d5ff28a0e0c8431a27bc6a896ddb74bd050516d4c58a8373a62302d9a124ccb2a6768562157f43c2276408cc2cc16ed8e5
|
7
|
+
data.tar.gz: a8e86273c778acdfe0335b481f8fed5f15002a6af6adba33908b9f979d21d075bc2d1249d52f8e4d5701395174359c36cf9416c4e3f7274c2025c62d7c09f1e4
|
@@ -258,6 +258,16 @@ module CFPropertyList
|
|
258
258
|
end
|
259
259
|
protected :read_binary_unicode_string
|
260
260
|
|
261
|
+
def unpack_with_size(nbytes, buff)
|
262
|
+
format = ["C*", "n*", "N*", "N*"][nbytes - 1];
|
263
|
+
|
264
|
+
if nbytes == 3
|
265
|
+
buff = "\0" + buff.scan(/.{1,3}/).join("\0")
|
266
|
+
end
|
267
|
+
|
268
|
+
return buff.unpack(format)
|
269
|
+
end
|
270
|
+
|
261
271
|
# Read an binary array value, including contained objects
|
262
272
|
def read_binary_array(fname,fd,length)
|
263
273
|
ary = []
|
@@ -265,7 +275,7 @@ module CFPropertyList
|
|
265
275
|
# first: read object refs
|
266
276
|
if(length != 0)
|
267
277
|
buff = fd.read(length * @object_ref_size)
|
268
|
-
objects = buff.unpack(@object_ref_size == 1 ? "C*" : "n*")
|
278
|
+
objects = unpack_with_size(@object_ref_size, buff) #buff.unpack(@object_ref_size == 1 ? "C*" : "n*")
|
269
279
|
|
270
280
|
# now: read objects
|
271
281
|
0.upto(length-1) do |i|
|
@@ -285,11 +295,11 @@ module CFPropertyList
|
|
285
295
|
# first: read keys
|
286
296
|
if(length != 0) then
|
287
297
|
buff = fd.read(length * @object_ref_size)
|
288
|
-
keys = buff.unpack(@object_ref_size == 1 ? "C*" : "n*")
|
298
|
+
keys = unpack_with_size(@object_ref_size, buff) #buff.unpack(@object_ref_size == 1 ? "C*" : "n*")
|
289
299
|
|
290
300
|
# second: read object refs
|
291
301
|
buff = fd.read(length * @object_ref_size)
|
292
|
-
objects = buff.unpack(@object_ref_size == 1 ? "C*" : "n*")
|
302
|
+
objects = unpack_with_size(@object_ref_size, buff) #buff.unpack(@object_ref_size == 1 ? "C*" : "n*")
|
293
303
|
|
294
304
|
# read real keys and objects
|
295
305
|
0.upto(length-1) do |i|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: CFPropertyList
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Kruse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|