aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/window.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-05-16 14:46:33 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-05-17 08:05:44 -0300
commit45e5a18f3a8c44c5ecf54956d1a8248e1bf6f3e3 (patch)
treeb510dad99a7d8bcb167053fec7d9e3bf28aeff89 /src/nvim/api/window.c
parent76a2fb5667461a8b7fa1abfb5a2c7381ced3f519 (diff)
downloadrneovim-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.c28
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);
}