diff options
author | ZyX <kp-pav@yandex.ru> | 2015-08-23 13:53:47 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 22:00:50 +0300 |
commit | ad7b7716bb00ad19c013956861b437ee0ccf0876 (patch) | |
tree | 5a1c9a6e70d27c72c7ca69771fc1974eb166e55d /src | |
parent | 313b947e3fe1f290d91e0b48517145e103d178d2 (diff) | |
download | rneovim-ad7b7716bb00ad19c013956861b437ee0ccf0876.tar.gz rneovim-ad7b7716bb00ad19c013956861b437ee0ccf0876.tar.bz2 rneovim-ad7b7716bb00ad19c013956861b437ee0ccf0876.zip |
*: Fix lint errors found in new code in previously ignored files
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/buffer.c | 2 | ||||
-rw-r--r-- | src/nvim/buffer_defs.h | 8 | ||||
-rw-r--r-- | src/nvim/eval.c | 40 | ||||
-rw-r--r-- | src/nvim/ex_getln.c | 36 | ||||
-rw-r--r-- | src/nvim/globals.h | 4 | ||||
-rw-r--r-- | src/nvim/lib/khash.h | 437 | ||||
-rw-r--r-- | src/nvim/main.c | 2 | ||||
-rw-r--r-- | src/nvim/mark.c | 78 | ||||
-rw-r--r-- | src/nvim/mark_defs.h | 2 | ||||
-rw-r--r-- | src/nvim/ops.c | 4 | ||||
-rw-r--r-- | src/nvim/option.c | 3 | ||||
-rw-r--r-- | src/nvim/search.c | 2 | ||||
-rw-r--r-- | src/nvim/search.h | 2 |
13 files changed, 341 insertions, 279 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index d0fad0e002..b3eba4f5f6 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -1995,7 +1995,7 @@ buflist_nr2name ( /// /// @param[in,out] buf Buffer for which line and column are set. /// @param[in,out] win Window for which line and column are set. -/// @param[in] lnum Line number to be set. If it is zero then only +/// @param[in] lnum Line number to be set. If it is zero then only /// options are touched. /// @param[in] col Column number to be set. /// @param[in] copy_options If true save the local window option values. diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h index f71575deaf..3eabb7ee43 100644 --- a/src/nvim/buffer_defs.h +++ b/src/nvim/buffer_defs.h @@ -512,10 +512,10 @@ struct file_buffer { visualinfo_T b_visual; int b_visual_mode_eval; /* b_visual.vi_mode for visualmode() */ - fmark_T b_last_cursor; /* cursor position when last unloading this - buffer */ - fmark_T b_last_insert; /* where Insert mode was left */ - fmark_T b_last_change; /* position of last change: '. mark */ + fmark_T b_last_cursor; // cursor position when last unloading this + // buffer + fmark_T b_last_insert; // where Insert mode was left + fmark_T b_last_change; // position of last change: '. mark /* * the changelist contains old change positions diff --git a/src/nvim/eval.c b/src/nvim/eval.c index d2d195155d..d02348028a 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5340,7 +5340,7 @@ static int list_concat(list_T *l1, list_T *l2, typval_T *tv) return FAIL; /* make a copy of the first list. */ - l = list_copy(NULL, l1, FALSE, 0); + l = list_copy(NULL, l1, false, 0); if (l == NULL) return FAIL; tv->v_type = VAR_LIST; @@ -5358,7 +5358,7 @@ static int list_concat(list_T *l1, list_T *l2, typval_T *tv) /// @param[in] deep If false, then shallow copy will be done. /// @param[in] copyID See var_item_copy(). /// -/// @return Copied list. May be NULL in case original list is NULL or some +/// @return Copied list. May be NULL in case original list is NULL or some /// failure happens. The refcount of the new list is set to 1. static list_T *list_copy(const vimconv_T *const conv, list_T *const orig, @@ -6089,8 +6089,8 @@ void dictitem_free(dictitem_T *item) /// @param[in] deep If false, then shallow copy will be done. /// @param[in] copyID See var_item_copy(). /// -/// @return Copied dictionary. May be NULL in case original dictionary is NULL -/// or some failure happens. The refcount of the new dictionary is set +/// @return Copied dictionary. May be NULL in case original dictionary is NULL +/// or some failure happens. The refcount of the new dictionary is set /// to 1. static dict_T *dict_copy(const vimconv_T *const conv, dict_T *const orig, @@ -18591,21 +18591,21 @@ void copy_tv(typval_T *from, typval_T *to) /// @param[in] conv If not NULL, convert all copied strings. /// @param[in] from Value to copy. /// @param[out] to Location where to copy to. -/// @param[in] deep If true, use copy the container and all of the contained +/// @param[in] deep If true, use copy the container and all of the contained /// containers (nested). -/// @param[in] copyID If non-zero then when container is referenced more then -/// once then copy of it that was already done is used. E.g. -/// when copying list `list = [list2, list2]` (`list[0] is -/// list[1]`) var_item_copy with zero copyID will emit -/// a copy with (`copy[0] isnot copy[1]`), with non-zero it -/// will emit a copy with (`copy[0] is copy[1]`) like in the +/// @param[in] copyID If non-zero then when container is referenced more then +/// once then copy of it that was already done is used. E.g. +/// when copying list `list = [list2, list2]` (`list[0] is +/// list[1]`) var_item_copy with zero copyID will emit +/// a copy with (`copy[0] isnot copy[1]`), with non-zero it +/// will emit a copy with (`copy[0] is copy[1]`) like in the /// original list. Not use when deep is false. int var_item_copy(const vimconv_T *const conv, typval_T *const from, typval_T *const to, const bool deep, const int copyID) - FUNC_ATTR_NONNULL_ARG(2,3) + FUNC_ATTR_NONNULL_ARG(2, 3) { static int recurse = 0; int ret = OK; @@ -18645,8 +18645,9 @@ int var_item_copy(const vimconv_T *const conv, /* use the copy made earlier */ to->vval.v_list = from->vval.v_list->lv_copylist; ++to->vval.v_list->lv_refcount; - } else + } else { to->vval.v_list = list_copy(conv, from->vval.v_list, deep, copyID); + } if (to->vval.v_list == NULL) ret = FAIL; break; @@ -18659,8 +18660,9 @@ int var_item_copy(const vimconv_T *const conv, /* use the copy made earlier */ to->vval.v_dict = from->vval.v_dict->dv_copydict; ++to->vval.v_dict->dv_refcount; - } else + } else { to->vval.v_dict = dict_copy(conv, from->vval.v_dict, deep, copyID); + } if (to->vval.v_dict == NULL) ret = FAIL; break; @@ -20875,23 +20877,25 @@ static var_flavour_T var_flavour(char_u *varname) if (ASCII_ISUPPER(*p)) { while (*(++p)) - if (ASCII_ISLOWER(*p)) + if (ASCII_ISLOWER(*p)) { return VAR_FLAVOUR_SESSION; + } return VAR_FLAVOUR_SHADA; - } else + } else { return VAR_FLAVOUR_DEFAULT; + } } /// Iterate over global variables /// -/// @warning No modifications to global variable dictionary must be performed +/// @warning No modifications to global variable dictionary must be performed /// while iteration is in progress. /// /// @param[in] iter Iterator. Pass NULL to start iteration. /// @param[out] name Variable name. /// @param[out] rettv Variable value. /// -/// @return Pointer that needs to be passed to next `var_shada_iter` invocation +/// @return Pointer that needs to be passed to next `var_shada_iter` invocation /// or NULL to indicate that iteration is over. const void *var_shada_iter(const void *const iter, const char **const name, typval_T *rettv) diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 2bfe574b1d..7998d7e823 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -4268,7 +4268,7 @@ static int in_history ( int type, char_u *str, - int move_to_front, /* Move the entry to the front if it exists */ + int move_to_front, // Move the entry to the front if it exists int sep ) { @@ -4309,9 +4309,9 @@ in_history ( history[type][i].hisstr = str; history[type][i].timestamp = os_time(); history[type][i].additional_elements = NULL; - return TRUE; + return true; } - return FALSE; + return false; } /* @@ -4378,7 +4378,7 @@ add_to_history ( } last_maptick = -1; } - if (!in_history(histype, new_entry, TRUE, sep)) { + if (!in_history(histype, new_entry, true, sep)) { if (++hisidx[histype] == hislen) hisidx[histype] = 0; hisptr = &history[histype][hisidx[histype]]; @@ -4548,7 +4548,7 @@ char_u *get_history_entry(int histype, int idx) /// /// @param[in] histype One of the HIST_ values. /// -/// @return OK if there was something to clean and histype was one of HIST_ +/// @return OK if there was something to clean and histype was one of HIST_ /// values, FAIL otherwise. int clr_history(const int histype) { @@ -4575,7 +4575,7 @@ int del_history_entry(int histype, char_u *str) int idx; int i; int last; - int found = FALSE; + bool found = false; regmatch.regprog = NULL; regmatch.rm_ic = FALSE; /* always match case */ @@ -4592,7 +4592,7 @@ int del_history_entry(int histype, char_u *str) if (hisptr->hisstr == NULL) break; if (vim_regexec(®match, hisptr->hisstr, (colnr_T)0)) { - found = TRUE; + found = true; hist_free_entry(hisptr); } else { if (i != last) { @@ -5077,24 +5077,24 @@ char_u *script_get(exarg_T *eap, char_u *cmd) /// Iterate over history items /// -/// @warning No history-editing functions must be run while iteration is in +/// @warning No history-editing functions must be run while iteration is in /// progress. /// /// @param[in] iter Pointer to the last history entry. -/// @param[in] history_type Type of the history (HIST_*). Ignored if iter +/// @param[in] history_type Type of the history (HIST_*). Ignored if iter /// parameter is not NULL. /// @param[in] zero If true then zero (but not free) returned items. /// -/// @warning When using this parameter user is -/// responsible for calling clr_history() -/// itself after iteration is over. If -/// clr_history() is not called behaviour is -/// undefined. No functions that work with -/// history must be called during iteration +/// @warning When using this parameter user is +/// responsible for calling clr_history() +/// itself after iteration is over. If +/// clr_history() is not called behaviour is +/// undefined. No functions that work with +/// history must be called during iteration /// in this case. /// @param[out] hist Next history entry. /// -/// @return Pointer used in next iteration or NULL to indicate that iteration +/// @return Pointer used in next iteration or NULL to indicate that iteration /// was finished. const void *hist_iter(const void *const iter, const uint8_t history_type, const bool zero, histentry_T *const hist) @@ -5143,9 +5143,9 @@ const void *hist_iter(const void *const iter, const uint8_t history_type, /// Get array of history items /// /// @param[in] history_type Type of the history to get array for. -/// @param[out] new_hisidx Location where last index in the new array should +/// @param[out] new_hisidx Location where last index in the new array should /// be saved. -/// @param[out] new_hisnum Location where last history number in the new +/// @param[out] new_hisnum Location where last history number in the new /// history should be saved. /// /// @return Pointer to the array or NULL. diff --git a/src/nvim/globals.h b/src/nvim/globals.h index 146109a414..0ef0a12889 100644 --- a/src/nvim/globals.h +++ b/src/nvim/globals.h @@ -891,8 +891,8 @@ EXTERN int must_redraw INIT(= 0); /* type of redraw necessary */ EXTERN int skip_redraw INIT(= FALSE); /* skip redraw once */ EXTERN int do_redraw INIT(= FALSE); /* extra redraw once */ -EXTERN int need_highlight_changed INIT(= TRUE); -EXTERN char *used_shada_file INIT(= NULL); /* name of ShaDa file to use */ +EXTERN int need_highlight_changed INIT(= true); +EXTERN char *used_shada_file INIT(= NULL); // name of the ShaDa file to use #define NSCRIPT 15 EXTERN FILE *scriptin[NSCRIPT]; /* streams to read script from */ diff --git a/src/nvim/lib/khash.h b/src/nvim/lib/khash.h index e45dcf2c80..56be29d14c 100644 --- a/src/nvim/lib/khash.h +++ b/src/nvim/lib/khash.h @@ -114,8 +114,8 @@ int main() { */ -#ifndef __AC_KHASH_H -#define __AC_KHASH_H +#ifndef NVIM_LIB_KHASH_H +#define NVIM_LIB_KHASH_H /*! @header @@ -194,175 +194,229 @@ static const double __ac_HASH_UPPER = 0.77; khval_t *vals; \ } kh_##name##_t; -#define __KHASH_PROTOTYPES(name, khkey_t, khval_t) \ - extern kh_##name##_t *kh_init_##name(void); \ - extern void kh_dealloc_##name(kh_##name##_t *h); \ - extern void kh_destroy_##name(kh_##name##_t *h); \ - extern void kh_clear_##name(kh_##name##_t *h); \ - extern khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key); \ - extern void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets); \ - extern khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret); \ - extern void kh_del_##name(kh_##name##_t *h, khint_t x); - -#define __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ - SCOPE kh_##name##_t *kh_init_##name(void) \ - REAL_FATTR_UNUSED; \ - SCOPE kh_##name##_t *kh_init_##name(void) { \ - return (kh_##name##_t*)kcalloc(1, sizeof(kh_##name##_t)); \ - } \ - SCOPE void kh_dealloc_##name(kh_##name##_t *h) \ - REAL_FATTR_UNUSED; \ - SCOPE void kh_dealloc_##name(kh_##name##_t *h) \ - { \ - kfree((void *)h->keys); kfree(h->flags); \ - kfree((void *)h->vals); \ - } \ - SCOPE void kh_destroy_##name(kh_##name##_t *h) \ - REAL_FATTR_UNUSED; \ - SCOPE void kh_destroy_##name(kh_##name##_t *h) \ - { \ - if (h) { \ - kh_dealloc_##name(h); \ - kfree(h); \ - } \ - } \ - SCOPE void kh_clear_##name(kh_##name##_t *h) \ - REAL_FATTR_UNUSED; \ - SCOPE void kh_clear_##name(kh_##name##_t *h) \ - { \ - if (h && h->flags) { \ - memset(h->flags, 0xaa, __ac_fsize(h->n_buckets) * sizeof(khint32_t)); \ - h->size = h->n_occupied = 0; \ - } \ - } \ - SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ - REAL_FATTR_UNUSED; \ - SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ - { \ - if (h->n_buckets) { \ - khint_t k, i, last, mask, step = 0; \ - mask = h->n_buckets - 1; \ - k = __hash_func(key); i = k & mask; \ - last = i; \ - while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \ - i = (i + (++step)) & mask; \ - if (i == last) return h->n_buckets; \ - } \ - return __ac_iseither(h->flags, i)? h->n_buckets : i; \ - } else return 0; \ - } \ - SCOPE void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ - REAL_FATTR_UNUSED; \ - SCOPE void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ - { /* This function uses 0.25*n_buckets bytes of working space instead of [sizeof(key_t+val_t)+.25]*n_buckets. */ \ - khint32_t *new_flags = 0; \ - khint_t j = 1; \ - { \ - kroundup32(new_n_buckets); \ - if (new_n_buckets < 4) new_n_buckets = 4; \ - if (h->size >= (khint_t)(new_n_buckets * __ac_HASH_UPPER + 0.5)) j = 0; /* requested size is too small */ \ - else { /* hash table size to be changed (shrink or expand); rehash */ \ - new_flags = (khint32_t*)kmalloc(__ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ - memset(new_flags, 0xaa, __ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ - if (h->n_buckets < new_n_buckets) { /* expand */ \ - khkey_t *new_keys = (khkey_t*)krealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ - h->keys = new_keys; \ - if (kh_is_map) { \ - khval_t *new_vals = (khval_t*)krealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ - h->vals = new_vals; \ - } \ - } /* otherwise shrink */ \ - } \ - } \ - if (j) { /* rehashing is needed */ \ - for (j = 0; j != h->n_buckets; ++j) { \ - if (__ac_iseither(h->flags, j) == 0) { \ - khkey_t key = h->keys[j]; \ - khval_t val; \ - khint_t new_mask; \ - new_mask = new_n_buckets - 1; \ - if (kh_is_map) val = h->vals[j]; \ - __ac_set_isdel_true(h->flags, j); \ - while (1) { /* kick-out process; sort of like in Cuckoo hashing */ \ - khint_t k, i, step = 0; \ - k = __hash_func(key); \ - i = k & new_mask; \ - while (!__ac_isempty(new_flags, i)) i = (i + (++step)) & new_mask; \ - __ac_set_isempty_false(new_flags, i); \ - if (i < h->n_buckets && __ac_iseither(h->flags, i) == 0) { /* kick out the existing element */ \ - { khkey_t tmp = h->keys[i]; h->keys[i] = key; key = tmp; } \ - if (kh_is_map) { khval_t tmp = h->vals[i]; h->vals[i] = val; val = tmp; } \ - __ac_set_isdel_true(h->flags, i); /* mark it as deleted in the old hash table */ \ - } else { /* write the element and jump out of the loop */ \ - h->keys[i] = key; \ - if (kh_is_map) h->vals[i] = val; \ - break; \ - } \ - } \ - } \ - } \ - if (h->n_buckets > new_n_buckets) { /* shrink the hash table */ \ - h->keys = (khkey_t*)krealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ - if (kh_is_map) h->vals = (khval_t*)krealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ - } \ - kfree(h->flags); /* free the working space */ \ - h->flags = new_flags; \ - h->n_buckets = new_n_buckets; \ - h->n_occupied = h->size; \ - h->upper_bound = (khint_t)(h->n_buckets * __ac_HASH_UPPER + 0.5); \ - } \ - } \ - SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ - REAL_FATTR_UNUSED; \ - SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ - { \ - khint_t x; \ - if (h->n_occupied >= h->upper_bound) { /* update the hash table */ \ - if (h->n_buckets > (h->size<<1)) { \ - kh_resize_##name(h, h->n_buckets - 1); /* clear "deleted" elements */ \ - } else { \ - kh_resize_##name(h, h->n_buckets + 1); /* expand the hash table */ \ - } \ - } /* TODO: to implement automatically shrinking; resize() already support shrinking */ \ - { \ - khint_t k, i, site, last, mask = h->n_buckets - 1, step = 0; \ - x = site = h->n_buckets; k = __hash_func(key); i = k & mask; \ - if (__ac_isempty(h->flags, i)) x = i; /* for speed up */ \ - else { \ - last = i; \ - while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \ - if (__ac_isdel(h->flags, i)) site = i; \ - i = (i + (++step)) & mask; \ - if (i == last) { x = site; break; } \ - } \ - if (x == h->n_buckets) { \ - if (__ac_isempty(h->flags, i) && site != h->n_buckets) x = site; \ - else x = i; \ - } \ - } \ - } \ - if (__ac_isempty(h->flags, x)) { /* not present at all */ \ - h->keys[x] = key; \ - __ac_set_isboth_false(h->flags, x); \ - ++h->size; ++h->n_occupied; \ - *ret = 1; \ - } else if (__ac_isdel(h->flags, x)) { /* deleted */ \ - h->keys[x] = key; \ - __ac_set_isboth_false(h->flags, x); \ - ++h->size; \ - *ret = 2; \ - } else *ret = 0; /* Don't touch h->keys[x] if present and not deleted */ \ - return x; \ - } \ - SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ - REAL_FATTR_UNUSED; \ - SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ - { \ - if (x != h->n_buckets && !__ac_iseither(h->flags, x)) { \ - __ac_set_isdel_true(h->flags, x); \ - --h->size; \ - } \ - } +#define __KHASH_PROTOTYPES(name, khkey_t, khval_t) \ + extern kh_##name##_t *kh_init_##name(void); \ + extern void kh_dealloc_##name(kh_##name##_t *h); \ + extern void kh_destroy_##name(kh_##name##_t *h); \ + extern void kh_clear_##name(kh_##name##_t *h); \ + extern khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key); \ + extern void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets); \ + extern khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret); \ + extern void kh_del_##name(kh_##name##_t *h, khint_t x); + +#define __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, \ + __hash_equal) \ + SCOPE kh_##name##_t *kh_init_##name(void) \ + REAL_FATTR_UNUSED; \ + SCOPE kh_##name##_t *kh_init_##name(void) { \ + return (kh_##name##_t*)kcalloc(1, sizeof(kh_##name##_t)); \ + } \ + SCOPE void kh_dealloc_##name(kh_##name##_t *h) \ + REAL_FATTR_UNUSED; \ + SCOPE void kh_dealloc_##name(kh_##name##_t *h) \ + { \ + kfree(h->keys); \ + kfree(h->flags); \ + kfree(h->vals); \ + } \ + SCOPE void kh_destroy_##name(kh_##name##_t *h) \ + REAL_FATTR_UNUSED; \ + SCOPE void kh_destroy_##name(kh_##name##_t *h) \ + { \ + if (h) { \ + kh_dealloc_##name(h); \ + kfree(h); \ + } \ + } \ + SCOPE void kh_clear_##name(kh_##name##_t *h) \ + REAL_FATTR_UNUSED; \ + SCOPE void kh_clear_##name(kh_##name##_t *h) \ + { \ + if (h && h->flags) { \ + memset(h->flags, 0xaa, __ac_fsize(h->n_buckets) * sizeof(khint32_t)); \ + h->size = h->n_occupied = 0; \ + } \ + } \ + SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ + REAL_FATTR_UNUSED; \ + SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ + { \ + if (h->n_buckets) { \ + khint_t k, i, last, mask, step = 0; \ + mask = h->n_buckets - 1; \ + k = __hash_func(key); i = k & mask; \ + last = i; \ + while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || \ + !__hash_equal(h->keys[i], key))) { \ + i = (i + (++step)) & mask; \ + if (i == last) { \ + return h->n_buckets; \ + } \ + } \ + return __ac_iseither(h->flags, i) ? h->n_buckets : i; \ + } else { \ + return 0; \ + } \ + } \ + SCOPE void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ + REAL_FATTR_UNUSED; \ + SCOPE void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ + { /* This function uses 0.25*n_buckets bytes of working space instead of */ \ + /* [sizeof(key_t+val_t)+.25]*n_buckets. */ \ + khint32_t *new_flags = 0; \ + khint_t j = 1; \ + { \ + kroundup32(new_n_buckets); \ + if (new_n_buckets < 4) { \ + new_n_buckets = 4; \ + } \ + /* requested size is too small */ \ + if (h->size >= (khint_t)(new_n_buckets * __ac_HASH_UPPER + 0.5)) { \ + j = 0; \ + } else { /* hash table size to be changed (shrink or expand); rehash */ \ + new_flags = (khint32_t*)kmalloc(__ac_fsize(new_n_buckets) \ + * sizeof(khint32_t)); \ + memset(new_flags, 0xaa, \ + __ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ + if (h->n_buckets < new_n_buckets) { /* expand */ \ + khkey_t *new_keys = (khkey_t*)krealloc( \ + (void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ + h->keys = new_keys; \ + if (kh_is_map) { \ + khval_t *new_vals = (khval_t*)krealloc( \ + (void *)h->vals, new_n_buckets * sizeof(khval_t)); \ + h->vals = new_vals; \ + } \ + } /* otherwise shrink */ \ + } \ + } \ + if (j) { /* rehashing is needed */ \ + for (j = 0; j != h->n_buckets; ++j) { \ + if (__ac_iseither(h->flags, j) == 0) { \ + khkey_t key = h->keys[j]; \ + khval_t val; \ + khint_t new_mask; \ + new_mask = new_n_buckets - 1; \ + if (kh_is_map) { \ + val = h->vals[j]; \ + } \ + __ac_set_isdel_true(h->flags, j); \ + /* kick-out process; sort of like in Cuckoo hashing */ \ + while (1) { \ + khint_t k, i, step = 0; \ + k = __hash_func(key); \ + i = k & new_mask; \ + while (!__ac_isempty(new_flags, i)) { \ + i = (i + (++step)) & new_mask; \ + } \ + __ac_set_isempty_false(new_flags, i); \ + /* kick out the existing element */ \ + if (i < h->n_buckets && __ac_iseither(h->flags, i) == 0) { \ + { \ + khkey_t tmp = h->keys[i]; \ + h->keys[i] = key; \ + key = tmp; \ + } \ + if (kh_is_map) { \ + khval_t tmp = h->vals[i]; \ + h->vals[i] = val; \ + val = tmp; \ + } \ + /* mark it as deleted in the old hash table */ \ + __ac_set_isdel_true(h->flags, i); \ + } else { /* write the element and jump out of the loop */ \ + h->keys[i] = key; \ + if (kh_is_map) { \ + h->vals[i] = val; \ + } \ + break; \ + } \ + } \ + } \ + } \ + if (h->n_buckets > new_n_buckets) { /* shrink the hash table */ \ + h->keys = (khkey_t*)krealloc((void *)h->keys, \ + new_n_buckets * sizeof(khkey_t)); \ + if (kh_is_map) { \ + h->vals = (khval_t*)krealloc((void *)h->vals, \ + new_n_buckets * sizeof(khval_t)); \ + } \ + } \ + kfree(h->flags); /* free the working space */ \ + h->flags = new_flags; \ + h->n_buckets = new_n_buckets; \ + h->n_occupied = h->size; \ + h->upper_bound = (khint_t)(h->n_buckets * __ac_HASH_UPPER + 0.5); \ + } \ + } \ + SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ + REAL_FATTR_UNUSED; \ + SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ + { \ + khint_t x; \ + if (h->n_occupied >= h->upper_bound) { /* update the hash table */ \ + if (h->n_buckets > (h->size << 1)) { \ + kh_resize_##name(h, h->n_buckets - 1); /* clear "deleted" elements */ \ + } else { \ + kh_resize_##name(h, h->n_buckets + 1); /* expand the hash table */ \ + } \ + } /* TODO: implement automatically shrinking; */ \ + /* resize() already support shrinking */ \ + { \ + khint_t k, i, site, last, mask = h->n_buckets - 1, step = 0; \ + x = site = h->n_buckets; \ + k = __hash_func(key); \ + i = k & mask; \ + if (__ac_isempty(h->flags, i)) { \ + x = i; /* for speed up */ \ + } else { \ + last = i; \ + while (!__ac_isempty(h->flags, i) \ + && (__ac_isdel(h->flags, i) \ + || !__hash_equal(h->keys[i], key))) { \ + if (__ac_isdel(h->flags, i)) { \ + site = i; \ + } \ + i = (i + (++step)) & mask; \ + if (i == last) { \ + x = site; \ + break; \ + } \ + } \ + if (x == h->n_buckets) { \ + if (__ac_isempty(h->flags, i) && site != h->n_buckets) { \ + x = site; \ + } else { \ + x = i; \ + } \ + } \ + } \ + } \ + if (__ac_isempty(h->flags, x)) { /* not present at all */ \ + h->keys[x] = key; \ + __ac_set_isboth_false(h->flags, x); \ + h->size++; \ + h->n_occupied++; \ + *ret = 1; \ + } else if (__ac_isdel(h->flags, x)) { /* deleted */ \ + h->keys[x] = key; \ + __ac_set_isboth_false(h->flags, x); \ + h->size++; \ + *ret = 2; \ + } else { \ + *ret = 0; /* Don't touch h->keys[x] if present and not deleted */ \ + } \ + return x; \ + } \ + SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ + REAL_FATTR_UNUSED; \ + SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ + { \ + if (x != h->n_buckets && !__ac_iseither(h->flags, x)) { \ + __ac_set_isdel_true(h->flags, x); \ + --h->size; \ + } \ + } #define KHASH_DECLARE(name, khkey_t, khval_t) \ __KHASH_TYPE(name, khkey_t, khval_t) \ @@ -599,12 +653,17 @@ static kh_inline khint_t __ac_Wang_hash(khint_t key) @param kvar Variable to which value will be assigned @param code Block of code to execute */ -#define kh_foreach_key(h, kvar, code) { khint_t __i; \ - for (__i = kh_begin(h); __i != kh_end(h); ++__i) { \ - if (!kh_exist(h,__i)) continue; \ - (kvar) = kh_key(h,__i); \ - code; \ - } } +#define kh_foreach_key(h, kvar, code) \ + { \ + khint_t __i; \ + for (__i = kh_begin(h); __i != kh_end(h); __i++) { \ + if (!kh_exist(h, __i)) { \ + continue; \ + } \ + (kvar) = kh_key(h, __i); \ + code; \ + } \ + } /* More conenient interfaces */ @@ -651,21 +710,21 @@ typedef const char *kh_cstr_t; @param name Name of the hash table [symbol] @param khval_t Type of values [type] */ -#define KHASH_MAP_INIT_STR(name, khval_t) \ - KHASH_INIT(name, kh_cstr_t, khval_t, 1, kh_str_hash_func, kh_str_hash_equal) +#define KHASH_MAP_INIT_STR(name, khval_t) \ + KHASH_INIT(name, kh_cstr_t, khval_t, 1, kh_str_hash_func, kh_str_hash_equal) /*! @function @abstract Return a literal for an empty hash table. @param name Name of the hash table [symbol] */ #define KHASH_EMPTY_TABLE(name) \ - ((kh_##name##_t) { \ - .n_buckets = 0, \ - .size = 0, \ - .n_occupied = 0, \ - .upper_bound = 0, \ - .flags = NULL, \ - .keys = NULL, \ - .vals = NULL, \ - }) -#endif /* __AC_KHASH_H */ + ((kh_##name##_t) { \ + .n_buckets = 0, \ + .size = 0, \ + .n_occupied = 0, \ + .upper_bound = 0, \ + .flags = NULL, \ + .keys = NULL, \ + .vals = NULL, \ + }) +#endif // NVIM_LIB_KHASH_H diff --git a/src/nvim/main.c b/src/nvim/main.c index c4387c0b7f..d865260295 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -2042,7 +2042,7 @@ static void usage(void) mch_msg(_(" -r, -L List swap files and exit\n")); mch_msg(_(" -r <file> Recover crashed session\n")); mch_msg(_(" -u <nvimrc> Use <nvimrc> instead of the default\n")); - mch_msg(_(" -i <shada> Use <shada> instead of the default " SHADA_FILE "\n")); + mch_msg(_(" -i <shada> Use <shada> instead of the default " SHADA_FILE "\n")); // NOLINT(whitespace/line_length) mch_msg(_(" --noplugin Don't load plugin scripts\n")); mch_msg(_(" -o[N] Open N windows (default: one for each file)\n")); mch_msg(_(" -O[N] Like -o but split vertically\n")); diff --git a/src/nvim/mark.c b/src/nvim/mark.c index db0f18c3a5..bf6ef33ae0 100644 --- a/src/nvim/mark.c +++ b/src/nvim/mark.c @@ -312,22 +312,21 @@ pos_T *getmark_buf_fnum(buf_T *buf, int c, int changefile, int *fnum) * to crash. */ if (c < 0) return posp; - if (c > '~') /* check for islower()/isupper() */ - ; - else if (c == '\'' || c == '`') { /* previous context mark */ - pos_copy = curwin->w_pcmark; /* need to make a copy because */ - posp = &pos_copy; /* w_pcmark may be changed soon */ - } else if (c == '"') /* to pos when leaving buffer */ + if (c > '~') { // check for islower()/isupper() + } else if (c == '\'' || c == '`') { // previous context mark + pos_copy = curwin->w_pcmark; // need to make a copy because + posp = &pos_copy; // w_pcmark may be changed soon + } else if (c == '"') { // to pos when leaving buffer posp = &(buf->b_last_cursor.mark); - else if (c == '^') /* to where Insert mode stopped */ + } else if (c == '^') { // to where Insert mode stopped posp = &(buf->b_last_insert.mark); - else if (c == '.') /* to where last change was made */ + } else if (c == '.') { // to where last change was made posp = &(buf->b_last_change.mark); - else if (c == '[') /* to start of previous operator */ + } else if (c == '[') { // to start of previous operator posp = &(buf->b_op_start); - else if (c == ']') /* to end of previous operator */ + } else if (c == ']') { // to end of previous operator posp = &(buf->b_op_end); - else if (c == '{' || c == '}') { /* to previous/next paragraph */ + } else if (c == '{' || c == '}') { // to previous/next paragraph pos_T pos; oparg_T oa; int slcb = listcmd_busy; @@ -620,9 +619,9 @@ void do_marks(exarg_T *eap) if (arg != NULL && *arg == NUL) arg = NULL; - show_one_mark('\'', arg, &curwin->w_pcmark, NULL, TRUE); + show_one_mark('\'', arg, &curwin->w_pcmark, NULL, true); for (i = 0; i < NMARKS; ++i) - show_one_mark(i + 'a', arg, &curbuf->b_namedm[i].mark, NULL, TRUE); + show_one_mark(i + 'a', arg, &curbuf->b_namedm[i].mark, NULL, true); for (i = 0; i < NGLOBALMARKS; ++i) { if (namedfm[i].fmark.fnum != 0) name = fm_getname(&namedfm[i].fmark, 15); @@ -636,14 +635,14 @@ void do_marks(exarg_T *eap) xfree(name); } } - show_one_mark('"', arg, &curbuf->b_last_cursor.mark, NULL, TRUE); - show_one_mark('[', arg, &curbuf->b_op_start, NULL, TRUE); - show_one_mark(']', arg, &curbuf->b_op_end, NULL, TRUE); - show_one_mark('^', arg, &curbuf->b_last_insert.mark, NULL, TRUE); - show_one_mark('.', arg, &curbuf->b_last_change.mark, NULL, TRUE); - show_one_mark('<', arg, &curbuf->b_visual.vi_start, NULL, TRUE); - show_one_mark('>', arg, &curbuf->b_visual.vi_end, NULL, TRUE); - show_one_mark(-1, arg, NULL, NULL, FALSE); + show_one_mark('"', arg, &curbuf->b_last_cursor.mark, NULL, true); + show_one_mark('[', arg, &curbuf->b_op_start, NULL, true); + show_one_mark(']', arg, &curbuf->b_op_end, NULL, true); + show_one_mark('^', arg, &curbuf->b_last_insert.mark, NULL, true); + show_one_mark('.', arg, &curbuf->b_last_change.mark, NULL, true); + show_one_mark('<', arg, &curbuf->b_visual.vi_start, NULL, true); + show_one_mark('>', arg, &curbuf->b_visual.vi_end, NULL, true); + show_one_mark(-1, arg, NULL, NULL, false); } static void @@ -737,13 +736,14 @@ void ex_delmarks(exarg_T *eap) from = to = *p; for (i = from; i <= to; ++i) { - if (lower) + if (lower) { curbuf->b_namedm[i - 'a'].mark.lnum = 0; - else { - if (digit) + } else { + if (digit) { n = i - '0' + NMARKS; - else + } else { n = i - 'A'; + } namedfm[n].fmark.mark.lnum = 0; xfree(namedfm[n].fname); namedfm[n].fname = NULL; @@ -1127,10 +1127,10 @@ void cleanup_jumplist(void) && curwin->w_jumplist[i].fmark.mark.lnum == curwin->w_jumplist[from].fmark.mark.lnum) break; - if (i >= curwin->w_jumplistlen) { // no duplicate + if (i >= curwin->w_jumplistlen) { // no duplicate if (to != from) { - // Not using curwin->w_jumplist[to++] = curwin->w_jumplist[from] because - // this way valgrind complains about overlapping source and destination + // Not using curwin->w_jumplist[to++] = curwin->w_jumplist[from] because + // this way valgrind complains about overlapping source and destination // in memcpy() call. (clang-3.6.0, debug build with -DEXITFREE). curwin->w_jumplist[to] = curwin->w_jumplist[from]; } @@ -1162,14 +1162,14 @@ void copy_jumplist(win_T *from, win_T *to) /// Iterate over jumplist items /// -/// @warning No jumplist-editing functions must be run while iteration is in +/// @warning No jumplist-editing functions must be run while iteration is in /// progress. /// /// @param[in] iter Iterator. Pass NULL to start iteration. /// @param[in] win Window for which jump list is processed. /// @param[out] fm Item definition. /// -/// @return Pointer that needs to be passed to next `mark_jumplist_iter` call or +/// @return Pointer that needs to be passed to next `mark_jumplist_iter` call or /// NULL if iteration is over. const void *mark_jumplist_iter(const void *const iter, const win_T *const win, xfmark_T *const fm) @@ -1193,14 +1193,14 @@ const void *mark_jumplist_iter(const void *const iter, const win_T *const win, /// Iterate over global marks /// -/// @warning No mark-editing functions must be run while iteration is in +/// @warning No mark-editing functions must be run while iteration is in /// progress. /// /// @param[in] iter Iterator. Pass NULL to start iteration. /// @param[out] name Mark name. /// @param[out] fm Mark definition. /// -/// @return Pointer that needs to be passed to next `mark_global_iter` call or +/// @return Pointer that needs to be passed to next `mark_global_iter` call or /// NULL if iteration is over. const void *mark_global_iter(const void *const iter, char *const name, xfmark_T *const fm) @@ -1234,11 +1234,11 @@ const void *mark_global_iter(const void *const iter, char *const name, /// Get next mark and its name /// /// @param[in] buf Buffer for which next mark is taken. -/// @param[in,out] mark_name Pointer to the current mark name. Next mark name +/// @param[in,out] mark_name Pointer to the current mark name. Next mark name /// will be saved at this address as well. /// -/// Current mark name must either be NUL, '"', '^', -/// '.' or 'a' .. 'z'. If it is neither of these +/// Current mark name must either be NUL, '"', '^', +/// '.' or 'a' .. 'z'. If it is neither of these /// behaviour is undefined. /// /// @return Pointer to the next mark or NULL. @@ -1275,7 +1275,7 @@ static inline const fmark_T *next_buffer_mark(const buf_T *const buf, /// Iterate over buffer marks /// -/// @warning No mark-editing functions must be run while iteration is in +/// @warning No mark-editing functions must be run while iteration is in /// progress. /// /// @param[in] iter Iterator. Pass NULL to start iteration. @@ -1283,7 +1283,7 @@ static inline const fmark_T *next_buffer_mark(const buf_T *const buf, /// @param[out] name Mark name. /// @param[out] fm Mark definition. /// -/// @return Pointer that needs to be passed to next `mark_buffer_iter` call or +/// @return Pointer that needs to be passed to next `mark_buffer_iter` call or /// NULL if iteration is over. const void *mark_buffer_iter(const void *const iter, const buf_T *const buf, char *const name, fmark_T *const fm) @@ -1321,7 +1321,7 @@ const void *mark_buffer_iter(const void *const iter, const buf_T *const buf, /// /// @param[in] name Mark name. /// @param[in] fm Mark to be set. -/// @param[in] update If true then only set global mark if it was created +/// @param[in] update If true then only set global mark if it was created /// later then existing one. /// /// @return true on success, false on failure. @@ -1347,7 +1347,7 @@ bool mark_set_global(const char name, const xfmark_T fm, const bool update) /// @param[in] name Mark name. /// @param[in] buf Pointer to the buffer to set mark in. /// @param[in] fm Mark to be set. -/// @param[in] update If true then only set global mark if it was created +/// @param[in] update If true then only set global mark if it was created /// later then existing one. /// /// @return true on success, false on failure. diff --git a/src/nvim/mark_defs.h b/src/nvim/mark_defs.h index 8f8425f0a6..720b2475ed 100644 --- a/src/nvim/mark_defs.h +++ b/src/nvim/mark_defs.h @@ -21,7 +21,7 @@ /// Total possible number of local marks /// -/// That are uppercase marks plus '"', '^' and '.'. There are other local marks, +/// That are uppercase marks plus '"', '^' and '.'. There are other local marks, /// but they are not saved in ShaDa files. #define NLOCALMARKS (NMARKS + 3) diff --git a/src/nvim/ops.c b/src/nvim/ops.c index d59630697d..3fd2c0b773 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -5190,7 +5190,7 @@ static bool get_clipboard(int name, yankreg_T **target, bool quiet) reg->y_size = lines->lv_len; reg->additional_data = NULL; reg->timestamp = 0; - // Timestamp is not saved for clipboard registers because clipboard registers + // Timestamp is not saved for clipboard registers because clipboard registers // are not saved in the ShaDa file. int i = 0; @@ -5327,7 +5327,7 @@ static inline bool reg_empty(const yankreg_T *const reg) /// @param[out] name Register name. /// @param[out] reg Register contents. /// -/// @return Pointer that needs to be passed to next `op_register_iter` call or +/// @return Pointer that needs to be passed to next `op_register_iter` call or /// NULL if iteration is over. const void *op_register_iter(const void *const iter, char *const name, yankreg_T *const reg) diff --git a/src/nvim/option.c b/src/nvim/option.c index 3f90293e19..653b217485 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -2441,9 +2441,8 @@ did_set_string_option ( verbose_stop(); if (*p_vfile != NUL && verbose_open() == FAIL) errmsg = e_invarg; - } /* 'shada' */ - else if (varp == &p_shada) { + } else if (varp == &p_shada) { for (s = p_shada; *s; ) { /* Check it's a valid character */ if (vim_strchr((char_u *)"!\"%'/:<@cfhnrs", *s) == NULL) { diff --git a/src/nvim/search.c b/src/nvim/search.c index 3fbddc7fc8..8ba888841c 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -4633,7 +4633,7 @@ void set_substitute_pattern(const SearchPattern pat) /// Set last used search pattern /// -/// @param[in] is_substitute_pattern If true set substitute pattern as last +/// @param[in] is_substitute_pattern If true set substitute pattern as last /// used. Otherwise sets search pattern. void set_last_used_pattern(const bool is_substitute_pattern) { diff --git a/src/nvim/search.h b/src/nvim/search.h index 1fc2d6710e..6947f79d49 100644 --- a/src/nvim/search.h +++ b/src/nvim/search.h @@ -44,7 +44,7 @@ /// Structure containing offset definition for the last search pattern /// -/// @note Only offset for the last search pattern is used, not for the last +/// @note Only offset for the last search pattern is used, not for the last /// substitute pattern. typedef struct soffset { char dir; ///< Search direction: forward ('/') or backward ('?') |