Mercurial > pidgin.yaz
comparison src/util.c @ 7099:8130adad8b7a
[gaim-migrate @ 7664]
this is cleaner, and does a better job of stripping html
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Wed, 01 Oct 2003 04:07:31 +0000 |
parents | c8bf2da398e3 |
children | 5dc4ed905a1a |
comparison
equal
deleted
inserted
replaced
7098:770233dad86c | 7099:8130adad8b7a |
---|---|
1551 } | 1551 } |
1552 | 1552 |
1553 char * | 1553 char * |
1554 gaim_markup_strip_html(const char *str) | 1554 gaim_markup_strip_html(const char *str) |
1555 { | 1555 { |
1556 int i, j, k; | 1556 char *ret; |
1557 gboolean visible = TRUE; | 1557 |
1558 gchar *str2; | 1558 gaim_markup_html_to_xhtml(str, NULL, &ret); |
1559 | 1559 |
1560 g_return_val_if_fail(str != NULL, NULL); | 1560 return ret; |
1561 | |
1562 str2 = g_strdup(str); | |
1563 | |
1564 for (i = 0, j = 0; str2[i]; i++) | |
1565 { | |
1566 if (str2[i] == '<') | |
1567 { | |
1568 k = i + 1; | |
1569 | |
1570 if(g_ascii_isspace(str2[k])) | |
1571 visible = TRUE; | |
1572 else | |
1573 { | |
1574 while (str2[k]) | |
1575 { | |
1576 if (str2[k] == '<') | |
1577 { | |
1578 visible = TRUE; | |
1579 break; | |
1580 } | |
1581 | |
1582 if (str2[k] == '>') | |
1583 { | |
1584 visible = FALSE; | |
1585 break; | |
1586 } | |
1587 | |
1588 k++; | |
1589 } | |
1590 } | |
1591 } | |
1592 else if (str2[i] == '>' && !visible) | |
1593 { | |
1594 visible = TRUE; | |
1595 continue; | |
1596 } | |
1597 | |
1598 if (str2[i] == '&' && strncasecmp(str2 + i, """, 6) == 0) | |
1599 { | |
1600 str2[j++] = '\"'; | |
1601 i = i + 5; | |
1602 continue; | |
1603 } | |
1604 | |
1605 if (visible) | |
1606 str2[j++] = str2[i]; | |
1607 } | |
1608 | |
1609 str2[j] = '\0'; | |
1610 | |
1611 return str2; | |
1612 } | 1561 } |
1613 | 1562 |
1614 gboolean | 1563 gboolean |
1615 gaim_url_parse(const char *url, char **ret_host, int *ret_port, | 1564 gaim_url_parse(const char *url, char **ret_host, int *ret_port, |
1616 char **ret_path) | 1565 char **ret_path) |