Reviewed by Maciej.
authorandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Nov 2006 23:27:46 +0000 (23:27 +0000)
committerandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Nov 2006 23:27:46 +0000 (23:27 +0000)
        * loader/TextResourceDecoder.cpp:
        (WebCore::findXMLEncoding):
        Use CString instead of DeprecatedCString.

        * platform/CString.cpp:
        (WebCore::CString::find):
        * platform/CString.h:
        (WebCore::CString::data):
        Add find method, make data method inline.

        * platform/TextStream.cpp:
        * platform/TextStream.h:
        Remove DeprecatedCString functions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17865 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/loader/TextResourceDecoder.cpp
WebCore/platform/CString.cpp
WebCore/platform/CString.h
WebCore/platform/TextStream.cpp
WebCore/platform/TextStream.h

index 25c5b23bc42182ed256dd5e7bb62546d97372e1c..a20c3fc945b8d59c766730b5abaccb8a77f55e11 100644 (file)
@@ -1,3 +1,21 @@
+2006-11-20  Anders Carlsson  <acarlsson@apple.com>
+
+        Reviewed by Maciej.
+
+        * loader/TextResourceDecoder.cpp:
+        (WebCore::findXMLEncoding):
+        Use CString instead of DeprecatedCString.
+        
+        * platform/CString.cpp:
+        (WebCore::CString::find):
+        * platform/CString.h:
+        (WebCore::CString::data):
+        Add find method, make data method inline.
+        
+        * platform/TextStream.cpp:
+        * platform/TextStream.h:
+        Remove DeprecatedCString functions.
+
 2006-11-20  Anders Carlsson  <acarlsson@apple.com>
 
         Reviewed by Maciej.
index 43f5bed532b029f32aa4f347dbdb2c5598bbbdf4..d99dd28f5625b008cb5ad996ef7d56534ea9ad06 100644 (file)
@@ -296,7 +296,7 @@ void TextResourceDecoder::setEncoding(const TextEncoding& encoding, EncodingSour
 }
 
 // Returns the position of the encoding string.
-static int findXMLEncoding(const DeprecatedCString &str, int &encodingLength)
+static int findXMLEncoding(const CString& str, int &encodingLength)
 {
     int len = str.length();
 
index 7c33adb816b1321a4787fbaa703d0cc36a4f30ce..6e0285ee067883c8f76766759f9b7b57e7a19d2c 100644 (file)
@@ -55,11 +55,6 @@ void CString::init(const char* str, unsigned length)
     m_buffer->data()[length] = '\0';
 }
 
-const char* CString::data() const
-{
-    return m_buffer ? m_buffer->data() : 0;
-}
-
 char* CString::mutableData()
 {
     copyBufferIfNeeded();
@@ -99,4 +94,36 @@ void CString::copyBufferIfNeeded()
     memcpy(m_buffer->data(), m_temp->data(), len);
 }
 
+int CString::find(const char* substring, int index) const
+{
+    const char* str = data();
+    if(str && str[0] && substring && index >=0) { // don't search empty strings
+        // advance until we get to index
+        int pos = 0;
+        while(pos < index)
+            if(str[pos++] == 0)
+                return -1;                  // index is beyond end of str
+        
+        // now search from index onward
+        while(str[index] != 0) {
+            char a, b;
+            
+            // compare until we reach the end or a mismatch
+            pos = 0;
+
+            while((a = substring[pos]) && (b = str[index]) && a == b)
+                pos++, index++;
+            
+            // reached the end of our compare string without a mismatch?
+            if(substring[pos] == 0)
+                return index - pos;
+            
+            index ++;
+        }
+    }
+    
+    return -1;
+}
+
 }
index ac32caa37476c0b0b6907fd7cf9ef5b047a5e2d7..232aabba929dcc84f1267c3f6771bdb927a94f0d 100644 (file)
@@ -51,17 +51,19 @@ namespace WebCore {
         CString(const char*, unsigned length);
         static CString newUninitialized(size_t length, char*& characterBuffer);
 
-        const char* data() const;
+        const char* data() const { return m_buffer ? m_buffer->data() : 0; }
         char* mutableData();
         unsigned length() const;
 
         operator const char*() const { return data(); }        
-
+        
         bool isNull() const { return !m_buffer; }
 
         CString(const DeprecatedCString&);
         DeprecatedCString deprecatedCString() const;
 
+        int find(const char*, int index=0) const;
+
     private:
         void copyBufferIfNeeded();
         void init(const char*, unsigned length);
index 86459693a077260585a4c93969de79c2064d3853..24c9c02980c2b3eb50362bdd6b5d329ec17489d6 100644 (file)
@@ -122,12 +122,6 @@ TextStream& TextStream::operator<<(const char* s)
     return *this;
 }
 
-TextStream& TextStream::operator<<(const DeprecatedCString& qcs)
-{
-    const char *s = qcs;
-    return *this << s;
-}
-
 TextStream& TextStream::operator<<(const DeprecatedString& s)
 {
     if (m_hasByteArray) {
index 407229a77c13b0c79ddd83aba7ba1dd5e1515144..897c26718c273dfb5ef61c5483b590f2774d5805 100644 (file)
@@ -31,7 +31,6 @@
 namespace WebCore {
 
 class DeprecatedChar;
-class DeprecatedCString;
 class DeprecatedString;
 class String;
 class TextStream;
@@ -57,7 +56,6 @@ public:
     TextStream& operator<<(const char*);
     TextStream& operator<<(const String&);
     TextStream& operator<<(const DeprecatedString&);
-    TextStream& operator<<(const DeprecatedCString&);
     TextStream& operator<<(void*);
 
     TextStream& operator<<(const TextStreamManipulator&);