diff --git a/Cargo.lock b/Cargo.lock index c066ee3..afbbcc1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -116,7 +116,7 @@ dependencies = [ [[package]] name = "carrier" -version = "0.3.0" +version = "0.3.1" dependencies = [ "fluent-bundle", "fumi-core", @@ -430,7 +430,7 @@ dependencies = [ [[package]] name = "fumi-core" -version = "0.1.0" +version = "0.1.1" dependencies = [ "chacha20poly1305", "data-encoding", diff --git a/Cargo.toml b/Cargo.toml index ba38e7e..b124695 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "carrier" -version = "0.3.0" +version = "0.3.1" edition = "2021" description = "A minimalist smolmail client built on fumi-core, with a Relm4 UI" license = "Apache-2.0" diff --git a/data/com.randogoth.carrier.metainfo.xml b/data/com.randogoth.carrier.metainfo.xml index 80ce224..e8a4fa9 100644 --- a/data/com.randogoth.carrier.metainfo.xml +++ b/data/com.randogoth.carrier.metainfo.xml @@ -14,6 +14,7 @@ com.randogoth.carrier.desktop + diff --git a/src/ops.rs b/src/ops.rs index 8d3444f..103bce0 100644 --- a/src/ops.rs +++ b/src/ops.rs @@ -716,7 +716,14 @@ pub fn send( .collect(); let draft = client::SendDraft { address: &addr, - text: body.to_string(), + // Trimmed at the send site, before the payload is signed, so the + // signature covers exactly the text the author meant. A compose buffer + // ends with whatever the author last pressed, and a trailing newline + // is not content — but it is content once it has been signed, and + // nothing downstream can remove it without invalidating the + // signature. smolboid, for one, refuses a post whose text carries a + // line break, because a published record is one line of a feed. + text: body.trim().to_string(), subject, reply_to, headers: &owned,