git-rev-parse: parse ".." before simple SHA1's
This fixes "<hexsha1>..*", since get_sha1() will happily ignore any garbage at the end and thus we never got to the ".." check before.
This commit is contained in:
parent
fc4263ce4b
commit
800644c5cb
28
rev-parse.c
28
rev-parse.c
@ -78,20 +78,6 @@ int main(int argc, char **argv)
|
|||||||
printf("%s\n", arg);
|
printf("%s\n", arg);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!get_sha1(arg, sha1)) {
|
|
||||||
if (no_revs)
|
|
||||||
continue;
|
|
||||||
def = NULL;
|
|
||||||
printf("%s\n", sha1_to_hex(sha1));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (*arg == '^' && !get_sha1(arg+1, sha1)) {
|
|
||||||
if (no_revs)
|
|
||||||
continue;
|
|
||||||
def = NULL;
|
|
||||||
printf("^%s\n", sha1_to_hex(sha1));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
dotdot = strstr(arg, "..");
|
dotdot = strstr(arg, "..");
|
||||||
if (dotdot) {
|
if (dotdot) {
|
||||||
unsigned char end[20];
|
unsigned char end[20];
|
||||||
@ -111,6 +97,20 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
*dotdot = '.';
|
*dotdot = '.';
|
||||||
}
|
}
|
||||||
|
if (!get_sha1(arg, sha1)) {
|
||||||
|
if (no_revs)
|
||||||
|
continue;
|
||||||
|
def = NULL;
|
||||||
|
printf("%s\n", sha1_to_hex(sha1));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (*arg == '^' && !get_sha1(arg+1, sha1)) {
|
||||||
|
if (no_revs)
|
||||||
|
continue;
|
||||||
|
def = NULL;
|
||||||
|
printf("^%s\n", sha1_to_hex(sha1));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (revs_only)
|
if (revs_only)
|
||||||
continue;
|
continue;
|
||||||
def = NULL;
|
def = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user