MCPcopy Create free account
hub / github.com/dillo-browser/dillo / parseImport

Method parseImport

src/cssparser.cc:1631–1684  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1629}
1630
1631void CssParser::parseImport(DilloHtml *html)
1632{
1633 char *urlStr = NULL;
1634 bool importSyntaxIsOK = false;
1635 bool mediaSyntaxIsOK = true;
1636 bool mediaIsSelected = true;
1637
1638 nextToken();
1639
1640 if (ttype == CSS_TK_SYMBOL &&
1641 dStrAsciiCasecmp(tval, "url") == 0)
1642 urlStr = parseUrl();
1643 else if (ttype == CSS_TK_STRING)
1644 urlStr = dStrdup (tval);
1645
1646 nextToken();
1647
1648 /* parse a comma-separated list of media */
1649 if (ttype == CSS_TK_SYMBOL) {
1650 mediaSyntaxIsOK = false;
1651 mediaIsSelected = false;
1652 while (ttype == CSS_TK_SYMBOL) {
1653 if (dStrAsciiCasecmp(tval, "all") == 0 ||
1654 dStrAsciiCasecmp(tval, "screen") == 0)
1655 mediaIsSelected = true;
1656 nextToken();
1657 if (ttype == CSS_TK_CHAR && tval[0] == ',') {
1658 nextToken();
1659 } else {
1660 mediaSyntaxIsOK = true;
1661 break;
1662 }
1663 }
1664 }
1665
1666 if (mediaSyntaxIsOK &&
1667 ttype == CSS_TK_CHAR &&
1668 tval[0] == ';') {
1669 importSyntaxIsOK = true;
1670 nextToken();
1671 } else
1672 ignoreStatement();
1673
1674 if (urlStr) {
1675 if (importSyntaxIsOK && mediaIsSelected) {
1676 MSG("CssParser::parseImport(): @import %s\n", urlStr);
1677 DilloUrl *url = a_Html_url_new (html, urlStr, a_Url_str(this->baseUrl),
1678 this->baseUrl ? 1 : 0);
1679 a_Html_load_stylesheet(html, url);
1680 a_Url_free(url);
1681 }
1682 dFree (urlStr);
1683 }
1684}
1685
1686void CssParser::parseMedia()
1687{

Callers 1

parseMethod · 0.80

Calls 7

dStrAsciiCasecmpFunction · 0.85
dStrdupFunction · 0.85
a_Html_url_newFunction · 0.85
a_Url_strFunction · 0.85
a_Html_load_stylesheetFunction · 0.85
a_Url_freeFunction · 0.85
dFreeFunction · 0.85

Tested by

no test coverage detected