diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2012-09-04 17:39:35 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-14 12:45:50 -0700 |
commit | 754395d3052fc0d46948b2ff7006b3c6701785c8 (patch) | |
tree | 501893fca3b18e917ba9ff9ca5a807d2353b4d64 /transport.h | |
parent | b52183179bb0a97ea4d91d1248aca303d8e8f892 (diff) | |
download | git-754395d3052fc0d46948b2ff7006b3c6701785c8.tar.gz |
fetch: align per-ref summary report in UTF-8 locales
fetch does printf("%-*s", width, "foo") where "foo" can be a utf-8
string, but width is in bytes, not columns. For ASCII it's fine as one
byte takes one column. For utf-8, this may result in misaligned ref
summary table.
Introduce gettext_width() function that returns the string length in
columns (currently only supports utf-8 locales). Make the code use
TRANSPORT_SUMMARY(x) where the length is compensated properly in
non-English locales.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'transport.h')
-rw-r--r-- | transport.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/transport.h b/transport.h index b866c126e6..3b21c4abe6 100644 --- a/transport.h +++ b/transport.h @@ -106,6 +106,7 @@ struct transport { #define TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND 256 #define TRANSPORT_SUMMARY_WIDTH (2 * DEFAULT_ABBREV + 3) +#define TRANSPORT_SUMMARY(x) (int)(TRANSPORT_SUMMARY_WIDTH + strlen(x) - gettext_width(x)), (x) /* Returns a transport suitable for the url */ struct transport *transport_get(struct remote *, const char *); |