diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/buffer_updates.c | 2 | ||||
-rw-r--r-- | src/nvim/eval.c | 98 | ||||
-rw-r--r-- | src/nvim/eval/encode.c | 4 | ||||
-rw-r--r-- | src/nvim/eval/typval.c | 54 | ||||
-rw-r--r-- | src/nvim/ex_getln.c | 2 | ||||
-rw-r--r-- | src/nvim/fileio.c | 4 | ||||
-rw-r--r-- | src/nvim/garray.h | 2 | ||||
-rw-r--r-- | src/nvim/log.c | 3 | ||||
-rw-r--r-- | src/nvim/lua/executor.c | 2 | ||||
-rw-r--r-- | src/nvim/main.c | 4 | ||||
-rw-r--r-- | src/nvim/message.c | 6 | ||||
-rw-r--r-- | src/nvim/regexp_nfa.c | 6 | ||||
-rw-r--r-- | src/nvim/shada.c | 6 | ||||
-rw-r--r-- | src/nvim/spellfile.c | 20 | ||||
-rw-r--r-- | src/nvim/strings.c | 2 | ||||
-rw-r--r-- | src/nvim/tui/terminfo.c | 4 | ||||
-rw-r--r-- | src/nvim/undo.c | 2 |
17 files changed, 114 insertions, 107 deletions
diff --git a/src/nvim/buffer_updates.c b/src/nvim/buffer_updates.c index 18b53a0685..9d9c998a68 100644 --- a/src/nvim/buffer_updates.c +++ b/src/nvim/buffer_updates.c @@ -180,7 +180,7 @@ void buf_updates_send_changes(buf_T *buf, // change notifications are so frequent that many dead channels will be // cleared up quickly. if (badchannelid != 0) { - ELOG("Disabling buffer updates for dead channel %llu", badchannelid); + ELOG("Disabling buffer updates for dead channel %"PRIu64, badchannelid); buf_updates_unregister(buf, badchannelid); } } diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 44560792f0..a4cec206f3 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -1940,10 +1940,10 @@ static char_u *ex_let_one(char_u *arg, typval_T *const tv, } else if (*arg == '@') { arg++; if (op != NULL && (*op == '+' || *op == '-')) { - emsgf(_(e_letwrong), op); + EMSG2(_(e_letwrong), op); } else if (endchars != NULL && vim_strchr(endchars, *skipwhite(arg + 1)) == NULL) { - emsgf(_(e_letunexp)); + EMSG(_(e_letunexp)); } else { char_u *s; @@ -2083,7 +2083,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv, (flags & GLV_READ_ONLY) ? NULL : &ht, flags & GLV_NO_AUTOLOAD); if (v == NULL && !quiet) { - emsgf(_("E121: Undefined variable: %.*s"), + EMSG3(_("E121: Undefined variable: %.*s"), (int)lp->ll_name_len, lp->ll_name); } if (v == NULL) { @@ -2152,7 +2152,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv, if (rettv != NULL && (rettv->v_type != VAR_LIST || rettv->vval.v_list == NULL)) { if (!quiet) { - emsgf(_("E709: [:] requires a List value")); + EMSG(_("E709: [:] requires a List value")); } tv_clear(&var1); return NULL; @@ -2179,7 +2179,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv, if (*p != ']') { if (!quiet) { - emsgf(_(e_missbrac)); + EMSG(_(e_missbrac)); } tv_clear(&var1); tv_clear(&var2); @@ -2234,7 +2234,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv, /* Key does not exist in dict: may need to add it. */ if (*p == '[' || *p == '.' || unlet) { if (!quiet) { - emsgf(_(e_dictkey), key); + EMSG2(_(e_dictkey), key); } tv_clear(&var1); return NULL; @@ -3036,7 +3036,7 @@ static int do_lock_var(lval_T *lp, char_u *const name_end, const int deep, && di->di_tv.v_type != VAR_LIST) { // For historical reasons this error is not given for Lists and // Dictionaries. E.g. b: dictionary may be locked/unlocked. - emsgf(_("E940: Cannot lock or unlock variable %s"), lp->ll_name); + EMSG2(_("E940: Cannot lock or unlock variable %s"), lp->ll_name); } else { if (lock) { di->di_flags |= DI_FLAGS_LOCK; @@ -3254,7 +3254,7 @@ int eval0(char_u *arg, typval_T *rettv, char_u **nextcmd, int evaluate) // been cancelled due to an aborting error, an interrupt, or an // exception. if (!aborting()) { - emsgf(_(e_invexpr2), arg); + EMSG2(_(e_invexpr2), arg); } ret = FAIL; } @@ -3313,7 +3313,7 @@ static int eval1(char_u **arg, typval_T *rettv, int evaluate) * Check for the ":". */ if ((*arg)[0] != ':') { - emsgf(_("E109: Missing ':' after '?'")); + EMSG(_("E109: Missing ':' after '?'")); if (evaluate && result) { tv_clear(rettv); } @@ -4421,7 +4421,7 @@ eval_index( /* Check for the ']'. */ if (**arg != ']') { if (verbose) { - emsgf(_(e_missbrac)); + EMSG(_(e_missbrac)); } tv_clear(&var1); if (range) { @@ -4533,7 +4533,7 @@ eval_index( case VAR_DICT: { if (range) { if (verbose) { - emsgf(_(e_dictrange)); + EMSG(_(e_dictrange)); } if (len == -1) { tv_clear(&var1); @@ -4553,7 +4553,7 @@ eval_index( (const char *)key, len); if (item == NULL && verbose) { - emsgf(_(e_dictkey), key); + EMSG2(_(e_dictkey), key); } if (len == -1) { tv_clear(&var1); @@ -4890,14 +4890,14 @@ static int get_list_tv(char_u **arg, typval_T *rettv, int evaluate) break; } if (**arg != ',') { - emsgf(_("E696: Missing comma in List: %s"), *arg); + EMSG2(_("E696: Missing comma in List: %s"), *arg); goto failret; } *arg = skipwhite(*arg + 1); } if (**arg != ']') { - emsgf(_("E697: Missing end of List ']': %s"), *arg); + EMSG2(_("E697: Missing end of List ']': %s"), *arg); failret: if (evaluate) { tv_list_free(l); @@ -7783,7 +7783,7 @@ static void f_deepcopy(typval_T *argvars, typval_T *rettv, FunPtr fptr) noref = tv_get_number_chk(&argvars[1], NULL); } if (noref < 0 || noref > 1) { - emsgf(_(e_invarg)); + EMSG(_(e_invarg)); } else { var_item_copy(NULL, &argvars[0], rettv, true, (noref == 0 ? get_copyID() @@ -7835,17 +7835,17 @@ static void f_dictwatcheradd(typval_T *argvars, typval_T *rettv, FunPtr fptr) } if (argvars[0].v_type != VAR_DICT) { - emsgf(_(e_invarg2), "dict"); + EMSG2(_(e_invarg2), "dict"); return; } else if (argvars[0].vval.v_dict == NULL) { const char *const arg_errmsg = _("dictwatcheradd() argument"); const size_t arg_errmsg_len = strlen(arg_errmsg); - emsgf(_(e_readonlyvar), (int)arg_errmsg_len, arg_errmsg); + EMSG3(_(e_readonlyvar), (int)arg_errmsg_len, arg_errmsg); return; } if (argvars[1].v_type != VAR_STRING && argvars[1].v_type != VAR_NUMBER) { - emsgf(_(e_invarg2), "key"); + EMSG2(_(e_invarg2), "key"); return; } @@ -7857,7 +7857,7 @@ static void f_dictwatcheradd(typval_T *argvars, typval_T *rettv, FunPtr fptr) Callback callback; if (!callback_from_typval(&callback, &argvars[2])) { - emsgf(_(e_invarg2), "funcref"); + EMSG2(_(e_invarg2), "funcref"); return; } @@ -7873,12 +7873,12 @@ static void f_dictwatcherdel(typval_T *argvars, typval_T *rettv, FunPtr fptr) } if (argvars[0].v_type != VAR_DICT) { - emsgf(_(e_invarg2), "dict"); + EMSG2(_(e_invarg2), "dict"); return; } if (argvars[2].v_type != VAR_FUNC && argvars[2].v_type != VAR_STRING) { - emsgf(_(e_invarg2), "funcref"); + EMSG2(_(e_invarg2), "funcref"); return; } @@ -8643,7 +8643,7 @@ static int filter_map_one(typval_T *tv, typval_T *expr, int map, int *remp) } if (*s != NUL) { // check for trailing chars after expr - emsgf(_(e_invexpr2), s); + EMSG2(_(e_invexpr2), s); goto theend; } } @@ -8944,7 +8944,7 @@ static void common_function(typval_T *argvars, typval_T *rettv, } if (s == NULL || *s == NUL || (use_string && ascii_isdigit(*s)) || (is_funcref && trans_name == NULL)) { - emsgf(_(e_invarg2), (use_string + EMSG2(_(e_invarg2), (use_string ? tv_get_string(&argvars[0]) : (const char *)s)); // Don't check an autoload name for existence here. @@ -11178,7 +11178,7 @@ void get_user_input(const typval_T *const argvars, char def[1] = { 0 }; if (argvars[0].v_type == VAR_DICT) { if (argvars[1].v_type != VAR_UNKNOWN) { - emsgf(_("E5050: {opts} must be the only argument")); + EMSG(_("E5050: {opts} must be the only argument")); return; } dict_T *const dict = argvars[0].vval.v_dict; @@ -11487,7 +11487,7 @@ static void dict_list(typval_T *const tv, typval_T *const rettv, const DictListType what) { if (tv->v_type != VAR_DICT) { - emsgf(_(e_dictreq)); + EMSG(_(e_dictreq)); return; } if (tv->vval.v_dict == NULL) { @@ -11917,7 +11917,7 @@ static void f_json_decode(typval_T *argvars, typval_T *rettv, FunPtr fptr) } } if (json_decode_string(s, len, rettv) == FAIL) { - emsgf(_("E474: Failed to parse %.*s"), (int) len, s); + EMSG3(_("E474: Failed to parse %.*s"), (int) len, s); rettv->v_type = VAR_NUMBER; rettv->vval.v_number = 0; } @@ -12907,11 +12907,11 @@ static void f_nr2char(typval_T *argvars, typval_T *rettv, FunPtr fptr) return; } if (num < 0) { - emsgf(_("E5070: Character number must not be less than zero")); + EMSG(_("E5070: Character number must not be less than zero")); return; } if (num > INT_MAX) { - emsgf(_("E5071: Character number must not be greater than INT_MAX (%i)"), + EMSG2(_("E5071: Character number must not be greater than INT_MAX (%i)"), INT_MAX); return; } @@ -13053,9 +13053,9 @@ static void f_range(typval_T *argvars, typval_T *rettv, FunPtr fptr) return; // Type error; errmsg already given. } if (stride == 0) { - emsgf(_("E726: Stride is zero")); + EMSG(_("E726: Stride is zero")); } else if (stride > 0 ? end + 1 < start : end - 1 > start) { - emsgf(_("E727: Start past end")); + EMSG(_("E727: Start past end")); } else { tv_list_alloc_ret(rettv, (end - start) / stride); for (i = start; stride > 0 ? i <= end : i >= end; i += stride) { @@ -13392,7 +13392,7 @@ static void f_remove(typval_T *argvars, typval_T *rettv, FunPtr fptr) } } if (li == NULL) { // Didn't find "item2" after "item". - emsgf(_(e_invrange)); + EMSG(_(e_invrange)); } else { tv_list_move_items(l, item, item2, tv_list_alloc_ret(rettv, cnt), cnt); @@ -13683,7 +13683,7 @@ static int get_search_arg(typval_T *varp, int *flagsp) } } if (mask == 0) { - emsgf(_(e_invarg2), flags); + EMSG2(_(e_invarg2), flags); dir = 0; } else { *flagsp |= mask; @@ -13934,7 +13934,7 @@ static void f_rpcstart(typval_T *argvars, typval_T *rettv, FunPtr fptr) int i = 0; TV_LIST_ITER_CONST(args, arg, { if (TV_LIST_ITEM_TV(arg)->v_type != VAR_STRING) { - emsgf(_("E5010: List item %d of the second argument is not a string"), + EMSG2(_("E5010: List item %d of the second argument is not a string"), i); return; } @@ -14703,7 +14703,7 @@ static void set_qf_ll_list(win_T *wp, typval_T *args, typval_T *rettv) } else if (title_arg->v_type == VAR_DICT) { d = title_arg->vval.v_dict; } else { - emsgf(_(e_dictreq)); + EMSG(_(e_dictreq)); return; } @@ -14753,7 +14753,7 @@ static void f_setmatches(typval_T *argvars, typval_T *rettv, FunPtr fptr) TV_LIST_ITER_CONST(l, li, { if (TV_LIST_ITEM_TV(li)->v_type != VAR_DICT || (d = TV_LIST_ITEM_TV(li)->vval.v_dict) == NULL) { - emsgf(_("E474: List item %d is either not a dictionary " + EMSG2(_("E474: List item %d is either not a dictionary " "or an empty one"), i); return; } @@ -14762,7 +14762,7 @@ static void f_setmatches(typval_T *argvars, typval_T *rettv, FunPtr fptr) || tv_dict_find(d, S_LEN("pos1")) != NULL) && tv_dict_find(d, S_LEN("priority")) != NULL && tv_dict_find(d, S_LEN("id")) != NULL)) { - emsgf(_("E474: List item %d is missing one of the required keys"), i); + EMSG2(_("E474: List item %d is missing one of the required keys"), i); return; } i++; @@ -16199,7 +16199,7 @@ static void f_submatch(typval_T *argvars, typval_T *rettv, FunPtr fptr) } if (no < 0 || no >= NSUBEXP) { - EMSGN(_("E935: invalid submatch number: %d"), no); + EMSG2(_("E935: invalid submatch number: %ld"), no); return; } int retList = 0; @@ -17563,7 +17563,7 @@ static void f_winrestview(typval_T *argvars, typval_T *rettv, FunPtr fptr) if (argvars[0].v_type != VAR_DICT || (dict = argvars[0].vval.v_dict) == NULL) { - emsgf(_(e_invarg)); + EMSG(_(e_invarg)); } else { dictitem_T *di; if ((di = tv_dict_find(dict, S_LEN("lnum"))) != NULL) { @@ -17680,7 +17680,7 @@ static bool write_list(FileDescriptor *const fp, const list_T *const list, } return true; write_list_error: - emsgf(_("E80: Error while writing: %s"), os_strerror(error)); + EMSG2(_("E80: Error while writing: %s"), os_strerror(error)); return false; } @@ -17829,7 +17829,7 @@ static void f_writefile(typval_T *argvars, typval_T *rettv, FunPtr fptr) case 'S': { do_fsync = false; break; } default: { // Using %s, p and not %c, *p to preserve multibyte characters - emsgf(_("E5060: Unknown flag: %s"), p); + EMSG2(_("E5060: Unknown flag: %s"), p); return; } } @@ -17848,14 +17848,14 @@ static void f_writefile(typval_T *argvars, typval_T *rettv, FunPtr fptr) } else if ((error = file_open(&fp, fname, ((append ? kFileAppend : kFileTruncate) | kFileCreate), 0666)) != 0) { - emsgf(_("E482: Can't open file %s for writing: %s"), + EMSG3(_("E482: Can't open file %s for writing: %s"), fname, os_strerror(error)); } else { if (write_list(&fp, list, binary)) { rettv->vval.v_number = 0; } if ((error = file_close(&fp, do_fsync)) != 0) { - emsgf(_("E80: Error when closing file %s: %s"), + EMSG3(_("E80: Error when closing file %s: %s"), fname, os_strerror(error)); } } @@ -18588,7 +18588,7 @@ static int get_var_tv( if (tv == NULL) { if (rettv != NULL && verbose) { - emsgf(_("E121: Undefined variable: %.*s"), len, name); + EMSG3(_("E121: Undefined variable: %.*s"), len, name); } ret = FAIL; } else if (rettv != NULL) { @@ -19236,7 +19236,7 @@ static void set_var(const char *name, const size_t name_len, typval_T *const tv, } else { // Add a new variable. // Can't add "v:" variable. if (ht == &vimvarht) { - emsgf(_(e_illvar), name); + EMSG2(_(e_illvar), name); return; } @@ -19315,7 +19315,7 @@ bool var_check_ro(const int flags, const char *name, name_len = strlen(name); } - emsgf(_(error_message), (int)name_len, name); + EMSG3(_(error_message), (int)name_len, name); return true; } @@ -19349,7 +19349,7 @@ static bool var_check_fixed(const int flags, const char *name, } else if (name_len == TV_CSTRING) { name_len = strlen(name); } - emsgf(_("E795: Cannot delete variable %.*s"), (int)name_len, name); + EMSG3(_("E795: Cannot delete variable %.*s"), (int)name_len, name); return true; } return false; @@ -19400,7 +19400,7 @@ bool valid_varname(const char *varname) if (!eval_isnamec1((int)(uint8_t)(*p)) && (p == varname || !ascii_isdigit(*p)) && *p != AUTOLOAD_CHAR) { - emsgf(_(e_illvar), varname); + EMSG2(_(e_illvar), varname); return false; } } @@ -19958,7 +19958,7 @@ void ex_function(exarg_T *eap) if (*p == '\n') { line_arg = p + 1; } else if (*p != NUL && *p != '"' && !eap->skip && !did_emsg) { - emsgf(_(e_trailing)); + EMSG(_(e_trailing)); } /* @@ -20378,7 +20378,7 @@ trans_function_name( */ if (!aborting()) { if (end != NULL) { - emsgf(_(e_invarg2), start); + EMSG2(_(e_invarg2), start); } } else { *pp = (char_u *)find_name_end(start, NULL, NULL, FNE_INCL_BR); diff --git a/src/nvim/eval/encode.c b/src/nvim/eval/encode.c index 9bae436e3d..2563e38258 100644 --- a/src/nvim/eval/encode.c +++ b/src/nvim/eval/encode.c @@ -609,14 +609,14 @@ static inline int convert_to_json_string(garray_T *const gap, if (ch > 0x7F && shift == 1) { emsgf(_("E474: String \"%.*s\" contains byte that does not start " "any UTF-8 character"), - utf_len - (i - shift), utf_buf + i - shift); + (int)(utf_len - (i - shift)), utf_buf + i - shift); xfree(tofree); return FAIL; } else if ((SURROGATE_HI_START <= ch && ch <= SURROGATE_HI_END) || (SURROGATE_LO_START <= ch && ch <= SURROGATE_LO_END)) { emsgf(_("E474: UTF-8 string contains code point which belongs " "to a surrogate pair: %.*s"), - utf_len - (i - shift), utf_buf + i - shift); + (int)(utf_len - (i - shift)), utf_buf + i - shift); xfree(tofree); return FAIL; } else if (ENCODE_RAW(ch)) { diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c index 55dcfcc198..5d893950ba 100644 --- a/src/nvim/eval/typval.c +++ b/src/nvim/eval/typval.c @@ -61,7 +61,7 @@ void list_write_log(const char *const fname) FileDescriptor fp; const int fo_ret = file_open(&fp, fname, kFileCreate|kFileAppend, 0600); if (fo_ret != 0) { - emsgf(_("E5142: Failed to open file %s: %s"), fname, os_strerror(fo_ret)); + EMSG3(_("E5142: Failed to open file %s: %s"), fname, os_strerror(fo_ret)); return; } for (ListLog *chunk = list_log_first; chunk != NULL;) { @@ -83,7 +83,7 @@ void list_write_log(const char *const fname) sizeof(chunk->entries[0]) * (chunk->size - i)); chunk->size -= i; } - emsgf(_("E5143: Failed to write to file %s: %s"), + EMSG3(_("E5143: Failed to write to file %s: %s"), fname, os_strerror((int)fw_ret)); return; } @@ -94,7 +94,7 @@ void list_write_log(const char *const fname) } const int fc_ret = file_close(&fp, true); if (fc_ret != 0) { - emsgf(_("E5144: Failed to close file %s: %s"), fname, os_strerror(fc_ret)); + EMSG3(_("E5144: Failed to close file %s: %s"), fname, os_strerror(fc_ret)); } } @@ -991,7 +991,7 @@ const char *tv_list_find_str(list_T *const l, const int n) { const listitem_T *const li = tv_list_find(l, n); if (li == NULL) { - emsgf(_(e_listidx), (int64_t)n); + EMSG2(_(e_listidx), (int64_t)n); return NULL; } return tv_get_string(TV_LIST_ITEM_TV(li)); @@ -1286,7 +1286,7 @@ void tv_dict_item_remove(dict_T *const dict, dictitem_T *const item) { hashitem_T *const hi = hash_find(&dict->dv_hashtab, item->di_key); if (HASHITEM_EMPTY(hi)) { - emsgf(_(e_intern2), "tv_dict_item_remove()"); + EMSG2(_(e_intern2), "tv_dict_item_remove()"); } else { hash_remove(&dict->dv_hashtab, hi); } @@ -1532,7 +1532,7 @@ bool tv_dict_get_callback(dict_T *const d, } if (!tv_is_func(di->di_tv) && di->di_tv.v_type != VAR_STRING) { - emsgf(_("E6000: Argument is not a function or function name")); + EMSG(_("E6000: Argument is not a function or function name")); return false; } @@ -1759,7 +1759,7 @@ void tv_dict_extend(dict_T *const d1, dict_T *const d2, NULL); } } else if (*action == 'e') { - emsgf(_("E737: Key already exists: %s"), di2->di_key); + EMSG2(_("E737: Key already exists: %s"), di2->di_key); break; } else if (*action == 'f' && di2 != di1) { typval_T oldtv; @@ -2278,7 +2278,7 @@ void tv_copy(const typval_T *const from, typval_T *const to) break; } case VAR_UNKNOWN: { - emsgf(_(e_intern2), "tv_copy(UNKNOWN)"); + EMSG2(_(e_intern2), "tv_copy(UNKNOWN)"); break; } } @@ -2298,7 +2298,7 @@ void tv_item_lock(typval_T *const tv, const int deep, const bool lock) static int recurse = 0; if (recurse >= DICT_MAXNEST) { - emsgf(_("E743: variable nested too deep for (un)lock")); + EMSG(_("E743: variable nested too deep for (un)lock")); return; } if (deep == 0) { @@ -2426,7 +2426,7 @@ bool tv_check_lock(const VarLockStatus lock, const char *name, name_len = strlen(name); } - emsgf(_(error_message), (int)name_len, name); + EMSG3(_(error_message), (int)name_len, name); return true; } @@ -2546,28 +2546,28 @@ bool tv_check_str_or_nr(const typval_T *const tv) return true; } case VAR_FLOAT: { - emsgf(_("E805: Expected a Number or a String, Float found")); + EMSG(_("E805: Expected a Number or a String, Float found")); return false; } case VAR_PARTIAL: case VAR_FUNC: { - emsgf(_("E703: Expected a Number or a String, Funcref found")); + EMSG(_("E703: Expected a Number or a String, Funcref found")); return false; } case VAR_LIST: { - emsgf(_("E745: Expected a Number or a String, List found")); + EMSG(_("E745: Expected a Number or a String, List found")); return false; } case VAR_DICT: { - emsgf(_("E728: Expected a Number or a String, Dictionary found")); + EMSG(_("E728: Expected a Number or a String, Dictionary found")); return false; } case VAR_SPECIAL: { - emsgf(_("E5300: Expected a Number or a String")); + EMSG(_("E5300: Expected a Number or a String")); return false; } case VAR_UNKNOWN: { - emsgf(_(e_intern2), "tv_check_str_or_nr(UNKNOWN)"); + EMSG2(_(e_intern2), "tv_check_str_or_nr(UNKNOWN)"); return false; } } @@ -2611,7 +2611,7 @@ bool tv_check_num(const typval_T *const tv) case VAR_DICT: case VAR_FLOAT: case VAR_UNKNOWN: { - emsgf(_(num_errors[tv->v_type])); + EMSG(_(num_errors[tv->v_type])); return false; } } @@ -2655,7 +2655,7 @@ bool tv_check_str(const typval_T *const tv) case VAR_DICT: case VAR_FLOAT: case VAR_UNKNOWN: { - emsgf(_(str_errors[tv->v_type])); + EMSG(_(str_errors[tv->v_type])); return false; } } @@ -2702,7 +2702,7 @@ varnumber_T tv_get_number_chk(const typval_T *const tv, bool *const ret_error) case VAR_LIST: case VAR_DICT: case VAR_FLOAT: { - emsgf(_(num_errors[tv->v_type])); + EMSG(_(num_errors[tv->v_type])); break; } case VAR_NUMBER: { @@ -2728,7 +2728,7 @@ varnumber_T tv_get_number_chk(const typval_T *const tv, bool *const ret_error) break; } case VAR_UNKNOWN: { - emsgf(_(e_intern2), "tv_get_number(UNKNOWN)"); + EMSG2(_(e_intern2), "tv_get_number(UNKNOWN)"); break; } } @@ -2778,27 +2778,27 @@ float_T tv_get_float(const typval_T *const tv) } case VAR_PARTIAL: case VAR_FUNC: { - emsgf(_("E891: Using a Funcref as a Float")); + EMSG(_("E891: Using a Funcref as a Float")); break; } case VAR_STRING: { - emsgf(_("E892: Using a String as a Float")); + EMSG(_("E892: Using a String as a Float")); break; } case VAR_LIST: { - emsgf(_("E893: Using a List as a Float")); + EMSG(_("E893: Using a List as a Float")); break; } case VAR_DICT: { - emsgf(_("E894: Using a Dictionary as a Float")); + EMSG(_("E894: Using a Dictionary as a Float")); break; } case VAR_SPECIAL: { - emsgf(_("E907: Using a special value as a Float")); + EMSG(_("E907: Using a special value as a Float")); break; } case VAR_UNKNOWN: { - emsgf(_(e_intern2), "tv_get_float(UNKNOWN)"); + EMSG2(_(e_intern2), "tv_get_float(UNKNOWN)"); break; } } @@ -2840,7 +2840,7 @@ const char *tv_get_string_buf_chk(const typval_T *const tv, char *const buf) case VAR_DICT: case VAR_FLOAT: case VAR_UNKNOWN: { - emsgf(_(str_errors[tv->v_type])); + EMSG(_(str_errors[tv->v_type])); return false; } } diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 9be61f0740..4983484100 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -2693,7 +2693,7 @@ static bool color_cmdline(CmdlineInfo *colored_ccline) } const list_T *const l = TV_LIST_ITEM_TV(li)->vval.v_list; if (tv_list_len(l) != 3) { - PRINT_ERRMSG(_("E5402: List item %i has incorrect length: %li /= 3"), + PRINT_ERRMSG(_("E5402: List item %i has incorrect length: %d /= 3"), i, tv_list_len(l)); goto color_cmdline_error; } diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c index ae0b24f3c8..ab6b992541 100644 --- a/src/nvim/fileio.c +++ b/src/nvim/fileio.c @@ -3686,7 +3686,7 @@ nofail: } else if (errmsgarg != 0) { emsgf(errmsg, os_strerror(errmsgarg)); } else { - emsgf(errmsg); + EMSG(errmsg); } if (errmsg_allocated) { xfree(errmsg); @@ -6216,7 +6216,7 @@ static int do_autocmd_event(event_T event, char_u *pat, int nested, char_u *cmd, /* refuse to add buffer-local ap if buffer number is invalid */ if (is_buflocal && (buflocal_nr == 0 || buflist_findnr(buflocal_nr) == NULL)) { - EMSGN(_("E680: <buffer=%d>: invalid buffer number "), + EMSG2(_("E680: <buffer=%d>: invalid buffer number "), buflocal_nr); return FAIL; } diff --git a/src/nvim/garray.h b/src/nvim/garray.h index 94e1b61671..58738df691 100644 --- a/src/nvim/garray.h +++ b/src/nvim/garray.h @@ -37,7 +37,7 @@ typedef struct growarray { static inline void *ga_append_via_ptr(garray_T *gap, size_t item_size) { if ((int)item_size != gap->ga_itemsize) { - WLOG("wrong item size (%d), should be %d", item_size, gap->ga_itemsize); + WLOG("wrong item size (%zu), should be %d", item_size, gap->ga_itemsize); } ga_grow(gap, 1); return ((char *)gap->ga_data) + (item_size * (size_t)gap->ga_len++); diff --git a/src/nvim/log.c b/src/nvim/log.c index 578217db41..4cafd4573b 100644 --- a/src/nvim/log.c +++ b/src/nvim/log.c @@ -103,7 +103,7 @@ void log_unlock(void) /// @param line_num source line number, or -1 bool logmsg(int log_level, const char *context, const char *func_name, int line_num, bool eol, const char *fmt, ...) - FUNC_ATTR_UNUSED + FUNC_ATTR_UNUSED FUNC_ATTR_PRINTF(6, 7) { if (log_level < MIN_LOG_LEVEL) { return false; @@ -240,6 +240,7 @@ end: static bool do_log_to_file(FILE *log_file, int log_level, const char *context, const char *func_name, int line_num, bool eol, const char* fmt, ...) + FUNC_ATTR_PRINTF(7, 8) { va_list args; va_start(args, fmt); diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c index 02eabb9c89..a7bda9d037 100644 --- a/src/nvim/lua/executor.c +++ b/src/nvim/lua/executor.c @@ -291,7 +291,7 @@ static int nlua_print(lua_State *const lstate) return 0; nlua_print_error: emsgf(_("E5114: Error while converting print argument #%i: %.*s"), - curargidx, errmsg_len, errmsg); + curargidx, (int)errmsg_len, errmsg); ga_clear(&msg_ga); lua_pop(lstate, lua_gettop(lstate)); return 0; diff --git a/src/nvim/main.c b/src/nvim/main.c index 4b838a837c..e8e27c04c8 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -828,11 +828,11 @@ static void command_line_scan(mparm_T *parmp) msgpack_packer *p = msgpack_packer_new(&fp, msgpack_file_write); if (fof_ret != 0) { - emsgf(_("E5421: Failed to open stdin: %s"), os_strerror(fof_ret)); + EMSG2(_("E5421: Failed to open stdin: %s"), os_strerror(fof_ret)); } if (p == NULL) { - emsgf(_(e_outofmem)); + EMSG(_(e_outofmem)); } Object md = DICTIONARY_OBJ(api_metadata()); diff --git a/src/nvim/message.c b/src/nvim/message.c index fc7e96ac2c..fc7396d318 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -331,6 +331,7 @@ void trunc_string(char_u *s, char_u *buf, int room_in, int buflen) */ int smsg(char *s, ...) + FUNC_ATTR_PRINTF(1, 2) { va_list arglist; @@ -341,6 +342,7 @@ int smsg(char *s, ...) } int smsg_attr(int attr, char *s, ...) + FUNC_ATTR_PRINTF(2, 3) { va_list arglist; @@ -581,6 +583,7 @@ void emsg_invreg(int name) /// Print an error message with unknown number of arguments bool emsgf(const char *const fmt, ...) + FUNC_ATTR_PRINTF(1, 2) { bool ret; @@ -644,6 +647,7 @@ static void msg_emsgf_event(void **argv) } void msg_schedule_emsgf(const char *const fmt, ...) + FUNC_ATTR_PRINTF(1, 2) { va_list ap; va_start(ap, fmt); @@ -1672,7 +1676,7 @@ void msg_puts_attr_len(const char *const str, const ptrdiff_t len, int attr) /// @param[in] attr Highlight attributes. /// @param[in] fmt Format string. void msg_printf_attr(const int attr, const char *const fmt, ...) - FUNC_ATTR_NONNULL_ARG(2) + FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_PRINTF(2, 3) { static char msgbuf[IOSIZE]; diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c index 65ddcf3b07..b13fc7f5ea 100644 --- a/src/nvim/regexp_nfa.c +++ b/src/nvim/regexp_nfa.c @@ -1384,7 +1384,7 @@ static int nfa_regatom(void) re_has_z = REX_SET; break; default: - EMSGN(_("E867: (NFA) Unknown operator '\\z%c'"), + EMSG2(_("E867: (NFA) Unknown operator '\\z%c'"), no_Magic(c)); return FAIL; } @@ -1524,7 +1524,7 @@ static int nfa_regatom(void) break; } } - EMSGN(_("E867: (NFA) Unknown operator '\\%%%c'"), + EMSG2(_("E867: (NFA) Unknown operator '\\%%%c'"), no_Magic(c)); return FAIL; } @@ -1937,7 +1937,7 @@ static int nfa_regpiece(void) break; } if (i == 0) { - EMSGN(_("E869: (NFA) Unknown operator '\\@%c'"), op); + EMSG2(_("E869: (NFA) Unknown operator '\\@%c'"), op); return FAIL; } EMIT(i); diff --git a/src/nvim/shada.c b/src/nvim/shada.c index f4454504a4..b5fda32ac9 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -884,7 +884,7 @@ static int shada_read_file(const char *const file, const int flags) if (p_verbose > 0) { verbose_enter(); - smsg(_("Reading ShaDa file \"%s\"%s%s%s"), + smsg(_("Reading ShaDa file \"%s\"%s%s%s%s"), fname, (flags & kShaDaWantInfo) ? _(" info") : "", (flags & kShaDaWantMarks) ? _(" marks") : "", @@ -2033,7 +2033,7 @@ static const char *shada_format_entry(const ShadaEntry entry) { static char ret[1024]; ret[0] = 0; - vim_snprintf(S_LEN(ret), "[ ] ts=%" PRIu64 " "); + vim_snprintf(S_LEN(ret), "%s", "[ ] ts=%" PRIu64 " "); // ^ Space for `can_free_entry` switch (entry.type) { case kSDItemMissing: { @@ -2091,7 +2091,7 @@ static const char *shada_format_entry(const ShadaEntry entry) entry.data.filemark.mark.lnum, \ entry.data.filemark.mark.col, \ entry.data.filemark.mark.coladd, \ - entry.data.filemark.additional_data, \ + (void*)entry.data.filemark.additional_data, \ ad_len, \ ad); \ } while (0) diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c index f52ae61534..892d2697cc 100644 --- a/src/nvim/spellfile.c +++ b/src/nvim/spellfile.c @@ -3096,7 +3096,7 @@ static int spell_read_dic(spellinfo_T *spin, char_u *fname, afffile_T *affile) if (spin->si_verbose && spin->si_msg_count > 10000) { spin->si_msg_count = 0; vim_snprintf((char *)message, sizeof(message), - _("line %6d, word %6d - %s"), + _("line %6d, word %6ld - %s"), lnum, spin->si_foldwcount + spin->si_keepwcount, w); msg_start(); msg_puts_long_attr(message, 0); @@ -3570,7 +3570,7 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname) if (spin->si_conv.vc_type != CONV_NONE) { pc = string_convert(&spin->si_conv, rline, NULL); if (pc == NULL) { - smsg(_("Conversion failure for word in %s line %d: %s"), + smsg(_("Conversion failure for word in %s line %ld: %s"), fname, lnum, rline); continue; } @@ -3584,10 +3584,10 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname) ++line; if (STRNCMP(line, "encoding=", 9) == 0) { if (spin->si_conv.vc_type != CONV_NONE) - smsg(_("Duplicate /encoding= line ignored in %s line %d: %s"), + smsg(_("Duplicate /encoding= line ignored in %s line %ld: %s"), fname, lnum, line - 1); else if (did_word) - smsg(_("/encoding= line after word ignored in %s line %d: %s"), + smsg(_("/encoding= line after word ignored in %s line %ld: %s"), fname, lnum, line - 1); else { char_u *enc; @@ -3608,12 +3608,12 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname) if (STRNCMP(line, "regions=", 8) == 0) { if (spin->si_region_count > 1) - smsg(_("Duplicate /regions= line ignored in %s line %d: %s"), + smsg(_("Duplicate /regions= line ignored in %s line %ld: %s"), fname, lnum, line); else { line += 8; if (STRLEN(line) > MAXREGIONS * 2) { - smsg(_("Too many regions in %s line %d: %s"), + smsg(_("Too many regions in %s line %ld: %s"), fname, lnum, line); } else { spin->si_region_count = (int)STRLEN(line) / 2; @@ -3626,7 +3626,7 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname) continue; } - smsg(_("/ line ignored in %s line %d: %s"), + smsg(_("/ line ignored in %s line %ld: %s"), fname, lnum, line - 1); continue; } @@ -3652,13 +3652,13 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname) l = *p - '0'; if (l == 0 || l > spin->si_region_count) { - smsg(_("Invalid region nr in %s line %d: %s"), + smsg(_("Invalid region nr in %s line %ld: %s"), fname, lnum, p); break; } regionmask |= 1 << (l - 1); } else { - smsg(_("Unrecognized flags in %s line %d: %s"), + smsg(_("Unrecognized flags in %s line %ld: %s"), fname, lnum, p); break; } @@ -5136,7 +5136,7 @@ mkspell ( } else if (vim_strchr(path_tail(wfname), '_') != NULL) { EMSG(_("E751: Output file name must not have region name")); } else if (incount > MAXREGIONS) { - EMSGN(_("E754: Only up to %ld regions supported"), MAXREGIONS); + EMSG2(_("E754: Only up to %d regions supported"), MAXREGIONS); } else { // Check for overwriting before doing things that may take a lot of // time. diff --git a/src/nvim/strings.c b/src/nvim/strings.c index 17c4a75a64..3b0a950ff2 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -693,6 +693,7 @@ static float_T tv_float(typval_T *const tvs, int *const idxp) /// /// @see vim_vsnprintf(). int vim_snprintf_add(char *str, size_t str_m, char *fmt, ...) + FUNC_ATTR_PRINTF(3, 4) { const size_t len = strlen(str); size_t space; @@ -718,6 +719,7 @@ int vim_snprintf_add(char *str, size_t str_m, char *fmt, ...) /// @return Number of bytes excluding NUL byte that would be written to the /// string if str_m was greater or equal to the return value. int vim_snprintf(char *str, size_t str_m, const char *fmt, ...) + FUNC_ATTR_PRINTF(3, 4) { va_list ap; va_start(ap, fmt); diff --git a/src/nvim/tui/terminfo.c b/src/nvim/tui/terminfo.c index c3dc4124b9..ad86dd928b 100644 --- a/src/nvim/tui/terminfo.c +++ b/src/nvim/tui/terminfo.c @@ -144,7 +144,7 @@ void terminfo_info_msg(const unibi_term *const ut) for (enum unibi_numeric i = unibi_numeric_begin_ + 1; i < unibi_numeric_end_; i++) { int n = unibi_get_num(ut, i); // -1 means "empty" - msg_printf_attr(0, " %-25s %-10s = %hd\n", unibi_name_num(i), + msg_printf_attr(0, " %-25s %-10s = %d\n", unibi_name_num(i), unibi_short_name_num(i), n); } @@ -173,7 +173,7 @@ void terminfo_info_msg(const unibi_term *const ut) if (unibi_count_ext_num(ut)) { msg_puts("Extended numeric capabilities:\n"); for (size_t i = 0; i < unibi_count_ext_num(ut); i++) { - msg_printf_attr(0, " %-25s = %hd\n", + msg_printf_attr(0, " %-25s = %d\n", unibi_get_ext_num_name(ut, i), unibi_get_ext_num(ut, i)); } diff --git a/src/nvim/undo.c b/src/nvim/undo.c index 2a86cc1fea..7e9141edda 100644 --- a/src/nvim/undo.c +++ b/src/nvim/undo.c @@ -2503,7 +2503,7 @@ void ex_undolist(exarg_T *eap) while (uhp != NULL) { if (uhp->uh_prev.ptr == NULL && uhp->uh_walk != nomark && uhp->uh_walk != mark) { - vim_snprintf((char *)IObuff, IOSIZE, "%6ld %7ld ", + vim_snprintf((char *)IObuff, IOSIZE, "%6ld %7d ", uhp->uh_seq, changes); u_add_time(IObuff + STRLEN(IObuff), IOSIZE - STRLEN(IObuff), uhp->uh_time); |