From: Michael Schroeder Date: Mon, 14 Sep 2015 09:11:30 +0000 (+0200) Subject: simplify how compressed data is dealt with X-Git-Tag: 0.6.13~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e8c6d94fdfdc25d3f140a2cf25575ae4f217fe48;p=thirdparty%2Flibsolv.git simplify how compressed data is dealt with --- diff --git a/tools/installcheck.c b/tools/installcheck.c index 5cd7dc9b..e8be171f 100644 --- a/tools/installcheck.c +++ b/tools/installcheck.c @@ -2,7 +2,7 @@ */ /* - * Copyright (c) 2009, Novell Inc. + * Copyright (c) 2009-2015, SUSE LLC * * This program is licensed under the BSD license, read LICENSE.BSD * for further information @@ -49,6 +49,20 @@ usage(char** argv) exit(1); } +static int +strlen_comp(const char *str) +{ + size_t l = strlen(str); + if (l > 3 && !strcmp(str + l - 3, ".gz")) + return l - 3; + if (l > 3 && !strcmp(str + l - 3, ".xz")) + return l - 3; + if (l > 4 && !strcmp(str + l - 4, ".bz2")) + return l - 4; + if (l > 5 && !strcmp(str + l - 4, ".lzma")) + return l - 5; + return l; +} int main(int argc, char **argv) @@ -112,7 +126,7 @@ main(int argc, char **argv) ++i; continue; } - l = strlen(argv[i]); + l = strlen_comp(argv[i]); if (!strcmp(argv[i], "-")) fp = stdin; else if ((fp = solv_xfopen(argv[i], 0)) == 0) @@ -126,23 +140,19 @@ main(int argc, char **argv) { } #ifdef ENABLE_SUSEREPO - else if (l >= 8 && !strcmp(argv[i] + l - 8, "packages")) - { - r = repo_add_susetags(repo, fp, 0, 0, 0); - } - else if (l >= 11 && !strcmp(argv[i] + l - 11, "packages.gz")) + else if (l >= 8 && !strncmp(argv[i] + l - 8, "packages", 8)) { r = repo_add_susetags(repo, fp, 0, 0, 0); } #endif #ifdef ENABLE_RPMMD - else if (l >= 14 && !strcmp(argv[i] + l - 14, "primary.xml.gz")) + else if (l >= 11 && !strncmp(argv[i] + l - 11, "primary.xml", 11)) { r = repo_add_rpmmd(repo, fp, 0, 0); if (!r && i + 1 < argc) { - l = strlen(argv[i + 1]); - if (l >= 16 && !strcmp(argv[i + 1] + l - 16, "filelists.xml.gz")) + l = strlen_comp(argv[i + 1]); + if (l >= 13 && !strncmp(argv[i + 1] + l - 13, "filelists.xml", 13)) { i++; fclose(fp); @@ -157,17 +167,13 @@ main(int argc, char **argv) } #endif #ifdef ENABLE_DEBIAN - else if (l >= 8 && !strcmp(argv[i] + l - 8, "Packages")) - { - r = repo_add_debpackages(repo, fp, 0); - } - else if (l >= 11 && !strcmp(argv[i] + l - 11, "Packages.gz")) + else if (l >= 8 && !strncmp(argv[i] + l - 8, "Packages", 8)) { r = repo_add_debpackages(repo, fp, 0); } #endif #ifdef ENABLE_ARCHREPO - else if (l >= 10 && (!strcmp(argv[i] + l - 10, ".db.tar.gz") || !strcmp(argv[i] + l - 10, ".db.tar.xz"))) + else if (l >= 7 && (!strncmp(argv[i] + l - 7, ".db.tar", 7))) { r = repo_add_arch_repo(repo, fp, 0); } @@ -296,14 +302,6 @@ main(int argc, char **argv) cand.elements[j++] = p; continue; } -#if 0 - Solvable *s = pool->solvables + p; - if (!strcmp(pool_id2str(pool, s->name), "libusb-compat-devel")) - { - cand.elements[j++] = p; - continue; - } -#endif } cand.count = j; if (i == j) @@ -437,15 +435,6 @@ main(int argc, char **argv) } } } -#if 0 - else - { - if (!strcmp(pool_id2str(pool, s->name), "libusb-compat-devel")) - { - solver_printdecisions(solv); - } - } -#endif } solver_free(solv); exit(status);