Re: [PATCH 07/24] ls-files: correct index argument to get_convert_attr_ascii()

2018-08-15 Thread Stefan Beller
On Mon, Aug 13, 2018 at 9:15 AM Nguyễn Thái Ngọc Duy  wrote:
>
> write_eolinfo() does take an istate as function argument and it should
> be used instead of the_index.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy 
> ---
>  builtin/ls-files.c | 17 +
>  1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/builtin/ls-files.c b/builtin/ls-files.c
> index 7233b92794..7f9919a362 100644
> --- a/builtin/ls-files.c
> +++ b/builtin/ls-files.c
> @@ -63,7 +63,7 @@ static void write_eolinfo(const struct index_state *istate,
> struct stat st;
> const char *i_txt = "";
> const char *w_txt = "";
> -   const char *a_txt = get_convert_attr_ascii(&the_index, path);
> +   const char *a_txt = get_convert_attr_ascii(istate, path);

Going by the commit message this patch should end here?

> -static void show_dir_entry(const char *tag, struct dir_entry *ent)
> +static void show_dir_entry(const struct index_state *istate,
> +  const char *tag, struct dir_entry *ent)
[...]
> -   if (!dir_path_match(&the_index, ent, &pathspec, len, ps_matched))
> +   if (!dir_path_match(istate, ent, &pathspec, len, ps_matched))
[...]
> -   write_eolinfo(NULL, NULL, ent->name);
> +   write_eolinfo(istate, NULL, ent->name);

but here we need to pass through the istate, which is why we adjust the
dir_path_match while we're here

> -   show_dir_entry(tag_other, ent);
> +   show_dir_entry(istate, tag_other, ent);
[...]
> -   show_dir_entry(tag_killed, dir->entries[i]);
> +   show_dir_entry(istate, tag_killed, dir->entries[i]);

and having to adjust more callers here

> @@ -228,7 +229,7 @@ static void show_ce(struct repository *repo, struct 
> dir_struct *dir,

> -   } else if (match_pathspec(&the_index, &pathspec, fullname, 
> strlen(fullname),
> +   } else if (match_pathspec(repo->index, &pathspec, fullname, 
> strlen(fullname),

> @@ -264,7 +265,7 @@ static void show_ru_info(const struct index_state *istate)

> -   if (!match_pathspec(&the_index, &pathspec, path, len,
> +   if (!match_pathspec(istate, &pathspec, path, len,

These seem more or less unrelated to the commit message
or the code changes above. Maybe mention these as a
"while at it" or separate them out in their own commit?

thanks,
Stefan


[PATCH 07/24] ls-files: correct index argument to get_convert_attr_ascii()

2018-08-13 Thread Nguyễn Thái Ngọc Duy
write_eolinfo() does take an istate as function argument and it should
be used instead of the_index.

Signed-off-by: Nguyễn Thái Ngọc Duy 
---
 builtin/ls-files.c | 17 +
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 7233b92794..7f9919a362 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -63,7 +63,7 @@ static void write_eolinfo(const struct index_state *istate,
struct stat st;
const char *i_txt = "";
const char *w_txt = "";
-   const char *a_txt = get_convert_attr_ascii(&the_index, path);
+   const char *a_txt = get_convert_attr_ascii(istate, path);
if (ce && S_ISREG(ce->ce_mode))
i_txt = get_cached_convert_stats_ascii(istate,
   ce->name);
@@ -121,18 +121,19 @@ static void print_debug(const struct cache_entry *ce)
}
 }
 
-static void show_dir_entry(const char *tag, struct dir_entry *ent)
+static void show_dir_entry(const struct index_state *istate,
+  const char *tag, struct dir_entry *ent)
 {
int len = max_prefix_len;
 
if (len > ent->len)
die("git ls-files: internal error - directory entry not 
superset of prefix");
 
-   if (!dir_path_match(&the_index, ent, &pathspec, len, ps_matched))
+   if (!dir_path_match(istate, ent, &pathspec, len, ps_matched))
return;
 
fputs(tag, stdout);
-   write_eolinfo(NULL, NULL, ent->name);
+   write_eolinfo(istate, NULL, ent->name);
write_name(ent->name);
 }
 
@@ -145,7 +146,7 @@ static void show_other_files(const struct index_state 
*istate,
struct dir_entry *ent = dir->entries[i];
if (!index_name_is_other(istate, ent->name, ent->len))
continue;
-   show_dir_entry(tag_other, ent);
+   show_dir_entry(istate, tag_other, ent);
}
 }
 
@@ -196,7 +197,7 @@ static void show_killed_files(const struct index_state 
*istate,
}
}
if (killed)
-   show_dir_entry(tag_killed, dir->entries[i]);
+   show_dir_entry(istate, tag_killed, dir->entries[i]);
}
 }
 
@@ -228,7 +229,7 @@ static void show_ce(struct repository *repo, struct 
dir_struct *dir,
if (recurse_submodules && S_ISGITLINK(ce->ce_mode) &&
is_submodule_active(repo, ce->name)) {
show_submodule(repo, dir, ce->name);
-   } else if (match_pathspec(&the_index, &pathspec, fullname, 
strlen(fullname),
+   } else if (match_pathspec(repo->index, &pathspec, fullname, 
strlen(fullname),
  max_prefix_len, ps_matched,
  S_ISDIR(ce->ce_mode) ||
  S_ISGITLINK(ce->ce_mode))) {
@@ -264,7 +265,7 @@ static void show_ru_info(const struct index_state *istate)
len = strlen(path);
if (len < max_prefix_len)
continue; /* outside of the prefix */
-   if (!match_pathspec(&the_index, &pathspec, path, len,
+   if (!match_pathspec(istate, &pathspec, path, len,
max_prefix_len, ps_matched, 0))
continue; /* uninterested */
for (i = 0; i < 3; i++) {
-- 
2.18.0.1004.g6639190530