Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
apply: replace hard-coded constants
author
brian m. carlson
<sandals@crustytoothpaste.net>
Mon, 15 Oct 2018 00:01:59 +0000
(
00:01
+0000)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 15 Oct 2018 03:53:16 +0000
(12:53 +0900)
Replace several 40-based constants with references to GIT_MAX_HEXSZ or
the_hash_algo, as appropriate.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
apply.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
d8a3a69
)
diff --git
a/apply.c
b/apply.c
index e485fbc6bc11efc6daefe78cbe949a65560ff4fa..792ecea36a95a4055745bd7484a52d9307aa697e 100644
(file)
--- a/
apply.c
+++ b/
apply.c
@@
-223,8
+223,8
@@
struct patch {
struct fragment *fragments;
char *result;
size_t resultsize;
struct fragment *fragments;
char *result;
size_t resultsize;
- char old_sha1_prefix[
4
1];
- char new_sha1_prefix[
4
1];
+ char old_sha1_prefix[
GIT_MAX_HEXSZ +
1];
+ char new_sha1_prefix[
GIT_MAX_HEXSZ +
1];
struct patch *next;
/* three-way fallback result */
struct patch *next;
/* three-way fallback result */
@@
-1093,9
+1093,10
@@
static int gitdiff_index(struct apply_state *state,
*/
const char *ptr, *eol;
int len;
*/
const char *ptr, *eol;
int len;
+ const unsigned hexsz = the_hash_algo->hexsz;
ptr = strchr(line, '.');
ptr = strchr(line, '.');
- if (!ptr || ptr[1] != '.' ||
40
< ptr - line)
+ if (!ptr || ptr[1] != '.' ||
hexsz
< ptr - line)
return 0;
len = ptr - line;
memcpy(patch->old_sha1_prefix, line, len);
return 0;
len = ptr - line;
memcpy(patch->old_sha1_prefix, line, len);
@@
-1109,7
+1110,7
@@
static int gitdiff_index(struct apply_state *state,
ptr = eol;
len = ptr - line;
ptr = eol;
len = ptr - line;
- if (
40
< len)
+ if (
hexsz
< len)
return 0;
memcpy(patch->new_sha1_prefix, line, len);
patch->new_sha1_prefix[len] = 0;
return 0;
memcpy(patch->new_sha1_prefix, line, len);
patch->new_sha1_prefix[len] = 0;
@@
-3142,13
+3143,14
@@
static int apply_binary(struct apply_state *state,
{
const char *name = patch->old_name ? patch->old_name : patch->new_name;
struct object_id oid;
{
const char *name = patch->old_name ? patch->old_name : patch->new_name;
struct object_id oid;
+ const unsigned hexsz = the_hash_algo->hexsz;
/*
* For safety, we require patch index line to contain
/*
* For safety, we require patch index line to contain
- * full
40-byte textual SHA1
for old and new, at least for now.
+ * full
hex textual object ID
for old and new, at least for now.
*/
*/
- if (strlen(patch->old_sha1_prefix) !=
40
||
- strlen(patch->new_sha1_prefix) !=
40
||
+ if (strlen(patch->old_sha1_prefix) !=
hexsz
||
+ strlen(patch->new_sha1_prefix) !=
hexsz
||
get_oid_hex(patch->old_sha1_prefix, &oid) ||
get_oid_hex(patch->new_sha1_prefix, &oid))
return error(_("cannot apply binary patch to '%s' "
get_oid_hex(patch->old_sha1_prefix, &oid) ||
get_oid_hex(patch->new_sha1_prefix, &oid))
return error(_("cannot apply binary patch to '%s' "
@@
-4055,7
+4057,7
@@
static int preimage_oid_in_gitlink_patch(struct patch *p, struct object_id *oid)
starts_with(++preimage, heading) &&
/* does it record full SHA-1? */
!get_oid_hex(preimage + sizeof(heading) - 1, oid) &&
starts_with(++preimage, heading) &&
/* does it record full SHA-1? */
!get_oid_hex(preimage + sizeof(heading) - 1, oid) &&
- preimage[sizeof(heading) +
GIT_SHA1_HEXSZ
- 1] == '\n' &&
+ preimage[sizeof(heading) +
the_hash_algo->hexsz
- 1] == '\n' &&
/* does the abbreviated name on the index line agree with it? */
starts_with(preimage + sizeof(heading) - 1, p->old_sha1_prefix))
return 0; /* it all looks fine */
/* does the abbreviated name on the index line agree with it? */
starts_with(preimage + sizeof(heading) - 1, p->old_sha1_prefix))
return 0; /* it all looks fine */