diff options
author | Glenn L McGrath | 2002-11-03 11:57:10 +0000 |
---|---|---|
committer | Glenn L McGrath | 2002-11-03 11:57:10 +0000 |
commit | 6ab32eb34ca6e0023bc7ab7f6ece9321116e091f (patch) | |
tree | 9c85cc19ea413e758efd1466c44997a110282c61 /archival/dpkg.c | |
parent | b8e556e5f54f2848bf1ad246189cb2bf44b643bd (diff) | |
download | busybox-6ab32eb34ca6e0023bc7ab7f6ece9321116e091f.zip busybox-6ab32eb34ca6e0023bc7ab7f6ece9321116e091f.tar.gz |
Move data_extract_all_prefix to dpkg, its only used there.
Diffstat (limited to 'archival/dpkg.c')
-rw-r--r-- | archival/dpkg.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/archival/dpkg.c b/archival/dpkg.c index df89447..f921c43 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, return(ar_archive->sub_archive); } -void unpack_package(deb_file_t *deb_file) +static void data_extract_all_prefix(archive_handle_t *archive_handle) +{ + char *name_ptr = archive_handle->file_header->name; + + name_ptr += strspn(name_ptr, "./"); + if (name_ptr[0] != '\0') { + archive_handle->file_header->name = xmalloc(strlen(archive_handle->buffer) + 2 + strlen(name_ptr)); + strcpy(archive_handle->file_header->name, archive_handle->buffer); + strcat(archive_handle->file_header->name, name_ptr); + data_extract_all(archive_handle); + } + return; +} + +static void unpack_package(deb_file_t *deb_file) { const char *package_name = name_hashtable[package_hashtable[deb_file->package]->name]; const unsigned int status_num = search_status_hashtable(package_name); |