ObjFW  Check-in [f588271db7]

Overview
Comment:OFLHAArchive: Add support for -pm0- files
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: f588271db7b4793806a5ee5eb6427d8ad4b04ff939754100f188a7383394e85f
User & Date: js on 2024-02-24 17:27:17
Other Links: manifest | tags
Context
2024-02-24
19:40
Make everything work on macOS Leopard again check-in: c3e83facc5 user: js tags: trunk
17:27
OFLHAArchive: Add support for -pm0- files check-in: f588271db7 user: js tags: trunk
17:24
OFLHAArchive: Ignore trailing garbage check-in: 35257251ec user: js tags: trunk
Changes

Modified src/OFLHAArchive.m from [26a6d95955] to [f4f3dda99f].

333
334
335
336
337
338
339
340

341
342
343
344
345
346
347
		else if ([compressionMethod isEqual: @"-lhx-"])
			_decompressedStream = [[OFLHADecompressingStream alloc]
			    of_initWithStream: stream
				 distanceBits: 5
			       dictionaryBits: 20];
		else if ([compressionMethod isEqual: @"-lh0-"] ||
		    [compressionMethod isEqual: @"-lhd-"] ||
		    [compressionMethod isEqual: @"-lz4-"])

			_decompressedStream = [stream retain];
		else
			@throw [OFUnsupportedVersionException
			    exceptionWithVersion: compressionMethod];

		_entry = [entry copy];
		_toRead = entry.uncompressedSize;







|
>







333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
		else if ([compressionMethod isEqual: @"-lhx-"])
			_decompressedStream = [[OFLHADecompressingStream alloc]
			    of_initWithStream: stream
				 distanceBits: 5
			       dictionaryBits: 20];
		else if ([compressionMethod isEqual: @"-lh0-"] ||
		    [compressionMethod isEqual: @"-lhd-"] ||
		    [compressionMethod isEqual: @"-lz4-"] ||
		    [compressionMethod isEqual: @"-pm0-"])
			_decompressedStream = [stream retain];
		else
			@throw [OFUnsupportedVersionException
			    exceptionWithVersion: compressionMethod];

		_entry = [entry copy];
		_toRead = entry.uncompressedSize;

Modified utils/ofarc/OFArc.m from [6f8333dc2e] to [e196e4c527].

559
560
561
562
563
564
565
566

567
568
569
570
571
572
573
		/* This one has to be first for obvious reasons */
		if ([path hasSuffix: @".tar.gz"] || [path hasSuffix: @".tgz"] ||
		    [path hasSuffix: @".TAR.GZ"] || [path hasSuffix: @".TGZ"])
			type = @"tgz";
		else if ([path hasSuffix: @".gz"] || [path hasSuffix: @".GZ"])
			type = @"gz";
		else if ([path hasSuffix: @".lha"] ||
		    [path hasSuffix: @".lzh"] || [path hasSuffix: @".lzs"])

			type = @"lha";
		else if ([path hasSuffix: @".tar"] || [path hasSuffix: @".TAR"])
			type = @"tar";
		else
			type = @"zip";
	}








|
>







559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
		/* This one has to be first for obvious reasons */
		if ([path hasSuffix: @".tar.gz"] || [path hasSuffix: @".tgz"] ||
		    [path hasSuffix: @".TAR.GZ"] || [path hasSuffix: @".TGZ"])
			type = @"tgz";
		else if ([path hasSuffix: @".gz"] || [path hasSuffix: @".GZ"])
			type = @"gz";
		else if ([path hasSuffix: @".lha"] ||
		    [path hasSuffix: @".lzh"] || [path hasSuffix: @".lzs"] ||
		    [path hasSuffix: @".pma"])
			type = @"lha";
		else if ([path hasSuffix: @".tar"] || [path hasSuffix: @".TAR"])
			type = @"tar";
		else
			type = @"zip";
	}