[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

gramps gramps at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:50:19 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 2f529616d78d6383f2f634d2a8f93d06599c7973
Author: gramps <gramps at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 12 23:36:00 2001 +0000

    More operator overloading and numerics hell (so just shoot me)
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@318 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/kwq/KWQChar.mm b/WebCore/kwq/KWQChar.mm
index e8121b1..36f4cb8 100644
--- a/WebCore/kwq/KWQChar.mm
+++ b/WebCore/kwq/KWQChar.mm
@@ -225,36 +225,96 @@ QChar QChar::mirroredChar() const
 
 // operators -------------------------------------------------------------------
 
-int operator==(QChar qc1, QChar qc2)
+bool operator==(QChar qc1, QChar qc2)
 {
     return qc1.c == qc2.c;
 }
 
-int operator==(QChar qc, char ch)
+bool operator==(QChar qc, char ch)
 {
     return qc.c == ch;
 }
 
-int operator==(char ch, QChar qc)
+bool operator==(char ch, QChar qc)
 {
     return ch == qc.c;
 }
 
-int operator!=(QChar qc1, QChar qc2)
+bool operator!=(QChar qc1, QChar qc2)
 {
     return qc1.c != qc2.c;
 }
 
-int operator!=(QChar qc, char ch)
+bool operator!=(QChar qc, char ch)
 {
     return qc.c != ch;
 }
 
-int operator!=(char ch, QChar qc)
+bool operator!=(char ch, QChar qc)
 {
     return ch != qc.c;
 }
 
+bool operator>=(QChar qc1, QChar qc2)
+{
+    return qc1.c >= qc2.c;
+}
+
+bool operator>=(QChar qc, char ch)
+{
+    return qc.c >= ch;
+}
+
+bool operator>=(char ch, QChar qc)
+{
+    return ch >= qc.c;
+}
+
+bool operator>(QChar qc1, QChar qc2)
+{
+    return qc1.c > qc2.c;
+}
+
+bool operator>(QChar qc, char ch)
+{
+    return qc.c > ch;
+}
+
+bool operator>(char ch, QChar qc)
+{
+    return ch > qc.c;
+}
+
+bool operator<=(QChar qc1, QChar qc2)
+{
+    return qc1.c <= qc2.c;
+}
+
+bool operator<=(QChar qc, char ch)
+{
+    return qc.c <= ch;
+}
+
+bool operator<=(char ch, QChar qc)
+{
+    return ch <= qc.c;
+}
+
+bool operator<(QChar qc1, QChar qc2)
+{
+    return qc1.c < qc2.c;
+}
+
+bool operator<(QChar qc, char ch)
+{
+    return qc.c < ch;
+}
+
+bool operator<(char ch, QChar qc)
+{
+    return ch < qc.c;
+}
+
 #else // USING_BORROWED_QSTRING
 // This will help to keep the linker from complaining about empty archives
 void KWQChar_Dummy() {}
diff --git a/WebCore/kwq/KWQString.h b/WebCore/kwq/KWQString.h
index 42d0a12..1470654 100644
--- a/WebCore/kwq/KWQString.h
+++ b/WebCore/kwq/KWQString.h
@@ -118,12 +118,30 @@ public:
     // operators ---------------------------------------------------------------
 
     operator char() const;
-    friend int operator==(QChar, QChar);
-    friend int operator==(QChar, char);
-    friend int operator==(char, QChar);
-    friend int operator!=(QChar, QChar);
-    friend int operator!=(QChar, char);
-    friend int operator!=(char, QChar);
+
+    friend bool operator==(QChar, QChar);
+    friend bool operator==(QChar, char);
+    friend bool operator==(char, QChar);
+
+    friend bool operator!=(QChar, QChar);
+    friend bool operator!=(QChar, char);
+    friend bool operator!=(char, QChar);
+
+    friend bool operator>(QChar, QChar);
+    friend bool operator>(QChar, char);
+    friend bool operator>(char, QChar);
+
+    friend bool operator>=(QChar, QChar);
+    friend bool operator>=(QChar, char);
+    friend bool operator>=(char, QChar);
+
+    friend bool operator<(QChar, QChar);
+    friend bool operator<(QChar, char);
+    friend bool operator<(char, QChar);
+
+    friend bool operator<=(QChar, QChar);
+    friend bool operator<=(QChar, char);
+    friend bool operator<=(char, QChar);
 
 // protected -------------------------------------------------------------------
 // private ---------------------------------------------------------------------
@@ -312,8 +330,9 @@ private:
 
     void flushCache() const;
     QCString convertToQCString(CFStringEncoding) const;
-    ulong convertToNumber(bool *ok, int base, ulong max, bool *neg) const;
+    ulong convertToNumber(bool *ok, int base, bool *neg) const;
     QString leftRight(uint width, bool left) const;
+    int compareToLatin1(const char *chs) const;
 
     // data members ------------------------------------------------------------
 
@@ -327,6 +346,26 @@ private:
     friend bool operator==(const QString &, const char *);
     friend bool operator==(const char *, const QString &);
 
+    friend bool operator!=(const QString &, const QString &);
+    friend bool operator!=(const QString &, const char *);
+    friend bool operator!=(const char *, const QString &);
+
+    friend bool operator>(const QString &, const QString &);
+    friend bool operator>(const QString &, const char *);
+    friend bool operator>(const char *, const QString &);
+
+    friend bool operator>=(const QString &, const QString &);
+    friend bool operator>=(const QString &, const char *);
+    friend bool operator>=(const char *, const QString &);
+
+    friend bool operator<=(const QString &, const QString &);
+    friend bool operator<=(const QString &, const char *);
+    friend bool operator<=(const char *, const QString &);
+
+    friend bool operator<(const QString &, const QString &);
+    friend bool operator<(const QString &, const char *);
+    friend bool operator<(const char *, const QString &);
+
     friend class QConstString;
     friend class QGDict;
 
@@ -335,14 +374,6 @@ private:
 
 // operators associated with QString ===========================================
 
-bool operator==(const QString &, const QString &);
-bool operator==(const QString &, const char *);
-bool operator==(const char *, const QString &);
-
-bool operator!=(const QString &, const QString &);
-bool operator!=(const QString &, const char *);
-bool operator!=(const char *, const QString &);
-
 QString operator+(const QString &, const QString &);
 QString operator+(const QString &, const char *);
 QString operator+(const QString &, QChar);
diff --git a/WebCore/kwq/KWQString.mm b/WebCore/kwq/KWQString.mm
index c9a7d9c..acface6 100644
--- a/WebCore/kwq/KWQString.mm
+++ b/WebCore/kwq/KWQString.mm
@@ -563,39 +563,39 @@ int QString::contains(const char *chs, bool cs) const
 short QString::toShort(bool *ok, int base) const
 {
     bool neg;
-    short n = convertToNumber(ok, base, SHRT_MAX, &neg);
+    short n = convertToNumber(ok, base, &neg);
     return neg ? -n : n;
 }
 
 //#ifdef USING_BORROWED_KURL
 ushort QString::toUShort(bool *ok, int base) const
 {
-    return convertToNumber(ok, base, USHRT_MAX, NULL);
+    return convertToNumber(ok, base, NULL);
 }
 //#endif // USING_BORROWED_KURL
 
 int QString::toInt(bool *ok, int base) const
 {
     bool neg;
-    int n = convertToNumber(ok, base, INT_MAX, &neg);
+    int n = convertToNumber(ok, base, &neg);
     return neg ? -n : n;
 }
 
 uint QString::toUInt(bool *ok, int base) const
 {
-    return convertToNumber(ok, base, UINT_MAX, NULL);
+    return convertToNumber(ok, base, NULL);
 }
 
 long QString::toLong(bool *ok, int base) const
 {
     bool neg;
-    long n = convertToNumber(ok, base, LONG_MAX, &neg);
+    long n = convertToNumber(ok, base, &neg);
     return neg ? -n : n;
 }
 
 ulong QString::toULong(bool *ok, int base) const
 {
-    return convertToNumber(ok, base, ULONG_MAX, NULL);
+    return convertToNumber(ok, base, NULL);
 }
 
 float QString::toFloat(bool *ok) const
@@ -1193,7 +1193,7 @@ QCString QString::convertToQCString(CFStringEncoding enc) const
     return QCString();
 }
 
