This allows render_line_prev to make more sense at end-of-doc.
Signed-off-by: NeilBrown <neil@brown.name>
break;
}
mark_free(ci3.mark);
- cmp = strncmp(ci3.str, cd->prefix, plen);
+ if (ci3.str == NULL)
+ cmp = -1;
+ else
+ cmp = strncmp(ci3.str, cd->prefix, plen);
if (cmp != 0 || ci2.numeric != 1 || ci->extra != 42)
free(ci3.str);
else
int rpt = RPT_NUM(ci);
if (rpt >= -1 && rpt <= 1)
- /* movement with the line */
+ /* movement within the line */
return 1;
while (rpt < -1) {
struct cmd_info ci2 = {0};
struct mark *m = ci->mark;
struct doc *d = doc_from_pane(ci->home);
- if (RPT_NUM(ci) == 0 && doc_following(d, m) != WEOF)
+ if (RPT_NUM(ci) == 0)
/* always at start-of-line */
return 1;
if (mark_prev(d, m) == WEOF)