aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archival/dpkg.c16
-rw-r--r--archival/libunarchive/Makefile.in1
-rw-r--r--archival/libunarchive/data_extract_all_prefix.c36
-rw-r--r--include/unarchive.h1
4 files changed, 15 insertions, 39 deletions
diff --git a/archival/dpkg.c b/archival/dpkg.c
index df894472c..f921c43ee 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -1341,7 +1341,21 @@ static archive_handle_t *deb_extract(const char *filename, const char *ar_name,
1341 return(ar_archive->sub_archive); 1341 return(ar_archive->sub_archive);
1342} 1342}
1343 1343
1344void unpack_package(deb_file_t *deb_file) 1344static void data_extract_all_prefix(archive_handle_t *archive_handle)
1345{
1346 char *name_ptr = archive_handle->file_header->name;
1347
1348 name_ptr += strspn(name_ptr, "./");
1349 if (name_ptr[0] != '\0') {
1350 archive_handle->file_header->name = xmalloc(strlen(archive_handle->buffer) + 2 + strlen(name_ptr));
1351 strcpy(archive_handle->file_header->name, archive_handle->buffer);
1352 strcat(archive_handle->file_header->name, name_ptr);
1353 data_extract_all(archive_handle);
1354 }
1355 return;
1356}
1357
1358static void unpack_package(deb_file_t *deb_file)
1345{ 1359{
1346 const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name]; 1360 const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name];
1347 const unsigned int status_num = search_status_hashtable(package_name); 1361 const unsigned int status_num = search_status_hashtable(package_name);
diff --git a/archival/libunarchive/Makefile.in b/archival/libunarchive/Makefile.in
index 65d4a31cd..432077721 100644
--- a/archival/libunarchive/Makefile.in
+++ b/archival/libunarchive/Makefile.in
@@ -26,7 +26,6 @@ LIBUNARCHIVE-y:= \
26\ 26\
27 data_skip.o \ 27 data_skip.o \
28 data_extract_all.o \ 28 data_extract_all.o \
29 data_extract_all_prefix.o \
30 data_extract_to_stdout.o \ 29 data_extract_to_stdout.o \
31 data_extract_to_buffer.o \ 30 data_extract_to_buffer.o \
32\ 31\
diff --git a/archival/libunarchive/data_extract_all_prefix.c b/archival/libunarchive/data_extract_all_prefix.c
deleted file mode 100644
index 53f6b8aa4..000000000
--- a/archival/libunarchive/data_extract_all_prefix.c
+++ /dev/null
@@ -1,36 +0,0 @@
1/*
2 * Copyright (C) by Glenn McGrath <bug1@optushome.com.au>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19#include <string.h>
20
21#include "libbb.h"
22#include "unarchive.h"
23
24extern void data_extract_all_prefix(archive_handle_t *archive_handle)
25{
26 char *name_ptr = archive_handle->file_header->name;
27
28 name_ptr += strspn(name_ptr, "./");
29 if (name_ptr[0] != '\0') {
30 archive_handle->file_header->name = xmalloc(strlen(archive_handle->buffer) + 2 + strlen(name_ptr));
31 strcpy(archive_handle->file_header->name, archive_handle->buffer);
32 strcat(archive_handle->file_header->name, name_ptr);
33 data_extract_all(archive_handle);
34 }
35 return;
36}
diff --git a/include/unarchive.h b/include/unarchive.h
index 56df5dadd..7926dccf5 100644
--- a/include/unarchive.h
+++ b/include/unarchive.h
@@ -76,7 +76,6 @@ extern void unpack_ar_archive(archive_handle_t *ar_archive);
76 76
77extern void data_skip(archive_handle_t *archive_handle); 77extern void data_skip(archive_handle_t *archive_handle);
78extern void data_extract_all(archive_handle_t *archive_handle); 78extern void data_extract_all(archive_handle_t *archive_handle);
79extern void data_extract_all_prefix(archive_handle_t *archive_handle);
80extern void data_extract_to_stdout(archive_handle_t *archive_handle); 79extern void data_extract_to_stdout(archive_handle_t *archive_handle);
81extern void data_extract_to_buffer(archive_handle_t *archive_handle); 80extern void data_extract_to_buffer(archive_handle_t *archive_handle);
82 81