diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2025-02-05 23:09:29 +0000 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2025-02-05 23:09:29 +0000 |
commit | d5f194ce780c95821a855aca3c19426576d28ae0 (patch) | |
tree | d45f461b19f9118ad2bb1f440a7a08973ad18832 /src/nvim/indent_c.c | |
parent | c5d770d311841ea5230426cc4c868e8db27300a8 (diff) | |
parent | 44740e561fc93afe3ebecfd3618bda2d2abeafb0 (diff) | |
download | rneovim-d5f194ce780c95821a855aca3c19426576d28ae0.tar.gz rneovim-d5f194ce780c95821a855aca3c19426576d28ae0.tar.bz2 rneovim-d5f194ce780c95821a855aca3c19426576d28ae0.zip |
Diffstat (limited to 'src/nvim/indent_c.c')
-rw-r--r-- | src/nvim/indent_c.c | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c index 98b0d6003a..c9b7a1ba3f 100644 --- a/src/nvim/indent_c.c +++ b/src/nvim/indent_c.c @@ -14,6 +14,7 @@ #include "nvim/indent_c.h" #include "nvim/macros_defs.h" #include "nvim/mark_defs.h" +#include "nvim/math.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/option.h" @@ -1689,7 +1690,7 @@ void parse_cino(buf_T *buf) p++; } char *digits_start = p; // remember where the digits start - int n = getdigits_int(&p, true, 0); + int64_t n = getdigits_int(&p, true, 0); divider = 0; if (*p == '.') { // ".5s" means a fraction. fraction = atoi(++p); @@ -1708,7 +1709,7 @@ void parse_cino(buf_T *buf) } else { n *= sw; if (divider) { - n += (sw * fraction + divider / 2) / divider; + n += ((int64_t)sw * fraction + divider / 2) / divider; } } p++; @@ -1717,119 +1718,121 @@ void parse_cino(buf_T *buf) n = -n; } + n = trim_to_int(n); + // When adding an entry here, also update the default 'cinoptions' in // doc/indent.txt, and add explanation for it! switch (*l) { case '>': - buf->b_ind_level = n; + buf->b_ind_level = (int)n; break; case 'e': - buf->b_ind_open_imag = n; + buf->b_ind_open_imag = (int)n; break; case 'n': - buf->b_ind_no_brace = n; + buf->b_ind_no_brace = (int)n; break; case 'f': - buf->b_ind_first_open = n; + buf->b_ind_first_open = (int)n; break; case '{': - buf->b_ind_open_extra = n; + buf->b_ind_open_extra = (int)n; break; case '}': - buf->b_ind_close_extra = n; + buf->b_ind_close_extra = (int)n; break; case '^': - buf->b_ind_open_left_imag = n; + buf->b_ind_open_left_imag = (int)n; break; case 'L': - buf->b_ind_jump_label = n; + buf->b_ind_jump_label = (int)n; break; case ':': - buf->b_ind_case = n; + buf->b_ind_case = (int)n; break; case '=': - buf->b_ind_case_code = n; + buf->b_ind_case_code = (int)n; break; case 'b': - buf->b_ind_case_break = n; + buf->b_ind_case_break = (int)n; break; case 'p': - buf->b_ind_param = n; + buf->b_ind_param = (int)n; break; case 't': - buf->b_ind_func_type = n; + buf->b_ind_func_type = (int)n; break; case '/': - buf->b_ind_comment = n; + buf->b_ind_comment = (int)n; break; case 'c': - buf->b_ind_in_comment = n; + buf->b_ind_in_comment = (int)n; break; case 'C': - buf->b_ind_in_comment2 = n; + buf->b_ind_in_comment2 = (int)n; break; case 'i': - buf->b_ind_cpp_baseclass = n; + buf->b_ind_cpp_baseclass = (int)n; break; case '+': - buf->b_ind_continuation = n; + buf->b_ind_continuation = (int)n; break; case '(': - buf->b_ind_unclosed = n; + buf->b_ind_unclosed = (int)n; break; case 'u': - buf->b_ind_unclosed2 = n; + buf->b_ind_unclosed2 = (int)n; break; case 'U': - buf->b_ind_unclosed_noignore = n; + buf->b_ind_unclosed_noignore = (int)n; break; case 'W': - buf->b_ind_unclosed_wrapped = n; + buf->b_ind_unclosed_wrapped = (int)n; break; case 'w': - buf->b_ind_unclosed_whiteok = n; + buf->b_ind_unclosed_whiteok = (int)n; break; case 'm': - buf->b_ind_matching_paren = n; + buf->b_ind_matching_paren = (int)n; break; case 'M': - buf->b_ind_paren_prev = n; + buf->b_ind_paren_prev = (int)n; break; case ')': - buf->b_ind_maxparen = n; + buf->b_ind_maxparen = (int)n; break; case '*': - buf->b_ind_maxcomment = n; + buf->b_ind_maxcomment = (int)n; break; case 'g': - buf->b_ind_scopedecl = n; + buf->b_ind_scopedecl = (int)n; break; case 'h': - buf->b_ind_scopedecl_code = n; + buf->b_ind_scopedecl_code = (int)n; break; case 'j': - buf->b_ind_java = n; + buf->b_ind_java = (int)n; break; case 'J': - buf->b_ind_js = n; + buf->b_ind_js = (int)n; break; case 'l': - buf->b_ind_keep_case_label = n; + buf->b_ind_keep_case_label = (int)n; break; case '#': - buf->b_ind_hash_comment = n; + buf->b_ind_hash_comment = (int)n; break; case 'N': - buf->b_ind_cpp_namespace = n; + buf->b_ind_cpp_namespace = (int)n; break; case 'k': - buf->b_ind_if_for_while = n; + buf->b_ind_if_for_while = (int)n; break; case 'E': - buf->b_ind_cpp_extern_c = n; + buf->b_ind_cpp_extern_c = (int)n; break; case 'P': - buf->b_ind_pragma = n; + buf->b_ind_pragma = (int)n; break; } if (*p == ',') { |