Branch: master

b4784725 2014-09-12 12:59:53 Timothy Pearson
Automated update from Qt3
M qmake/generators/unix/unixmake.cpp
M qmake/generators/unix/unixmake2.cpp
M src/tools/ntqtextstream.h
M src/tools/ntqvaluelist.h
M src/tools/qgpluginmanager.cpp
M src/tools/qtextstream.cpp
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
index 6d72ce1..d796e4d 100644
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -806,7 +806,7 @@
 		uninst.append("\n\t");
 	    uninst.append("-$(DEL_FILE) \"" + dst_pc + "\"");
 	}
-	if ( project->isEmpty("QMAKE_CYGWIN_SHLIB") ) {
+	if ( project->isEmpty("QMAKE_CYGWIN_SHLIB") && project->isEmpty("QMAKE_OPENBSD_SHLIBS") ) {
 	    if ( !project->isActiveConfig("staticlib") && !project->isActiveConfig("plugin") ) {
 		if ( project->isEmpty("QMAKE_HPUX_SHLIB") ) {
 		    links << "$(TARGET0)" << "$(TARGET1)" << "$(TARGET2)";
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 8d1dd8c..cf573b4 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -132,6 +132,8 @@
 	 src_incremental=FALSE, moc_incremental=FALSE;
 
     t << "####### Compiler, tools and options" << endl << endl;
+    if (varGlue("INCLUDEPATH", " -I", " -I", "").find("$(LOCALBASE)") != -1)
+    	t << "LOCALBASE?= /usr/local" << endl;
     t << "CC       = ";
     if (project->isActiveConfig("thread") &&
 	! project->variables()["QMAKE_CC_THREAD"].isEmpty())
@@ -298,10 +300,15 @@
     } else if (!project->isActiveConfig("staticlib") && project->variables()["QMAKE_APP_FLAG"].isEmpty()) {
 	t << "TARGETA	= " << var("TARGETA") << endl;
 	if (project->isEmpty("QMAKE_HPUX_SHLIB")) {
-	    t << "TARGETD	= " << var("TARGET_x.y.z") << endl;
-	    t << "TARGET0	= " << var("TARGET_") << endl;
-	    t << "TARGET1	= " << var("TARGET_x") << endl;
-	    t << "TARGET2	= " << var("TARGET_x.y") << endl;
+  	    if (!project->isEmpty("QMAKE_OPENBSD_SHLIBS")) {
+		t << "LIB"+var("OBSD_TARGET_NAME")+"_VERSION = " << var("OBSD_TARGET_VERSION") << endl;
+  		t << "TARGETD	= " << var("TARGET_x.y") << endl;
+ 	    } else {
+		t << "TARGETD	= " << var("TARGET_x.y.z") << endl;
+		t << "TARGET0	= " << var("TARGET_") << endl;
+		t << "TARGET1	= " << var("TARGET_x") << endl;
+		t << "TARGET2	= " << var("TARGET_x.y") << endl;
+	    }
 	} else {
 	    t << "TARGETD	= " << var("TARGET_x") << endl;
 	    t << "TARGET0	= " << var("TARGET_") << endl;
@@ -378,6 +385,7 @@
     }
 
     t << "####### Build rules" << endl << endl;
+    t << "$(OBJECTS): $(UICDECLS)" << endl << endl;
     if(!project->variables()["SUBLIBS"].isEmpty()) {
 	TQString libdir = "tmp/";
 	if(!project->isEmpty("SUBLIBS_DIR"))
@@ -1296,10 +1304,20 @@
 		project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +
 							project->first("QMAKE_EXTENSION_SHLIB") +
 							"." + project->first("VER_MAJ"));
-		project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
-						      project->first("QMAKE_EXTENSION_SHLIB")
-						      + "." + project->first("VER_MAJ") +
-						      "." + project->first("VER_MIN"));
+		if ( !project->variables()["QMAKE_OPENBSD_SHLIBS"].isEmpty() ) {
+		    TQString s;
+		    s.setNum(project->first("VER_MIN").toInt()*10+ project->first("VER_PAT").toInt());
+		    project->variables()["OBSD_TARGET_VERSION"].append(project->first("VER_MAJ") + "." + s);
+		    project->variables()["OBSD_TARGET_NAME"].append(project->first("TARGET"));
+		    project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
+							  project->first("QMAKE_EXTENSION_SHLIB")
+							  + ".$(LIB"+ project->first("TARGET") + "_VERSION)");
+		} else {
+		    project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +
+							  project->first("QMAKE_EXTENSION_SHLIB")
+							  + "." + project->first("VER_MAJ") +
+							  "." + project->first("VER_MIN"));
+		}
 		project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") +
 							    "." +
 							    project->variables()[
@@ -1308,7 +1326,10 @@
 							    project->first("VER_MIN") +  "." +
 							    project->first("VER_PAT"));
 	    }
