aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/strings.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2018-12-24 10:59:24 +0100
committerGitHub <noreply@github.com>2018-12-24 10:59:24 +0100
commit9ac1e2db79e3a1d86ce9cf7c6ea9181126556fb9 (patch)
tree636ff5ef7231f0f5bbbf13f92b43fa1ea4472abb /src/nvim/strings.c
parente9685d9f70f26daa6a252baf8f5a2d411cf4b38f (diff)
parent357e59982d014cccf14ccc092470250c011b8e44 (diff)
downloadrneovim-9ac1e2db79e3a1d86ce9cf7c6ea9181126556fb9.tar.gz
rneovim-9ac1e2db79e3a1d86ce9cf7c6ea9181126556fb9.tar.bz2
rneovim-9ac1e2db79e3a1d86ce9cf7c6ea9181126556fb9.zip
Merge pull request #9394 from bfredl/highsign
make vim_snprintf handle %d correctly again, fix ":sign place" output
Diffstat (limited to 'src/nvim/strings.c')
-rw-r--r--src/nvim/strings.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
index 87593f577b..4921824316 100644
--- a/src/nvim/strings.c
+++ b/src/nvim/strings.c
@@ -999,7 +999,10 @@ int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap,
} else if (fmt_spec == 'd') {
// signed
switch (length_modifier) {
- case '\0':
+ case '\0': {
+ arg = (int)(tvs ? tv_nr(tvs, &arg_idx) : va_arg(ap, int));
+ break;
+ }
case 'h': {
// char and short arguments are passed as int16_t
arg = (int16_t)(tvs ? tv_nr(tvs, &arg_idx) : va_arg(ap, int));
@@ -1031,11 +1034,16 @@ int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap,
} else {
// unsigned
switch (length_modifier) {
- case '\0':
+ case '\0': {
+ uarg = (unsigned int)(tvs
+ ? tv_nr(tvs, &arg_idx)
+ : va_arg(ap, unsigned int));
+ break;
+ }
case 'h': {
uarg = (uint16_t)(tvs
? tv_nr(tvs, &arg_idx)
- : va_arg(ap, unsigned));
+ : va_arg(ap, unsigned int));
break;
}
case 'l': {