-ulong QString::convertToNumber(bool *ok, int base, ulong max, bool *neg) const
+ulong QString::convertToNumber(bool *ok, int base, bool *neg) const
 {
     ulong n = 0;
     bool valid = FALSE;
@@ -1227,6 +1227,7 @@ ulong QString::convertToNumber(bool *ok, int base, ulong max, bool *neg) const
                     }
                 }
             }
+            ulong max = negative ? LONG_MAX : ULONG_MAX;
             // is there a number?
             while (i < len) {
                 uc = CFStringGetCharacterFromInlineBuffer(&buf, i);
@@ -1303,11 +1304,31 @@ QString QString::leftRight(uint width, bool left) const
     return qs;
 }
 
+int QString::compareToLatin1(const char *chs) const
+{
+    if (!s) {
+        return kCFCompareLessThan;
+    }
+    if (!chs) {
+        return kCFCompareGreaterThan;
+    }
+    CFStringRef tmp = CFStringCreateWithCStringNoCopy(
+            kCFAllocatorDefault, chs, kCFStringEncodingISOLatin1,
+            kCFAllocatorNull);
+    if (tmp) {
+        int result = CFStringCompare(s, tmp, 0);
+        CFRelease(tmp);
+        return result;
+    }
+    return kCFCompareGreaterThan;
+}
+
 
 // operators associated with QString ===========================================
 
 bool operator==(const QString &qs1, const QString &qs2)
 {
+#if 0
     if (qs1.s == qs2.s) {
         return TRUE;
     }
@@ -1315,10 +1336,14 @@ bool operator==(const QString &qs1, const QString &qs2)
         return CFStringCompare(qs1.s, qs2.s, 0) == kCFCompareEqualTo;
     }
     return FALSE;
