]> git.neil.brown.name Git - edlib.git/commitdiff
Change doc:mark-same to return result directlry.
authorNeilBrown <neil@brown.name>
Tue, 8 Dec 2015 00:38:01 +0000 (11:38 +1100)
committerNeilBrown <neil@brown.name>
Wed, 9 Dec 2015 23:00:50 +0000 (10:00 +1100)
'1' means they are the same.
any other +ve number means they are different.

Signed-off-by: NeilBrown <neil@brown.name>
core-doc.c
core-mark.c
doc-dir.c
doc-text.c

index 3cf7347b980125cf03234fda3d501e902536a1bf..d678b4fd7c2b963539175fe5b0bedd1cd73bb84e 100644 (file)
@@ -691,8 +691,7 @@ DEF_CMD(docs_set_ref)
 
 DEF_CMD(docs_mark_same)
 {
-       ci->extra = ci->mark->ref.p == ci->mark2->ref.p;
-       return 1;
+       return ci->mark->ref.p == ci->mark2->ref.p ? 1 : 2;
 }
 
 static char *__docs_get_attr(struct doc *doc, struct mark *m,
index 0a5eeff3a90e115e7e93873db2571264cc7c0cee..da1183dc81f37f02c646d3e24a8a745c0f482319 100644 (file)
@@ -702,15 +702,14 @@ void mark_to_mark(struct mark *m, struct mark *target)
 int mark_same2(struct doc *d, struct mark *m1, struct mark *m2, struct cmd_info *ci)
 {
        struct cmd_info ci2 = {0};
+
        if (!ci)
                ci = &ci2;
        ci->key = "doc:mark-same";
        ci->mark = m1;
        ci->mark2 = m2;
        ci->home = d->home;
-       ci->extra = 0;
-       key_lookup(d->map, ci);
-       return ci->extra;
+       return key_lookup(d->map, ci) == 1;
 }
 
 int mark_same(struct doc *d, struct mark *m1, struct mark *m2)
@@ -728,11 +727,8 @@ int mark_same_pane(struct pane *p, struct mark *m1, struct mark *m2,
        ci->key = "doc:mark-same";
        ci->mark = m1;
        ci->mark2 = m2;
-       ci->extra = 0;
        ci->focus = p;
-       if (key_handle_focus(ci) == 0)
-               return 0;
-       return ci->extra;
+       return key_handle_focus(ci) == 1;
 }
 
 /* A 'vmark' is a mark in a particular view.  We can walk around those
index fe0e94ca5f4eda0d8ead6064f68d4f751c0c7296..b2bed1386b62fb5ed520adb4dc2007cce4d843af 100644 (file)
--- a/doc-dir.c
+++ b/doc-dir.c
@@ -319,8 +319,7 @@ DEF_CMD(dir_set_ref)
 
 DEF_CMD(dir_mark_same)
 {
-       ci->extra = ci->mark->ref.d == ci->mark2->ref.d;
-       return 1;
+       return ci->mark->ref.d == ci->mark2->ref.d ? 1 : 2;
 }
 
 static void get_stat(struct directory *dr, struct dir_ent *de)
index 98fa4cefd6b62b2c453d9b5fecc7f8760162aae8..f3f6e1fa13cec167e20c5c41f8136407a49008d8 100644 (file)
@@ -1047,8 +1047,7 @@ DEF_CMD(text_mark_same)
        struct doc_data *dd = ci->home->data;
        struct text *t = container_of(dd->doc, struct text, doc);
 
-       ci->extra = text_ref_same(t, &ci->mark->ref, &ci->mark2->ref);
-       return 1;
+       return text_ref_same(t, &ci->mark->ref, &ci->mark2->ref) ? 1 : 2;
 }
 
 DEF_CMD(text_new)