summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorFrancois Andriot <albator78@libertysurf.fr>2014-09-12 12:57:56 -0500
committerSlávek Banko <slavek.banko@axis.cz>2015-12-15 19:54:01 +0100
commitb5cb163e01b2b2306e20d41d61163b06881fd089 (patch)
tree37364f1898597d65c95b13fe8dcfde037c7b793d /src/tools
parent9ea7824ff93b9b4d689f972f7bbead75b77906ee (diff)
downloadqt3-b5cb163e01b2b2306e20d41d61163b06881fd089.tar.gz
qt3-b5cb163e01b2b2306e20d41d61163b06881fd089.zip
Fix qmake shared library naming
Add long long int support to TQTextStream Fix potential segmentation fault in QValueList Fix library naming in TQT Plugins This relates to Bug 2107 (cherry picked from commit b716176cec88f5fa604b637a947b44b9ff165d5a)
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/qgpluginmanager.cpp2
-rw-r--r--src/tools/qtextstream.cpp31
-rw-r--r--src/tools/qtextstream.h5
-rw-r--r--src/tools/qvaluelist.h4
4 files changed, 36 insertions, 6 deletions
diff --git a/src/tools/qgpluginmanager.cpp b/src/tools/qgpluginmanager.cpp
index 56b12cd..520e16d 100644
--- a/src/tools/qgpluginmanager.cpp
+++ b/src/tools/qgpluginmanager.cpp
@@ -323,6 +323,8 @@ void QGPluginManager::addLibraryPath( const QString& path )
QString filter = "*.dylib; *.so; *.bundle";
#elif defined(Q_OS_HPUX)
QString filter = "*.sl";
+#elif defined(Q_OS_OPENBSD)
+ QString filter = "*.so; *.so.*";
#elif defined(Q_OS_UNIX)
QString filter = "*.so";
#endif
diff --git a/src/tools/qtextstream.cpp b/src/tools/qtextstream.cpp
index 63f9625..eb56eec 100644
--- a/src/tools/qtextstream.cpp
+++ b/src/tools/qtextstream.cpp
@@ -195,6 +195,7 @@
#define I_SHORT 0x0010
#define I_INT 0x0020
#define I_LONG 0x0030
+#define I_LONGLONG 0x0040
#define I_TYPE_MASK 0x00f0
#define I_BASE_2 QTS::bin
@@ -1862,7 +1863,7 @@ QTextStream &QTextStream::operator<<( char c )
return *this;
}
-QTextStream &QTextStream::output_int( int format, ulong n, bool neg )
+QTextStream &QTextStream::output_int( int format, unsigned long long n, bool neg )
{
static const char hexdigits_lower[] = "0123456789abcdef";
static const char hexdigits_upper[] = "0123456789ABCDEF";
@@ -1879,6 +1880,7 @@ QTextStream &QTextStream::output_int( int format, ulong n, bool neg )
case I_SHORT: len=16; break;
case I_INT: len=sizeof(int)*8; break;
case I_LONG: len=32; break;
+ case I_LONGLONG: len=64; break;
default: len = 0;
}
p = &buf[74]; // go reverse order
@@ -1925,7 +1927,7 @@ QTextStream &QTextStream::output_int( int format, ulong n, bool neg )
p = &buf[74];
*p = '\0';
if ( neg )
- n = (ulong)(-(long)n);
+ n = (unsigned long long)(-(long long)n);
do {
*--p = ((int)(n%10)) + '0';
n /= 10;
@@ -2041,6 +2043,31 @@ QTextStream &QTextStream::operator<<( unsigned long i )
return output_int( I_LONG | I_UNSIGNED, i, FALSE );
}
+/*!
+ \overload
+
+ Writes a \c long long \c int \a i to the stream and returns a reference
+ to the stream.
+*/
+
+QTextStream &QTextStream::operator<<( signed long long i )
+{
+ return output_int( I_LONGLONG | I_SIGNED, i, i < 0 );
+}
+
+
+/*!
+ \overload
+
+ Writes an \c unsigned \c long \c int \a i to the stream and
+ returns a reference to the stream.
+*/
+
+QTextStream &QTextStream::operator<<( unsigned long long i )
+{
+ return output_int( I_LONGLONG | I_UNSIGNED, i, FALSE );
+}
+
/*!
\overload
diff --git a/src/tools/qtextstream.h b/src/tools/qtextstream.h
index 337cc3b..fb494f0 100644
--- a/src/tools/qtextstream.h
+++ b/src/tools/qtextstream.h
@@ -102,6 +102,8 @@ public:
QTextStream &operator<<( unsigned int );
QTextStream &operator<<( signed long );
QTextStream &operator<<( unsigned long );
+ QTextStream &operator<<( signed long long );
+ QTextStream &operator<<( unsigned long long );
QTextStream &operator<<( float );
QTextStream &operator<<( double );
QTextStream &operator<<( const char* );
@@ -155,7 +157,8 @@ public:
private:
long input_int();
void init();
- QTextStream &output_int( int, ulong, bool );
+ QTextStream &output_int( int, unsigned long long, bool );
+
QIODevice *dev;
int fflags;
diff --git a/src/tools/qvaluelist.h b/src/tools/qvaluelist.h
index 16c3f4b..312009f 100644
--- a/src/tools/qvaluelist.h
+++ b/src/tools/qvaluelist.h
@@ -644,13 +644,11 @@ Q_INLINE_TEMPLATES QDataStream& operator>>( QDataStream& s, QValueList<T>& l )
l.clear();
Q_UINT32 c;
s >> c;
- for( Q_UINT32 i = 0; i < c; ++i )
+ for( Q_UINT32 i = 0; i < c && !s.atEnd(); ++i )
{
T t;
s >> t;
l.append( t );
- if ( s.atEnd() )
- break;
}
return s;
}