From 1fe9d6f60928e668fa1d0ff0f5bb4916c27d7931 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 27 Nov 2015 16:06:08 +1100 Subject: [PATCH] Add another check for a NULL string. This allows render_line_prev to make more sense at end-of-doc. Signed-off-by: NeilBrown --- render-complete.c | 7 +++++-- render-format.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/render-complete.c b/render-complete.c index e7cf4ad0..fb2aba54 100644 --- a/render-complete.c +++ b/render-complete.c @@ -101,7 +101,10 @@ DEF_CMD(render_complete_prev) 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 @@ -155,7 +158,7 @@ DEF_CMD(complete_eol) 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}; diff --git a/render-format.c b/render-format.c index 0a4435c4..543adacc 100644 --- a/render-format.c +++ b/render-format.c @@ -153,7 +153,7 @@ DEF_CMD(render_line_prev) 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) -- 2.39.5