location that the cursor is about to move to, and "mark2" will be the
mark that will be moved.
+ Note that while Move-CursorXY will move the mark to a "near by"
+ location if the is no character at that exact locate, the action will
+ only be performed if there is a suitable character exactly where the
+ x,y co-ords are.
+
- "Move-Line" moves the cursor (point) forward or backward some number
of lines based on the num1 argument. "render-lines" attempts to keep
the cursor in the same column as it started in. This column number is
* of that content (possible EOF) so move there
*/
} else {
- if (cih.y < m->mdata->y)
+ if (cih.y < m->mdata->y) {
+ /* action only permitted in precise match */
+ action = NULL;
cih.y = m->mdata->y;
+ }
xypos = find_xy_line(p, focus, m, cih.x, cih.y);
- if (xypos >= 0)
+ if (xypos >= 0) {
m2 = call_render_line_offset(focus, m, xypos);
+ if (m2) {
+ wint_t c = doc_following(focus, m2);
+ if (c == WEOF || is_eol(c))
+ /* after last char on line - no action. */
+ action = NULL;
+ }
+ }
}
if (m2) {
char *tag, *xyattr;