git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v5b 00/17] port branch.c to use ref-filter's printing options

From
Karthik Nayak <karthik.188@gmail.com>
Date
Apr 26, 2016, 18:21 UTC
Message-ID
<CAOLa=ZRUBi3Vo0Qqx8rY53rJD599XpWJjz2YpUE3Xkn1wH=Jqg@mail.gmail.com>
In-Reply-To
<xmqq4mapjr7y.fsf@gitster.mtv.corp.google.com>
On Tue, Apr 26, 2016 at 3:17 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 44 quoted lines
> Karthik Nayak <karthik.188@gmail.com> writes:
>
>> This is part of unification of the commands 'git tag -l, git branch -l
>> and git for-each-ref'. This ports over branch.c to use ref-filter's
>> printing options.
>>
>> Initially posted here: $(gmane/279226). It was decided that this series
>> would follow up after refactoring ref-filter parsing mechanism, which
>> is now merged into master (9606218b32344c5c756f7c29349d3845ef60b80c).
>>
>> v1 can be found here: $(gmane/288342)
>> v2 can be found here: $(gmane/288863)
>> v3 can be found here: $(gmane/290299)
>> v4 can be found here: $(gmane/291106)
>>
>> Changes in this version (v5b):
>> 1. Added the first patch of the series which was missing in v5.
>
> 2. Rebased on top of 'master', which includes
>    jk/branch-shortening-funny-symrefs.
>
>> Interdiff:
>>
>> diff --git a/builtin/branch.c b/builtin/branch.c
>> index c9a2e5b..6847ac3 100644
>> --- a/builtin/branch.c
>> +++ b/builtin/branch.c
>> @@ -288,9 +288,11 @@ static int calc_maxwidth(struct ref_array *refs, int remote_bonus)
>>
>>                 skip_prefix(it->refname, "refs/heads/", &desc);
>>                 skip_prefix(it->refname, "refs/remotes/", &desc);
>> -               if (it->kind == FILTER_REFS_DETACHED_HEAD)
>> -                       w = strlen(get_head_description());
>> -               else
>> +               if (it->kind == FILTER_REFS_DETACHED_HEAD) {
>> +                       char *head_desc = get_head_description();
>> +                       w = strlen(head_desc);
>> +                       free(head_desc);
>> +               } else
>>                         w = utf8_strwidth(desc);
>
> Presumably w is computed here to be used later for some kind of
> alignment?  It is curious why we can assume that head_desc does not
> need utf8_strwidth() here.

Seems to be a bug, `get_head_description()` is susceptible to be changed due to translation and hence `utf8_strwidth()` would be a better candidate here rather than `strlen()`.

Thanks.
-- 
Regards,
Karthik Nayak
Previous: Junio C Hamano
Message 20 of 20 in “port branch.c to use ref-filter's printing options”
  1. 00/17 port branch.c to use ref-filter's printing optionsKarthik Nayak, Apr 25, 2016
  2. 01/17 ref-filter: implement %(if), %(then), and %(else) atomsKarthik Nayak, Apr 25, 2016
  3. 02/17 ref-filter: include reference to 'used_atom' within 'atom_value'Karthik Nayak, Apr 25, 2016
  4. 03/17 ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)Karthik Nayak, Apr 25, 2016
  5. 04/17 ref-filter: modify "%(objectname:short)" to take lengthKarthik Nayak, Apr 25, 2016
  6. 05/17 ref-filter: move get_head_description() from branch.cKarthik Nayak, Apr 25, 2016
  7. 06/17 ref-filter: introduce format_ref_array_item()Karthik Nayak, Apr 25, 2016
  8. 07/17 ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreamsKarthik Nayak, Apr 25, 2016
  9. 08/17 ref-filter: add support for %(upstream:track,nobracket)Karthik Nayak, Apr 25, 2016
  10. 09/17 ref-filter: make "%(symref)" atom work with the ':short' modifierKarthik Nayak, Apr 25, 2016
  11. 10/17 ref-filter: introduce refname_atom_parser_internal()Karthik Nayak, Apr 25, 2016
  12. 11/17 ref-filter: introduce symref_atom_parser() and refname_atom_parser()Karthik Nayak, Apr 25, 2016
  13. 12/17 ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()Karthik Nayak, Apr 25, 2016
  14. 13/17 ref-filter: add `:dir` and `:base` options for ref printing atomsKarthik Nayak, Apr 25, 2016
  15. 14/17 ref-filter: allow porcelain to translate messages in the outputKarthik Nayak, Apr 25, 2016
  16. 15/17 branch, tag: use porcelain outputKarthik Nayak, Apr 25, 2016
  17. 16/17 branch: use ref-filter printing APIsKarthik Nayak, Apr 25, 2016
  18. 17/17 branch: implement '--format' optionKarthik Nayak, Apr 25, 2016
  19. Junio C HamanoApr 25, 2016
  20. Karthik NayakApr 26, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.