{ ct_lzop, LZOP_PROGRAM, "--lzop" },
{ ct_xz, XZ_PROGRAM, "-J" },
{ ct_zstd, ZSTD_PROGRAM, "--zstd" },
- { ct_none }
};
+enum { n_zip_programs = sizeof zip_program / sizeof *zip_program };
static struct zip_program const *
find_zip_program (enum compress_type type, int *pstate)
{
int i;
- for (i = *pstate; zip_program[i].type != ct_none; i++)
+ for (i = *pstate; i < n_zip_programs; i++)
{
if (zip_program[i].type == type)
{
{
struct zip_program const *zp;
+ *pstate = n_zip_programs;
+
if (use_compress_program_option)
return use_compress_program_option;
{
struct zip_program const *zp;
- if (use_compress_program_option)
- return NULL;
zp = find_zip_program (archive_compression_type, pstate);
return zp ? zp->program : NULL;
}