X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftar.c;h=91c4104eeed148708cdd6d14cfe417bbdbf62e99;hb=10edb315da532371e65a7d83a16f50ade5b545e4;hp=004a13d30108f9f1ba9b482e8cc1db2c6c8377f4;hpb=879ae47aa16752580616c6c52d6b4757a2705dd3;p=chaz%2Ftar diff --git a/src/tar.c b/src/tar.c index 004a13d..91c4104 100644 --- a/src/tar.c +++ b/src/tar.c @@ -113,13 +113,13 @@ confirm (const char *message_action, const char *message_name) } } -void -set_archive_format (char *name) +static void +set_archive_format (char const *name) { static struct fmttab { - char *name; + char const *name; enum archive_format fmt; - } fmttab[] = { + } const fmttab[] = { { "v7", V7_FORMAT }, { "oldgnu", OLDGNU_FORMAT }, { "posix", POSIX_FORMAT }, @@ -127,24 +127,19 @@ set_archive_format (char *name) { "star", STAR_FORMAT }, #endif { "gnu", GNU_FORMAT }, - NULL + { NULL, 0 } }; - struct fmttab *p; - enum archive_format fmt; - - for (p = fmttab; p->name; p++) - { - if (strcmp (p->name, name) == 0) - { - fmt = p->fmt; - break; - } - } + struct fmttab const *p; + + for (p = fmttab; strcmp (p->name, name) != 0; ) + if (! (++p)->name) + USAGE_ERROR ((0, 0, _("%s: Invalid archive format"), + quotearg_colon (name))); - if (archive_format != DEFAULT_FORMAT && archive_format != fmt) + if (archive_format != DEFAULT_FORMAT && archive_format != p->fmt) USAGE_ERROR ((0, 0, _("Conflicting archive format options"))); - archive_format = fmt; + archive_format = p->fmt; } /* Options. */