From ebabdff5cd24f2d30ab35051d1d65f7c29fa3dd3 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 13 Jul 2014 11:10:27 +0400 Subject: keymap: Make replace_termcodes and friends accept length and cpo_flags Reasons: - One does not have to do `s[len] = NUL` to work with these functions if they do not need to replace the whole string: thus `s` may be const. - One does not have to save/restore p_cpo to work with them. --- src/nvim/eval.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 0d6e3d3ca3..1c76847037 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -4719,13 +4719,14 @@ static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate) ++name; break; - /* Special key, e.g.: "\" */ - case '<': extra = trans_special(&p, name, TRUE); + // Special key, e.g.: "\" + case '<': + extra = trans_special((const char_u **) &p, STRLEN(p), name, true); if (extra != 0) { name += extra; break; } - /* FALLTHROUGH */ + // FALLTHROUGH default: MB_COPY_CHAR(p, name); break; @@ -12319,8 +12320,9 @@ static void get_maparg(typval_T *argvars, typval_T *rettv, int exact) mode = get_map_mode(&which, 0); - keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE); - rhs = check_map(keys, mode, exact, FALSE, abbr, &mp, &buffer_local); + keys = replace_termcodes(keys, STRLEN(keys), &keys_buf, true, true, false, + CPO_TO_CPO_FLAGS); + rhs = check_map(keys, mode, exact, false, abbr, &mp, &buffer_local); xfree(keys_buf); if (!get_dict) { -- cgit From 5674546580643fab33f0d10babacbc8e7792e287 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 26 Oct 2014 14:35:33 +0300 Subject: ex_getln: Make get_histtype accept length argument --- src/nvim/eval.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 1c76847037..a193c82f9d 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -11152,7 +11152,7 @@ static void f_histadd(typval_T *argvars, typval_T *rettv) if (check_restricted() || check_secure()) return; str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ - histype = str != NULL ? get_histtype(str) : -1; + histype = str != NULL ? get_histtype(str, STRLEN(str)) : -1; if (histype >= 0) { str = get_tv_string_buf(&argvars[1], buf); if (*str != NUL) { @@ -11178,14 +11178,14 @@ static void f_histdel(typval_T *argvars, typval_T *rettv) n = 0; else if (argvars[1].v_type == VAR_UNKNOWN) /* only one argument: clear entire history */ - n = clr_history(get_histtype(str)); + n = clr_history(get_histtype(str, STRLEN(str))); else if (argvars[1].v_type == VAR_NUMBER) /* index given: remove that entry */ - n = del_history_idx(get_histtype(str), + n = del_history_idx(get_histtype(str, STRLEN(str)), (int)get_tv_number(&argvars[1])); else /* string given: remove all matching entries */ - n = del_history_entry(get_histtype(str), + n = del_history_entry(get_histtype(str, STRLEN(str)), get_tv_string_buf(&argvars[1], buf)); rettv->vval.v_number = n; } @@ -11203,7 +11203,7 @@ static void f_histget(typval_T *argvars, typval_T *rettv) if (str == NULL) rettv->vval.v_string = NULL; else { - type = get_histtype(str); + type = get_histtype(str, STRLEN(str)); if (argvars[1].v_type == VAR_UNKNOWN) idx = get_history_idx(type); else @@ -11223,7 +11223,7 @@ static void f_histnr(typval_T *argvars, typval_T *rettv) char_u *history = get_tv_string_chk(&argvars[0]); - i = history == NULL ? HIST_CMD - 1 : get_histtype(history); + i = history == NULL ? HIST_CMD - 1 : get_histtype(history, STRLEN(history)); if (i >= HIST_CMD && i < HIST_COUNT) i = get_history_idx(i); else -- cgit From fdb68e35e4c729c7ed097d8ade1da29e5b3f4b31 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 26 Oct 2014 14:55:22 +0300 Subject: ex_getln: Make get_histtype return HIST_DEFAULT if needed --- src/nvim/eval.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index a193c82f9d..e6d2f69281 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -11144,7 +11144,7 @@ static void f_hasmapto(typval_T *argvars, typval_T *rettv) */ static void f_histadd(typval_T *argvars, typval_T *rettv) { - int histype; + HistoryType histype; char_u *str; char_u buf[NUMBUFLEN]; @@ -11152,8 +11152,8 @@ static void f_histadd(typval_T *argvars, typval_T *rettv) if (check_restricted() || check_secure()) return; str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ - histype = str != NULL ? get_histtype(str, STRLEN(str)) : -1; - if (histype >= 0) { + histype = str != NULL ? get_histtype(str, STRLEN(str), false) : HIST_INVALID; + if (histype != HIST_INVALID) { str = get_tv_string_buf(&argvars[1], buf); if (*str != NUL) { init_history(); @@ -11178,14 +11178,14 @@ static void f_histdel(typval_T *argvars, typval_T *rettv) n = 0; else if (argvars[1].v_type == VAR_UNKNOWN) /* only one argument: clear entire history */ - n = clr_history(get_histtype(str, STRLEN(str))); + n = clr_history(get_histtype(str, STRLEN(str), false)); else if (argvars[1].v_type == VAR_NUMBER) /* index given: remove that entry */ - n = del_history_idx(get_histtype(str, STRLEN(str)), + n = del_history_idx(get_histtype(str, STRLEN(str), false), (int)get_tv_number(&argvars[1])); else /* string given: remove all matching entries */ - n = del_history_entry(get_histtype(str, STRLEN(str)), + n = del_history_entry(get_histtype(str, STRLEN(str), false), get_tv_string_buf(&argvars[1], buf)); rettv->vval.v_number = n; } @@ -11195,20 +11195,21 @@ static void f_histdel(typval_T *argvars, typval_T *rettv) */ static void f_histget(typval_T *argvars, typval_T *rettv) { - int type; + HistoryType type; int idx; char_u *str; str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ - if (str == NULL) + if (str == NULL) { rettv->vval.v_string = NULL; - else { - type = get_histtype(str, STRLEN(str)); - if (argvars[1].v_type == VAR_UNKNOWN) + } else { + type = get_histtype(str, STRLEN(str), false); + if (argvars[1].v_type == VAR_UNKNOWN) { idx = get_history_idx(type); - else + } else { idx = (int)get_tv_number_chk(&argvars[1], NULL); - /* -1 on type error */ + } + // -1 on type error rettv->vval.v_string = vim_strsave(get_history_entry(type, idx)); } rettv->v_type = VAR_STRING; @@ -11223,8 +11224,9 @@ static void f_histnr(typval_T *argvars, typval_T *rettv) char_u *history = get_tv_string_chk(&argvars[0]); - i = history == NULL ? HIST_CMD - 1 : get_histtype(history, STRLEN(history)); - if (i >= HIST_CMD && i < HIST_COUNT) + i = history == NULL ? HIST_CMD - 1 : get_histtype(history, STRLEN(history), + false); + if (i != HIST_INVALID) i = get_history_idx(i); else i = -1; -- cgit From 191fb638f415a0a1a05eb83a87d87fc9902d7ffe Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 18 Apr 2016 02:29:45 +0300 Subject: *: Fix linter errors --- src/nvim/eval.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index e6d2f69281..a72f17a2b9 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -11148,17 +11148,18 @@ static void f_histadd(typval_T *argvars, typval_T *rettv) char_u *str; char_u buf[NUMBUFLEN]; - rettv->vval.v_number = FALSE; - if (check_restricted() || check_secure()) + rettv->vval.v_number = false; + if (check_restricted() || check_secure()) { return; - str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ + } + str = get_tv_string_chk(&argvars[0]); // NULL on type error histype = str != NULL ? get_histtype(str, STRLEN(str), false) : HIST_INVALID; if (histype != HIST_INVALID) { str = get_tv_string_buf(&argvars[1], buf); if (*str != NUL) { init_history(); - add_to_history(histype, str, FALSE, NUL); - rettv->vval.v_number = TRUE; + add_to_history(histype, str, false, NUL); + rettv->vval.v_number = true; return; } } @@ -11173,20 +11174,21 @@ static void f_histdel(typval_T *argvars, typval_T *rettv) char_u buf[NUMBUFLEN]; char_u *str; - str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ - if (str == NULL) + str = get_tv_string_chk(&argvars[0]); // NULL on type error + if (str == NULL) { n = 0; - else if (argvars[1].v_type == VAR_UNKNOWN) - /* only one argument: clear entire history */ + } else if (argvars[1].v_type == VAR_UNKNOWN) { + // only one argument: clear entire history n = clr_history(get_histtype(str, STRLEN(str), false)); - else if (argvars[1].v_type == VAR_NUMBER) - /* index given: remove that entry */ + } else if (argvars[1].v_type == VAR_NUMBER) { + // index given: remove that entry n = del_history_idx(get_histtype(str, STRLEN(str), false), - (int)get_tv_number(&argvars[1])); - else - /* string given: remove all matching entries */ + (int) get_tv_number(&argvars[1])); + } else { + // string given: remove all matching entries n = del_history_entry(get_histtype(str, STRLEN(str), false), - get_tv_string_buf(&argvars[1], buf)); + get_tv_string_buf(&argvars[1], buf)); + } rettv->vval.v_number = n; } @@ -11199,7 +11201,7 @@ static void f_histget(typval_T *argvars, typval_T *rettv) int idx; char_u *str; - str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ + str = get_tv_string_chk(&argvars[0]); // NULL on type error if (str == NULL) { rettv->vval.v_string = NULL; } else { @@ -11226,10 +11228,11 @@ static void f_histnr(typval_T *argvars, typval_T *rettv) i = history == NULL ? HIST_CMD - 1 : get_histtype(history, STRLEN(history), false); - if (i != HIST_INVALID) + if (i != HIST_INVALID) { i = get_history_idx(i); - else + } else { i = -1; + } rettv->vval.v_number = i; } -- cgit