pack-objects: use strcspn(3) in name_cmp_len()

Call strcspn(3) to find the length of a string terminated by NUL, NL or
slash instead of open-coding it.  Adopt its return type, size_t, to
support strings of arbitrary length.  Use that type in callers as well
for variables and function parameters that receive the return value.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2023-02-05 11:42:27 +01:00 коммит произвёл Junio C Hamano
Родитель 1b4a38d741
Коммит e65b868d07
1 изменённых файлов: 5 добавлений и 8 удалений

Просмотреть файл

@ -1708,17 +1708,14 @@ static void pbase_tree_put(struct pbase_tree_cache *cache)
free(cache);
}
static int name_cmp_len(const char *name)
static size_t name_cmp_len(const char *name)
{
int i;
for (i = 0; name[i] && name[i] != '\n' && name[i] != '/'; i++)
;
return i;
return strcspn(name, "\n/");
}
static void add_pbase_object(struct tree_desc *tree,
const char *name,
int cmplen,
size_t cmplen,
const char *fullname)
{
struct name_entry entry;
@ -1743,7 +1740,7 @@ static void add_pbase_object(struct tree_desc *tree,
struct tree_desc sub;
struct pbase_tree_cache *tree;
const char *down = name+cmplen+1;
int downlen = name_cmp_len(down);
size_t downlen = name_cmp_len(down);
tree = pbase_tree_get(&entry.oid);
if (!tree)
@ -1795,7 +1792,7 @@ static int check_pbase_path(unsigned hash)
static void add_preferred_base_object(const char *name)
{
struct pbase_tree *it;
int cmplen;
size_t cmplen;
unsigned hash = pack_name_hash(name);
if (!num_preferred_base || check_pbase_path(hash))