diff options
-rwxr-xr-x | src/nvim/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/nvim/message.c | 64 |
2 files changed, 32 insertions, 33 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 7e91ae176b..0b29abaf5f 100755 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -165,7 +165,6 @@ set(CONV_SOURCES lua/treesitter.c mbyte.c memline.c - message.c regexp.c screen.c search.c diff --git a/src/nvim/message.c b/src/nvim/message.c index e192af6aad..82e299e8e9 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -136,7 +136,7 @@ static int msg_grid_scroll_discount = 0; static void ui_ext_msg_set_pos(int row, bool scrolled) { char buf[MAX_MCO + 1]; - size_t size = utf_char2bytes(curwin->w_p_fcs_chars.msgsep, buf); + size_t size = (size_t)utf_char2bytes(curwin->w_p_fcs_chars.msgsep, buf); buf[size] = '\0'; ui_call_msg_set_pos(msg_grid.handle, row, scrolled, (String){ .data = buf, .size = size }); @@ -164,7 +164,7 @@ void msg_grid_validate(void) { grid_assign_handle(&msg_grid); bool should_alloc = msg_use_grid(); - int max_rows = Rows - p_ch; + int max_rows = Rows - (int)p_ch; if (should_alloc && (msg_grid.rows != Rows || msg_grid.cols != Columns || !msg_grid.chars)) { // TODO(bfredl): eventually should be set to "invalid". I e all callers @@ -173,7 +173,7 @@ void msg_grid_validate(void) msg_grid.zindex = kZIndexMessages; xfree(msg_grid.dirty_col); - msg_grid.dirty_col = xcalloc(Rows, sizeof(*msg_grid.dirty_col)); + msg_grid.dirty_col = xcalloc((size_t)Rows, sizeof(*msg_grid.dirty_col)); // Tricky: allow resize while pager is active int pos = msg_scrolled ? msg_grid_pos : max_rows; @@ -248,7 +248,7 @@ void msg_multiline_attr(const char *s, int attr, bool check_int, bool *need_clea if (next_spec != NULL) { // Printing all char that are before the char found by strpbrk - msg_outtrans_len_attr((const char_u *)s, next_spec - s, attr); + msg_outtrans_len_attr((const char_u *)s, (int)(next_spec - s), attr); if (*next_spec != TAB && *need_clear) { msg_clr_eos(); @@ -386,7 +386,7 @@ char_u *msg_strtrunc(char_u *s, int force) // may have up to 18 bytes per cell (6 per char, up to two // composing chars) len = (room + 2) * 18; - buf = xmalloc(len); + buf = xmalloc((size_t)len); trunc_string(s, buf, room, len); } } @@ -397,9 +397,9 @@ char_u *msg_strtrunc(char_u *s, int force) /// "s" and "buf" may be equal. void trunc_string(char_u *s, char_u *buf, int room_in, int buflen) { - size_t room = room_in - 3; // "..." takes 3 chars - size_t half; - size_t len = 0; + int room = room_in - 3; // "..." takes 3 chars + int half; + int len = 0; int e; int i; int n; @@ -454,25 +454,25 @@ void trunc_string(char_u *s, char_u *buf, int room_in, int buflen) if (i <= e + 3) { // text fits without truncating if (s != buf) { - len = STRLEN(s); - if (len >= (size_t)buflen) { + len = (int)STRLEN(s); + if (len >= buflen) { len = buflen - 1; } len = len - e + 1; if (len < 1) { buf[e - 1] = NUL; } else { - memmove(buf + e, s + e, len); + memmove(buf + e, s + e, (size_t)len); } } } else if (e + 3 < buflen) { // set the middle and copy the last part memmove(buf + e, "...", (size_t)3); - len = STRLEN(s + i) + 1; - if (len >= (size_t)buflen - e - 3) { + len = (int)STRLEN(s + i) + 1; + if (len >= buflen - e - 3) { len = buflen - e - 3 - 1; } - memmove(buf + e + 3, s + i, len); + memmove(buf + e + 3, s + i, (size_t)len); buf[e + 3 + len - 1] = NUL; } else { // can't fit in the "...", just truncate it @@ -671,17 +671,17 @@ static bool emsg_multiline(const char *s, bool multiline) if (p != NULL) { const size_t p_len = strlen(p); p[p_len] = '\n'; - redir_write(p, p_len + 1); + redir_write(p, (ptrdiff_t)p_len + 1); xfree(p); } p = get_emsg_lnum(); if (p != NULL) { const size_t p_len = strlen(p); p[p_len] = '\n'; - redir_write(p, p_len + 1); + redir_write(p, (ptrdiff_t)p_len + 1); xfree(p); } - redir_write(s, strlen(s)); + redir_write(s, (ptrdiff_t)strlen(s)); } // Log (silent) errors as debug messages. @@ -1444,7 +1444,7 @@ void msg_putchar(int c) void msg_putchar_attr(int c, int attr) { - char_u buf[MB_MAXBYTES + 1]; + char buf[MB_MAXBYTES + 1]; if (IS_SPECIAL(c)) { buf[0] = (char)K_SPECIAL; @@ -2025,7 +2025,7 @@ void msg_puts_attr(const char *const s, const int attr) void msg_puts_attr_len(const char *const str, const ptrdiff_t len, int attr) FUNC_ATTR_NONNULL_ALL { - assert(len < 0 || memchr(str, 0, len) == NULL); + assert(len < 0 || memchr(str, 0, (size_t)len) == NULL); // If redirection is on, also write to the redirection file. redir_write(str, len); @@ -2074,7 +2074,7 @@ void msg_puts_attr_len(const char *const str, const ptrdiff_t len, int attr) } } if (!msg_use_printf() || (headless_mode && default_grid.chars)) { - msg_puts_display((const char_u *)str, len, attr, false); + msg_puts_display((const char_u *)str, (int)len, attr, false); } need_fileinfo = false; @@ -2094,7 +2094,7 @@ void msg_printf_attr(const int attr, const char *const fmt, ...) va_list ap; va_start(ap, fmt); - const size_t len = vim_vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap); + const size_t len = (size_t)vim_vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap); va_end(ap); msg_scroll = true; @@ -2336,7 +2336,7 @@ bool message_filtered(char_u *msg) /// including horizontal separator int msg_scrollsize(void) { - return msg_scrolled + p_ch + 1; + return msg_scrolled + (int)p_ch + 1; } bool msg_use_msgsep(void) @@ -2364,7 +2364,7 @@ void msg_scroll_up(bool may_throttle) } else { grid_del_lines(&msg_grid, 0, 1, msg_grid.rows, 0, msg_grid.cols); memmove(msg_grid.dirty_col, msg_grid.dirty_col + 1, - (msg_grid.rows - 1) * sizeof(*msg_grid.dirty_col)); + (size_t)(msg_grid.rows - 1) * sizeof(*msg_grid.dirty_col)); msg_grid.dirty_col[msg_grid.rows - 1] = 0; } } else { @@ -2438,7 +2438,7 @@ void msg_reset_scroll(void) msg_grid.throttled = false; // TODO(bfredl): risk for extra flicker i e with // "nvim -o has_swap also_has_swap" - msg_grid_set_pos(Rows - p_ch, false); + msg_grid_set_pos(Rows - (int)p_ch, false); clear_cmdline = true; if (msg_grid.chars) { // non-displayed part of msg_grid is considered invalid. @@ -2509,11 +2509,11 @@ static void store_sb_text(char_u **sb_str, char_u *s, int attr, int *sb_col, int } if (s > *sb_str) { - mp = xmalloc((sizeof(msgchunk_T) + (s - *sb_str))); - mp->sb_eol = finish; + mp = xmalloc((sizeof(msgchunk_T) + (size_t)(s - *sb_str))); + mp->sb_eol = (char)finish; mp->sb_msg_col = *sb_col; mp->sb_attr = attr; - memcpy(mp->sb_text, *sb_str, s - *sb_str); + memcpy(mp->sb_text, *sb_str, (size_t)(s - *sb_str)); mp->sb_text[s - *sb_str] = NUL; if (last_msgchunk == NULL) { @@ -2691,7 +2691,7 @@ static void msg_puts_printf(const char *str, const ptrdiff_t maxlen) if (*s == '\n' && !info_message) { *p++ = '\r'; } - memcpy(p, s, len); + memcpy(p, s, (size_t)len); *(p + len) = '\0'; if (info_message) { mch_msg(buf); @@ -3264,10 +3264,10 @@ static void redir_write(const char *const str, const ptrdiff_t maxlen) ga_concat_len(capture_ga, str, len); } if (redir_reg) { - write_reg_contents(redir_reg, s, len, true); + write_reg_contents(redir_reg, s, (ssize_t)len, true); } if (redir_vname) { - var_redir_str((char *)s, maxlen); + var_redir_str((char *)s, (int)maxlen); } // Write and adjust the current column. @@ -3615,10 +3615,10 @@ static char_u *console_dialog_alloc(const char_u *message, char_u *buttons, bool // Now allocate space for the strings xfree(confirm_msg); - confirm_msg = xmalloc(len); + confirm_msg = xmalloc((size_t)len); *confirm_msg = NUL; - return xmalloc(lenhotkey); + return xmalloc((size_t)lenhotkey); } /// Format the dialog string, and display it at the bottom of |