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, "&quot;", 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)