-rw-r--r-- | qmake/tools/qglobal.cpp | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/qmake/tools/qglobal.cpp b/qmake/tools/qglobal.cpp index 47cd6bd..342005d 100644 --- a/qmake/tools/qglobal.cpp +++ b/qmake/tools/qglobal.cpp | |||
@@ -146,13 +146,34 @@ bool qSysInfo( int *wordSize, bool *bigEndian ) | |||
146 | 146 | ||
147 | *bigEndian = si_bigEndian = be32; | 147 | *bigEndian = si_bigEndian = be32; |
148 | si_alreadyDone = TRUE; | 148 | si_alreadyDone = TRUE; |
149 | return TRUE; | 149 | return TRUE; |
150 | } | 150 | } |
151 | 151 | ||
152 | #if defined(Q_OS_WIN32) || defined(Q_OS_CYGWIN) | 152 | #if !defined(QWS) && defined(Q_OS_MAC) |
153 | |||
154 | #include "qt_mac.h" | ||
155 | |||
156 | int qMacVersion() | ||
157 | { | ||
158 | static int macver = Qt::MV_Unknown; | ||
159 | static bool first = TRUE; | ||
160 | if(first) { | ||
161 | first = FALSE; | ||
162 | long gestalt_version; | ||
163 | if(Gestalt(gestaltSystemVersion, &gestalt_version) == noErr) { | ||
164 | if(gestalt_version >= 0x1020 && gestalt_version < 0x1030) | ||
165 | macver = Qt::MV_10_DOT_2; | ||
166 | else if(gestalt_version >= 0x1010 && gestalt_version < 0x1020) | ||
167 | macver = Qt::MV_10_DOT_1; | ||
168 | } | ||
169 | } | ||
170 | return macver; | ||
171 | } | ||
172 | Qt::MacintoshVersion qt_macver = (Qt::MacintoshVersion)qMacVersion(); | ||
173 | #elif defined(Q_OS_WIN32) || defined(Q_OS_CYGWIN) | ||
153 | bool qt_winunicode; | 174 | bool qt_winunicode; |
154 | 175 | ||
155 | #include "qt_windows.h" | 176 | #include "qt_windows.h" |
156 | 177 | ||
157 | int qWinVersion() | 178 | int qWinVersion() |
158 | { | 179 | { |
@@ -318,13 +339,25 @@ Qt::WindowsVersion qt_winver = (Qt::WindowsVersion)qWinVersion(); | |||
318 | 339 | ||
319 | static QtMsgHandler handler = 0; // pointer to debug handler | 340 | static QtMsgHandler handler = 0; // pointer to debug handler |
320 | static const int QT_BUFFER_LENGTH = 8196;// internal buffer length | 341 | static const int QT_BUFFER_LENGTH = 8196;// internal buffer length |
321 | 342 | ||
322 | 343 | ||
323 | #ifdef Q_OS_MAC | 344 | #ifdef Q_OS_MAC |
324 | const unsigned char * p_str(const char * c, int len=-1) | 345 | QString cfstring2qstring(CFStringRef str) |
346 | { | ||
347 | CFIndex length = CFStringGetLength(str); | ||
348 | if(const UniChar *chars = CFStringGetCharactersPtr(str)) | ||
349 | return QString((QChar *)chars, length); | ||
350 | UniChar *buffer = (UniChar*)malloc(length * sizeof(UniChar)); | ||
351 | CFStringGetCharacters(str, CFRangeMake(0, length), buffer); | ||
352 | QString ret((QChar *)buffer, length); | ||
353 | free(buffer); | ||
354 | return ret; | ||
355 | } | ||
356 | |||
357 | unsigned char * p_str(const char * c, int len=-1) | ||
325 | { | 358 | { |
326 | const int maxlen = 255; | 359 | const int maxlen = 255; |
327 | if(len == -1) | 360 | if(len == -1) |
328 | len = qstrlen(c); | 361 | len = qstrlen(c); |
329 | if(len > maxlen) { | 362 | if(len > maxlen) { |
330 | qWarning( "p_str len must never exceed %d", maxlen ); | 363 | qWarning( "p_str len must never exceed %d", maxlen ); |
@@ -334,13 +367,13 @@ const unsigned char * p_str(const char * c, int len=-1) | |||
334 | *ret=len; | 367 | *ret=len; |
335 | memcpy(((char *)ret)+1,c,len); | 368 | memcpy(((char *)ret)+1,c,len); |
336 | *(ret+len+1) = '\0'; | 369 | *(ret+len+1) = '\0'; |
337 | return ret; | 370 | return ret; |
338 | } | 371 | } |
339 | 372 | ||
340 | const unsigned char * p_str(const QString &s) | 373 | unsigned char * p_str(const QString &s) |
341 | { | 374 | { |
342 | return p_str(s, s.length()); | 375 | return p_str(s, s.length()); |
343 | } | 376 | } |
344 | 377 | ||
345 | QCString p2qstring(const unsigned char *c) { | 378 | QCString p2qstring(const unsigned char *c) { |
346 | char *arr = (char *)malloc(c[0] + 1); | 379 | char *arr = (char *)malloc(c[0] + 1); |
@@ -638,24 +671,24 @@ void qSystemWarning( const char* msg, int code ) | |||
638 | 671 | ||
639 | /*! | 672 | /*! |
640 | \fn void Q_CHECK_PTR( void *p ) | 673 | \fn void Q_CHECK_PTR( void *p ) |
641 | 674 | ||
642 | \relates QApplication | 675 | \relates QApplication |
643 | 676 | ||
644 | If \a p is null, a fatal messages says that the program ran out of | 677 | If \a p is 0, a fatal messages says that the program ran out of |
645 | memory and exits. If \e p is not null, nothing happens. | 678 | memory and exits. If \e p is not 0, nothing happens. |
646 | 679 | ||
647 | This is really a macro defined in \c qglobal.h. | 680 | This is really a macro defined in \c qglobal.h. |
648 | 681 | ||
649 | Example: | 682 | Example: |
650 | \code | 683 | \code |
651 | int *a; | 684 | int *a; |
652 | 685 | ||
653 | Q_CHECK_PTR( a = new int[80] ); // WRONG! | 686 | Q_CHECK_PTR( a = new int[80] ); // WRONG! |
654 | 687 | ||
655 | a = new int[80]; // Right | 688 | a = new (nothrow) int[80]; // Right |
656 | Q_CHECK_PTR( a ); | 689 | Q_CHECK_PTR( a ); |
657 | \endcode | 690 | \endcode |
658 | 691 | ||
659 | \sa qFatal(), \link debug.html Debugging\endlink | 692 | \sa qFatal(), \link debug.html Debugging\endlink |
660 | */ | 693 | */ |
661 | 694 | ||