void unescape()

in src/dxapi/native/tickdb/http/xml/xml_request.cpp [225:260]


        void unescape(string& dest, const string& src) 
        {
            dest.clear();
            dest.reserve(src.size());
            const char * r = src.c_str();
            char c;
            while ('\0' != (c = *r++)) {
                if ('&' == c) {
                    if (0 == strncmp(r, "amp;", 4)) {
                        r += 4;
                        // c == '&'
                    }
                    else if (0 == strncmp(r, "quot;", 5)) {
                        r += 5;
                        c = '\"';
                    }
                    else if (0 == strncmp(r, "apos;", 5)) {
                        r += 5;
                        c = '\'';
                    }
                    else if (0 == strncmp(r, "lt;", 3)) {
                        r += 3;
                        c = '<';
                    }
                    else if (0 == strncmp(r, "gt;", 3)) {
                        r += 3;
                        c = '>';
                    }
                    else {
                        // Do nothing
                    }
                }

                dest.push_back(c);
            }
        }