+#else
+    return qs1.compare(qs2) == 0;
+#endif
 }
 
 bool operator==(const QString &qs, const char *chs)
 {
+#if 0
     bool result = FALSE;
     if (qs.s && chs) {
         CFStringRef tmp = CFStringCreateWithCStringNoCopy(
@@ -1330,26 +1355,105 @@ bool operator==(const QString &qs, const char *chs)
         }
     }
     return result;
+#else
+    return qs.compareToLatin1(chs) == 0;
+#endif
 }
 
 bool operator==(const char *chs, const QString &qs)
 {
+#if 0
     return qs == chs;
+#else
+    return qs.compareToLatin1(chs) == 0;
+#endif
 }
 
 bool operator!=(const QString &qs1, const QString &qs2)
 {
+#if 0
     return !(qs1 == qs2);
+#else
+    return qs1.compare(qs2) != 0;
+#endif
 }
 
 bool operator!=(const QString &qs, const char *chs)
 {
+#if 0
     return !(qs == chs);
+#else
+    return qs.compareToLatin1(chs) != 0;
+#endif
 }
 
 bool operator!=(const char *chs, const QString &qs)
 {
+#if 0
     return !(qs == chs);
+#else
+    return qs.compareToLatin1(chs) != 0;
+#endif
+}
+
+bool operator<(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) < 0;
+}
+
+bool operator<(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) < 0;
+}
+
+bool operator<(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) > 0;
+}
+
+bool operator<=(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) <= 0;
+}
+
+bool operator<=(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) <= 0;
+}
+
+bool operator<=(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) >= 0;
+}
+
+bool operator>(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) > 0;
+}
+
+bool operator>(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) > 0;
+}
+
+bool operator>(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) < 0;
+}
+
+bool operator>=(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) >= 0;
+}
+
+bool operator>=(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) >= 0;
+}
+
+bool operator>=(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) <= 0;
 }
 
 QString operator+(const QString &qs1, const QString &qs2)
