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

Re: [PATCH v4] pretty-formats: add hard truncation, without ellipsis, options

From
Philip Oakley <philipoakley@iee.email>
Date
Nov 21, 2022, 18:10 UTC
Message-ID
<d80d1b97-b0c0-148b-afb7-f5210366e463@iee.email>
In-Reply-To
<xmqqfsedywli.fsf@gitster.g>
Hi Junio
On 21/11/2022 00:34, Junio C Hamano wrote:
Show 7 quoted lines
> Philip Oakley <philipoakley@iee.email> writes:
>
>> Instead of replacing with "..", replace with the empty string,
>> implied by passing NULL, and adjust the padding length calculation.
> What's the point of saying "implied by passing NULL" here?  Is it an
> excuse for passing NULL when passing "" would have sufficed and been
> more natural, or something?  

Passing the empty string was my first approach, however Taylor had commented "why pass the empty string, when NULL will do", hence I checked, and yes, we can pass NULL, so I followed that guidance on the re-roll.

> Also, it is unclear to whom you are
> passing the NULL.  I think that it is sufficient that you said
> "replace with the empty string" there.

I could drop the commit message comment, and keep the NULL being passed tostrbuf_utf8_replace to indicate the empty string, though that may create the same reviewer question that Taylor had.

Show 6 quoted lines
>
>> Extend the existing tests for these pretty formats to include
>> `Trunc` and Ltrunc` options matching the `trunc` and `ltrunc`
>> tests.
> A more important thing to say is that we add Trunc and Ltrunc, than
> we test for these new features ;-)
That would be to swap the paragraphs about, yes?
>
> You may also want to explain why there is no matching Mtrunc added.

Can do, though it felt obvious that the original mtrunc ellipsis would be necessary for the mid-case.

Show 9 quoted lines
>
> I also have another comment on the design.
>
> Imagine there are series of wide characters, each occupying two
> display columns, and you give 6 display columns to truncate such a
> string into.  "trunc" would give you "[][].." (where [] denotes one
> such wide letter that occupies two display columns), and "Trunc"
> would give you "[][][]".  Now if you give only 5 display columns,
> to fill instead of 6, what should happen?

My reading of the existing code for ltrunc/mtrunc/trunc was that all these padding conditions were already covered. It was simply a matter of column counting.

Show 12 quoted lines
>
> I do not recall how ".."-stuffed truncation works in this case but
> it should notice that it cannot stuff 3 wide letters and give you
> "[][].".  The current code may be already buggy, but at least at the
> design level, it is fairly clear what the feature _should_ do.
>
> As a design question, what should "Trunc" do in such a case now?  I
> do not think we can still call it "hard truncate" if the feature
> gives "[][]" (i.e. fill only 4 display columns, resulting in a
> string that is not wide enough) or "[][][]" (i.e. exceed 5 columns
> that are given), but of course chomping a letter in the middle is
> not acceptable behaviour, so ...

The design had already covered those cases. The author already had those thoughts

--
Philip
Previous: Junio C HamanoNext: Junio C Hamano
Message 14 of 30 in “extend the truncating pretty formats”
  1. 0/1 extend the truncating pretty formatsPhilip Oakley, Oct 30, 2022
  2. 1/1 pretty-formats: add hard truncation, without ellipsis, optionsPhilip Oakley, Oct 30, 2022
  3. Taylor BlauOct 30, 2022
  4. Philip OakleyOct 30, 2022
  5. Taylor BlauOct 30, 2022
  6. Philip OakleyOct 30, 2022
  7. 0/1 extend the truncating pretty formatsPhilip Oakley, Nov 1, 2022
  8. 1/1 pretty-formats: add hard truncation, without ellipsis, optionsPhilip Oakley, Nov 1, 2022
  9. Philip OakleyNov 1, 2022
  10. Taylor BlauNov 2, 2022
  11. pretty-formats: add hard truncation, without ellipsis, optionsPhilip Oakley, Nov 2, 2022
  12. pretty-formats: add hard truncation, without ellipsis, optionsPhilip Oakley, Nov 12, 2022
  13. Junio C HamanoNov 21, 2022
  14. Philip OakleyNov 21, 2022
  15. Junio C HamanoNov 22, 2022
  16. Philip OakleyNov 23, 2022
  17. Junio C HamanoNov 25, 2022
  18. Philip OakleyNov 26, 2022
  19. Philip OakleyNov 26, 2022
  20. Junio C HamanoNov 26, 2022
  21. Philip OakleyNov 28, 2022
  22. Junio C HamanoNov 29, 2022
  23. Philip OakleyDec 7, 2022
  24. Junio C HamanoDec 7, 2022
  25. 0/5 Pretty formats: Clarify column alignmentPhilip Oakley, Jan 19, 2023
  26. 3/5 doc: pretty-formats document negative column alignmentsPhilip Oakley, Jan 19, 2023
  27. 1/5 doc: pretty-formats: separate parameters from placeholdersPhilip Oakley, Jan 19, 2023
  28. 2/5 doc: pretty-formats: delineate `%<|(` parameter valuesPhilip Oakley, Jan 19, 2023
  29. 4/5 doc: pretty-formats describe use of ellipsis in truncationPhilip Oakley, Jan 19, 2023
  30. 5/5 doc: pretty-formats note wide char limitations, and add testsPhilip Oakley, Jan 19, 2023

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.