2013/2/6 Junio C Hamano <gits...@pobox.com>:
> Jiang Xin <worldhello....@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;
 }


-- 
蒋鑫

北京群英汇信息技术有限公司
邮件: worldhello....@gmail.com
网址: http://www.ossxp.com/
博客: http://www.worldhello.net/
微博: http://weibo.com/gotgit/
电话: 010-51262007, 18601196889
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to