From: Jiang Xin Date: Wed, 06 Feb 2013 03:02:27 GMT Subject: Re: [PATCH v2 2/2] i18n: mark OPTION_NUMBER (-NUM) for translation Message-ID: In-Reply-To: <7vpq0enoui.fsf@alter.siamese.dyndns.org> 2013/2/6 Junio C Hamano : > Jiang Xin 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; } -- 蒋鑫 北京群英汇信息技术有限公司 邮件: worldhello.net@gmail.com 网址: http://www.ossxp.com/ 博客: http://www.worldhello.net/ 微博: http://weibo.com/gotgit/ 电话: 010-51262007, 18601196889