| 1768 |
1766 |
| 1769 char * |
1767 char * |
| 1770 gaim_markup_linkify(const char *text) |
1768 gaim_markup_linkify(const char *text) |
| 1771 { |
1769 { |
| 1772 const char *c, *t, *q = NULL; |
1770 const char *c, *t, *q = NULL; |
| 1773 char *tmp, *tmpurlbuf, *url_buf; |
1771 char *tmpurlbuf, *url_buf; |
| 1774 gunichar g; |
1772 gunichar g; |
| 1775 gboolean inside_html = FALSE; |
1773 gboolean inside_html = FALSE; |
| 1776 int inside_paren = 0; |
1774 int inside_paren = 0; |
| 1777 GString *ret = g_string_new(""); |
1775 GString *ret = g_string_new(""); |
| 1778 /* Assumes you have a buffer able to carry at least BUF_LEN * 2 bytes */ |
1776 /* Assumes you have a buffer able to carry at least BUF_LEN * 2 bytes */ |
| 3428 gfud = g_new0(GaimFetchUrlData, 1); |
3423 gfud = g_new0(GaimFetchUrlData, 1); |
| 3429 |
3424 |
| 3430 gfud->callback = cb; |
3425 gfud->callback = cb; |
| 3431 gfud->user_data = user_data; |
3426 gfud->user_data = user_data; |
| 3432 gfud->url = g_strdup(url); |
3427 gfud->url = g_strdup(url); |
| 3433 gfud->user_agent = user_agent ? g_strdup(user_agent) : NULL; |
3428 gfud->user_agent = g_strdup(user_agent); |
| 3434 gfud->http11 = http11; |
3429 gfud->http11 = http11; |
| 3435 gfud->full = full; |
3430 gfud->full = full; |
| 3436 gfud->request = request ? g_strdup(request) : NULL; |
3431 gfud->request = g_strdup(request); |
| 3437 gfud->include_headers = include_headers; |
3432 gfud->include_headers = include_headers; |
| 3438 |
3433 |
| 3439 gaim_url_parse(url, &gfud->website.address, &gfud->website.port, |
3434 gaim_url_parse(url, &gfud->website.address, &gfud->website.port, |
| 3440 &gfud->website.page, &gfud->website.user, &gfud->website.passwd); |
3435 &gfud->website.page, &gfud->website.user, &gfud->website.passwd); |
| 3441 |
3436 |
| 3675 |
3670 |
| 3676 utf8 = g_convert(str, -1, "UTF-8", "ISO-8859-15", &converted, NULL, NULL); |
3671 utf8 = g_convert(str, -1, "UTF-8", "ISO-8859-15", &converted, NULL, NULL); |
| 3677 if ((utf8 != NULL) && (converted == strlen(str))) |
3672 if ((utf8 != NULL) && (converted == strlen(str))) |
| 3678 return utf8; |
3673 return utf8; |
| 3679 |
3674 |
| 3680 if (utf8 != NULL) |
3675 g_free(utf8); |
| 3681 g_free(utf8); |
|
| 3682 |
3676 |
| 3683 return NULL; |
3677 return NULL; |
| 3684 } |
3678 } |
| 3685 |
3679 |
| 3686 #define utf8_first(x) ((x & 0x80) == 0 || (x & 0xe0) == 0xc0 \ |
3680 #define utf8_first(x) ((x & 0x80) == 0 || (x & 0xe0) == 0xc0 \ |