summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorFrancois Andriot <[email protected]>2014-09-12 12:57:56 -0500
committerTimothy Pearson <[email protected]>2014-09-12 13:01:39 -0500
commitb716176cec88f5fa604b637a947b44b9ff165d5a (patch)
tree72177722906e1c4afc03bcc57b30cdbad5dd8f60 /src/tools
parente17513956503963f4d468342a5be6a0967aca97c (diff)
downloadqt3-b716176cec88f5fa604b637a947b44b9ff165d5a.tar.gz
qt3-b716176cec88f5fa604b637a947b44b9ff165d5a.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
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 2976214..8c57e54 100644
--- a/src/tools/qvaluelist.h
+++ b/src/tools/qvaluelist.h
@@ -655,13 +655,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;
}