1
2
3
4
5
6
7
8
9
10
11
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
* 2018, 2019, 2020
* Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
<
<
|
|
1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2008-2021 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
.stringByDeletingPathExtension;
if (app->_outputLevel >= 0)
[of_stdout writeString: OF_LOCALIZED(@"extracting_file",
@"Extracting %[file]...",
@"file", fileName)];
if (![app shouldExtractFile: fileName
outFileName: fileName])
return;
output = [OFFile fileWithPath: fileName
mode: @"w"];
setPermissions(fileName, app->_archivePath);
while (!_stream.atEndOfStream) {
ssize_t length = [app copyBlockFromStream: _stream
toStream: output
fileName: fileName];
|
|
<
|
<
|
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
.stringByDeletingPathExtension;
if (app->_outputLevel >= 0)
[of_stdout writeString: OF_LOCALIZED(@"extracting_file",
@"Extracting %[file]...",
@"file", fileName)];
if (![app shouldExtractFile: fileName outFileName: fileName])
return;
output = [OFFile fileWithPath: fileName mode: @"w"];
setPermissions(fileName, app->_archivePath);
while (!_stream.atEndOfStream) {
ssize_t length = [app copyBlockFromStream: _stream
toStream: output
fileName: fileName];
|