Re: [PATCH v2 06/17] ls-files: add --color to highlight file names

2014-03-27 Thread Eric Sunshine
On Wed, Mar 26, 2014 at 7:15 PM, Duy Nguyen  wrote:
> On Thu, Mar 27, 2014 at 2:13 AM, Eric Sunshine  
> wrote:
>> On Wed, Mar 26, 2014 at 9:48 AM, Nguyễn Thái Ngọc Duy  
>> wrote:
>>> Signed-off-by: Nguyễn Thái Ngọc Duy 
>>> ---
>>>  Documentation/git-ls-files.txt |  9 +
>>>  builtin/ls-files.c | 38 +++---
>>>  2 files changed, 44 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
>>> index c0856a6..5c1b7f3 100644
>>> --- a/Documentation/git-ls-files.txt
>>> +++ b/Documentation/git-ls-files.txt
>>> @@ -147,6 +147,15 @@ a space) at the start of each line:
>>> possible for manual inspection; the exact format may change at
>>> any time.
>>>
>>> +--color[=]::
>>> +   Color file names. The value must be always (default), never,
>>> +   or auto.
>>
>> Here, the default is "always"...
>
> These (.txt changes in other patches as well) are mostly copy and
> paste from existing .txt files. You may want to grep through and fix
> other places as well, in a separate series.
>
>>
>>> +--no-color::
>>> +   Turn off coloring, even when the configuration file gives the
>>> +   default to color output, same as `--color=never`. This is the
>>> +   default.
>>
>> But, here the default is "never".
>
> What I mean is color is turned off by default for ls-files (in
> contrast, ls has color on by default). The default 'always' means that
> if you write --color without the  part, then it's
> --color=always. How do I phrase to make it clear?

Perhaps:

Color file names. The value must be always, never, or auto.
`--color` by itself is the same as `--color=always`.

> --
> Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 06/17] ls-files: add --color to highlight file names

2014-03-26 Thread Duy Nguyen
On Thu, Mar 27, 2014 at 2:13 AM, Eric Sunshine  wrote:
> On Wed, Mar 26, 2014 at 9:48 AM, Nguyễn Thái Ngọc Duy  
> wrote:
>> Signed-off-by: Nguyễn Thái Ngọc Duy 
>> ---
>>  Documentation/git-ls-files.txt |  9 +
>>  builtin/ls-files.c | 38 +++---
>>  2 files changed, 44 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
>> index c0856a6..5c1b7f3 100644
>> --- a/Documentation/git-ls-files.txt
>> +++ b/Documentation/git-ls-files.txt
>> @@ -147,6 +147,15 @@ a space) at the start of each line:
>> possible for manual inspection; the exact format may change at
>> any time.
>>
>> +--color[=]::
>> +   Color file names. The value must be always (default), never,
>> +   or auto.
>
> Here, the default is "always"...

These (.txt changes in other patches as well) are mostly copy and
paste from existing .txt files. You may want to grep through and fix
other places as well, in a separate series.

>
>> +--no-color::
>> +   Turn off coloring, even when the configuration file gives the
>> +   default to color output, same as `--color=never`. This is the
>> +   default.
>
> But, here the default is "never".

What I mean is color is turned off by default for ls-files (in
contrast, ls has color on by default). The default 'always' means that
if you write --color without the  part, then it's
--color=always. How do I phrase to make it clear?
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 06/17] ls-files: add --color to highlight file names

2014-03-26 Thread Eric Sunshine
On Wed, Mar 26, 2014 at 9:48 AM, Nguyễn Thái Ngọc Duy  wrote:
> Signed-off-by: Nguyễn Thái Ngọc Duy 
> ---
>  Documentation/git-ls-files.txt |  9 +
>  builtin/ls-files.c | 38 +++---
>  2 files changed, 44 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
> index c0856a6..5c1b7f3 100644
> --- a/Documentation/git-ls-files.txt
> +++ b/Documentation/git-ls-files.txt
> @@ -147,6 +147,15 @@ a space) at the start of each line:
> possible for manual inspection; the exact format may change at
> any time.
>
> +--color[=]::
> +   Color file names. The value must be always (default), never,
> +   or auto.

Here, the default is "always"...

> +--no-color::
> +   Turn off coloring, even when the configuration file gives the
> +   default to color output, same as `--color=never`. This is the
> +   default.

But, here the default is "never".

