Skip to content

Commit

Permalink
Remove unsupported C99 style struct initializers in git-archive.
Browse files Browse the repository at this point in the history
At least one older version of the Solaris C compiler doesn't support
the newer C99 style struct initializers.  To allow Git to compile
on those systems use an archive description struct which is easier
to initialize without the C99 struct initializer syntax.

Also since the archives array is not used by anyone other than
archive.c we can make it static.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Shawn O. Pearce authored and Junio C Hamano committed Nov 5, 2006
1 parent af8ffbe commit 6c2f207
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 13 deletions.
2 changes: 0 additions & 2 deletions archive.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ struct archiver {
parse_extra_args_fn_t parse_extra;
};

extern struct archiver archivers[];

extern int parse_archive_args(int argc,
const char **argv,
struct archiver *ar);
Expand Down
23 changes: 12 additions & 11 deletions builtin-archive.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,14 @@
static const char archive_usage[] = \
"git-archive --format=<fmt> [--prefix=<prefix>/] [--verbose] [<extra>] <tree-ish> [path...]";

struct archiver archivers[] = {
{
.name = "tar",
.write_archive = write_tar_archive,
},
{
.name = "zip",
.write_archive = write_zip_archive,
.parse_extra = parse_extra_zip_args,
},
static struct archiver_desc
{
const char *name;
write_archive_fn_t write_archive;
parse_extra_args_fn_t parse_extra;
} archivers[] = {
{ "tar", write_tar_archive, NULL },
{ "zip", write_zip_archive, parse_extra_zip_args },
};

static int run_remote_archiver(const char *remote, int argc,
Expand Down Expand Up @@ -88,7 +86,10 @@ static int init_archiver(const char *name, struct archiver *ar)

for (i = 0; i < ARRAY_SIZE(archivers); i++) {
if (!strcmp(name, archivers[i].name)) {
memcpy(ar, &archivers[i], sizeof(struct archiver));
memset(ar, 0, sizeof(*ar));
ar->name = archivers[i].name;
ar->write_archive = archivers[i].write_archive;
ar->parse_extra = archivers[i].parse_extra;
rv = 0;
break;
}
Expand Down

0 comments on commit 6c2f207

Please sign in to comment.