]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Rewrite strlen_comp so that it no longer has its own list of compression types
authorMichael Schroeder <mls@suse.de>
Thu, 23 Nov 2023 11:54:53 +0000 (12:54 +0100)
committerMichael Schroeder <mls@suse.de>
Thu, 23 Nov 2023 11:54:53 +0000 (12:54 +0100)
tools/installcheck.c

index 4956890840820fb0d23516de5e595fbfa1114c71..10c669a29b8ed8c966d3ba72a6509f330622915a 100644 (file)
@@ -52,21 +52,11 @@ usage(char** argv)
 }
 
 #if defined(ENABLE_SUSEREPO) || defined(ENABLE_RPMMD) || defined(ENABLE_DEBIAN) || defined(ENABLE_ARCHREPO)
-static int
+static size_t
 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 > 4 && !strcmp(str + l - 4, ".zst"))
-    return l - 4;
-  if (l > 5 && !strcmp(str + l - 5, ".lzma"))
-    return l - 5;
-  return l;
+  const char *suf = strrchr(str, '.');
+  return strlen(str) - (suf && solv_xfopen_iscompressed(suf) ? strlen(suf) : 0);
 }
 #endif
 
@@ -105,7 +95,7 @@ main(int argc, char **argv)
       FILE *fp;
       int r;
 #if defined(ENABLE_SUSEREPO) || defined(ENABLE_RPMMD) || defined(ENABLE_DEBIAN) || defined(ENABLE_ARCHREPO)
-      int l;
+      size_t l;
 #endif
 
       if (!strcmp(argv[i], "--withsrc"))