aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/util
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2022-01-11 22:48:12 +0100
committerfiaxh <git@lightrise.org>2022-01-11 23:12:46 +0100
commit4e9e09a648a6bec75e0baeb934dbe5dcef0108b6 (patch)
tree85d0e51c2bb62be072f123c0adafbffb073f157a /main/src/ui/util
parentfa6d49e3bf664e7862548223df9b0882c11eefb1 (diff)
downloaddino-4e9e09a648a6bec75e0baeb934dbe5dcef0108b6.tar.gz
dino-4e9e09a648a6bec75e0baeb934dbe5dcef0108b6.zip
Apply message quote style prior to bold/italic style
Quotes apply to the whole line. Having a bold part in that line results in the quote styling only extending up to the bold part.
Diffstat (limited to 'main/src/ui/util')
-rw-r--r--main/src/ui/util/helper.vala25
1 files changed, 12 insertions, 13 deletions
diff --git a/main/src/ui/util/helper.vala b/main/src/ui/util/helper.vala
index c1c32048..f533ffad 100644
--- a/main/src/ui/util/helper.vala
+++ b/main/src/ui/util/helper.vala
@@ -312,6 +312,18 @@ public static string parse_add_markup(string s_, string? highlight_word, bool pa
}
if (parse_text_markup) {
+ Regex quote_regex = new Regex("((?<=\n)&gt;.*(\n|$))|(^&gt;.*(\n|$))");
+ MatchInfo quote_match_info;
+ quote_regex.match(s.down(), 0, out quote_match_info);
+ if (quote_match_info.matches()) {
+ int start, end;
+
+ quote_match_info.fetch_pos(0, out start, out end);
+ return parse_add_markup(s[0:start], highlight_word, parse_links, parse_text_markup, already_escaped) +
+ "<span fgalpha='70%'>" + s[start:end] + "</span>" +
+ parse_add_markup(s[end:s.length], highlight_word, parse_links, parse_text_markup, already_escaped);
+ }
+
string[] markup_string = new string[]{"`", "_", "*", "~"};
string[] convenience_tag = new string[]{"tt", "i", "b", "s"};
@@ -334,19 +346,6 @@ public static string parse_add_markup(string s_, string? highlight_word, bool pa
assert_not_reached();
}
}
-
- Regex regex = new Regex("((?<=\n)&gt;.*(\n|$))|(^&gt;.*(\n|$))");
- MatchInfo match_info;
- regex.match(s.down(), 0, out match_info);
-
- if (match_info.matches()) {
- int start, end;
-
- match_info.fetch_pos(0, out start, out end);
- return parse_add_markup(s[0:start], highlight_word, parse_links, parse_text_markup, already_escaped) +
- "<span fgalpha='70%'>" + s[start:end] + "</span>" +
- parse_add_markup(s[end:s.length], highlight_word, parse_links, parse_text_markup, already_escaped);
- }
}
return s;