summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrés <andmarti@gmail.com>2021-06-11 13:47:47 -0300
committerAndrés <andmarti@gmail.com>2021-06-11 13:47:47 -0300
commite71c2b2bf3120ba12badd73dcb47124b36e7f3d4 (patch)
tree41f744a97f914929e4a1ff8577675846ae1dace6 /src
parent690053f15860b9d1a85498cc0fd0bc3bed91efc4 (diff)
Avoid reading passed maxcols maxrows when shifting left or up over last sheet column/row
Diffstat (limited to 'src')
-rw-r--r--src/actions/shift.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/actions/shift.c b/src/actions/shift.c
index b878a56..cb4fc05 100644
--- a/src/actions/shift.c
+++ b/src/actions/shift.c
@@ -74,7 +74,13 @@ extern struct session * session;
void shift(struct sheet * sh, int r, int c, int rf, int cf, wchar_t type) {
struct roman * roman = session->cur_doc;
- if (any_locked_cells(sh, r, c, rf, cf) && (type == L'h' || type == L'k') ) {
+ if (cf - 1 + cmd_multiplier >= sh->maxcols && type == L'h') {
+ sc_error("current column + multiplier exceeds max column. Nothing changed");
+ return;
+ } else if (rf - 1 + cmd_multiplier >= sh->maxrows && type == L'k') {
+ sc_error("current row + multiplier exceeds max row. Nothing changed");
+ return;
+ } else if (any_locked_cells(sh, r, c, rf, cf) && (type == L'h' || type == L'k') ) {
sc_error("Locked cells encountered. Nothing changed");
return;
}