diff --git a/WebCore/kwq/qt/qstring.h b/WebCore/kwq/qt/qstring.h
index 42d0a12..1470654 100644
--- a/WebCore/kwq/qt/qstring.h
+++ b/WebCore/kwq/qt/qstring.h
@@ -118,12 +118,30 @@ public:
     // operators ---------------------------------------------------------------
 
     operator char() const;
-    friend int operator==(QChar, QChar);
-    friend int operator==(QChar, char);
-    friend int operator==(char, QChar);
-    friend int operator!=(QChar, QChar);
-    friend int operator!=(QChar, char);
-    friend int operator!=(char, QChar);
+
+    friend bool operator==(QChar, QChar);
+    friend bool operator==(QChar, char);
+    friend bool operator==(char, QChar);
+
+    friend bool operator!=(QChar, QChar);
+    friend bool operator!=(QChar, char);
+    friend bool operator!=(char, QChar);
+
+    friend bool operator>(QChar, QChar);
+    friend bool operator>(QChar, char);
+    friend bool operator>(char, QChar);
+
+    friend bool operator>=(QChar, QChar);
+    friend bool operator>=(QChar, char);
+    friend bool operator>=(char, QChar);
+
+    friend bool operator<(QChar, QChar);
+    friend bool operator<(QChar, char);
+    friend bool operator<(char, QChar);
+
+    friend bool operator<=(QChar, QChar);
+    friend bool operator<=(QChar, char);
+    friend bool operator<=(char, QChar);
 
 // protected -------------------------------------------------------------------
 // private ---------------------------------------------------------------------
@@ -312,8 +330,9 @@ private:
 
     void flushCache() const;
     QCString convertToQCString(CFStringEncoding) const;
-    ulong convertToNumber(bool *ok, int base, ulong max, bool *neg) const;
+    ulong convertToNumber(bool *ok, int base, bool *neg) const;
     QString leftRight(uint width, bool left) const;
+    int compareToLatin1(const char *chs) const;
 
     // data members ------------------------------------------------------------
 
@@ -327,6 +346,26 @@ private:
     friend bool operator==(const QString &, const char *);
     friend bool operator==(const char *, const QString &);
 
+    friend bool operator!=(const QString &, const QString &);
+    friend bool operator!=(const QString &, const char *);
+    friend bool operator!=(const char *, const QString &);
+
+    friend bool operator>(const QString &, const QString &);
+    friend bool operator>(const QString &, const char *);
+    friend bool operator>(const char *, const QString &);
+
+    friend bool operator>=(const QString &, const QString &);
+    friend bool operator>=(const QString &, const char *);
+    friend bool operator>=(const char *, const QString &);
+
+    friend bool operator<=(const QString &, const QString &);
+    friend bool operator<=(const QString &, const char *);
+    friend bool operator<=(const char *, const QString &);
+
+    friend bool operator<(const QString &, const QString &);
+    friend bool operator<(const QString &, const char *);
+    friend bool operator<(const char *, const QString &);
+
     friend class QConstString;
     friend class QGDict;
 
@@ -335,14 +374,6 @@ private:
 
 // operators associated with QString ===========================================
 
-bool operator==(const QString &, const QString &);
-bool operator==(const QString &, const char *);
-bool operator==(const char *, const QString &);
-
-bool operator!=(const QString &, const QString &);
-bool operator!=(const QString &, const char *);
-bool operator!=(const char *, const QString &);
-
 QString operator+(const QString &, const QString &);
 QString operator+(const QString &, const char *);
 QString operator+(const QString &, QChar);
diff --git a/WebCore/src/kwq/KWQChar.mm b/WebCore/src/kwq/KWQChar.mm
index e8121b1..36f4cb8 100644
--- a/WebCore/src/kwq/KWQChar.mm
+++ b/WebCore/src/kwq/KWQChar.mm
@@ -225,36 +225,96 @@ QChar QChar::mirroredChar() const
 
 // operators -------------------------------------------------------------------
 
-int operator==(QChar qc1, QChar qc2)
+bool operator==(QChar qc1, QChar qc2)
 {
     return qc1.c == qc2.c;
 }
 
-int operator==(QChar qc, char ch)
+bool operator==(QChar qc, char ch)
 {
     return qc.c == ch;
 }
 
-int operator==(char ch, QChar qc)
+bool operator==(char ch, QChar qc)
 {
     return ch == qc.c;
 }
 
-int operator!=(QChar qc1, QChar qc2)
+bool operator!=(QChar qc1, QChar qc2)
 {
     return qc1.c != qc2.c;
 }
 
-int operator!=(QChar qc, char ch)
+bool operator!=(QChar qc, char ch)
 {
     return qc.c != ch;
 }
 
-int operator!=(char ch, QChar qc)
+bool operator!=(char ch, QChar qc)
 {
     return ch != qc.c;
 }
 
+bool operator>=(QChar qc1, QChar qc2)
+{
+    return qc1.c >= qc2.c;
+}
+
+bool operator>=(QChar qc, char ch)
+{
+    return qc.c >= ch;
+}
+
+bool operator>=(char ch, QChar qc)
+{
+    return ch >= qc.c;
+}
+
+bool operator>(QChar qc1, QChar qc2)
+{
+    return qc1.c > qc2.c;
+}
+
+bool operator>(QChar qc, char ch)
+{
+    return qc.c > ch;
+}
+
+bool operator>(char ch, QChar qc)
+{
+    return ch > qc.c;
+}
+
+bool operator<=(QChar qc1, QChar qc2)
+{
+    return qc1.c <= qc2.c;
+}
+
+bool operator<=(QChar qc, char ch)
+{
+    return qc.c <= ch;
+}
+
+bool operator<=(char ch, QChar qc)
+{
+    return ch <= qc.c;
+}
+
+bool operator<(QChar qc1, QChar qc2)
+{
+    return qc1.c < qc2.c;
+}
+
+bool operator<(QChar qc, char ch)
+{
+    return qc.c < ch;
+}
+
+bool operator<(char ch, QChar qc)
+{
+    return ch < qc.c;
+}
+
 #else // USING_BORROWED_QSTRING
 // This will help to keep the linker from complaining about empty archives
 void KWQChar_Dummy() {}
diff --git a/WebCore/src/kwq/KWQString.mm b/WebCore/src/kwq/KWQString.mm
index c9a7d9c..acface6 100644
--- a/WebCore/src/kwq/KWQString.mm
+++ b/WebCore/src/kwq/KWQString.mm
@@ -563,39 +563,39 @@ int QString::contains(const char *chs, bool cs) const
 short QString::toShort(bool *ok, int base) const
 {
     bool neg;
-    short n = convertToNumber(ok, base, SHRT_MAX, &neg);
+    short n = convertToNumber(ok, base, &neg);
     return neg ? -n : n;
 }
 
 //#ifdef USING_BORROWED_KURL
 ushort QString::toUShort(bool *ok, int base) const
 {
-    return convertToNumber(ok, base, USHRT_MAX, NULL);
+    return convertToNumber(ok, base, NULL);
 }
 //#endif // USING_BORROWED_KURL
 
 int QString::toInt(bool *ok, int base) const
 {
     bool neg;
-    int n = convertToNumber(ok, base, INT_MAX, &neg);
+    int n = convertToNumber(ok, base, &neg);
     return neg ? -n : n;
 }
 
 uint QString::toUInt(bool *ok, int base) const
 {
-    return convertToNumber(ok, base, UINT_MAX, NULL);
+    return convertToNumber(ok, base, NULL);
 }
 
 long QString::toLong(bool *ok, int base) const
 {
     bool neg;
-    long n = convertToNumber(ok, base, LONG_MAX, &neg);
+    long n = convertToNumber(ok, base, &neg);
     return neg ? -n : n;
 }
 
 ulong QString::toULong(bool *ok, int base) const
 {
-    return convertToNumber(ok, base, ULONG_MAX, NULL);
+    return convertToNumber(ok, base, NULL);
 }
 
 float QString::toFloat(bool *ok) const
