summaryrefslogtreecommitdiff
path: root/transport.h
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2012-09-04 17:39:35 +0700
committerJunio C Hamano <gitster@pobox.com>2012-09-14 12:45:50 -0700
commit754395d3052fc0d46948b2ff7006b3c6701785c8 (patch)
tree501893fca3b18e917ba9ff9ca5a807d2353b4d64 /transport.h
parentb52183179bb0a97ea4d91d1248aca303d8e8f892 (diff)
downloadgit-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.h1
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 *);