Ejemplo n.º 1
0
bool URI::parse(const DOMString &str)
{

    parselen = str.size();
    parsebuf = new int[str.size()];
    if (!parsebuf)
        {
        error("parse : could not allocate parsebuf");
        return false;
        }

    DOMString::const_iterator iter;
    unsigned int i=0;
    for (iter= str.begin() ; iter!=str.end() ; ++iter)
        {
        int ch = *iter;
        if (ch == '\\')
            parsebuf[i++] = '/';
        else
            parsebuf[i++] = ch;
        }


    int p = parse(0);
    normalize();

    delete[] parsebuf;

    if (p < 0)
        {
        error("Syntax error");
        return false;
        }

    //printf("uri:%s\n", toString().c_str());
    //printf("parse:%s\n", toStr(path).c_str());

    return true;

}