@@ -1193,7 +1193,7 @@ QCString QString::convertToQCString(CFStringEncoding enc) const
     return QCString();
 }
 
-ulong QString::convertToNumber(bool *ok, int base, ulong max, bool *neg) const
+ulong QString::convertToNumber(bool *ok, int base, bool *neg) const
 {
     ulong n = 0;
     bool valid = FALSE;
@@ -1227,6 +1227,7 @@ ulong QString::convertToNumber(bool *ok, int base, ulong max, bool *neg) const
                     }
                 }
             }
+            ulong max = negative ? LONG_MAX : ULONG_MAX;
             // is there a number?
             while (i < len) {
                 uc = CFStringGetCharacterFromInlineBuffer(&buf, i);
@@ -1303,11 +1304,31 @@ QString QString::leftRight(uint width, bool left) const
     return qs;
 }
 
+int QString::compareToLatin1(const char *chs) const
+{
+    if (!s) {
+        return kCFCompareLessThan;
+    }
+    if (!chs) {
+        return kCFCompareGreaterThan;
+    }
+    CFStringRef tmp = CFStringCreateWithCStringNoCopy(
+            kCFAllocatorDefault, chs, kCFStringEncodingISOLatin1,
+            kCFAllocatorNull);
+    if (tmp) {
+        int result = CFStringCompare(s, tmp, 0);
+        CFRelease(tmp);
+        return result;
+    }
+    return kCFCompareGreaterThan;
+}
+
 
 // operators associated with QString ===========================================
 
 bool operator==(const QString &qs1, const QString &qs2)
 {
+#if 0
     if (qs1.s == qs2.s) {
         return TRUE;
     }
@@ -1315,10 +1336,14 @@ bool operator==(const QString &qs1, const QString &qs2)
         return CFStringCompare(qs1.s, qs2.s, 0) == kCFCompareEqualTo;
     }
     return FALSE;
+#else
+    return qs1.compare(qs2) == 0;
+#endif
 }
 
 bool operator==(const QString &qs, const char *chs)
 {
+#if 0
     bool result = FALSE;
     if (qs.s && chs) {
         CFStringRef tmp = CFStringCreateWithCStringNoCopy(
@@ -1330,26 +1355,105 @@ bool operator==(const QString &qs, const char *chs)
         }
     }
     return result;
+#else
+    return qs.compareToLatin1(chs) == 0;
+#endif
 }
 
 bool operator==(const char *chs, const QString &qs)
 {
+#if 0
     return qs == chs;
+#else
+    return qs.compareToLatin1(chs) == 0;
+#endif
 }
 
 bool operator!=(const QString &qs1, const QString &qs2)
 {
+#if 0
     return !(qs1 == qs2);
+#else
+    return qs1.compare(qs2) != 0;
+#endif
 }
 
 bool operator!=(const QString &qs, const char *chs)
 {
+#if 0
     return !(qs == chs);
+#else
+    return qs.compareToLatin1(chs) != 0;
+#endif
 }
 
 bool operator!=(const char *chs, const QString &qs)
 {
+#if 0
     return !(qs == chs);
+#else
+    return qs.compareToLatin1(chs) != 0;
+#endif
+}
+
+bool operator<(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) < 0;
+}
+
+bool operator<(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) < 0;
+}
+
+bool operator<(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) > 0;
+}
+
+bool operator<=(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) <= 0;
+}
+
+bool operator<=(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) <= 0;
+}
+
+bool operator<=(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) >= 0;
+}
+
+bool operator>(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) > 0;
+}
+
+bool operator>(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) > 0;
+}
+
+bool operator>(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) < 0;
+}
+
+bool operator>=(const QString &qs1, const QString &qs2)
+{
+    return qs1.compare(qs2) >= 0;
+}
+
+bool operator>=(const QString &qs, const char *chs)
+{
+    return qs.compareToLatin1(chs) >= 0;
+}
+
+bool operator>=(const char *chs, const QString &qs)
+{
+    return qs.compareToLatin1(chs) <= 0;
 }
 
 QString operator+(const QString &qs1, const QString &qs2)
