diff --git a/src/dehtml.rs b/src/dehtml.rs
index 9f786a71a..dba2c14c0 100644
--- a/src/dehtml.rs
+++ b/src/dehtml.rs
@@ -165,9 +165,13 @@ fn dehtml_endtag_cb(event: &BytesEnd, dehtml: &mut Dehtml) {
}
"a" => {
if let Some(ref last_href) = dehtml.last_href.take() {
- dehtml.strbuilder += "](";
- dehtml.strbuilder += last_href;
- dehtml.strbuilder += ")";
+ if dehtml.strbuilder.ends_with('[') {
+ dehtml.strbuilder.truncate(dehtml.strbuilder.len() - 1);
+ } else {
+ dehtml.strbuilder += "](";
+ dehtml.strbuilder += last_href;
+ dehtml.strbuilder += ")";
+ }
}
}
"b" | "strong" => {
@@ -323,9 +327,10 @@ mod tests {
("& bar", "& bar"),
// Despite missing ', this should be shown:
("", "No link: "),
(
- "",
- "[](https://get.delta.chat/)",
+ "No link: ",
+ "No link: ",
),
("\nfat text", "*fat text*"),
// Invalid html (at least DC should show the text if the html is invalid):