| To: vim-dev@vim.org |
| Subject: Patch 7.2.268 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.2.268 |
| Problem: Crash when using Python to set cursor beyond end of line. |
| (winterTTr) |
| Solution: Check the column to be valid. |
| Files: src/if_python.c |
| |
| |
| |
| |
| |
| *** 2058,2063 **** |
| --- 2058,2064 ---- |
| { |
| long lnum; |
| long col; |
| + long len; |
| |
| if (!PyArg_Parse(val, "(ll)", &lnum, &col)) |
| return -1; |
| |
| *** 2072,2081 **** |
| if (VimErrorCheck()) |
| return -1; |
| |
| ! /* NO CHECK ON COLUMN - SEEMS NOT TO MATTER */ |
| |
| this->win->w_cursor.lnum = lnum; |
| this->win->w_cursor.col = col; |
| update_screen(VALID); |
| |
| return 0; |
| --- 2073,2088 ---- |
| if (VimErrorCheck()) |
| return -1; |
| |
| ! /* When column is out of range silently correct it. */ |
| ! len = STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE)); |
| ! if (col > len) |
| ! col = len; |
| |
| this->win->w_cursor.lnum = lnum; |
| this->win->w_cursor.col = col; |
| + #ifdef FEAT_VIRTUALEDIT |
| + this->win->w_cursor.coladd = 0; |
| + #endif |
| update_screen(VALID); |
| |
| return 0; |
| |
| |
| |
| *** 678,679 **** |
| --- 678,681 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 268, |
| /**/ |
| |
| -- |
| VOICE OVER: As the horrendous Black Beast lunged forward, escape for Arthur |
| and his knights seemed hopeless, when, suddenly ... the animator |
| suffered a fatal heart attack. |
| ANIMATOR: Aaaaagh! |
| VOICE OVER: The cartoon peril was no more ... The Quest for Holy Grail could |
| continue. |
| "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |