Re: [PATCH v10 6/9] convert: add 'working-tree-encoding' attribute
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Mar 7, 2018, 17:54 UTC
- Message-ID
- <CAPig+cSvC1a5EaDfFZdJU74mZz84M=CkeOJLSDxFdXKcJYyzEw@mail.gmail.com>
- In-Reply-To
- <20180307173026.30058-7-lars.schneider@autodesk.com>
On Wed, Mar 7, 2018 at 12:30 PM, <lars.schneider@autodesk.com> wrote:
Show 24 quoted lines
> [...]
> Add an attribute to tell Git what encoding the user has defined for a
> given file. If the content is added to the index, then Git converts the
> content to a canonical UTF-8 representation. On checkout Git will
> reverse the conversion.
>
> Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
> ---
> Documentation/gitattributes.txt | 80 +++++++++++++++++++++++
> diff --git a/convert.c b/convert.c
> @@ -265,6 +266,78 @@ static int will_convert_lf_to_crlf(size_t len, struct text_stat *stats,
> +static const char *default_encoding = "UTF-8";
> @@ -978,6 +1051,21 @@ static int ident_to_worktree(const char *path, const char *src, size_t len,
> +static const char *git_path_check_encoding(struct attr_check_item *check)
> +{
> + const char *value = check->value;
> +
> + if (ATTR_TRUE(value) || ATTR_FALSE(value) || ATTR_UNSET(value) ||
> + !strlen(value))
> + return NULL;
> +
> + /* Don't encode to the default encoding */
> + if (!strcasecmp(value, default_encoding))
> + return NULL;As of v10, the rest of the code accepts encoding names "UTF-xx" and "UTFxx" (case insensitive), however, this check recognizes only "UTF-8" (case insensitive). For consistency, one would expect this also to recognize "UTF8" (case insensitive).
> + > + return value; > +}