Skip to content

Commit

Permalink
patch 9.0.1497: the ruler percentage can't be localized
Browse files Browse the repository at this point in the history
Problem:    The ruler percentage can't be localized.
Solution:   Use a string that can be translated. (Emir Sari, closes #12311)
  • Loading branch information
bitigchi authored and brammool committed Apr 29, 2023
1 parent 0b933c3 commit 971cd2b
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
26 changes: 20 additions & 6 deletions src/buffer.c
Expand Up @@ -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(
Expand All @@ -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);
}
}

/*
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -695,6 +695,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1497,
/**/
1496,
/**/
Expand Down

0 comments on commit 971cd2b

Please sign in to comment.