svn commit: trunk/busybox/archival: libunarchive

vda at busybox.net vda at busybox.net
Fri Oct 17 14:03:56 UTC 2008


Author: vda
Date: 2008-10-17 07:03:56 -0700 (Fri, 17 Oct 2008)
New Revision: 23704

Log:
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



Modified:
   trunk/busybox/archival/cpio.c
   trunk/busybox/archival/libunarchive/data_extract_all.c
   trunk/busybox/archival/libunarchive/get_header_cpio.c


Changeset:
Modified: trunk/busybox/archival/cpio.c
===================================================================
--- trunk/busybox/archival/cpio.c	2008-10-17 11:46:53 UTC (rev 23703)
+++ trunk/busybox/archival/cpio.c	2008-10-17 14:03:56 UTC (rev 23704)
@@ -344,5 +344,8 @@
 	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;
 }

Modified: trunk/busybox/archival/libunarchive/data_extract_all.c
===================================================================
--- trunk/busybox/archival/libunarchive/data_extract_all.c	2008-10-17 11:46:53 UTC (rev 23703)
+++ trunk/busybox/archival/libunarchive/data_extract_all.c	2008-10-17 14:03:56 UTC (rev 23704)
@@ -77,7 +77,9 @@
 		}
 		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);

Modified: trunk/busybox/archival/libunarchive/get_header_cpio.c
===================================================================
--- trunk/busybox/archival/libunarchive/get_header_cpio.c	2008-10-17 11:46:53 UTC (rev 23703)
+++ trunk/busybox/archival/libunarchive/get_header_cpio.c	2008-10-17 14:03:56 UTC (rev 23704)
@@ -27,6 +27,7 @@
 
 #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 @@
 
 	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;
 	}
 




More information about the busybox-cvs mailing list