]> git.neil.brown.name Git - edlib.git/commitdiff
doc-email: ensure doc:get-boundary skips invisible parts
authorNeilBrown <neil@brown.name>
Sun, 4 Jun 2023 03:41:00 +0000 (13:41 +1000)
committerNeilBrown <neil@brown.name>
Wed, 28 Jun 2023 05:40:21 +0000 (15:40 +1000)
A boundary must be at the start of a VISIBLE part to be useful.

Signed-off-by: NeilBrown <neil@brown.name>
DOC/TODO.md
doc-email.c
doc-multipart.c

index 5713744d3fe2669be9ef3d7e1144b1af558d1dd1..310e7b24c535df5bfacf9e59639999013a26de2c 100644 (file)
@@ -9,7 +9,7 @@ the file.
 
 ### Trivial
 
-- [ ] If an email part doesn't end with newline, last character is swallowed.
+- [X] If an email part doesn't end with newline, last character is swallowed.
 - [X] What is rule for doc:content?  Does the mark move and get passed
       down, or is it copied and left unchanged?
 
index e95d46568e0aed1bb447d6fe1c4c02e10f12cba5..b5428c401d802ec1b7f80a7ab10b7f107aa65fa6 100644 (file)
@@ -1117,7 +1117,8 @@ DEF_CMD(email_set_ref)
 
        if (!ci->mark)
                return Enoarg;
-       home_call(p->parent, ci->key, ci->focus, ci->num, ci->mark, evi->invis);
+       home_call_comm(p->parent, ci->key, ci->focus, ci->comm2,
+                      ci->num, ci->mark, evi->invis);
        return 1;
 }
 
@@ -1316,6 +1317,7 @@ static void email_init_map(void)
        key_add(email_view_map, "doc:content", &email_content);
        key_add(email_view_map, "doc:content-bytes", &email_content);
        key_add(email_view_map, "doc:set-ref", &email_set_ref);
+       key_add(email_view_map, "doc:get-boundary", &email_set_ref);
        key_add(email_view_map, "doc:email-step-part", &email_step_part);
        key_add(email_view_map, "doc:set-attr", &email_view_set_attr);
        key_add(email_view_map, "doc:get-attr", &email_view_get_attr);
index cf594d175c1cec2cc273bf80146c88dc77c8889d..87cc13a5e09009004fbe908140289b69eadc3ddc 100644 (file)
@@ -450,7 +450,7 @@ DEF_CMD(mp_get_boundary)
        if (!m || !ci->comm2)
                return Enoarg;
        m = mark_dup(m);
-       call("doc:step-part", ci->home, ci->num, m);
+       call("doc:step-part", ci->home, ci->num, m, ci->str);
        comm_call(ci->comm2, "cb", ci->focus, 0, m);
        return 1;
 }