ls-files: convert show_killed_files to take an index
Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1985fd68c6
commit
23d6236a07
@ -120,7 +120,8 @@ static void show_other_files(struct dir_struct *dir)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void show_killed_files(struct dir_struct *dir)
|
static void show_killed_files(const struct index_state *istate,
|
||||||
|
const struct dir_struct *dir)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < dir->nr; i++) {
|
for (i = 0; i < dir->nr; i++) {
|
||||||
@ -134,29 +135,29 @@ static void show_killed_files(struct dir_struct *dir)
|
|||||||
/* If ent->name is prefix of an entry in the
|
/* If ent->name is prefix of an entry in the
|
||||||
* cache, it will be killed.
|
* cache, it will be killed.
|
||||||
*/
|
*/
|
||||||
pos = cache_name_pos(ent->name, ent->len);
|
pos = index_name_pos(istate, ent->name, ent->len);
|
||||||
if (0 <= pos)
|
if (0 <= pos)
|
||||||
die("BUG: killed-file %.*s not found",
|
die("BUG: killed-file %.*s not found",
|
||||||
ent->len, ent->name);
|
ent->len, ent->name);
|
||||||
pos = -pos - 1;
|
pos = -pos - 1;
|
||||||
while (pos < active_nr &&
|
while (pos < istate->cache_nr &&
|
||||||
ce_stage(active_cache[pos]))
|
ce_stage(istate->cache[pos]))
|
||||||
pos++; /* skip unmerged */
|
pos++; /* skip unmerged */
|
||||||
if (active_nr <= pos)
|
if (istate->cache_nr <= pos)
|
||||||
break;
|
break;
|
||||||
/* pos points at a name immediately after
|
/* pos points at a name immediately after
|
||||||
* ent->name in the cache. Does it expect
|
* ent->name in the cache. Does it expect
|
||||||
* ent->name to be a directory?
|
* ent->name to be a directory?
|
||||||
*/
|
*/
|
||||||
len = ce_namelen(active_cache[pos]);
|
len = ce_namelen(istate->cache[pos]);
|
||||||
if ((ent->len < len) &&
|
if ((ent->len < len) &&
|
||||||
!strncmp(active_cache[pos]->name,
|
!strncmp(istate->cache[pos]->name,
|
||||||
ent->name, ent->len) &&
|
ent->name, ent->len) &&
|
||||||
active_cache[pos]->name[ent->len] == '/')
|
istate->cache[pos]->name[ent->len] == '/')
|
||||||
killed = 1;
|
killed = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (0 <= cache_name_pos(ent->name, sp - ent->name)) {
|
if (0 <= index_name_pos(istate, ent->name, sp - ent->name)) {
|
||||||
/* If any of the leading directories in
|
/* If any of the leading directories in
|
||||||
* ent->name is registered in the cache,
|
* ent->name is registered in the cache,
|
||||||
* ent->name will be killed.
|
* ent->name will be killed.
|
||||||
@ -337,7 +338,7 @@ static void show_files(struct dir_struct *dir)
|
|||||||
if (show_others)
|
if (show_others)
|
||||||
show_other_files(dir);
|
show_other_files(dir);
|
||||||
if (show_killed)
|
if (show_killed)
|
||||||
show_killed_files(dir);
|
show_killed_files(&the_index, dir);
|
||||||
}
|
}
|
||||||
if (show_cached || show_stage) {
|
if (show_cached || show_stage) {
|
||||||
for (i = 0; i < active_nr; i++) {
|
for (i = 0; i < active_nr; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user