commit 8598730929acbd421b4bdda80a291e9c757f039b from: Stefan Sperling date: Mon Jan 28 22:15:22 2019 UTC eliminate code duplication in cmp_entries() and in_same_subdir() commit - 99fda3ad1a9cbd1e892c591fa2ce9e2b3b979552 commit + 8598730929acbd421b4bdda80a291e9c757f039b blob - c32bcc116c752ace694e6fa1a3f118abd3c5ec4a blob + 8e0ead830c45f52b6816b1f15e2db29413ec3019 --- lib/fileindex.c +++ lib/fileindex.c @@ -548,18 +548,12 @@ got_fileindex_read(struct got_fileindex *fileindex, FI } static int -in_same_subdir(struct got_fileindex_entry *ie, const char *parent_path, - size_t parent_len) +in_same_subdir(struct got_fileindex_entry *ie, const char *ie_name, + const char *parent_path, size_t parent_len) { - char *ie_name; - if (!got_path_is_child(ie->path, parent_path, parent_len)) return 0; - ie_name = ie->path + parent_len; - while (ie_name[0] == '/') - ie_name++; - return strchr(ie_name, '/') == NULL; } @@ -572,12 +566,11 @@ cmp_entries(struct got_fileindex_entry *ie, const char size_t parent_len, struct got_tree_entry *te) { int cmp = strncmp(ie->path, parent_path, parent_len); - if (cmp == 0 || in_same_subdir(ie, parent_path, parent_len)) { - char *ie_name = ie->path + parent_len; - while (ie_name[0] == '/') - ie_name++; + char *ie_name = ie->path + parent_len; + while (ie_name[0] == '/') + ie_name++; + if (cmp == 0 || in_same_subdir(ie, ie_name, parent_path, parent_len)) cmp = strcmp(ie_name, te->name); - } return cmp; }