This fixes "<hexsha1>..*", since get_sha1() will happily ignore any
garbage at the end and thus we never got to the ".." check before.
printf("%s\n", arg);
continue;
}
printf("%s\n", arg);
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, "..");
if (dotdot) {
unsigned char end[20];
dotdot = strstr(arg, "..");
if (dotdot) {
unsigned char end[20];
+ 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)
continue;
def = NULL;
if (revs_only)
continue;
def = NULL;