Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2017-03-27 00:45:32 +0300
committerEion Robb <eion@robbmob.com>2017-03-27 00:45:32 +0300
commit19ac09e0867e3165f43833a51329215acf346a5d (patch)
tree0b441e7061772c38353647aac2f23080d2b24b7a /skypeweb
parentb2862d2a69c5a0f0ce90afa8b3894b102b217366 (diff)
Try to fix 'tiny font' issue by stripping pesky html
Should help issue #421 and issue #515
Diffstat (limited to 'skypeweb')
-rw-r--r--skypeweb/skypeweb_messages.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c
index f494c58..2a7970c 100644
--- a/skypeweb/skypeweb_messages.c
+++ b/skypeweb/skypeweb_messages.c
@@ -1403,6 +1403,8 @@ skypeweb_send_message(SkypeWebAccount *sa, const gchar *convname, const gchar *m
gint64 clientmessageid;
gchar *clientmessageid_str;
gchar *stripped;
+ static GRegex *font_strip_regex = NULL;
+ gchar *font_stripped;
url = g_strdup_printf("/v1/users/ME/conversations/%s/messages", purple_url_encode(convname));
@@ -1412,6 +1414,16 @@ skypeweb_send_message(SkypeWebAccount *sa, const gchar *convname, const gchar *m
// Some clients don't receive messages with <br>'s in them
stripped = purple_strreplace(message, "<br>", "\r\n");
+ // Pidgin has a nasty habit of sending <font size="3"> when copy-pasting text
+ if (font_strip_regex == NULL) {
+ font_strip_regex = g_regex_new("(<font [^>]*)size=\"[0-9]+\"([^>]*>)", G_REGEX_CASELESS | G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ }
+ font_stripped = g_regex_replace(font_strip_regex, stripped, -1, 0, "\\1\\2", 0, NULL);
+ if (font_stripped != NULL) {
+ g_free(stripped);
+ stripped = font_stripped;
+ }
+
obj = json_object_new();
json_object_set_string_member(obj, "clientmessageid", clientmessageid_str);
json_object_set_string_member(obj, "content", stripped);