diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2014-01-24 20:40:35 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-02-24 14:37:24 -0800 |
commit | 2e70c01799bf663cc1fa5f6e37e025000ffdc0b0 (patch) | |
tree | a93f1b30bb5f1fdef0dcf627d351c141dcd6cd53 | |
parent | 05b85022c9a76954a1a281a5dc5bcd32ad486b88 (diff) | |
download | git-nd/submodule-pathspec-ending-with-slash.tar.gz |
clean: use cache_name_is_other()nd/submodule-pathspec-ending-with-slash
cmd_clean() has the exact same code of index_name_is_other(). Reduce
code duplication.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/clean.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/builtin/clean.c b/builtin/clean.c index 5adb52d82a..cb02a5330a 100644 --- a/builtin/clean.c +++ b/builtin/clean.c @@ -933,29 +933,12 @@ int cmd_clean(int argc, const char **argv, const char *prefix) for (i = 0; i < dir.nr; i++) { struct dir_entry *ent = dir.entries[i]; - int len, pos; int matches = 0; - const struct cache_entry *ce; struct stat st; const char *rel; - /* - * Remove the '/' at the end that directory - * walking adds for directory entries. - */ - len = ent->len; - if (len && ent->name[len-1] == '/') - len--; - pos = cache_name_pos(ent->name, len); - if (0 <= pos) - continue; /* exact match */ - pos = -pos - 1; - if (pos < active_nr) { - ce = active_cache[pos]; - if (ce_namelen(ce) == len && - !memcmp(ce->name, ent->name, len)) - continue; /* Yup, this one exists unmerged */ - } + if (!cache_name_is_other(ent->name, ent->len)) + continue; if (lstat(ent->name, &st)) die_errno("Cannot lstat '%s'", ent->name); |