[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:49:51 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 1f9509102d7d9b38a640bdbd9338137873ec397f
Author: gramps <gramps at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Oct 6 01:11:55 2001 +0000
Fun with numerics
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/kwq/KWQString.h b/WebCore/kwq/KWQString.h
index e159b14..527190c 100644
--- a/WebCore/kwq/KWQString.h
+++ b/WebCore/kwq/KWQString.h
@@ -156,6 +156,11 @@ public:
// static member functions -------------------------------------------------
static QString number(int /* NOTE: base NOT used */ );
+ static QString number(uint /* NOTE: base NOT used */ );
+ static QString number(long /* NOTE: base NOT used */ );
+ static QString number(ulong /* NOTE: base NOT used */ );
+ static QString number(double);
+
static QString fromLatin1(const char * /* NOTE: len NOT used */ );
#ifdef USING_BORROWED_KURL
static QString fromLocal8Bit(const char *, int len=-1);
@@ -223,7 +228,13 @@ public:
float toFloat(bool *ok=NULL) const;
QString arg(const QString &, int width=0) const;
+ QString arg(short, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(ushort, int width=0 /* NOTE: base NOT used */ ) const;
QString arg(int, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(uint, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(long, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(ulong, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(double, int width=0) const;
QString left(uint) const;
QString right(uint) const;
@@ -238,7 +249,16 @@ public:
QString simplifyWhiteSpace() const;
QString &setUnicode(const QChar *, uint);
+ QString &setLatin1(const char *);
+
+ QString &setNum(short /* NOTE: base NOT used */ );
+ QString &setNum(ushort /* NOTE: base NOT used */ );
QString &setNum(int /* NOTE: base NOT used */ );
+ QString &setNum(uint /* NOTE: base NOT used */ );
+ QString &setNum(long /* NOTE: base NOT used */ );
+ QString &setNum(ulong /* NOTE: base NOT used */ );
+ QString &setNum(double);
+
QString &sprintf(const char *, ...);
QString &prepend(const QString &);
diff --git a/WebCore/kwq/KWQString.mm b/WebCore/kwq/KWQString.mm
index a7f2123..3a86ea5 100644
--- a/WebCore/kwq/KWQString.mm
+++ b/WebCore/kwq/KWQString.mm
@@ -47,6 +47,34 @@ QString QString::number(int n)
return qs;
}
+QString QString::number(uint n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
+QString QString::number(long n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
+QString QString::number(ulong n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
+QString QString::number(double n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
QString QString::fromLatin1(const char *chs)
{
return QString(chs);
@@ -571,7 +599,11 @@ uint QString::toUInt(bool *ok) const
while (i < len) {
uc = CFStringGetCharacterFromInlineBuffer(&buf, i);
if ((uc >= '0') && (uc <= '9')) {
- n += uc - '0';
+ if (n > (UINT_MAX / 10)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 10) + (uc - '0');
} else {
break;
}
@@ -634,12 +666,24 @@ long QString::toLong(bool *ok, int base) const
uc = CFStringGetCharacterFromInlineBuffer(&buf, i);
// NOTE: ignore anything other than base 10 and base 16
if ((uc >= '0') && (uc <= '9')) {
- n += uc - '0';
+ if (n > (INT_MAX / 10)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 10) + (uc - '0');
} else if (base == 16) {
if ((uc >= 'A') && (uc <= 'F')) {
- n += 10 + (uc - 'A');
+ if (n > (INT_MAX / 16)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 16) + (10 + (uc - 'A'));
} else if ((uc >= 'a') && (uc <= 'f')) {
- n += 10 + (uc - 'a');
+ if (n > (INT_MAX / 16)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 16) + (10 + (uc - 'a'));
} else {
break;
}
@@ -753,11 +797,41 @@ QString QString::arg(const QString &replacement, int width) const
return qs;
}
+QString QString::arg(short replacement, int width) const
+{
+ return arg(number((int)replacement), width);
+}
+
+QString QString::arg(ushort replacement, int width) const
+{
+ return arg(number((uint)replacement), width);
+}
+
QString QString::arg(int replacement, int width) const
{
return arg(number(replacement), width);
}
+QString QString::arg(uint replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
+QString QString::arg(long replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
+QString QString::arg(ulong replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
+QString QString::arg(double replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
QString QString::left(uint width) const
{
return leftRight(width, TRUE);
@@ -901,49 +975,102 @@ QString QString::simplifyWhiteSpace() const
QString &QString::setUnicode(const QChar *qcs, uint len)
{
flushCache();
- if (!s && len) {
- s = CFStringCreateMutable(kCFAllocatorDefault, 0);
- }
- if (s) {
- if (len) {
- if (qcs) {
- CFStringRef tmp = CFStringCreateWithCharactersNoCopy(
- kCFAllocatorDefault, &qcs->c, len, kCFAllocatorNull);
- if (tmp) {
- CFStringReplaceAll(s, tmp);
- CFRelease(tmp);
- }
+ if (qcs && len) {
+ if (s) {
+ CFStringRef tmp = CFStringCreateWithCharactersNoCopy(
+ kCFAllocatorDefault, &qcs->c, len, kCFAllocatorNull);
+ if (tmp) {
+ CFStringReplaceAll(s, tmp);
+ CFRelease(tmp);
}
} else {
- CFRelease(s);
- s = NULL;
+ s = CFStringCreateMutable(kCFAllocatorDefault, 0);
+ if (s) {
+ CFStringAppendCharacters(s, &qcs->c, len);
+ }
}
+ } else if (s) {
+ CFRelease(s);
+ s = NULL;
}
return *this;
}
-QString &QString::setNum(int n)
+QString &QString::setLatin1(const char *chs)
{
flushCache();
- if (!s) {
- s = CFStringCreateMutable(kCFAllocatorDefault, 0);
- }
- if (s) {
- const int capacity = 64;
- char buf[capacity];
- buf[snprintf(buf, capacity - 1, "%d", n)] = '\0';
- // FIXME: is ISO Latin-1 the correct encoding?
- CFStringRef tmp = CFStringCreateWithCStringNoCopy(
- kCFAllocatorDefault, buf, kCFStringEncodingISOLatin1,
- kCFAllocatorNull);
- if (tmp) {
- CFStringReplaceAll(s, tmp);
- CFRelease(tmp);
+ if (chs && *chs) {
+ if (s) {
+ CFStringRef tmp = CFStringCreateWithCStringNoCopy(
+ kCFAllocatorDefault, chs, kCFStringEncodingISOLatin1,
+ kCFAllocatorNull);
+ if (tmp) {
+ CFStringReplaceAll(s, tmp);
+ CFRelease(tmp);
+ }
+ } else {
+ s = CFStringCreateMutable(kCFAllocatorDefault, 0);
+ if (s) {
+ CFStringAppendCString(s, chs, kCFStringEncodingISOLatin1);
+ }
}
+ } else if (s) {
+ CFRelease(s);
+ s = NULL;
}
return *this;
}
+QString &QString::setNum(short n)
+{
+ return setNum((long)n);
+}
+
+QString &QString::setNum(ushort n)
+{
+ return setNum((ulong)n);
+}
+
+QString &QString::setNum(int n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%d", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(uint n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%u", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(long n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%D", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(ulong n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%U", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(double n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%.6lg", n)] = '\0';
+ return setLatin1(buf);
+}
+
QString &QString::sprintf(const char *format, ...)
{
va_list args;
diff --git a/WebCore/kwq/qt/qstring.h b/WebCore/kwq/qt/qstring.h
index e159b14..527190c 100644
--- a/WebCore/kwq/qt/qstring.h
+++ b/WebCore/kwq/qt/qstring.h
@@ -156,6 +156,11 @@ public:
// static member functions -------------------------------------------------
static QString number(int /* NOTE: base NOT used */ );
+ static QString number(uint /* NOTE: base NOT used */ );
+ static QString number(long /* NOTE: base NOT used */ );
+ static QString number(ulong /* NOTE: base NOT used */ );
+ static QString number(double);
+
static QString fromLatin1(const char * /* NOTE: len NOT used */ );
#ifdef USING_BORROWED_KURL
static QString fromLocal8Bit(const char *, int len=-1);
@@ -223,7 +228,13 @@ public:
float toFloat(bool *ok=NULL) const;
QString arg(const QString &, int width=0) const;
+ QString arg(short, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(ushort, int width=0 /* NOTE: base NOT used */ ) const;
QString arg(int, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(uint, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(long, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(ulong, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(double, int width=0) const;
QString left(uint) const;
QString right(uint) const;
@@ -238,7 +249,16 @@ public:
QString simplifyWhiteSpace() const;
QString &setUnicode(const QChar *, uint);
+ QString &setLatin1(const char *);
+
+ QString &setNum(short /* NOTE: base NOT used */ );
+ QString &setNum(ushort /* NOTE: base NOT used */ );
QString &setNum(int /* NOTE: base NOT used */ );
+ QString &setNum(uint /* NOTE: base NOT used */ );
+ QString &setNum(long /* NOTE: base NOT used */ );
+ QString &setNum(ulong /* NOTE: base NOT used */ );
+ QString &setNum(double);
+
QString &sprintf(const char *, ...);
QString &prepend(const QString &);
diff --git a/WebCore/src/kwq/KWQString.mm b/WebCore/src/kwq/KWQString.mm
index a7f2123..3a86ea5 100644
--- a/WebCore/src/kwq/KWQString.mm
+++ b/WebCore/src/kwq/KWQString.mm
@@ -47,6 +47,34 @@ QString QString::number(int n)
return qs;
}
+QString QString::number(uint n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
+QString QString::number(long n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
+QString QString::number(ulong n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
+QString QString::number(double n)
+{
+ QString qs;
+ qs.setNum(n);
+ return qs;
+}
+
QString QString::fromLatin1(const char *chs)
{
return QString(chs);
@@ -571,7 +599,11 @@ uint QString::toUInt(bool *ok) const
while (i < len) {
uc = CFStringGetCharacterFromInlineBuffer(&buf, i);
if ((uc >= '0') && (uc <= '9')) {
- n += uc - '0';
+ if (n > (UINT_MAX / 10)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 10) + (uc - '0');
} else {
break;
}
@@ -634,12 +666,24 @@ long QString::toLong(bool *ok, int base) const
uc = CFStringGetCharacterFromInlineBuffer(&buf, i);
// NOTE: ignore anything other than base 10 and base 16
if ((uc >= '0') && (uc <= '9')) {
- n += uc - '0';
+ if (n > (INT_MAX / 10)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 10) + (uc - '0');
} else if (base == 16) {
if ((uc >= 'A') && (uc <= 'F')) {
- n += 10 + (uc - 'A');
+ if (n > (INT_MAX / 16)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 16) + (10 + (uc - 'A'));
} else if ((uc >= 'a') && (uc <= 'f')) {
- n += 10 + (uc - 'a');
+ if (n > (INT_MAX / 16)) {
+ valid = FALSE;
+ break;
+ }
+ n = (n * 16) + (10 + (uc - 'a'));
} else {
break;
}
@@ -753,11 +797,41 @@ QString QString::arg(const QString &replacement, int width) const
return qs;
}
+QString QString::arg(short replacement, int width) const
+{
+ return arg(number((int)replacement), width);
+}
+
+QString QString::arg(ushort replacement, int width) const
+{
+ return arg(number((uint)replacement), width);
+}
+
QString QString::arg(int replacement, int width) const
{
return arg(number(replacement), width);
}
+QString QString::arg(uint replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
+QString QString::arg(long replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
+QString QString::arg(ulong replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
+QString QString::arg(double replacement, int width) const
+{
+ return arg(number(replacement), width);
+}
+
QString QString::left(uint width) const
{
return leftRight(width, TRUE);
@@ -901,49 +975,102 @@ QString QString::simplifyWhiteSpace() const
QString &QString::setUnicode(const QChar *qcs, uint len)
{
flushCache();
- if (!s && len) {
- s = CFStringCreateMutable(kCFAllocatorDefault, 0);
- }
- if (s) {
- if (len) {
- if (qcs) {
- CFStringRef tmp = CFStringCreateWithCharactersNoCopy(
- kCFAllocatorDefault, &qcs->c, len, kCFAllocatorNull);
- if (tmp) {
- CFStringReplaceAll(s, tmp);
- CFRelease(tmp);
- }
+ if (qcs && len) {
+ if (s) {
+ CFStringRef tmp = CFStringCreateWithCharactersNoCopy(
+ kCFAllocatorDefault, &qcs->c, len, kCFAllocatorNull);
+ if (tmp) {
+ CFStringReplaceAll(s, tmp);
+ CFRelease(tmp);
}
} else {
- CFRelease(s);
- s = NULL;
+ s = CFStringCreateMutable(kCFAllocatorDefault, 0);
+ if (s) {
+ CFStringAppendCharacters(s, &qcs->c, len);
+ }
}
+ } else if (s) {
+ CFRelease(s);
+ s = NULL;
}
return *this;
}
-QString &QString::setNum(int n)
+QString &QString::setLatin1(const char *chs)
{
flushCache();
- if (!s) {
- s = CFStringCreateMutable(kCFAllocatorDefault, 0);
- }
- if (s) {
- const int capacity = 64;
- char buf[capacity];
- buf[snprintf(buf, capacity - 1, "%d", n)] = '\0';
- // FIXME: is ISO Latin-1 the correct encoding?
- CFStringRef tmp = CFStringCreateWithCStringNoCopy(
- kCFAllocatorDefault, buf, kCFStringEncodingISOLatin1,
- kCFAllocatorNull);
- if (tmp) {
- CFStringReplaceAll(s, tmp);
- CFRelease(tmp);
+ if (chs && *chs) {
+ if (s) {
+ CFStringRef tmp = CFStringCreateWithCStringNoCopy(
+ kCFAllocatorDefault, chs, kCFStringEncodingISOLatin1,
+ kCFAllocatorNull);
+ if (tmp) {
+ CFStringReplaceAll(s, tmp);
+ CFRelease(tmp);
+ }
+ } else {
+ s = CFStringCreateMutable(kCFAllocatorDefault, 0);
+ if (s) {
+ CFStringAppendCString(s, chs, kCFStringEncodingISOLatin1);
+ }
}
+ } else if (s) {
+ CFRelease(s);
+ s = NULL;
}
return *this;
}
+QString &QString::setNum(short n)
+{
+ return setNum((long)n);
+}
+
+QString &QString::setNum(ushort n)
+{
+ return setNum((ulong)n);
+}
+
+QString &QString::setNum(int n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%d", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(uint n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%u", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(long n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%D", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(ulong n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%U", n)] = '\0';
+ return setLatin1(buf);
+}
+
+QString &QString::setNum(double n)
+{
+ const int capacity = 64;
+ char buf[capacity];
+ buf[snprintf(buf, capacity - 1, "%.6lg", n)] = '\0';
+ return setLatin1(buf);
+}
+
QString &QString::sprintf(const char *format, ...)
{
va_list args;
diff --git a/WebCore/src/kwq/qt/qstring.h b/WebCore/src/kwq/qt/qstring.h
index e159b14..527190c 100644
--- a/WebCore/src/kwq/qt/qstring.h
+++ b/WebCore/src/kwq/qt/qstring.h
@@ -156,6 +156,11 @@ public:
// static member functions -------------------------------------------------
static QString number(int /* NOTE: base NOT used */ );
+ static QString number(uint /* NOTE: base NOT used */ );
+ static QString number(long /* NOTE: base NOT used */ );
+ static QString number(ulong /* NOTE: base NOT used */ );
+ static QString number(double);
+
static QString fromLatin1(const char * /* NOTE: len NOT used */ );
#ifdef USING_BORROWED_KURL
static QString fromLocal8Bit(const char *, int len=-1);
@@ -223,7 +228,13 @@ public:
float toFloat(bool *ok=NULL) const;
QString arg(const QString &, int width=0) const;
+ QString arg(short, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(ushort, int width=0 /* NOTE: base NOT used */ ) const;
QString arg(int, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(uint, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(long, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(ulong, int width=0 /* NOTE: base NOT used */ ) const;
+ QString arg(double, int width=0) const;
QString left(uint) const;
QString right(uint) const;
@@ -238,7 +249,16 @@ public:
QString simplifyWhiteSpace() const;
QString &setUnicode(const QChar *, uint);
+ QString &setLatin1(const char *);
+
+ QString &setNum(short /* NOTE: base NOT used */ );
+ QString &setNum(ushort /* NOTE: base NOT used */ );
QString &setNum(int /* NOTE: base NOT used */ );
+ QString &setNum(uint /* NOTE: base NOT used */ );
+ QString &setNum(long /* NOTE: base NOT used */ );
+ QString &setNum(ulong /* NOTE: base NOT used */ );
+ QString &setNum(double);
+
QString &sprintf(const char *, ...);
QString &prepend(const QString &);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list