notes: move hex_to_bytes() to hex.c and export it
Make the function for converting pairs of hexadecimal digits to binary available to other call sites. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
cb5918aa0d
commit
0ec218656a
7
cache.h
7
cache.h
@ -1317,6 +1317,13 @@ extern int set_disambiguate_hint_config(const char *var, const char *value);
|
|||||||
extern int get_sha1_hex(const char *hex, unsigned char *sha1);
|
extern int get_sha1_hex(const char *hex, unsigned char *sha1);
|
||||||
extern int get_oid_hex(const char *hex, struct object_id *sha1);
|
extern int get_oid_hex(const char *hex, struct object_id *sha1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Read `len` pairs of hexadecimal digits from `hex` and write the
|
||||||
|
* values to `binary` as `len` bytes. Return 0 on success, or -1 if
|
||||||
|
* the input does not consist of hex digits).
|
||||||
|
*/
|
||||||
|
extern int hex_to_bytes(unsigned char *binary, const char *hex, size_t len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert a binary sha1 to its hex equivalent. The `_r` variant is reentrant,
|
* Convert a binary sha1 to its hex equivalent. The `_r` variant is reentrant,
|
||||||
* and writes the NUL-terminated output to the buffer `out`, which must be at
|
* and writes the NUL-terminated output to the buffer `out`, which must be at
|
||||||
|
12
hex.c
12
hex.c
@ -35,6 +35,18 @@ const signed char hexval_table[256] = {
|
|||||||
-1, -1, -1, -1, -1, -1, -1, -1, /* f8-ff */
|
-1, -1, -1, -1, -1, -1, -1, -1, /* f8-ff */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int hex_to_bytes(unsigned char *binary, const char *hex, size_t len)
|
||||||
|
{
|
||||||
|
for (; len; len--, hex += 2) {
|
||||||
|
unsigned int val = (hexval(hex[0]) << 4) | hexval(hex[1]);
|
||||||
|
|
||||||
|
if (val & ~0xff)
|
||||||
|
return -1;
|
||||||
|
*binary++ = val;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int get_sha1_hex(const char *hex, unsigned char *sha1)
|
int get_sha1_hex(const char *hex, unsigned char *sha1)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
17
notes.c
17
notes.c
@ -334,23 +334,6 @@ static void note_tree_free(struct int_node *tree)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Read `len` pairs of hexadecimal digits from `hex` and write the
|
|
||||||
* values to `binary` as `len` bytes. Return 0 on success, or -1 if
|
|
||||||
* the input does not consist of hex digits).
|
|
||||||
*/
|
|
||||||
static int hex_to_bytes(unsigned char *binary, const char *hex, size_t len)
|
|
||||||
{
|
|
||||||
for (; len; len--, hex += 2) {
|
|
||||||
unsigned int val = (hexval(hex[0]) << 4) | hexval(hex[1]);
|
|
||||||
|
|
||||||
if (val & ~0xff)
|
|
||||||
return -1;
|
|
||||||
*binary++ = val;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int non_note_cmp(const struct non_note *a, const struct non_note *b)
|
static int non_note_cmp(const struct non_note *a, const struct non_note *b)
|
||||||
{
|
{
|
||||||
return strcmp(a->path, b->path);
|
return strcmp(a->path, b->path);
|
||||||
|
Loading…
Reference in New Issue
Block a user