Vladimir N. Oleynik writes:
[oweals/busybox.git] / archival / unzip.c
index 5a22d242a128de90e8b6103916ff63f780e2eead..f2d7f491865368eff5d55e8dc3037274fe1b995e 100644 (file)
@@ -120,12 +120,12 @@ extern int unzip_main(int argc, char **argv)
                                break;
 #endif
                        default:
-                               show_usage();
+                               bb_show_usage();
                }
        }
 
        if (argc == optind) {
-               show_usage();
+               bb_show_usage();
        }
 
        printf("Archive:  %s\n", argv[optind]);
@@ -136,17 +136,18 @@ extern int unzip_main(int argc, char **argv)
 
        if (*argv[optind] == '-') {
                archive_handle->src_fd = fileno(stdin);
-               } else {
-               archive_handle->src_fd = xopen(argv[optind++], O_RDONLY);
-               }
+               archive_handle->seek = seek_by_char;
+       } else {
+               archive_handle->src_fd = bb_xopen(argv[optind++], O_RDONLY);
+       }
 
        if ((base_dir) && (chdir(base_dir))) {
-               perror_msg_and_die("Couldnt chdir");
-               }
+               bb_perror_msg_and_die("Couldnt chdir");
+       }
 
        while (optind < argc) {
                archive_handle->filter = filter_accept_list;
-               archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]);
+               archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]);
                optind++;
        }
 
@@ -155,28 +156,28 @@ extern int unzip_main(int argc, char **argv)
                int dst_fd;
 
                /* TODO Endian issues */
-               xread_all(archive_handle->src_fd, &magic, 4);
+               archive_xread_all(archive_handle, &magic, 4);
                archive_handle->offset += 4;
 
                if (magic == ZIP_CDS_MAGIC) {
                        break;
                }
                else if (magic != ZIP_FILEHEADER_MAGIC) {
-                       error_msg_and_die("Invlaide zip magic");
+                       bb_error_msg_and_die("Invlaide zip magic");
                }
 
                /* Read the file header */
-               xread_all(archive_handle->src_fd, zip_header.raw, 26);
+               archive_xread_all(archive_handle, zip_header.raw, 26);
                archive_handle->offset += 26;
                archive_handle->file_header->mode = S_IFREG | 0777;
 
                if (zip_header.formated.method != 8) {
-                       error_msg_and_die("Unsupported compression method %d\n", zip_header.formated.method);
+                       bb_error_msg_and_die("Unsupported compression method %d\n", zip_header.formated.method);
                }
 
                /* Read filename */
                archive_handle->file_header->name = xmalloc(zip_header.formated.filename_len + 1);
-               xread_all(archive_handle->src_fd, archive_handle->file_header->name, zip_header.formated.filename_len);
+               archive_xread_all(archive_handle, archive_handle->file_header->name, zip_header.formated.filename_len);
                archive_handle->offset += zip_header.formated.filename_len;
                archive_handle->file_header->name[zip_header.formated.filename_len] = '\0';
 
@@ -197,19 +198,19 @@ extern int unzip_main(int argc, char **argv)
                if (archive_handle->action_data) {
                        archive_handle->action_data(archive_handle);
                } else {
-                       dst_fd = xopen(archive_handle->file_header->name, O_WRONLY | O_CREAT);
+                       dst_fd = bb_xopen(archive_handle->file_header->name, O_WRONLY | O_CREAT);
                        inflate(archive_handle->src_fd, dst_fd);
                        close(dst_fd);
                        chmod(archive_handle->file_header->name, archive_handle->file_header->mode);
 
                        /* Validate decompression - crc */
                        if (zip_header.formated.crc32 != (gunzip_crc ^ 0xffffffffL)) {
-                               error_msg("Invalid compressed data--crc error");
+                               bb_error_msg("Invalid compressed data--crc error");
                        }
 
                        /* Validate decompression - size */
                        if (gunzip_bytes_out != zip_header.formated.ucmpsize) {
-                               error_msg("Invalid compressed data--length error");
+                               bb_error_msg("Invalid compressed data--length error");
                        }
                }
 
@@ -228,7 +229,7 @@ extern int unzip_main(int argc, char **argv)
                        /* skip over duplicate crc, compressed size and uncompressed size */
                        unsigned short i;
                        for (i = 0; i != 12; i++) {
-                               xread_char(archive_handle->src_fd);
+                               archive_xread_char(archive_handle);
                        }
                        archive_handle->offset += 12;
                }