patch 9.0.1497: the ruler percentage can't be localized
Problem: The ruler percentage can't be localized.
Solution: Use a string that can be translated. (Emir Sari, closes #12311)
diff --git a/src/buffer.c b/src/buffer.c
index 98cca6c..174ca1e 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5231,8 +5231,8 @@
#endif // FEAT_STL_OPT
/*
- * Get relative cursor position in window into "buf[buflen]", in the form 99%,
- * using "Top", "Bot" or "All" when appropriate.
+ * Get relative cursor position in window into "buf[buflen]", in the localized
+ * percentage form like %99, 99%; using "Top", "Bot" or "All" when appropriate.
*/
void
get_rel_pos(
@@ -5256,13 +5256,27 @@
below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1;
if (below <= 0)
vim_strncpy(buf, (char_u *)(above == 0 ? _("All") : _("Bot")),
- (size_t)(buflen - 1));
+ (size_t)(buflen - 1));
else if (above <= 0)
vim_strncpy(buf, (char_u *)_("Top"), (size_t)(buflen - 1));
else
- vim_snprintf((char *)buf, (size_t)buflen, "%2d%%", above > 1000000L
- ? (int)(above / ((above + below) / 100L))
- : (int)(above * 100L / (above + below)));
+ {
+ int perc = (above > 1000000L)
+ ? (int)(above / ((above + below) / 100L))
+ : (int)(above * 100L / (above + below));
+
+ char *p = (char *)buf;
+ size_t l = buflen;
+ if (perc < 10)
+ {
+ // prepend one space
+ buf[0] = ' ';
+ ++p;
+ --l;
+ }
+ // localized percentage value
+ vim_snprintf(p, l, _("%d%%"), perc);
+ }
}
/*
diff --git a/src/version.c b/src/version.c
index 331d6c9..7bb63e9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1497,
+/**/
1496,
/**/
1495,