]> git.neil.brown.name Git - edlib.git/commitdiff
Add another check for a NULL string.
authorNeilBrown <neil@brown.name>
Fri, 27 Nov 2015 05:06:08 +0000 (16:06 +1100)
committerNeilBrown <neil@brown.name>
Fri, 27 Nov 2015 05:06:08 +0000 (16:06 +1100)
This allows render_line_prev to make more sense at end-of-doc.

Signed-off-by: NeilBrown <neil@brown.name>
render-complete.c
render-format.c

index e7cf4ad0358870a1f1f0ef8bb1b4cc821a8dd14c..fb2aba5412841ce16cfa1cc1a30e8d771450c2a0 100644 (file)
@@ -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};
index 0a4435c440f8acfd5246640fce28c20d11b09e8e..543adacc5bff9e7f37b068c02ac8293716f63065 100644 (file)
@@ -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)