aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2011-02-04 22:49:31 +0200
committerLasse Collin <lasse.collin@tukaani.org>2011-02-06 20:16:14 +0200
commit96f94bc925d579a700147fa5d7793b64d69cfc18 (patch)
treeceb96651c5b0529129cea27f256a8b9fbb6139ff
parentxz: Check if the file already has custom suffix when compressing. (diff)
downloadxz-96f94bc925d579a700147fa5d7793b64d69cfc18.tar.xz
xz: Clean up suffix.c.
struct suffix_pair isn't needed in compresed_name() so get rid of it there.
-rw-r--r--src/xz/suffix.c44
1 files changed, 20 insertions, 24 deletions
diff --git a/src/xz/suffix.c b/src/xz/suffix.c
index f795e2ad..c89f67fe 100644
--- a/src/xz/suffix.c
+++ b/src/xz/suffix.c
@@ -21,12 +21,6 @@
static char *custom_suffix = NULL;
-struct suffix_pair {
- const char *compressed;
- const char *uncompressed;
-};
-
-
/// \brief Test if the char is a directory separator
static bool
is_dir_sep(char c)
@@ -86,7 +80,10 @@ test_suffix(const char *suffix, const char *src_name, size_t src_len)
static char *
uncompressed_name(const char *src_name, const size_t src_len)
{
- static const struct suffix_pair suffixes[] = {
+ static const struct {
+ const char *compressed;
+ const char *uncompressed;
+ } suffixes[] = {
{ ".xz", "" },
{ ".txz", ".tar" }, // .txz abbreviation for .txt.gz is rare.
{ ".lzma", "" },
@@ -145,25 +142,25 @@ static char *
compressed_name(const char *src_name, const size_t src_len)
{
// The order of these must match the order in args.h.
- static const struct suffix_pair all_suffixes[][3] = {
+ static const char *const all_suffixes[][3] = {
{
- { ".xz", "" },
- { ".txz", ".tar" },
- { NULL, NULL }
+ ".xz",
+ ".txz",
+ NULL
}, {
- { ".lzma", "" },
- { ".tlz", ".tar" },
- { NULL, NULL }
+ ".lzma",
+ ".tlz",
+ NULL
/*
}, {
- { ".gz", "" },
- { ".tgz", ".tar" },
- { NULL, NULL }
+ ".gz",
+ ".tgz",
+ NULL
*/
}, {
// --format=raw requires specifying the suffix
// manually or using stdout.
- { NULL, NULL }
+ NULL
}
};
@@ -171,14 +168,13 @@ compressed_name(const char *src_name, const size_t src_len)
assert(opt_format != FORMAT_AUTO);
const size_t format = opt_format - 1;
- const struct suffix_pair *const suffixes = all_suffixes[format];
+ const char *const *suffixes = all_suffixes[format];
- for (size_t i = 0; suffixes[i].compressed != NULL; ++i) {
- if (test_suffix(suffixes[i].compressed, src_name, src_len)
- != 0) {
+ for (size_t i = 0; suffixes[i] != NULL; ++i) {
+ if (test_suffix(suffixes[i], src_name, src_len) != 0) {
message_warning(_("%s: File already has `%s' "
"suffix, skipping"), src_name,
- suffixes[i].compressed);
+ suffixes[i]);
return NULL;
}
}
@@ -202,7 +198,7 @@ compressed_name(const char *src_name, const size_t src_len)
}
const char *suffix = custom_suffix != NULL
- ? custom_suffix : suffixes[0].compressed;
+ ? custom_suffix : suffixes[0];
const size_t suffix_len = strlen(suffix);
char *dest_name = xmalloc(src_len + suffix_len + 1);