bool operator==(const DeprecatedCString &s1, const char *s2) { if (s1.size() == 0 && !s2) return true; if (s1.size() == 0 && s2) return false; return strcmp(s1, s2) == 0; }
DeprecatedCString DeprecatedCString::upper() const { DeprecatedCString tmp = *this; // copy char* str = tmp.data(); if( str ) { while( *str != 0 ) { *str = toupper(*str); str++; } } return tmp; }
// Change plain CR and plain LF to CRLF pairs. static DeprecatedCString fixLineBreaks(const DeprecatedCString &s) { // Compute the length. unsigned newLen = 0; const char *p = s.data(); while (char c = *p++) { if (c == '\r') { // Safe to look ahead because of trailing '\0'. if (*p != '\n') { // Turn CR into CRLF. newLen += 2; } } else if (c == '\n') { // Turn LF into CRLF. newLen += 2; } else { // Leave other characters alone. newLen += 1; } } if (newLen == s.length()) { return s; } // Make a copy of the string. p = s.data(); DeprecatedCString result(newLen + 1); char *q = result.data(); while (char c = *p++) { if (c == '\r') { // Safe to look ahead because of trailing '\0'. if (*p != '\n') { // Turn CR into CRLF. *q++ = '\r'; *q++ = '\n'; } } else if (c == '\n') { // Turn LF into CRLF. *q++ = '\r'; *q++ = '\n'; } else { // Leave other characters alone. *q++ = c; } } return result; }
static DeprecatedCString encodeCString(const DeprecatedCString& e) { // http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 // safe characters like NS handles them for compatibility static const char *safe = "-._*"; int elen = e.length(); DeprecatedCString encoded(( elen+e.contains( '\n' ) )*3+1); int enclen = 0; for(int pos = 0; pos < elen; pos++) { unsigned char c = e[pos]; if ( (( c >= 'A') && ( c <= 'Z')) || (( c >= 'a') && ( c <= 'z')) || (( c >= '0') && ( c <= '9')) || (strchr(safe, c)) ) encoded[enclen++] = c; else if ( c == ' ' ) encoded[enclen++] = '+'; else if ( c == '\n' || ( c == '\r' && e[pos+1] != '\n' ) ) { encoded[enclen++] = '%'; encoded[enclen++] = '0'; encoded[enclen++] = 'D'; encoded[enclen++] = '%'; encoded[enclen++] = '0'; encoded[enclen++] = 'A'; } else if ( c != '\r' ) { encoded[enclen++] = '%'; unsigned int h = c / 16; h += (h > 9) ? ('A' - 10) : '0'; encoded[enclen++] = h; unsigned int l = c % 16; l += (l > 9) ? ('A' - 10) : '0'; encoded[enclen++] = l; } } encoded[enclen++] = '\0'; encoded.truncate(enclen); return encoded; }
void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned modifierFlags) { iSeeLogA("ChromeClient::mouseDidMoveOverElement()\n"); // check if the element is a link... bool isLink = hit.isLiveLink(); if (isLink) { #if 0 KURL url = hit.absoluteLinkURL(); if (!url.isEmpty() && url != m_hoveredLinkURL) { CString titleString = hit.title().utf8(); DeprecatedCString urlString = url.prettyURL().utf8(); g_signal_emit_by_name(m_webView, "hovering-over-link", titleString.data(), urlString.data()); m_hoveredLinkURL = url; } #endif } else if (!isLink && !m_hoveredLinkURL.isEmpty()) { #if 0 g_signal_emit_by_name(m_webView, "hovering-over-link", 0, 0); m_hoveredLinkURL = KURL(); #endif } }
void FormDataList::appendString(const DeprecatedString &s) { DeprecatedCString cstr = fixLineBreaks(m_encoding.fromUnicode(s, true)); cstr.truncate(cstr.length()); m_list.append(cstr); }
// Documentation for the CF_HTML format is available at http://msdn.microsoft.com/workshop/networking/clipboard/htmlclipboard.asp DeprecatedCString markupToCF_HTML(const String& markup, const String& srcURL) { if (!markup.length()) return DeprecatedCString(); DeprecatedCString cf_html ("Version:0.9"); DeprecatedCString startHTML ("\nStartHTML:"); DeprecatedCString endHTML ("\nEndHTML:"); DeprecatedCString startFragment ("\nStartFragment:"); DeprecatedCString endFragment ("\nEndFragment:"); DeprecatedCString sourceURL ("\nSourceURL:"); bool shouldFillSourceURL = !srcURL.isEmpty() && (srcURL != "about:blank"); if (shouldFillSourceURL) sourceURL.append(srcURL.utf8().data()); DeprecatedCString startMarkup ("\n<HTML>\n<BODY>\n<!--StartFragment-->\n"); DeprecatedCString endMarkup ("\n<!--EndFragment-->\n</BODY>\n</HTML>"); // calculate offsets const unsigned UINT_MAXdigits = 10; // number of digits in UINT_MAX in base 10 unsigned startHTMLOffset = cf_html.length() + startHTML.length() + endHTML.length() + startFragment.length() + endFragment.length() + (shouldFillSourceURL ? sourceURL.length() : 0) + (4*UINT_MAXdigits); unsigned startFragmentOffset = startHTMLOffset + startMarkup.length(); CString markupUTF8 = markup.utf8(); unsigned endFragmentOffset = startFragmentOffset + markupUTF8.length(); unsigned endHTMLOffset = endFragmentOffset + endMarkup.length(); // fill in needed data startHTML.append(String::format("%010u", startHTMLOffset).deprecatedString().utf8()); endHTML.append(String::format("%010u", endHTMLOffset).deprecatedString().utf8()); startFragment.append(String::format("%010u", startFragmentOffset).deprecatedString().utf8()); endFragment.append(String::format("%010u", endFragmentOffset).deprecatedString().utf8()); startMarkup.append(markupUTF8.data()); // create full cf_html string from the fragments cf_html.append(startHTML); cf_html.append(endHTML); cf_html.append(startFragment); cf_html.append(endFragment); if (shouldFillSourceURL) cf_html.append(sourceURL); cf_html.append(startMarkup); cf_html.append(endMarkup); return cf_html; }