projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Provide a more meaningful initial "From " line when using --compose in git-send-email.
[git.git]
/
sha1_name.c
diff --git
a/sha1_name.c
b/sha1_name.c
index
be1755a
..
ba0747c
100644
(file)
--- a/
sha1_name.c
+++ b/
sha1_name.c
@@
-143,7
+143,7
@@
static int find_unique_short_object(int len, char *canonical,
}
/* Both have unique ones -- do they match? */
if (memcmp(packed_sha1, unpacked_sha1, 20))
}
/* Both have unique ones -- do they match? */
if (memcmp(packed_sha1, unpacked_sha1, 20))
- return
-2
;
+ return
SHORT_NAME_AMBIGUOUS
;
memcpy(sha1, packed_sha1, 20);
return 0;
}
memcpy(sha1, packed_sha1, 20);
return 0;
}
@@
-155,7
+155,7
@@
static int get_short_sha1(const char *name, int len, unsigned char *sha1,
char canonical[40];
unsigned char res[20];
char canonical[40];
unsigned char res[20];
- if (len <
4
)
+ if (len <
MINIMUM_ABBREV
)
return -1;
memset(res, 0, 20);
memset(canonical, 'x', 40);
return -1;
memset(res, 0, 20);
memset(canonical, 'x', 40);
@@
-188,7
+188,10
@@
const char *find_unique_abbrev(const unsigned char *sha1, int len)
{
int status;
static char hex[41];
{
int status;
static char hex[41];
+
memcpy(hex, sha1_to_hex(sha1), 40);
memcpy(hex, sha1_to_hex(sha1), 40);
+ if (len == 40)
+ return hex;
while (len < 40) {
unsigned char sha1_ret[20];
status = get_short_sha1(hex, len, sha1_ret, 1);
while (len < 40) {
unsigned char sha1_ret[20];
status = get_short_sha1(hex, len, sha1_ret, 1);
@@
-203,11
+206,12
@@
const char *find_unique_abbrev(const unsigned char *sha1, int len)
return NULL;
}
return NULL;
}
-static int ambiguous_path(const char *path)
+static int ambiguous_path(const char *path
, int len
)
{
int slash = 1;
{
int slash = 1;
+ int cnt;
- for (
;;
) {
+ for (
cnt = 0; cnt < len; cnt++
) {
switch (*path++) {
case '\0':
break;
switch (*path++) {
case '\0':
break;
@@
-222,8
+226,9
@@
static int ambiguous_path(const char *path)
slash = 0;
continue;
}
slash = 0;
continue;
}
-
return slash
;
+
break
;
}
}
+ return slash;
}
static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
}
static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
@@
-241,7
+246,7
@@
static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
return 0;
/* Accept only unambiguous ref paths. */
return 0;
/* Accept only unambiguous ref paths. */
- if (ambiguous_path(str))
+ if (ambiguous_path(str
, len
))
return -1;
for (p = prefix; *p; p++) {
return -1;
for (p = prefix; *p; p++) {
@@
-249,7
+254,6
@@
static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
if (!read_ref(pathname, sha1))
return 0;
}
if (!read_ref(pathname, sha1))
return 0;
}
-
return -1;
}
return -1;
}