diff --git a/WebCore/src/kwq/qt/qstring.h b/WebCore/src/kwq/qt/qstring.h
index 42d0a12..1470654 100644
--- a/WebCore/src/kwq/qt/qstring.h
+++ b/WebCore/src/kwq/qt/qstring.h
@@ -118,12 +118,30 @@ public:
     // operators ---------------------------------------------------------------
 
     operator char() const;
-    friend int operator==(QChar, QChar);
-    friend int operator==(QChar, char);
-    friend int operator==(char, QChar);
-    friend int operator!=(QChar, QChar);
-    friend int operator!=(QChar, char);
-    friend int operator!=(char, QChar);
+
+    friend bool operator==(QChar, QChar);
+    friend bool operator==(QChar, char);
+    friend bool operator==(char, QChar);
+
+    friend bool operator!=(QChar, QChar);
+    friend bool operator!=(QChar, char);
+    friend bool operator!=(char, QChar);
+
+    friend bool operator>(QChar, QChar);
+    friend bool operator>(QChar, char);
+    friend bool operator>(char, QChar);
+
+    friend bool operator>=(QChar, QChar);
+    friend bool operator>=(QChar, char);
+    friend bool operator>=(char, QChar);
+
+    friend bool operator<(QChar, QChar);
+    friend bool operator<(QChar, char);
+    friend bool operator<(char, QChar);
+
+    friend bool operator<=(QChar, QChar);
+    friend bool operator<=(QChar, char);
+    friend bool operator<=(char, QChar);
 
 // protected -------------------------------------------------------------------
 // private ---------------------------------------------------------------------
@@ -312,8 +330,9 @@ private:
 
     void flushCache() const;
     QCString convertToQCString(CFStringEncoding) const;
-    ulong convertToNumber(bool *ok, int base, ulong max, bool *neg) const;
+    ulong convertToNumber(bool *ok, int base, bool *neg) const;
     QString leftRight(uint width, bool left) const;
+    int compareToLatin1(const char *chs) const;
 
     // data members ------------------------------------------------------------
 
@@ -327,6 +346,26 @@ private:
     friend bool operator==(const QString &, const char *);
     friend bool operator==(const char *, const QString &);
 
+    friend bool operator!=(const QString &, const QString &);
+    friend bool operator!=(const QString &, const char *);
+    friend bool operator!=(const char *, const QString &);
+
+    friend bool operator>(const QString &, const QString &);
+    friend bool operator>(const QString &, const char *);
+    friend bool operator>(const char *, const QString &);
+
+    friend bool operator>=(const QString &, const QString &);
+    friend bool operator>=(const QString &, const char *);
+    friend bool operator>=(const char *, const QString &);
+
+    friend bool operator<=(const QString &, const QString &);
+    friend bool operator<=(const QString &, const char *);
+    friend bool operator<=(const char *, const QString &);
+
+    friend bool operator<(const QString &, const QString &);
+    friend bool operator<(const QString &, const char *);
+    friend bool operator<(const char *, const QString &);
+
     friend class QConstString;
     friend class QGDict;
 
@@ -335,14 +374,6 @@ private:
 
 // operators associated with QString ===========================================
 
-bool operator==(const QString &, const QString &);
-bool operator==(const QString &, const char *);
-bool operator==(const char *, const QString &);
-
-bool operator!=(const QString &, const QString &);
-bool operator!=(const QString &, const char *);
-bool operator!=(const char *, const QString &);
-
 QString operator+(const QString &, const QString &);
 QString operator+(const QString &, const char *);
 QString operator+(const QString &, QChar);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list