-	    project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];
+	    if ( !project->variables()["QMAKE_OPENBSD_SHLIBS"].isEmpty() )
+		project->variables()["TARGET"] = project->variables()["TARGET_x.y"];
+	    else
+		project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];
 	}
 	if(project->isEmpty("QMAKE_LN_SHLIB"))
 	    project->variables()["QMAKE_LN_SHLIB"].append("ln -s");
diff --git a/src/tools/ntqtextstream.h b/src/tools/ntqtextstream.h
index e0520a5..609cd0d 100644
--- a/src/tools/ntqtextstream.h
+++ b/src/tools/ntqtextstream.h
@@ -102,6 +102,8 @@
     TQTextStream &operator<<( unsigned int );
     TQTextStream &operator<<( signed long );
     TQTextStream &operator<<( unsigned long );
+    TQTextStream &operator<<( signed long long );
+    TQTextStream &operator<<( unsigned long long );
     TQTextStream &operator<<( float );
     TQTextStream &operator<<( double );
     TQTextStream &operator<<( const char* );
@@ -155,7 +157,8 @@
 private:
     long	input_int();
     void	init();
-    TQTextStream &output_int( int, ulong, bool );
+    TQTextStream &output_int( int, unsigned long long, bool );
+ 
     TQIODevice	*dev;
 
     int		fflags;
diff --git a/src/tools/ntqvaluelist.h b/src/tools/ntqvaluelist.h
index b9fc730..24a9cfc 100644
--- a/src/tools/ntqvaluelist.h
+++ b/src/tools/ntqvaluelist.h
@@ -655,13 +655,11 @@
     l.clear();
     TQ_UINT32 c;
     s >> c;
-    for( TQ_UINT32 i = 0; i < c; ++i )
+    for( TQ_UINT32 i = 0; i < c && !s.atEnd(); ++i )
     {
 	T t;
 	s >> t;
 	l.append( t );
-	if ( s.atEnd() )
-	    break;
     }
     return s;
 }
diff --git a/src/tools/qgpluginmanager.cpp b/src/tools/qgpluginmanager.cpp
index 8e2ea9a..1e96cf8 100644
--- a/src/tools/qgpluginmanager.cpp
+++ b/src/tools/qgpluginmanager.cpp
@@ -323,6 +323,8 @@
     TQString filter = "*.dylib; *.so; *.bundle";
 #elif defined(Q_OS_HPUX)
     TQString filter = "*.sl";
+#elif defined(Q_OS_OPENBSD)
+    TQString filter = "*.so; *.so.*";
 #elif defined(Q_OS_UNIX)
     TQString filter = "*.so";
 #endif
diff --git a/src/tools/qtextstream.cpp b/src/tools/qtextstream.cpp
index 6a0e1d6..213581b 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	TQTS::bin
@@ -1862,7 +1863,7 @@
     return *this;
 }
 
-TQTextStream &TQTextStream::output_int( int format, ulong n, bool neg )
+TQTextStream &TQTextStream::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 @@
 		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 @@
 	    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 @@
     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.
+*/
+
+TQTextStream &TQTextStream::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.
+*/
+
+TQTextStream &TQTextStream::operator<<( unsigned long long i )
+{
+    return output_int( I_LONGLONG | I_UNSIGNED, i, FALSE );
+}
+
 
 /*!
     \overload