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
No binary (build failed)
—
(log yok)
| @@ -344,5 +344,8 @@ int cpio_main(int argc UNUSED_PARAM, char **argv) | |
| while (get_header_cpio(archive_handle) == EXIT_SUCCESS) | |
| continue; | |
| + | /* see get_header_cpio */ |
| + | printf("%lu blocks\n", (unsigned long)(ptrdiff_t)(archive_handle->ah_priv[2])); |
| + | |
| return EXIT_SUCCESS; | |
| } | |
| @@ -77,7 +77,9 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle) | |
| } | |
| case S_IFDIR: | |
| 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) | |
| ) { | |
| 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 created_hardlinks (*(hardlinks_t **)(&archive_handle->ah_priv[1])) | |
| + | #define block_count (archive_handle->ah_priv[2]) |
| // if (!archive_handle->ah_priv_inited) { | |
| // archive_handle->ah_priv_inited = 1; | |
| // 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) { | |
| /* 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; | |
| } | |