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

Re: Broken interactive rebase text after some UTF-8 characters

From
Alban Gruin <alban.gruin@gmail.com>
Date
Jan 31, 2019, 17:43 UTC
Message-ID
<505c2e2e-c9bc-aa57-c498-2acced0b8afa@gmail.com>
In-Reply-To
<8c43e31b-01d8-a1c5-d19c-8efd0e5c1714@talktalk.net>
Hi Phillip and Michal,
I think I found the bug.

If you look at .git/rebase-merge/git-rebase-todo.backup, which is created before the editor is opened, you can see that it does not have this problem. In between, transform_todos() is called and causes the problem reported by Michal.

This seems to be caused by a single line, sequencer:4661 (on b5101f9297, "Fourth batch after 2.20", 2019-01-29)[1]. If you add just before a something like this:

    fwrite(item->arg, item->arg_len, sizeof(char), stdout);

You will see that the argument is properly written to stdout. But if you write this:

    printf("%.*s\n", item->arg_len, item->arg);
You will have the same broken output as in the todo file.
Are we misusing C formats?
[1] https://github.com/git/git/blob/master/sequencer.c#L4661

Cheers, Alban

Previous: Phillip WoodNext: Phillip Wood
Message 5 of 16 in “Broken interactive rebase text after some UTF-8 characters”
  1. Michal NowakJan 15, 2019
  2. Phillip WoodJan 16, 2019
  3. Michal NowakJan 16, 2019
  4. Phillip WoodJan 17, 2019
  5. Alban GruinJan 31, 2019
  6. Phillip WoodJan 31, 2019
  7. Alban GruinJan 31, 2019
  8. Junio C HamanoJan 31, 2019
  9. Johannes SchindelinFeb 1, 2019
  10. Michal NowakFeb 1, 2019
  11. Johannes SchindelinFeb 1, 2019
  12. Michal NowakFeb 1, 2019
  13. Junio C HamanoFeb 1, 2019
  14. Michal NowakFeb 1, 2019
  15. Alban GruinFeb 1, 2019
  16. Alban GruinFeb 1, 2019

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.