Skip to content

Commit

Permalink
reset.c: remove unnecessary variable 'i'
Browse files Browse the repository at this point in the history
Throughout most of parse_args(), the variable 'i' remains at 0. Many
references are still made to the variable even when it could only have
the value 0. This made at least me, who has relatively little
experience with C programming styles, think that parts of the function
was meant to be part of a loop. To avoid such confusion, remove the
variable and also the 'argc' parameter and check for NULL trailing
argv instead.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Martin von Zweigbergk authored and Junio C Hamano committed Jan 15, 2013
1 parent 39ea722 commit dca48cf
Showing 1 changed file with 16 additions and 17 deletions.
33 changes: 16 additions & 17 deletions builtin/reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,8 @@ static void die_if_unmerged_cache(int reset_type)

}

static const char **parse_args(int argc, const char **argv, const char *prefix, const char **rev_ret)
static const char **parse_args(const char **argv, const char *prefix, const char **rev_ret)
{
int i = 0;
const char *rev = "HEAD";
unsigned char unused[20];
/*
Expand All @@ -211,34 +210,34 @@ static const char **parse_args(int argc, const char **argv, const char *prefix,
* git reset [-opts] -- <paths>...
* git reset [-opts] <paths>...
*
* At this point, argv[i] points immediately after [-opts].
* At this point, argv points immediately after [-opts].
*/

if (i < argc) {
if (!strcmp(argv[i], "--")) {
i++; /* reset to HEAD, possibly with paths */
} else if (i + 1 < argc && !strcmp(argv[i+1], "--")) {
rev = argv[i];
i += 2;
if (argv[0]) {
if (!strcmp(argv[0], "--")) {
argv++; /* reset to HEAD, possibly with paths */
} else if (argv[1] && !strcmp(argv[1], "--")) {
rev = argv[0];
argv += 2;
}
/*
* Otherwise, argv[i] could be either <rev> or <paths> and
* Otherwise, argv[0] could be either <rev> or <paths> and
* has to be unambiguous.
*/
else if (!get_sha1_committish(argv[i], unused)) {
else if (!get_sha1_committish(argv[0], unused)) {
/*
* Ok, argv[i] looks like a rev; it should not
* Ok, argv[0] looks like a rev; it should not
* be a filename.
*/
verify_non_filename(prefix, argv[i]);
rev = argv[i++];
verify_non_filename(prefix, argv[0]);
rev = *argv++;
} else {
/* Otherwise we treat this as a filename */
verify_filename(prefix, argv[i], 1);
verify_filename(prefix, argv[0], 1);
}
}
*rev_ret = rev;
return i < argc ? get_pathspec(prefix, argv + i) : NULL;
return argv[0] ? get_pathspec(prefix, argv) : NULL;
}

int cmd_reset(int argc, const char **argv, const char *prefix)
Expand Down Expand Up @@ -270,7 +269,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)

argc = parse_options(argc, argv, prefix, options, git_reset_usage,
PARSE_OPT_KEEP_DASHDASH);
pathspec = parse_args(argc, argv, prefix, &rev);
pathspec = parse_args(argv, prefix, &rev);

if (get_sha1_committish(rev, sha1))
die(_("Failed to resolve '%s' as a valid ref."), rev);
Expand Down

0 comments on commit dca48cf

Please sign in to comment.