data_extract_all: do not complain if directory exists on mkdir
rpm/cpio: move "20653 blocks" printout from get_header_cpio to cpio_main - rpm doesn't want to have that
This commit is contained in:
parent
aa9eb1fc67
commit
d83676ec47
@ -344,5 +344,8 @@ int cpio_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
while (get_header_cpio(archive_handle) == EXIT_SUCCESS)
|
while (get_header_cpio(archive_handle) == EXIT_SUCCESS)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/* see get_header_cpio */
|
||||||
|
printf("%lu blocks\n", (unsigned long)(ptrdiff_t)(archive_handle->ah_priv[2]));
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,9 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
|
|||||||
}
|
}
|
||||||
case S_IFDIR:
|
case S_IFDIR:
|
||||||
res = mkdir(file_header->name, file_header->mode);
|
res = mkdir(file_header->name, file_header->mode);
|
||||||
if ((res == -1) && (errno != EISDIR)
|
if ((res == -1)
|
||||||
|
&& (errno != EISDIR) /* btw, Linux doesn't return this */
|
||||||
|
&& (errno != EEXIST)
|
||||||
&& !(archive_handle->ah_flags & ARCHIVE_EXTRACT_QUIET)
|
&& !(archive_handle->ah_flags & ARCHIVE_EXTRACT_QUIET)
|
||||||
) {
|
) {
|
||||||
bb_perror_msg("cannot make dir %s", file_header->name);
|
bb_perror_msg("cannot make dir %s", file_header->name);
|
||||||
|
@ -27,6 +27,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
|
|||||||
|
|
||||||
#define hardlinks_to_create (*(hardlinks_t **)(&archive_handle->ah_priv[0]))
|
#define hardlinks_to_create (*(hardlinks_t **)(&archive_handle->ah_priv[0]))
|
||||||
#define created_hardlinks (*(hardlinks_t **)(&archive_handle->ah_priv[1]))
|
#define created_hardlinks (*(hardlinks_t **)(&archive_handle->ah_priv[1]))
|
||||||
|
#define block_count (archive_handle->ah_priv[2])
|
||||||
// if (!archive_handle->ah_priv_inited) {
|
// if (!archive_handle->ah_priv_inited) {
|
||||||
// archive_handle->ah_priv_inited = 1;
|
// archive_handle->ah_priv_inited = 1;
|
||||||
// hardlinks_to_create = NULL;
|
// hardlinks_to_create = NULL;
|
||||||
@ -76,7 +77,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
|
|||||||
|
|
||||||
if (strcmp(file_header->name, "TRAILER!!!") == 0) {
|
if (strcmp(file_header->name, "TRAILER!!!") == 0) {
|
||||||
/* Always round up. ">> 9" divides by 512 */
|
/* Always round up. ">> 9" divides by 512 */
|
||||||
printf("%"OFF_FMT"u blocks\n", (archive_handle->offset + 511) >> 9);
|
block_count = (void*)(ptrdiff_t) ((archive_handle->offset + 511) >> 9);
|
||||||
goto create_hardlinks;
|
goto create_hardlinks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user