Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/pidgin/gtkdebug.c b/pidgin/gtkdebug.c
- --- a/pidgin/gtkdebug.c
- +++ b/pidgin/gtkdebug.c
- @@ -76,7 +76,24 @@
- /* Regex */ \
- "div.hide{display:none;}" \
- "span.regex{background-color:#ffafaf;font-weight:bold;}" \
- - "</style></head><body class=l%d></body></html>"
- + "</style><script>" \
- + "function append(level, time, cat, msg) {" \
- + "var div = document.createElement('div');" \
- + "div.className = 'l' + level;" \
- + "div.appendChild(document.createTextNode(time + ' '));" \
- + "if (cat) {" \
- + "var cat_n = document.createElement('b');" \
- + "cat_n.appendChild(document.createTextNode(cat + ':'));" \
- + "div.appendChild(cat_n);" \
- + "}" \
- + "div.appendChild(document.createTextNode(' ' + msg));" \
- + "document.body.appendChild(div);" \
- + "}" \
- + "</script></head><body class=l%d></body></html>"
- +
- +
- +
- +
- static DebugWindow *debug_win = NULL;
- static guint debug_enabled_timer = 0;
- @@ -831,8 +848,10 @@
- gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
- gtk_widget_show(frame);
- +/*
- g_signal_connect(G_OBJECT(win->text), "html-appended",
- G_CALLBACK(regex_html_appended_cb), win);
- +*/
- clear_cb(NULL, win);
- @@ -1001,10 +1020,10 @@
- pidgin_debug_print(PurpleDebugLevel level, const char *category,
- const char *arg_s)
- {
- - gchar *ts_s;
- - gchar *esc_s, *cat_s, *tmp, *s;
- + gchar *esc_s, *cat_s, *tmp;
- const char *mdate;
- time_t mtime;
- + gchar *js;
- if (debug_win == NULL ||
- !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled"))
- @@ -1014,26 +1033,31 @@
- mtime = time(NULL);
- mdate = purple_utf8_strftime("%H:%M:%S", localtime(&mtime));
- - ts_s = g_strdup_printf("(%s) ", mdate);
- +
- + /* TODO: new str_escape_js-like function */
- + tmp = purple_utf8_try_convert(arg_s);
- + esc_s = purple_strreplace(tmp, "\\", "\\\\");
- + g_free(tmp); tmp = esc_s;
- + esc_s = purple_strreplace(esc_s, "'", "\\'");
- + g_free(tmp); tmp = esc_s;
- + esc_s = purple_strreplace(esc_s, "\n", "\\n");
- + g_free(tmp); tmp = esc_s;
- + esc_s = purple_strreplace(esc_s, "\r", "");
- + g_free(tmp);
- +
- if (category == NULL)
- - cat_s = g_strdup("");
- + cat_s = g_strdup("null");
- else
- - cat_s = g_strdup_printf("<b>%s:</b> ", category);
- + cat_s = g_strdup_printf("'%s'", category);
- - tmp = purple_utf8_try_convert(arg_s);
- - esc_s = g_markup_escape_text(tmp, -1);
- + js = g_strdup_printf("append(%d, '%s', %s, '%s');",
- + level, mdate, cat_s, esc_s);
- - s = g_strdup_printf("<div class=\"l%d\">%s%s%s</div>",
- - level, ts_s, cat_s, esc_s);
- -
- - g_free(ts_s);
- g_free(cat_s);
- g_free(esc_s);
- - g_free(tmp);
- - gtk_webview_append_html(GTK_WEBVIEW(debug_win->text), s);
- -
- - g_free(s);
- + gtk_webview_safe_execute_script(GTK_WEBVIEW(debug_win->text), js);
- + g_free(js);
- }
- static gboolean
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement