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

Re: [PATCH v2 2/2] i18n: mark OPTION_NUMBER (-NUM) for translation

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 6, 2013, 04:35 UTC
Message-ID
<7vip66njpj.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CANYiYbF8DCPxqGQ2AFFXpSm0nO+wFDg=qrn9C8uoZO6fj__NHA@mail.gmail.com>
Jiang Xin <worldhello.net@gmail.com> writes:
Show 34 quoted lines
> 2013/2/6 Junio C Hamano <gitster@pobox.com>:
>> Jiang Xin <worldhello.net@gmail.com> writes:
>>> I agree, a helper named 'utf8_fprintf' in utf8.c is better.
>>> I will send a patch latter.
>>
>> Yeah, the idea of a helper function I agree with; I am not thrilled
>> with the name utf8_fprintf() though.  People use the return value of
>> fprintf() for error detection (negative return value means an error)
>> most of the time (even though non-negative value gives the number of
>> bytes shown), but the primary use of the return value from the
>> utf8_fprintf() function will be to get the display width, and the
>> name does not quite capture that.
>>
>
> How about this since [PATCH v3]:
>
> diff --git a/utf8.c b/utf8.c
> index 52dbd..b893a 100644
> --- a/utf8.c
> +++ b/utf8.c
> @@ -443,8 +443,11 @@ int utf8_fprintf(FILE *stream, const char *format, ...)
>         strbuf_vaddf(&buf, format, arg);
>         va_end (arg);
>
> -       fputs(buf.buf, stream);
> -       columns = utf8_strwidth(buf.buf);
> +       columns = fputs(buf.buf, stream);
> +       /* If no error occurs, and really write something (columns > 0),
> +        * calculate really columns width with utf8_strwidth. */
> +       if (columns > 0)
> +               columns = utf8_strwidth(buf.buf);
>         strbuf_release(&buf);
>         return columns;
>  }

Yeah, the error checking is necessary; it would make your intention more clear to say:

	if (0 <= columns)
		columns = utf8_strwidth(buf.buf);

though, as buf.buf _may_ be an empty string, and with the "if" statement you are saying "we return the width only when output did not result in an error".

The above bugfix does not address my original concern about the name, though.

Previous: Jiang XinNext: Duy Nguyen
Message 11 of 20 in “Get correct column with for options in command usage”
  1. Get correct column with for options in command usageJiang Xin, Feb 5, 2013
  2. Duy NguyenFeb 5, 2013
  3. Duy NguyenFeb 5, 2013
  4. Junio C HamanoFeb 5, 2013
  5. 1/2 Get correct column with for options in command usageJiang Xin, Feb 5, 2013
  6. 2/2 i18n: mark OPTION_NUMBER (-NUM) for translationJiang Xin, Feb 5, 2013
  7. Junio C HamanoFeb 5, 2013
  8. Jiang XinFeb 6, 2013
  9. Junio C HamanoFeb 6, 2013
  10. Jiang XinFeb 6, 2013
  11. Junio C HamanoFeb 6, 2013
  12. Duy NguyenFeb 6, 2013
  13. Junio C HamanoFeb 6, 2013
  14. Add utf8_fprintf helper which returns correct columnsJiang Xin, Feb 8, 2013
  15. Torsten BögershausenFeb 8, 2013
  16. Torsten BögershausenFeb 8, 2013
  17. Jiang XinFeb 8, 2013
  18. Torsten BögershausenFeb 8, 2013
  19. Add utf8_fprintf helper that returns correct columnsJiang Xin, Feb 9, 2013
  20. Add utf8_fprintf helper which returns correct columnsJiang Xin, Feb 6, 2013

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.