X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=gettext.c;h=71e954563d7068500bd41269dd57f01b097f7c3d;hb=refs%2Fheads%2Fwtk%2Fsubmodule.name.branch-v4;hp=f75bca7f56b7b27c135d92acba816c40211fdece;hpb=c528586a0cf0afc6aa18fbd060fa544e7e189c82;p=git.git diff --git a/gettext.c b/gettext.c index f75bca7f5..71e954563 100644 --- a/gettext.c +++ b/gettext.c @@ -4,6 +4,8 @@ #include "git-compat-util.h" #include "gettext.h" +#include "strbuf.h" +#include "utf8.h" #ifndef NO_GETTEXT # include @@ -27,10 +29,9 @@ int use_gettext_poison(void) #endif #ifndef NO_GETTEXT +static const char *charset; static void init_gettext_charset(const char *domain) { - const char *charset; - /* This trick arranges for messages to be emitted in the user's requested encoding, but avoids setting LC_CTYPE from the @@ -128,4 +129,14 @@ void git_setup_gettext(void) init_gettext_charset("git"); textdomain("git"); } + +/* 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); +} #endif