Re: [PATCH 3/3] Remove unsupported C99 style struct initializers in git-archive.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Nov 5, 2006, 07:32 UTC
- Message-ID
- <7vd582uz5b.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20061105053723.GC4193@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 9 quoted lines
> +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 },
> };If this were a struct with bazillions of fields I might have had trouble swallowing the change, but this is so small that it is no brainer.
I think this actually is an improvement.
Show 10 quoted lines
> static int run_remote_archiver(const char *remote, int argc,
> @@ -88,7 +86,10 @@ static int init_archiver(const char *nam
>
> 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;But is this change really needed? Shouldn't a structure assignment just work?