From: Paul Eggert Date: Wed, 3 Sep 2003 06:19:00 +0000 (+0000) Subject: (struct fmttab.name): Now char const *. All uses changed. X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=14e8c10222cea224f47214339fe9bd61f19ebfbc;p=chaz%2Ftar (struct fmttab.name): Now char const *. All uses changed. (fmttab): Now const. All uses changed. Avoid GCC warning by not eliding initializers. (set_archive_format): Report an error if no format name matches, instead of returning an undefined value. (set_archive_format): Now static. --- 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. */