Re: [PATCH v2] fetch: align new ref summary printout in UTF-8 locales
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Sep 5, 2012, 19:20 UTC
- Message-ID
- <5047A602.1020802@web.de>
- In-Reply-To
- <504796A5.4070700@gmail.com>
On 09/05/2012 08:15 PM, Torsten Bögershausen wrote:
Show 13 quoted lines
> On 04.09.12 12:39, Nguyễn Thái Ngọc Duy wrote:
>> +/* return the number of columns of string 's' in current locale */
>> +int gettext_width(const char *s)
>> +{
>> + static int is_utf8 = -1;
>> + if (is_utf8 == -1)
>> + is_utf8 = !strcmp(charset, "UTF-8");
>> +
>> + return is_utf8 ? utf8_strwidth(s) : strlen(s);
>
> Will that work for non-ASCII encodings?
> For ISO-8859-x we can say strlen() == strwidth(),
> but for other encodings using multibytes that doesn't work, does it?(Sorry the message went out before completely written) Something like that:
int gettext_width(const char *s) {
static int is_utf8 = -1; if (is_utf8 == -1)
is_utf8 = !strcmp(charset, "UTF-8"); if (is_utf8)
return utf8_strwidth(s);
else {
char *s_utf = reencode_string(s, "UTF-8", charset);
if (s_utf) {
witdh = utf8_strwidth(s_utf);
free(s_utf);
} else
width = strlen(s);return width; }