summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Mai <l.mai@web.de>2011-11-30 00:54:42 +0100
committerAilin Nemui <ailin@esf51.localdomain>2014-07-07 00:32:07 +0200
commit225d149968f72137d19002344d414637774f4377 (patch)
tree01337d3a53c06b01859a9cf6f8a25c8e4eabd5a3
parent0e294d5c2e4d4dd686378f2050abc9a9f2fae199 (diff)
downloadirssi-225d149968f72137d19002344d414637774f4377.zip
optionally render /foo/ as italics
-rw-r--r--src/fe-common/core/fe-messages.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/fe-common/core/fe-messages.c b/src/fe-common/core/fe-messages.c
index 67c95745..25c20109 100644
--- a/src/fe-common/core/fe-messages.c
+++ b/src/fe-common/core/fe-messages.c
@@ -45,16 +45,19 @@
GHashTable *printnicks;
-/* convert _underlined_ and *bold* words (and phrases) to use real
+/* convert _underlined_, /italics/, and *bold* words (and phrases) to use real
underlining or bolding */
char *expand_emphasis(WI_ITEM_REC *item, const char *text)
{
GString *str;
char *ret;
int pos;
+ int emphasis_italics;
g_return_val_if_fail(text != NULL, NULL);
+ emphasis_italics = settings_get_bool("emphasis_italics");
+
str = g_string_new(text);
for (pos = 0; pos < str->len; pos++) {
@@ -62,9 +65,11 @@ char *expand_emphasis(WI_ITEM_REC *item, const char *text)
bgn = str->str + pos;
- if (*bgn == '*')
+ if (*bgn == '*')
type = 2; /* bold */
- else if (*bgn == '_')
+ else if (*bgn == '/' && emphasis_italics)
+ type = 29; /* italics */
+ else if (*bgn == '_')
type = 31; /* underlined */
else
continue;
@@ -92,7 +97,7 @@ char *expand_emphasis(WI_ITEM_REC *item, const char *text)
found = nicklist_find(CHANNEL(item), bgn) != NULL;
end[1] = c;
if (found) continue;
-
+
/* check if the whole 'word' (e.g. "_foo_^") is a nick
in "_foo_^ ", end will be the second _, end2 the ^ */
end2 = end;
@@ -680,6 +685,7 @@ void fe_messages_init(void)
settings_add_bool("lookandfeel", "emphasis", TRUE);
settings_add_bool("lookandfeel", "emphasis_replace", FALSE);
settings_add_bool("lookandfeel", "emphasis_multiword", FALSE);
+ settings_add_bool("lookandfeel", "emphasis_italics", FALSE);
settings_add_bool("lookandfeel", "show_nickmode", TRUE);
settings_add_bool("lookandfeel", "show_nickmode_empty", TRUE);
settings_add_bool("lookandfeel", "print_active_channel", FALSE);