summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Goetz <Markus.Goetz@nokia.com>2009-09-03 11:48:45 (GMT)
committerMarkus Goetz <Markus.Goetz@nokia.com>2009-09-03 11:54:55 (GMT)
commitb36b2605961afef44c78c47b06feb64bedbd3563 (patch)
tree0ad2297571fc873a6288aebc3ab8504e88334aad /src
parent98aee81ccc17c0fe5d7e013fc40ca171dc2ebb43 (diff)
downloadQt-b36b2605961afef44c78c47b06feb64bedbd3563.zip
Qt-b36b2605961afef44c78c47b06feb64bedbd3563.tar.gz
Qt-b36b2605961afef44c78c47b06feb64bedbd3563.tar.bz2
QByteArray: Two new functions
We had append(str,len) before and now we also have insert(index,str,len) and prepend(str,len). Task-number: 247881 Reviewed-by: Thiago
Diffstat (limited to 'src')
-rw-r--r--src/corelib/tools/qbytearray.cpp29
-rw-r--r--src/corelib/tools/qbytearray.h2
2 files changed, 30 insertions, 1 deletions
diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp
index 611fc58..145b631 100644
--- a/src/corelib/tools/qbytearray.cpp
+++ b/src/corelib/tools/qbytearray.cpp
@@ -1467,8 +1467,19 @@ QByteArray &QByteArray::prepend(const QByteArray &ba)
QByteArray &QByteArray::prepend(const char *str)
{
+ return prepend(str, qstrlen(str));
+}
+
+/*!
+ \overload
+ \since 4.6
+
+ Prepends \a len bytes of the string \a str to this byte array.
+*/
+
+QByteArray &QByteArray::prepend(const char *str, int len)
+{
if (str) {
- int len = qstrlen(str);
if (d->ref != 1 || d->size + len > d->alloc)
realloc(qAllocMore(d->size + len, sizeof(Data)));
memmove(d->data+len, d->data, d->size);
@@ -1679,6 +1690,22 @@ QByteArray &QByteArray::insert(int i, const char *str)
/*!
\overload
+ \since 4.6
+
+ Inserts \a len bytes of the string \a str at position
+ \a i in the byte array.
+
+ If \a i is greater than size(), the array is first extended using
+ resize().
+*/
+
+QByteArray &QByteArray::insert(int i, const char *str, int len)
+{
+ return qbytearray_insert(this, i, str, len);
+}
+
+/*!
+ \overload
Inserts character \a ch at index position \a i in the byte array.
If \a i is greater than size(), the array is first extended using
diff --git a/src/corelib/tools/qbytearray.h b/src/corelib/tools/qbytearray.h
index f7e790d..34dd44f 100644
--- a/src/corelib/tools/qbytearray.h
+++ b/src/corelib/tools/qbytearray.h
@@ -224,6 +224,7 @@ public:
QByteArray &prepend(char c);
QByteArray &prepend(const char *s);
+ QByteArray &prepend(const char *s, int len);
QByteArray &prepend(const QByteArray &a);
QByteArray &append(char c);
QByteArray &append(const char *s);
@@ -231,6 +232,7 @@ public:
QByteArray &append(const QByteArray &a);
QByteArray &insert(int i, char c);
QByteArray &insert(int i, const char *s);
+ QByteArray &insert(int i, const char *s, int len);
QByteArray &insert(int i, const QByteArray &a);
QByteArray &remove(int index, int len);
QByteArray &replace(int index, int len, const char *s);