|
|
|
@ -120,7 +120,8 @@ static void show_other_files(struct dir_struct *dir)
@@ -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; |
|
|
|
|
for (i = 0; i < dir->nr; i++) { |
|
|
|
@ -134,29 +135,29 @@ static void show_killed_files(struct dir_struct *dir)
@@ -134,29 +135,29 @@ static void show_killed_files(struct dir_struct *dir)
|
|
|
|
|
/* If ent->name is prefix of an entry in the |
|
|
|
|
* 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) |
|
|
|
|
die("BUG: killed-file %.*s not found", |
|
|
|
|
ent->len, ent->name); |
|
|
|
|
pos = -pos - 1; |
|
|
|
|
while (pos < active_nr && |
|
|
|
|
ce_stage(active_cache[pos])) |
|
|
|
|
while (pos < istate->cache_nr && |
|
|
|
|
ce_stage(istate->cache[pos])) |
|
|
|
|
pos++; /* skip unmerged */ |
|
|
|
|
if (active_nr <= pos) |
|
|
|
|
if (istate->cache_nr <= pos) |
|
|
|
|
break; |
|
|
|
|
/* pos points at a name immediately after |
|
|
|
|
* ent->name in the cache. Does it expect |
|
|
|
|
* ent->name to be a directory? |
|
|
|
|
*/ |
|
|
|
|
len = ce_namelen(active_cache[pos]); |
|
|
|
|
len = ce_namelen(istate->cache[pos]); |
|
|
|
|
if ((ent->len < len) && |
|
|
|
|
!strncmp(active_cache[pos]->name, |
|
|
|
|
!strncmp(istate->cache[pos]->name, |
|
|
|
|
ent->name, ent->len) && |
|
|
|
|
active_cache[pos]->name[ent->len] == '/') |
|
|
|
|
istate->cache[pos]->name[ent->len] == '/') |
|
|
|
|
killed = 1; |
|
|
|
|
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 |
|
|
|
|
* ent->name is registered in the cache, |
|
|
|
|
* ent->name will be killed. |
|
|
|
@ -337,7 +338,7 @@ static void show_files(struct dir_struct *dir)
@@ -337,7 +338,7 @@ static void show_files(struct dir_struct *dir)
|
|
|
|
|
if (show_others) |
|
|
|
|
show_other_files(dir); |
|
|
|
|
if (show_killed) |
|
|
|
|
show_killed_files(dir); |
|
|
|
|
show_killed_files(&the_index, dir); |
|
|
|
|
} |
|
|
|
|
if (show_cached || show_stage) { |
|
|
|
|
for (i = 0; i < active_nr; i++) { |
|
|
|
|