diff options
-rw-r--r-- | src/buffer.c | 26 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/buffer.c b/src/buffer.c index 98cca6ca7c..174ca1efb8 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5231,8 +5231,8 @@ build_stl_str_hl( #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 @@ get_rel_pos( 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 331d6c99f4..7bb63e9546 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1497, +/**/ 1496, /**/ 1495, |