eion/purple-hangouts

Parents 8c8714002f4d
Children c8a7021921d5
HTML-encode (rather than URL-encode) inline image urls for Spectrum2
Fixes Issue #157
--- a/hangouts_events.c Thu Aug 03 02:36:39 2017 +0000
+++ b/hangouts_events.c Wed Oct 04 09:05:00 2017 +1300
@@ -18,6 +18,9 @@
#include "hangouts_events.h"
+#include <string.h>
+#include <glib.h>
+
#include "core.h"
#include "debug.h"
#include "glibcompat.h"
@@ -508,6 +511,7 @@
size_t response_size;
guint image_id;
gchar *msg;
+ gchar *escaped_image_url;
if (purple_http_response_get_error(response) != NULL) {
g_dataset_destroy(connection);
@@ -523,7 +527,8 @@
response_data = purple_http_response_get_data(response, &response_size);
image = purple_image_new_from_data(g_memdup(response_data, response_size), response_size);
image_id = purple_image_store_add(image);
- msg = g_strdup_printf("<a href='%s'>View full image <img id='%d' src='%s' /></a>", url, image_id, purple_url_encode(purple_http_request_get_url(purple_http_conn_get_request(connection))));
+ escaped_image_url = g_markup_escape_text(purple_http_request_get_url(purple_http_conn_get_request(connection)), -1);
+ msg = g_strdup_printf("<a href='%s'>View full image <img id='%d' src='%s' /></a>", url, image_id, escaped_image_url);
msg_flags |= PURPLE_MESSAGE_IMAGES;
if (g_hash_table_contains(ha->group_chats, conv_id)) {
@@ -546,6 +551,7 @@
}
}
+ g_free(escaped_image_url);
g_free(msg);
g_dataset_destroy(connection);
}