aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-03-10 07:18:49 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-03-10 07:40:52 +0800
commit3011794c8600f529bc049983a64ca99ae03908df (patch)
tree9c28c3e3d13a011a43058b16c59b0807c8c39910 /src/nvim/api/vim.c
parenta978d7689db7aafb992b339f788cdd038750949e (diff)
downloadrneovim-3011794c8600f529bc049983a64ca99ae03908df.tar.gz
rneovim-3011794c8600f529bc049983a64ca99ae03908df.tar.bz2
rneovim-3011794c8600f529bc049983a64ca99ae03908df.zip
feat(api): relax statusline fillchar width check
Treat fillchar as single-width even if it isn't.
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index c37df45c14..1a324bfaa5 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -2241,7 +2241,7 @@ Array nvim_get_mark(String name, Dictionary opts, Error *err)
/// - winid: (number) |window-ID| of the window to use as context for statusline.
/// - maxwidth: (number) Maximum width of statusline.
/// - fillchar: (string) Character to fill blank spaces in the statusline (see
-/// 'fillchars').
+/// 'fillchars'). Treated as single-width even if it isn't.
/// - highlights: (boolean) Return highlight information.
/// - use_tabline: (boolean) Evaluate tabline instead of statusline. When |TRUE|, {winid}
/// is ignored.
@@ -2277,11 +2277,12 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Error *
if (HAS_KEY(opts->fillchar)) {
if (opts->fillchar.type != kObjectTypeString || opts->fillchar.data.string.size == 0
- || char2cells(fillchar = utf_ptr2char((char_u *)opts->fillchar.data.string.data)) != 1
- || (size_t)utf_char2len(fillchar) != opts->fillchar.data.string.size) {
- api_set_error(err, kErrorTypeValidation, "fillchar must be a single-width character");
+ || ((size_t)utf_ptr2len((char_u *)opts->fillchar.data.string.data)
+ != opts->fillchar.data.string.size)) {
+ api_set_error(err, kErrorTypeValidation, "fillchar must be a single character");
return result;
}
+ fillchar = utf_ptr2char((char_u *)opts->fillchar.data.string.data);
}
if (HAS_KEY(opts->highlights)) {