Overview
Context
Changes
Modified utils/ofarc/Archive.h
from [5ec6829033]
to [41439c3fd1].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFObject.h"
#import "OFFile.h"
#import "OFArray.h"
OF_ASSUME_NONNULL_BEGIN
@protocol Archive <OFObject>
+ (instancetype)archiveWithPath: (OFString *)path
+ (instancetype)archiveWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding;
- (instancetype)initWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding;
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding;
- (instancetype)initWithPath: (OFString *)path
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding;
- (void)listFiles;
- (void)extractFiles: (OFArray OF_GENERIC(OFString *) *)files;
- (void)printFiles: (OFArray OF_GENERIC(OFString *) *)files;
@optional
- (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files;
@end
OF_ASSUME_NONNULL_END
|
Modified utils/ofarc/GZIPArchive.m
from [f819d2f5e4]
to [f5cd966d15].
︙ | | |
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
+
|
@implementation GZIPArchive
+ (void)initialize
{
if (self == [GZIPArchive class])
app = (OFArc *)[OFApplication sharedApplication].delegate;
}
+ (instancetype)archiveWithPath: (OFString *)path
+ (instancetype)archiveWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
return [[[self alloc] initWithStream: stream
mode: mode
encoding: encoding] autorelease];
return [[[self alloc] initWithPath: path
stream: stream
mode: mode
encoding: encoding] autorelease];
}
- (instancetype)initWithPath: (OFString *)path
- (instancetype)initWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
self = [super init];
@try {
_stream = [[OFGZIPStream alloc] initWithStream: stream
mode: mode];
} @catch (id e) {
|
︙ | | |
Modified utils/ofarc/LHAArchive.m
from [f59c7fc9d2]
to [e1794bea79].
︙ | | |
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
+
|
@implementation LHAArchive
+ (void)initialize
{
if (self == [LHAArchive class])
app = (OFArc *)[OFApplication sharedApplication].delegate;
}
+ (instancetype)archiveWithPath: (OFString *)path
+ (instancetype)archiveWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
return [[[self alloc] initWithStream: stream
mode: mode
encoding: encoding] autorelease];
return [[[self alloc] initWithPath: path
stream: stream
mode: mode
encoding: encoding] autorelease];
}
- (instancetype)initWithPath: (OFString *)path
- (instancetype)initWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
self = [super init];
@try {
_archive = [[OFLHAArchive alloc] initWithStream: stream
mode: mode];
|
︙ | | |
Modified utils/ofarc/OFArc.m
from [eb89655310]
to [5c5bcb3795].
︙ | | |
530
531
532
533
534
535
536
537
538
539
540
541
542
543
|
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
|
+
+
|
case 'p':
case 'x':
file = OFStdIn;
break;
default:
@throw [OFInvalidArgumentException exception];
}
path = nil;
} else {
@try {
file = [OFFile fileWithPath: path mode: fileModeString];
} @catch (OFOpenItemFailedException *e) {
OFString *error = [OFString
stringWithCString: strerror(e.errNo)
encoding: [OFLocale encoding]];
|
︙ | | |
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
|
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
|
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
|
type = @"tar";
else
type = @"zip";
}
@try {
if ([type isEqual: @"gz"])
archive = [GZIPArchive archiveWithStream: file
mode: modeString
encoding: encoding];
archive = [GZIPArchive archiveWithPath: path
stream: file
mode: modeString
encoding: encoding];
else if ([type isEqual: @"lha"])
archive = [LHAArchive archiveWithStream: file
mode: modeString
encoding: encoding];
archive = [LHAArchive archiveWithPath: path
stream: file
mode: modeString
encoding: encoding];
else if ([type isEqual: @"tar"])
archive = [TarArchive archiveWithStream: file
mode: modeString
encoding: encoding];
archive = [TarArchive archiveWithPath: path
stream: file
mode: modeString
encoding: encoding];
else if ([type isEqual: @"tgz"]) {
OFStream *GZIPStream = [OFGZIPStream
streamWithStream: file
mode: modeString];
archive = [TarArchive archiveWithStream: GZIPStream
mode: modeString
encoding: encoding];
archive = [TarArchive archiveWithPath: path
stream: GZIPStream
mode: modeString
encoding: encoding];
} else if ([type isEqual: @"zip"])
archive = [ZIPArchive archiveWithStream: file
mode: modeString
encoding: encoding];
archive = [ZIPArchive archiveWithPath: path
stream: file
mode: modeString
encoding: encoding];
else {
[OFStdErr writeLine: OF_LOCALIZED(
@"unknown_archive_type",
@"Unknown archive type: %[type]",
@"type", type)];
goto error;
}
|
︙ | | |
Modified utils/ofarc/TarArchive.m
from [9bead949cb]
to [67f5b716a2].
︙ | | |
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
+
|
@implementation TarArchive
+ (void)initialize
{
if (self == [TarArchive class])
app = (OFArc *)[OFApplication sharedApplication].delegate;
}
+ (instancetype)archiveWithPath: (OFString *)path
+ (instancetype)archiveWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
return [[[self alloc] initWithStream: stream
mode: mode
encoding: encoding] autorelease];
return [[[self alloc] initWithPath: path
stream: stream
mode: mode
encoding: encoding] autorelease];
}
- (instancetype)initWithPath: (OFString *)path
- (instancetype)initWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
self = [super init];
@try {
_archive = [[OFTarArchive alloc] initWithStream: stream
mode: mode];
|
︙ | | |
Modified utils/ofarc/ZIPArchive.m
from [110299511c]
to [6d356b2e44].
︙ | | |
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
+
|
@implementation ZIPArchive
+ (void)initialize
{
if (self == [ZIPArchive class])
app = (OFArc *)[OFApplication sharedApplication].delegate;
}
+ (instancetype)archiveWithPath: (OFString *)path
+ (instancetype)archiveWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
return [[[self alloc] initWithStream: stream
mode: mode
encoding: encoding] autorelease];
return [[[self alloc] initWithPath: path
stream: stream
mode: mode
encoding: encoding] autorelease];
}
- (instancetype)initWithPath: (OFString *)path
- (instancetype)initWithStream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
stream: (OF_KINDOF(OFStream *))stream
mode: (OFString *)mode
encoding: (OFStringEncoding)encoding
{
self = [super init];
@try {
_archive = [[OFZIPArchive alloc] initWithStream: stream
mode: mode];
} @catch (id e) {
|
︙ | | |