> +
>  \--::
> Do not interpret any more arguments as options.
>
> diff --git a/builtin/ls-files.c b/builtin/ls-files.c
> index 6e30592..2857b38 100644
> --- a/builtin/ls-files.c
> +++ b/builtin/ls-files.c
> @@ -14,6 +14,7 @@
>  #include "resolve-undo.h"
>  #include "string-list.h"
>  #include "pathspec.h"
> +#include "color.h"
>
>  static int abbrev;
>  static int show_deleted;
> @@ -27,6 +28,7 @@ static int show_killed;
>  static int show_valid_bit;
>  static int line_terminator = '\n';
>  static int debug_mode;
> +static int use_color;
>
>  static const char *prefix;
>  static int max_prefix_len;
> @@ -60,7 +62,6 @@ static void write_name(struct strbuf *sb, const char *name)
> strbuf_release(&sb2);
> } else
> quote_path_relative(name, real_prefix, sb);
> -   strbuf_addch(sb, line_terminator);
>  }
>
>  static void strbuf_fputs(struct strbuf *sb, FILE *fp)
> @@ -68,6 +69,21 @@ static void strbuf_fputs(struct strbuf *sb, FILE *fp)
> fwrite(sb->buf, sb->len, 1, fp);
>  }
>
> +static void write_dir_entry(struct strbuf *sb, const struct dir_entry *ent)
> +{
> +   struct strbuf quoted = STRBUF_INIT;
> +   struct stat st;
> +   if (stat(ent->name, &st))
> +   st.st_mode = 0;
> +   write_name("ed, ent->name);
> +   if (want_color(use_color))
> +   color_filename(sb, ent->name, quoted.buf, st.st_mode, 1);
> +   else
> +   strbuf_addbuf(sb, "ed);
> +   strbuf_addch(sb, line_terminator);
> +   strbuf_release("ed);
> +}
> +
>  static void show_dir_entry(const char *tag, struct dir_entry *ent)
>  {
> static struct strbuf sb = STRBUF_INIT;
> @@ -81,7 +97,7 @@ static void show_dir_entry(const char *tag, struct 
> dir_entry *ent)
>
> strbuf_reset(&sb);
> strbuf_addstr(&sb, tag);
> -   write_name(&sb, ent->name);
> +   write_dir_entry(&sb, ent);
> strbuf_fputs(&sb, stdout);
>  }
>
> @@ -146,6 +162,18 @@ static void show_killed_files(struct dir_struct *dir)
> }
>  }
>
> +static void write_ce_name(struct strbuf *sb, const struct cache_entry *ce)
> +{
> +   struct strbuf quoted = STRBUF_INIT;
> +   write_name("ed, ce->name);
> +   if (want_color(use_color))
> +   color_filename(sb, ce->name, quoted.buf, ce->ce_mode, 1);
> +   else
> +   strbuf_addbuf(sb, "ed);
> +   strbuf_addch(sb, line_terminator);
> +   strbuf_release("ed);
> +}
> +
>  static void show_ce_entry(const char *tag, const struct cache_entry *ce)
>  {
> static struct strbuf sb = STRBUF_INIT;
> @@ -186,7 +214,7 @@ static void show_ce_entry(const char *tag, const struct 
> cache_entry *ce)
> find_unique_abbrev(ce->sha1,abbrev),
> ce_stage(ce));
> }
> -   write_name(&sb, ce->name);
> +   write_ce_name(&sb, ce);
> strbuf_fputs(&sb, stdout);
> if (debug_mode) {
> const struct stat_data *sd = &ce->ce_stat_data;
> @@ -523,6 +551,7 @@ int cmd_ls_files(int argc, const char **argv, const char 
> *cmd_prefix)
> N_("if any  is not in the index, treat this as 
> an error")),
> OPT_STRING(0, "with-tree", &with_tree, N_("tree-ish"),
> N_("pretend that paths removed since  are 
> still present")),
> +   OPT__COLOR(&use_color, N_("show color")),
> OPT__ABBREV(&abbrev),
> OPT_BOOL(0, "debug", &debug_mode, N_("show debugging data")),
> OPT_END()
> @@ -570,6 +599,9 @@ int cmd_ls_files(int argc, const char **argv, const char 
> *cmd_prefix)
> if (require_work_tree && !is_inside_work_tree())
> setup_work_tree();
>
> +   if (want_color(use_color))
> +   parse_ls_color();
> +
> parse_pathspec(&pathspec, 0,
>PATHSPEC_PREFER_CWD |
>PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP,
>