commit c619d1da619b362217112d8165e2495860c5b056
parent 7ead328a48589f31b15bd6e84be5a0ab9386e620
Author: James McCoy <jamessan@jamessan.com>
Date: Wed, 26 Feb 2025 04:23:52 -0700
Merge pull request #32631 from jamessan/snprintf-binary
fix(vim_snprintf): special-case handling of binary format
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
@@ -1668,8 +1668,6 @@ int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap_st
}
switch (fmt_spec) {
- case 'b':
- case 'B':
case 'd':
case 'u':
case 'o':
@@ -1793,6 +1791,13 @@ int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap_st
if (ptr_arg) {
arg_sign = 1;
}
+ } else if (fmt_spec == 'b' || fmt_spec == 'B') {
+ uarg = (tvs
+ ? (unsigned long long)tv_nr(tvs, &arg_idx) // NOLINT(runtime/int)
+ : (skip_to_arg(ap_types, ap_start, &ap, &arg_idx,
+ &arg_cur, fmt),
+ va_arg(ap, unsigned long long))); // NOLINT(runtime/int)
+ arg_sign = (uarg != 0);
} else if (fmt_spec == 'd') {
// signed
switch (length_modifier) {