...and here's the patch. On Dec 3, 2008, at 12:05 PM, Peter Bloomfield wrote:
On Dec 3, 2008, at 9:59 AM, Jean-Luc Coulon (f5ibh) wrote: I've tested it. Same problem... Regards J-L Le 03.12.2008 15:05:08, Peter Bloomfield a écrit : On 12/03/2008 03:11:07 AM Wed, Jean-Luc Coulon (f5ibh) wrote: Le 03.12.2008 09:01:54, Jean-Luc Coulon (f5ibh) a écrit : _______________________________________________BTW : I've not html rendering problem. The problem is to launch a link to an external browser.Bests Jean-Luc OK, yeah, sorry--my mind was on the WebKit stuff, which also has issues launching links.I noticed one problem, handling a link on a quoted line--this seems to fix that one:[ snip ]But we also seem to pick up only the first line of a multi-line URI, and I'm not sure what the fix for that should be. More later...Here's a possible fix for the multi-line issue--could you try it? Thanks! Peter
Index: src/balsa-mime-widget-text.c =================================================================== --- src/balsa-mime-widget-text.c (revision 8010) +++ src/balsa-mime-widget-text.c (working copy) @@ -327,6 +327,7 @@ new = this_line + cite_idx; if (g_unichar_isspace(g_utf8_get_char(new))) new = g_utf8_next_char(new); + line_start += new - this_line; new = g_strdup(new); g_free(this_line); this_line = new; Index: libbalsa/mime.c =================================================================== --- libbalsa/mime.c (revision 8010) +++ libbalsa/mime.c (working copy) @@ -990,13 +990,18 @@ if (url_info->ml_url) { gchar *url_end = strchr(p, '>'); + GString *ml_url; + ml_url = g_string_new(url_info->ml_url); + g_free(url_info->ml_url); + if (url_end) { - url_info->ml_url_buffer = - g_string_append_len(url_info->ml_url_buffer, p, url_end - p); + g_string_append_len(url_info->ml_url_buffer, p, url_end - p); gtk_text_buffer_insert_with_tags(buffer, &iter, url_info->ml_url_buffer->str, -1, url_tag, tag, NULL); + g_string_append_len(ml_url, p, url_end - p); + url_info->ml_url = g_string_free(ml_url, FALSE); if (url_info->callback) url_info->callback(buffer, &iter, url_info->ml_url, url_info->callback_data); g_string_free(url_info->ml_url_buffer, TRUE); @@ -1005,10 +1010,10 @@ url_info->ml_url = NULL; p = url_end; } else { - url_info->ml_url_buffer = - g_string_append(url_info->ml_url_buffer, p); - url_info->ml_url_buffer = - g_string_append_c(url_info->ml_url_buffer, '\n'); + g_string_append(url_info->ml_url_buffer, p); + g_string_append_c(url_info->ml_url_buffer, '\n'); + g_string_append(ml_url, p); + url_info->ml_url = g_string_free(ml_url, FALSE); return TRUE; } }
Attachment:
pgpI3FiibX3xK.pgp
Description: PGP signature