diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-16 14:46:33 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-05-17 08:05:44 -0300 |
commit | 45e5a18f3a8c44c5ecf54956d1a8248e1bf6f3e3 (patch) | |
tree | b510dad99a7d8bcb167053fec7d9e3bf28aeff89 /src/nvim/api/window.c | |
parent | 76a2fb5667461a8b7fa1abfb5a2c7381ced3f519 (diff) | |
download | rneovim-45e5a18f3a8c44c5ecf54956d1a8248e1bf6f3e3.tar.gz rneovim-45e5a18f3a8c44c5ecf54956d1a8248e1bf6f3e3.tar.bz2 rneovim-45e5a18f3a8c44c5ecf54956d1a8248e1bf6f3e3.zip |
Enable -Wconversion for API files and fix errors
Diffstat (limited to 'src/nvim/api/window.c')
-rw-r--r-- | src/nvim/api/window.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index b0d2838640..8e21034c40 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -48,8 +48,18 @@ void window_set_cursor(Window window, Position pos, Error *err) return; } - win->w_cursor.lnum = pos.row; - win->w_cursor.col = pos.col; + if (pos.row > LONG_MAX || pos.row < LONG_MIN) { + set_api_error("Row value outside range", err); + return; + } + + if (pos.col > INT_MAX || pos.col < INT_MIN) { + set_api_error("Column value outside range", err); + return; + } + + win->w_cursor.lnum = (linenr_T)pos.row; + win->w_cursor.col = (colnr_T)pos.col; win->w_cursor.coladd = 0; // When column is out of range silently correct it. check_cursor_col_win(win); @@ -75,10 +85,15 @@ void window_set_height(Window window, Integer height, Error *err) return; } + if (height > INT_MAX || height < INT_MIN) { + set_api_error("Height value outside range", err); + return; + } + win_T *savewin = curwin; curwin = win; try_start(); - win_setheight(height); + win_setheight((int)height); curwin = savewin; try_end(err); } @@ -102,10 +117,15 @@ void window_set_width(Window window, Integer width, Error *err) return; } + if (width > INT_MAX || width < INT_MIN) { + set_api_error("Width value outside range", err); + return; + } + win_T *savewin = curwin; curwin = win; try_start(); - win_setwidth(width); + win_setwidth((int)width); curwin = savewin; try_end(err); } |