Hello community,

here is the log from the commit of package seamonkey for openSUSE:Factory 
checked in at 2012-04-23 16:13:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/seamonkey (Old)
 and      /work/SRC/openSUSE:Factory/.seamonkey.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "seamonkey", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/seamonkey/seamonkey.changes      2012-03-16 
13:25:15.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey.changes 2012-04-23 
16:13:21.000000000 +0200
@@ -1,0 +2,11 @@
+Sat Apr 21 12:29:55 UTC 2012 - [email protected]
+
+- update to 2.9b4
+- added mozilla-sle11.patch and add exceptions to be able to build
+  for SLE11/11.1
+- exclude broken gl locale from build
+- fixed build on 11.2-x86_64 by adding mozilla-revert_621446.patch
+- added mozilla-gcc47.patch and mailnews-literals.patch to fix
+  compilation issues with recent gcc 4.7
+
+-------------------------------------------------------------------

Old:
----
  l10n-2.8.tar.bz2
  seamonkey-2.8-source.tar.bz2

New:
----
  l10n-2.8.99.tar.bz2
  mailnews-literals.patch
  mozilla-gcc47.patch
  mozilla-revert_621446.patch
  mozilla-sle11.patch
  seamonkey-2.8.99-source.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ seamonkey.spec ++++++
--- /var/tmp/diff_new_pack.tP8fL6/_old  2012-04-23 16:13:30.000000000 +0200
+++ /var/tmp/diff_new_pack.tP8fL6/_new  2012-04-23 16:13:30.000000000 +0200
@@ -26,9 +26,7 @@
 BuildRequires:  hunspell-devel
 BuildRequires:  libgnomeui-devel
 BuildRequires:  libidl-devel
-BuildRequires:  libiw-devel
 BuildRequires:  libnotify-devel
-BuildRequires:  libproxy-devel
 BuildRequires:  nss-shared-helper-devel
 BuildRequires:  python
 BuildRequires:  startup-notification-devel
@@ -37,10 +35,16 @@
 BuildRequires:  xorg-x11-libXt-devel
 BuildRequires:  yasm
 BuildRequires:  zip
+%if %suse_version > 1110
+BuildRequires:  libiw-devel
+BuildRequires:  libproxy-devel
+%else
+BuildRequires:  wireless-tools
+%endif
 Provides:       web_browser
-Version:        2.8
+Version:        2.8.99
 Release:        0
-%define releasedate 2012031200
+%define releasedate 2012042000
 Summary:        The successor of the Mozilla Application Suite
 License:        MPL-1.1 or GPL-2.0+ or LGPL-2.1+
 Group:          Productivity/Networking/Web/Browsers
@@ -59,12 +63,16 @@
 Patch1:         mozilla-nongnome-proxies.patch
 Patch2:         mozilla-prefer_plugin_pref.patch
 Patch3:         mozilla-shared-nss-db.patch
+Patch4:         mozilla-sle11.patch
 Patch5:         mozilla-language.patch
+Patch6:         mozilla-revert_621446.patch
 Patch8:         mozilla-ntlm-full-path.patch
 Patch10:        mozilla-ua-locale.patch
+Patch11:        mozilla-gcc47.patch
 Patch12:        mozilla-yarr-pcre.patch
 Patch20:        seamonkey-ua-locale.patch
 Patch21:        seamonkey-shared-nss-db.patch
+Patch22:        mailnews-literals.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 PreReq:         /bin/sh coreutils
 Provides:       seamonkey-mail = %{version}
@@ -141,7 +149,7 @@
 %package translations-other
 Summary:        Extra translations for SeaMonkey
 Group:          System/Localization
-Provides:       locale(%{name}:be;gl;lt;sk;tr)
+Provides:       locale(%{name}:be;lt;sk;tr;uk)
 PreReq:         %{name} = %{version}
 
 %description translations-other
@@ -156,14 +164,20 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%if %suse_version < 1120
+%patch4 -p1
+%endif
 %patch5 -p1
+%patch6 -p1
 %patch8 -p1
 %patch10 -p1
+%patch11 -p1
 #%patch12 -p1
 popd
 # comm patches
 %patch20 -p1
 %patch21 -p1
+%patch22 -p1
 
 %build
 # no need to add build time to binaries
@@ -205,7 +219,6 @@
 ac_add_options --disable-crashreporter
 ac_add_options --enable-startup-notification
 ac_add_options --enable-system-hunspell
-ac_add_options --enable-libproxy
 #ac_add_options --enable-system-mozldap
 EOF
 %if %has_system_cairo
@@ -213,6 +226,11 @@
 ac_add_options --enable-system-cairo
 EOF
 %endif
+%if %suse_version > 1110
+cat << EOF >> $MOZCONFIG
+ac_add_options --enable-libproxy
+EOF
+%endif
 make -f client.mk build
 #
 
@@ -229,7 +247,7 @@
 touch %{_tmppath}/translations.{common,other}
 for locale in $(awk '{ print $1; }' 
../seamonkey/suite/locales/shipped-locales); do
   case $locale in
-     ja-JP-mac|en-US)
+     ja-JP-mac|en-US|gl)
          ;;
      *)
           pushd $RPM_BUILD_DIR/compare-locales

++++++ compare-locales.tar.bz2 ++++++

++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.tP8fL6/_old  2012-04-23 16:13:31.000000000 +0200
+++ /var/tmp/diff_new_pack.tP8fL6/_new  2012-04-23 16:13:31.000000000 +0200
@@ -1,9 +1,9 @@
 #!/bin/bash
 
-CHANNEL="release"
+CHANNEL="beta"
 BRANCH="releases/comm-$CHANNEL"
-RELEASE_TAG="SEAMONKEY_2_8_RELEASE"
-VERSION="2.8"
+RELEASE_TAG="SEAMONKEY_2_9b4_RELEASE"
+VERSION="2.8.99"
 
 echo "cloning $BRANCH..."
 hg clone http://hg.mozilla.org/$BRANCH seamonkey

++++++ l10n-2.8.tar.bz2 -> l10n-2.8.99.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/seamonkey/l10n-2.8.tar.bz2 
/work/SRC/openSUSE:Factory/.seamonkey.new/l10n-2.8.99.tar.bz2 differ: char 11, 
line 1

++++++ mailnews-literals.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <[email protected]>
# Parent 879e8d044e364396b63af59b3cdc4252fb2ae29a
Bug 733867 - Build failure with gcc-4.7.0rc1: "nsMsgFolderCompactor.cpp ... 
error: unable to find string literal operator ‘operator"" ..." (TM: COMM13)

diff --git a/mailnews/base/search/src/nsMsgSearchAdapter.cpp 
b/mailnews/base/search/src/nsMsgSearchAdapter.cpp
--- a/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+++ b/mailnews/base/search/src/nsMsgSearchAdapter.cpp
@@ -683,17 +683,17 @@ nsresult nsMsgSearchAdapter::EncodeImapV
   }
 
   if (!NS_IsAscii(value))
   {
     nsCAutoString lengthStr;
     PL_strcat(encoding, "{");
     lengthStr.AppendInt((PRInt32) strlen(value));
     PL_strcat(encoding, lengthStr.get());
-    PL_strcat(encoding, "}"CRLF);
+    PL_strcat(encoding, "}" CRLF);
     PL_strcat(encoding, value);
     return NS_OK;
   }
   if (useQuotes)
     PL_strcat(encoding, "\"");
   PL_strcat (encoding, value);
   if (useQuotes)
     PL_strcat(encoding, "\"");
diff --git a/mailnews/base/src/nsMsgFolderCompactor.cpp 
b/mailnews/base/src/nsMsgFolderCompactor.cpp
--- a/mailnews/base/src/nsMsgFolderCompactor.cpp
+++ b/mailnews/base/src/nsMsgFolderCompactor.cpp
@@ -753,17 +753,17 @@ nsFolderCompactState::OnDataAvailable(ns
           m_folder->GetMsgDatabase(getter_AddRefs(srcDB));
           if (srcDB)
           {
             srcDB->SetSummaryValid(false);
             srcDB->ForceClosed();
           }
         }
       }
-#define EXTRA_KEYWORD_HDR "                                                    
                             "MSG_LINEBREAK
+#define EXTRA_KEYWORD_HDR "                                                    
                             " MSG_LINEBREAK
 
        // if status offset isn't in the first block, this code won't work. 
There's no good reason
       // for the status offset not to be at the beginning of the message 
anyway.
       if (addKeywordHdr)
       {
         // if blockOffset is set, we added x-mozilla-status headers so
         // file pointer is already past them.
         if (!blockOffset)
diff --git a/mailnews/compose/src/nsMsgAppleEncode.cpp 
b/mailnews/compose/src/nsMsgAppleEncode.cpp
--- a/mailnews/compose/src/nsMsgAppleEncode.cpp
+++ b/mailnews/compose/src/nsMsgAppleEncode.cpp
@@ -133,17 +133,17 @@ int fill_apple_mime_header(
                                                strlen(p_ap_encode_obj->fname));
        if (status != noErr)
                return status;
                
        PR_snprintf(tmpstr, sizeof(tmpstr),
                        "\"\r\nContent-Disposition: inline; 
filename=\"%s\"\r\n\r\n\r\n--=\r\n",
                        p_ap_encode_obj->fname);
 #endif /* 0 */
-       PR_snprintf(tmpstr, sizeof(tmpstr), "--%s"CRLF, 
p_ap_encode_obj->boundary);
+       PR_snprintf(tmpstr, sizeof(tmpstr), "--%s" CRLF, 
p_ap_encode_obj->boundary);
        status = write_stream(p_ap_encode_obj, 
                                                tmpstr, 
                                                strlen(tmpstr));
        return status;
 } 
 
 int ap_encode_file_infor(
        appledouble_encode_object *p_ap_encode_obj)
@@ -374,17 +374,17 @@ int ap_encode_header(
                status = finish64(p_ap_encode_obj);
                if (status != noErr)
                        return status;
                
                /*
                ** write out the boundary 
                */
                PR_snprintf(rd_buff, sizeof(rd_buff),
-                                               CRLF"--%s"CRLF, 
+                                               CRLF"--%s" CRLF,
                                                p_ap_encode_obj->boundary);
                                        
                status = write_stream(p_ap_encode_obj,
                                                rd_buff,
                                                strlen(rd_buff));
                if (status == noErr)
                        status = errDone;
        }
@@ -515,17 +515,17 @@ int ap_encode_data(
                }
 
                /*
                **      the data portion header information.
                */
         nsCAutoString leafName;
         resFile->GetNativeLeafName(leafName);
                PR_snprintf(rd_buff, sizeof(rd_buff),
-                       "Content-Type: %s; name=\"%s\"" CRLF 
"Content-Transfer-Encoding: base64" CRLF "Content-Disposition: inline; 
filename=\"%s\""CRLF CRLF,
+                       "Content-Type: %s; name=\"%s\"" CRLF 
"Content-Transfer-Encoding: base64" CRLF "Content-Disposition: inline; 
filename=\"%s\"" CRLF CRLF,
                        magic_type,
                        leafName.get(),
                        leafName.get());
                        
                status = write_stream(p_ap_encode_obj, 
                                        rd_buff, 
                                        strlen(rd_buff)); 
                if (status != noErr)
@@ -558,17 +558,17 @@ int ap_encode_data(
 
                status = finish64(p_ap_encode_obj);
                if (status != noErr)
                        return status;
                
                /* write out the boundary       */
                
                PR_snprintf(rd_buff, sizeof(rd_buff),
-                                               CRLF"--%s--"CRLF CRLF, 
+                                               CRLF"--%s--" CRLF CRLF,
                                                p_ap_encode_obj->boundary);
        
                status = write_stream(p_ap_encode_obj,
                                                rd_buff,
                                                strlen(rd_buff));
        
                if (status == noErr)                            
                        status = errDone;
diff --git a/mailnews/compose/src/nsSmtpProtocol.cpp 
b/mailnews/compose/src/nsSmtpProtocol.cpp
--- a/mailnews/compose/src/nsSmtpProtocol.cpp
+++ b/mailnews/compose/src/nsSmtpProtocol.cpp
@@ -1717,17 +1717,17 @@ PRInt32 nsSmtpProtocol::SendMessageRespo
   /* else */
   return SendQuit();
 }
 
 PRInt32 nsSmtpProtocol::SendQuit()
 {
   m_sendDone = true;
   nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
-  SendData(url, "QUIT"CRLF); // send a quit command to close the connection 
with the server.
+  SendData(url, "QUIT" CRLF); // send a quit command to close the connection 
with the server.
   m_nextState = SMTP_RESPONSE;
   m_nextStateAfterResponse = SMTP_DONE;
   return(0);
 }
 
 nsresult nsSmtpProtocol::LoadUrl(nsIURI * aURL, nsISupports * aConsumer )
 {
   if (!aURL)
@@ -1964,17 +1964,17 @@ nsresult nsSmtpProtocol::LoadUrl(nsIURI 
 
     /* check for errors during load and call error
     * state if found
     */
     if(status < 0 && m_nextState != SMTP_FREE)
     {
       nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
       // send a quit command to close the connection with the server.
-      if (SendData(url, "QUIT"CRLF) == NS_OK)
+      if (SendData(url, "QUIT" CRLF) == NS_OK)
       {
         m_nextState = SMTP_RESPONSE;
         m_nextStateAfterResponse = SMTP_ERROR_DONE;
       }
       else
       {
       m_nextState = SMTP_ERROR_DONE;
       /* don't exit! loop around again and do the free case */
diff --git a/mailnews/imap/src/nsImapMailFolder.cpp 
b/mailnews/imap/src/nsImapMailFolder.cpp
--- a/mailnews/imap/src/nsImapMailFolder.cpp
+++ b/mailnews/imap/src/nsImapMailFolder.cpp
@@ -8304,17 +8304,17 @@ nsImapMailFolder::CopyFileToOfflineStore
           srcFile->GetFileSize(&fileSize);
           PRUint32 bytesWritten;
           rv = NS_OK;
           msgParser->SetState(nsIMsgParseMailMsgState::ParseHeadersState);
           msgParser->SetNewMsgHdr(fakeHdr);
           bool needMoreData = false;
           char * newLine = nsnull;
           PRUint32 numBytesInLine = 0;
-          const char *envelope = "From "CRLF;
+          const char *envelope = "From " CRLF;
           offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
           fileSize += bytesWritten;
           do
           {
             newLine = inputStreamBuffer->ReadNextLine(inputStream, 
numBytesInLine, needMoreData);
             if (newLine)
             {
               msgParser->ParseAFolderLine(newLine, numBytesInLine);
diff --git a/mailnews/imap/src/nsImapProtocol.cpp 
b/mailnews/imap/src/nsImapProtocol.cpp
--- a/mailnews/imap/src/nsImapProtocol.cpp
+++ b/mailnews/imap/src/nsImapProtocol.cpp
@@ -1404,17 +1404,17 @@ nsImapProtocol::ImapThreadMainLoop()
 
   PR_LOG(IMAP, PR_LOG_DEBUG, ("ImapThreadMainLoop leaving [this=%x]\n", this));
 }
 
 void nsImapProtocol::HandleIdleResponses()
 {
   // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
   nsCAutoString commandBuffer(GetServerCommandTag());
-  commandBuffer.Append(" IDLE"CRLF);
+  commandBuffer.Append(" IDLE" CRLF);
 
   do
   {
     ParseIMAPandCheckForNewMail(commandBuffer.get());
   }
   while (m_inputStreamBuffer->NextLineAvailable() && 
GetServerStateParser().Connected());
 
   //  if (oldRecent != GetServerStateParser().NumberOfRecentMessages())
@@ -3282,17 +3282,17 @@ void nsImapProtocol::FetchMsgAttribute(c
 {
     IncrementCommandTagNumber();
 
     nsCAutoString commandString (GetServerCommandTag());
     commandString.Append(" UID fetch ");
     commandString.Append(messageIds);
     commandString.Append(" (");
     commandString.Append(attribute);
-    commandString.Append(")"CRLF);
+    commandString.Append(")" CRLF);
     nsresult rv = SendData(commandString.get());
 
     if (NS_SUCCEEDED(rv))
        ParseIMAPandCheckForNewMail(commandString.get());
     GetServerStateParser().SetFetchingFlags(false);
     GetServerStateParser().SetFetchingEverythingRFC822(false); // always clear 
this flag after every fetch....
 }
 
@@ -5278,17 +5278,17 @@ nsImapProtocol::Expunge()
       delete search;
       if (key == 0)
         return;  //no deleted messages to expunge (bug 235004)
     }
   }
 
   IncrementCommandTagNumber();
   nsCAutoString command(GetServerCommandTag());
-  command.Append(" expunge"CRLF);
+  command.Append(" expunge" CRLF);
 
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
     ParseIMAPandCheckForNewMail();
 }
 
 void
 nsImapProtocol::HandleMemoryFailure()
@@ -5354,17 +5354,17 @@ void nsImapProtocol::ID()
   if (!gAppName[0])
     return;
   IncrementCommandTagNumber();
   nsCString command(GetServerCommandTag());
   command.Append(" ID (\"name\" \"");
   command.Append(gAppName);
   command.Append("\" \"version\" \"");
   command.Append(gAppVersion);
-  command.Append("\")"CRLF);
+  command.Append("\")" CRLF);
 
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
     ParseIMAPandCheckForNewMail();
 }
 
 void nsImapProtocol::EnableCondStore()
 {
@@ -5811,17 +5811,17 @@ nsresult nsImapProtocol::AuthLogin(const
     command.Append(escapedUserName);
     command.Append("\" \"");
 
     // if the password contains a \, login will fail
     // turn foo\bar into foo\\bar
     nsCAutoString correctedPassword;
     EscapeUserNamePasswordString(password.get(), &correctedPassword);
     command.Append(correctedPassword);
-    command.Append("\""CRLF);
+    command.Append("\"" CRLF);
     rv = SendData(command.get(), true /* suppress logging */);
     NS_ENSURE_SUCCESS(rv, rv);
     ParseIMAPandCheckForNewMail();
   }
   else if (flag & kHasAuthNoneCapability)
   {
     // TODO What to do? "login <username>" like POP?
     return NS_ERROR_NOT_IMPLEMENTED;
@@ -7442,17 +7442,17 @@ void nsImapProtocol::CreateMailbox(const
 
   IncrementCommandTagNumber();
 
   nsCString escapedName;
   CreateEscapedMailboxName(mailboxName, escapedName);
   nsCString command(GetServerCommandTag());
   command += " create \"";
   command += escapedName;
-  command += "\""CRLF;
+  command += "\"" CRLF;
 
   nsresult rv = SendData(command.get());
   if(NS_SUCCEEDED(rv))
     ParseIMAPandCheckForNewMail();
   // If that failed, let's list the parent folder to see if
   // it allows inferiors, so we won't try to create sub-folders
   // of the parent folder again in the current session.
   if (GetServerStateParser().CommandFailed())
@@ -7545,17 +7545,17 @@ void nsImapProtocol::Lsub(const char *ma
   nsCString escapedPattern;
   CreateEscapedMailboxName(boxnameWithOnlineDirectory ?
                         boxnameWithOnlineDirectory :
                         mailboxPattern, escapedPattern);
 
   nsCString command (GetServerCommandTag());
   command += " lsub \"\" \"";
   command += escapedPattern;
-  command += "\""CRLF;
+  command += "\"" CRLF;
 
   PR_Free(boxnameWithOnlineDirectory);
 
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
     ParseIMAPandCheckForNewMail();
 }
 
@@ -7574,17 +7574,17 @@ void nsImapProtocol::List(const char *ma
   CreateEscapedMailboxName(boxnameWithOnlineDirectory ?
                         boxnameWithOnlineDirectory :
                         mailboxPattern, escapedPattern);
 
   nsCString command (GetServerCommandTag());
   command += useXLIST ?
     " xlist \"\" \"" : " list \"\" \"";
   command += escapedPattern;
-  command += "\""CRLF;
+  command += "\"" CRLF;
 
   PR_Free(boxnameWithOnlineDirectory);
 
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
     ParseIMAPandCheckForNewMail(command.get(), true);
 }
 
@@ -7595,17 +7595,17 @@ void nsImapProtocol::Subscribe(const cha
   IncrementCommandTagNumber();
 
   nsCString escapedName;
   CreateEscapedMailboxName(mailboxName, escapedName);
 
   nsCString command (GetServerCommandTag());
   command += " subscribe \"";
   command += escapedName;
-  command += "\""CRLF;
+  command += "\"" CRLF;
 
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
     ParseIMAPandCheckForNewMail();
 }
 
 void nsImapProtocol::Unsubscribe(const char *mailboxName)
 {
@@ -7613,31 +7613,31 @@ void nsImapProtocol::Unsubscribe(const c
   IncrementCommandTagNumber();
 
   nsCString escapedName;
   CreateEscapedMailboxName(mailboxName, escapedName);
 
   nsCString command (GetServerCommandTag());
   command += " unsubscribe \"";
   command += escapedName;
-  command += "\""CRLF;
+  command += "\"" CRLF;
 
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
       ParseIMAPandCheckForNewMail();
 }
 
 void nsImapProtocol::Idle()
 {
   IncrementCommandTagNumber();
 
   if (m_urlInProgress)
     return;
   nsCAutoString command (GetServerCommandTag());
-  command += " IDLE"CRLF;
+  command += " IDLE" CRLF;
   nsresult rv = SendData(command.get());
   if (NS_SUCCEEDED(rv))
   {
       m_idle = true;
       // we'll just get back a continuation char at first.
       // + idling...
       ParseIMAPandCheckForNewMail();
       // this will cause us to get notified of data or the socket getting 
closed.
@@ -7654,17 +7654,17 @@ void nsImapProtocol::Idle()
 // responses, we need to not wait for the server response
 // on shutdown.
 void nsImapProtocol::EndIdle(bool waitForResponse /* = true */)
 {
   // clear the async wait - otherwise, we seem to have trouble doing a 
blocking read
   nsCOMPtr <nsIAsyncInputStream> asyncInputStream = 
do_QueryInterface(m_inputStream);
   if (asyncInputStream)
     asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
-  nsresult rv = SendData("DONE"CRLF);
+  nsresult rv = SendData("DONE" CRLF);
   // set a short timeout if we don't want to wait for a response
   if (m_transport && !waitForResponse)
     m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
   if (NS_SUCCEEDED(rv))
   {
     m_idle = false;
     ParseIMAPandCheckForNewMail();
   }
@@ -7723,18 +7723,18 @@ void nsImapProtocol::Copy(const char * m
   nsTArray<nsMsgKey> msgKeys;
   if (idsAreUid)
     ParseUidString(messageList, msgKeys);
 
   PRInt32 msgCountLeft = msgKeys.Length();
   PRUint32 msgsHandled = 0;
   const char *formatString;
   formatString = (idsAreUid)
-      ? "%s uid store %s %s"CRLF
-      : "%s store %s %s"CRLF;
+      ? "%s uid store %s %s" CRLF
+      : "%s store %s %s" CRLF;
 
   do
   {
     nsCString idString;
 
     PRUint32 msgsToHandle = msgCountLeft;
     if (idsAreUid)
       AllocateImapUidString(msgKeys.Elements() + msgsHandled, msgsToHandle, 
m_flagState, idString);
diff --git a/mailnews/imap/src/nsImapServerResponseParser.cpp 
b/mailnews/imap/src/nsImapServerResponseParser.cpp
--- a/mailnews/imap/src/nsImapServerResponseParser.cpp
+++ b/mailnews/imap/src/nsImapServerResponseParser.cpp
@@ -180,17 +180,17 @@ void nsImapServerResponseParser::Initial
 //           continue-req    = "+" SP (resp-text / base64) CRLF
 void nsImapServerResponseParser::ParseIMAPServerResponse(const char 
*aCurrentCommand,
                                                          bool 
aIgnoreBadAndNOResponses,
                                                          char 
*aGreetingWithCapability)
 {
   
   NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' && 
     *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command 
string");
-  bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
+  bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
   if (sendingIdleDone)
     fWaitingForMoreClientInput = false;
 
   // Reinitialize the parser
   SetConnected(true);
   SetSyntaxError(false);
   
   // Reinitialize our state
diff --git a/mailnews/local/src/nsPop3Protocol.cpp 
b/mailnews/local/src/nsPop3Protocol.cpp
--- a/mailnews/local/src/nsPop3Protocol.cpp
+++ b/mailnews/local/src/nsPop3Protocol.cpp
@@ -2478,17 +2478,17 @@ PRInt32 nsPop3Protocol::SendList()
 
 
     m_pop3ConData->msg_info = (Pop3MsgInfo *)
       PR_CALLOC(sizeof(Pop3MsgInfo) * m_pop3ConData->number_of_messages);
     if (!m_pop3ConData->msg_info)
         return(MK_OUT_OF_MEMORY);
     m_pop3ConData->next_state_after_response = POP3_GET_LIST;
     m_listpos = 0;
-    return SendData(m_url, "LIST"CRLF);
+    return SendData(m_url, "LIST" CRLF);
 }
 
 
 
 PRInt32
 nsPop3Protocol::GetList(nsIInputStream* inputStream,
                         PRUint32 length)
 {
diff --git a/mailnews/mime/src/mimedrft.cpp b/mailnews/mime/src/mimedrft.cpp
--- a/mailnews/mime/src/mimedrft.cpp
+++ b/mailnews/mime/src/mimedrft.cpp
@@ -1468,17 +1468,17 @@ mime_parse_stream_complete (nsMIMESessio
                //+13 chars for <pre> & </pre> tags and CRLF
               PRUint32 newbodylen = bodyLen + 14;
               char* newbody = (char *)PR_MALLOC (newbodylen);
               if (newbody)
               {
                 *newbody = 0;
                 PL_strcatn(newbody, newbodylen, "<PRE>");
                 PL_strcatn(newbody, newbodylen, body);
-                PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
+                PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
                 PR_Free(body);
                 body = newbody;
               }
             }
             // Body is now HTML, set the format too (so headers are inserted in
             // correct format).
             composeFormat = nsIMsgCompFormat::HTML;
           }
diff --git a/mailnews/mime/src/mimemult.cpp b/mailnews/mime/src/mimemult.cpp
--- a/mailnews/mime/src/mimemult.cpp
+++ b/mailnews/mime/src/mimemult.cpp
@@ -275,44 +275,44 @@ MimeMultipart_parse_line (const char *li
             {
               MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Type: "));
               MimeWriteAString(obj, nsDependentCString(contentType));
               PR_Free(contentType);
             }
             MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
             MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: 
attachment; filename=\""));
             MimeWriteAString(obj, fileName);
-            MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
+            MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
             MimeWriteAString(obj, 
NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
             MimeWriteAString(obj, obj->options->state->detachedFilePath);
             MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
             MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-Altered: 
AttachmentDetached; date=\""));
           }
           else
           {
             nsCAutoString header("Content-Type: text/x-moz-deleted; 
name=\"Deleted: ");
             header.Append(fileName);
             status = MimeWriteAString(obj, header);
-            if (status < 0) 
+            if (status < 0)
               return status;
-            status = MimeWriteAString(obj, 
NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 
8bit"MSG_LINEBREAK));
+            status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" 
MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
             MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: 
inline; filename=\"Deleted: "));
             MimeWriteAString(obj, fileName);
-            MimeWriteAString(obj, 
NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; 
date=\""));
+            MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK 
"X-Mozilla-Altered: AttachmentDeleted; date=\""));
           }
           nsCString result;
           char timeBuffer[128];
           PRExplodedTime now;
           PR_ExplodeTime(PR_Now(), PR_LocalTimeParameters, &now);
           PR_FormatTimeUSEnglish(timeBuffer, sizeof(timeBuffer),
                                  "%a %b %d %H:%M:%S %Y",
                                  &now);
           MimeWriteAString(obj, nsDependentCString(timeBuffer));
-          MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-          MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted 
an attachment from this message. The original MIME headers for the attachment 
were:"MSG_LINEBREAK));
+          MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
+          MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted 
an attachment from this message. The original MIME headers for the attachment 
were:" MSG_LINEBREAK));
           MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false);
         }
         PRInt32 old_nchildren = container->nchildren;
         status = ((MimeMultipartClass *) obj->clazz)->create_child(obj);
         if (status < 0) return status;
         NS_ASSERTION(mult->state != MimeMultipartHeaders,
                      "mult->state shouldn't be MimeMultipartHeaders");
 
diff --git a/mailnews/news/src/nsNntpIncomingServer.cpp 
b/mailnews/news/src/nsNntpIncomingServer.cpp
--- a/mailnews/news/src/nsNntpIncomingServer.cpp
+++ b/mailnews/news/src/nsNntpIncomingServer.cpp
@@ -860,17 +860,17 @@ nsNntpIncomingServer::WriteHostInfoFile(
   dateStr.AppendInt(mLastUpdatedTime);
   WriteLine(hostInfoStream, dateStr);
   dateStr ="firstnewdate=";
   dateStr.AppendInt(firstnewdate);
   WriteLine(hostInfoStream, dateStr);
   dateStr = "uniqueid=";
   dateStr.AppendInt(mUniqueId);
   WriteLine(hostInfoStream, dateStr);
-  header.Assign(MSG_LINEBREAK"begingroups");
+  header.Assign(MSG_LINEBREAK "begingroups");
   WriteLine(hostInfoStream, header);
 
   // XXX todo, sort groups first?
   PRUint32 length = mGroupsOnServer.Length();
   for (PRUint32 i = 0; i < length; ++i)
   {
     PRUint32 bytesWritten;
     hostInfoStream->Write(mGroupsOnServer[i].get(), 
mGroupsOnServer[i].Length(),
++++++ mozilla-gcc47.patch ++++++
# HG changeset patch
# Parent debab900e37fdd4f8981c06beef6f193a04bd2b7
Patch to make Mozilla build with gcc 4.7, including
- Bug 725655 - gcc 4.7 build failures (missing headers) (TM: Mozilla13)
- Bug 734490 - "no viable overloaded 'PRIxPTR'" when building with Clang or GCC 
4.7 (TM: Mozilla14)

diff --git a/ipc/chromium/src/base/file_util_linux.cc 
b/ipc/chromium/src/base/file_util_linux.cc
--- a/ipc/chromium/src/base/file_util_linux.cc
+++ b/ipc/chromium/src/base/file_util_linux.cc
@@ -1,15 +1,18 @@
 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #include "base/file_util.h"
 
 #include <fcntl.h>
+#if defined(ANDROID) || defined(OS_POSIX)
+#include <unistd.h>
+#endif
 
 #include <string>
 #include <vector>
 
 #include "base/eintr_wrapper.h"
 #include "base/file_path.h"
 #include "base/string_util.h"
 
diff --git a/ipc/chromium/src/base/message_pump_libevent.cc 
b/ipc/chromium/src/base/message_pump_libevent.cc
--- a/ipc/chromium/src/base/message_pump_libevent.cc
+++ b/ipc/chromium/src/base/message_pump_libevent.cc
@@ -1,16 +1,19 @@
 // Copyright (c) 2008 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #include "base/message_pump_libevent.h"
 
 #include <errno.h>
 #include <fcntl.h>
+#if defined(ANDROID) || defined(OS_POSIX)
+#include <unistd.h>
+#endif
 
 #include "eintr_wrapper.h"
 #include "base/logging.h"
 #include "base/scoped_nsautorelease_pool.h"
 #include "base/scoped_ptr.h"
 #include "base/time.h"
 #include "third_party/libevent/event.h"
 
diff --git a/ipc/chromium/src/base/time_posix.cc 
b/ipc/chromium/src/base/time_posix.cc
--- a/ipc/chromium/src/base/time_posix.cc
+++ b/ipc/chromium/src/base/time_posix.cc
@@ -8,16 +8,19 @@
 #include <mach/mach_time.h>
 #endif
 #include <sys/time.h>
 #ifdef ANDROID
 #include <time64.h>
 #else
 #include <time.h>
 #endif
+#if defined(ANDROID) || defined(OS_POSIX)
+#include <unistd.h>
+#endif
 
 #include <limits>
 
 #include "base/basictypes.h"
 #include "base/logging.h"
 
 namespace base {
 
diff --git a/layout/base/tests/TestPoisonArea.cpp 
b/layout/base/tests/TestPoisonArea.cpp
--- a/layout/base/tests/TestPoisonArea.cpp
+++ b/layout/base/tests/TestPoisonArea.cpp
@@ -392,53 +392,53 @@ ReservePoisonArea()
 {
   if (sizeof(uintptr_t) == 8) {
     // Use the hardware-inaccessible region.
     // We have to avoid 64-bit constants and shifts by 32 bits, since this
     // code is compiled in 32-bit mode, although it is never executed there.
     uintptr_t result = (((uintptr_t(0x7FFFFFFFu) << 31) << 1 |
                          uintptr_t(0xF0DEAFFFu)) &
                         ~uintptr_t(PAGESIZE-1));
-    printf("INFO | poison area assumed at 0x%.*"PRIxPTR"\n", SIZxPTR, result);
+    printf("INFO | poison area assumed at 0x%.*" PRIxPTR "\n", SIZxPTR, 
result);
     return result;
   } else {
     // First see if we can allocate the preferred poison address from the OS.
     uintptr_t candidate = (0xF0DEAFFF & ~(PAGESIZE-1));
     void *result = ReserveRegion(candidate, false);
     if (result == (void *)candidate) {
       // success - inaccessible page allocated
-      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
              " (preferred addr)\n", SIZxPTR, (uintptr_t)result);
       return candidate;
     }
 
     // That didn't work, so see if the preferred address is within a range
     // of permanently inacessible memory.
     if (ProbeRegion(candidate)) {
       // success - selected page cannot be usable memory
       if (result != MAP_FAILED)
         ReleaseRegion(result);
-      printf("INFO | poison area assumed at 0x%.*"PRIxPTR
+      printf("INFO | poison area assumed at 0x%.*" PRIxPTR
              " (preferred addr)\n", SIZxPTR, candidate);
       return candidate;
     }
 
     // The preferred address is already in use.  Did the OS give us a
     // consolation prize?
     if (result != MAP_FAILED) {
-      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
              " (consolation prize)\n", SIZxPTR, (uintptr_t)result);
       return (uintptr_t)result;
     }
 
     // It didn't, so try to allocate again, without any constraint on
     // the address.
     result = ReserveRegion(0, false);
     if (result != MAP_FAILED) {
-      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
              " (fallback)\n", SIZxPTR, (uintptr_t)result);
       return (uintptr_t)result;
     }
 
     printf("ERROR | no usable poison area found\n");
     return 0;
   }
 }
@@ -450,17 +450,17 @@ static uintptr_t
 ReservePositiveControl()
 {
 
   void *result = ReserveRegion(0, false);
   if (result == MAP_FAILED) {
     printf("ERROR | allocating positive control | %s\n", LastErrMsg());
     return 0;
   }
-  printf("INFO | positive control allocated at 0x%.*"PRIxPTR"\n",
+  printf("INFO | positive control allocated at 0x%.*" PRIxPTR "\n",
          SIZxPTR, (uintptr_t)result);
   return (uintptr_t)result;
 }
 
 /* The "negative control" area confirms that our probe logic does detect a
  * page that is readable, writable, or executable.
  */
 static uintptr_t
@@ -481,17 +481,17 @@ ReserveNegativeControl()
   // Now mark it executable as well as readable and writable.
   // (mmap(PROT_EXEC) may fail when applied to anonymous memory.)
 
   if (MakeRegionExecutable(result)) {
     printf("ERROR | making negative control executable | %s\n", LastErrMsg());
     return 0;
   }
 
-  printf("INFO | negative control allocated at 0x%.*"PRIxPTR"\n",
+  printf("INFO | negative control allocated at 0x%.*" PRIxPTR "\n",
          SIZxPTR, (uintptr_t)result);
   return (uintptr_t)result;
 }
 
 static void
 JumpTo(uintptr_t opaddr)
 {
 #ifdef __ia64
++++++ mozilla-revert_621446.patch ++++++
# HG changeset patch
# Parent 8da41a2cee774ce4d00b9ac1032a495b8bc560a0
Revert investigation patch for bmo#621446; as it is useless on desktop and 
breaks the build for certain compilers

diff --git a/netwerk/protocol/http/HttpChannelParent.cpp 
b/netwerk/protocol/http/HttpChannelParent.cpp
--- a/netwerk/protocol/http/HttpChannelParent.cpp
+++ b/netwerk/protocol/http/HttpChannelParent.cpp
@@ -52,29 +52,25 @@
 #include "nsIBadCertListener2.h"
 #include "nsICacheEntryDescriptor.h"
 #include "nsSerializationHelper.h"
 #include "nsISerializable.h"
 #include "nsIAssociatedContentSecurity.h"
 #include "nsIApplicationCacheService.h"
 #include "nsIOfflineCacheUpdate.h"
 #include "nsIRedirectChannelRegistrar.h"
-#include "prinit.h"
 
 namespace mozilla {
 namespace net {
 
 HttpChannelParent::HttpChannelParent(PBrowserParent* iframeEmbedding)
   : mIPCClosed(false)
   , mStoredStatus(0)
   , mStoredProgress(0)
   , mStoredProgressMax(0)
-  , mSentRedirect1Begin(false)
-  , mSentRedirect1BeginFailed(false)
-  , mReceivedRedirect2Verify(false)
 {
   // Ensure gHttpHandler is initialized: we need the atom table up and running.
   nsIHttpProtocolHandler* handler;
   CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &handler);
   NS_ASSERTION(handler, "no http handler");
 
   mTabParent = do_QueryObject(static_cast<TabParent*>(iframeEmbedding));
 }
@@ -326,21 +322,16 @@ HttpChannelParent::RecvUpdateAssociatedC
     mAssociatedContentSecurity->SetCountSubRequestsHighSecurity(high);
     mAssociatedContentSecurity->SetCountSubRequestsLowSecurity(low);
     mAssociatedContentSecurity->SetCountSubRequestsBrokenSecurity(broken);
     mAssociatedContentSecurity->SetCountSubRequestsNoSecurity(no);
   }
   return true;
 }
 
-// Bug 621446 investigation, we don't want conditional PR_Aborts bellow to be
-// merged to a single address.
-#pragma warning(disable : 4068)
-#pragma GCC optimize ("O0")
-
 bool
 HttpChannelParent::RecvRedirect2Verify(const nsresult& result, 
                                        const RequestHeaderTuples& 
changedHeaders)
 {
   if (NS_SUCCEEDED(result)) {
     nsCOMPtr<nsIHttpChannel> newHttpChannel =
         do_QueryInterface(mRedirectChannel);
 
@@ -348,40 +339,21 @@ HttpChannelParent::RecvRedirect2Verify(c
       for (PRUint32 i = 0; i < changedHeaders.Length(); i++) {
         newHttpChannel->SetRequestHeader(changedHeaders[i].mHeader,
                                          changedHeaders[i].mValue,
                                          changedHeaders[i].mMerge);
       }
     }
   }
 
-  if (!mRedirectCallback) {
-    // Bug 621446 investigation (optimization turned off above)
-    if (mReceivedRedirect2Verify)
-      NS_RUNTIMEABORT("Duplicate fire");
-    if (mSentRedirect1BeginFailed)
-      NS_RUNTIMEABORT("Send to child failed");
-    if (mSentRedirect1Begin && NS_FAILED(result))
-      NS_RUNTIMEABORT("Redirect failed");
-    if (mSentRedirect1Begin && NS_SUCCEEDED(result))
-      NS_RUNTIMEABORT("Redirect succeeded");
-    if (!mRedirectChannel)
-      NS_RUNTIMEABORT("Missing redirect channel");
-  }
-
-  mReceivedRedirect2Verify = true;
-
   mRedirectCallback->OnRedirectVerifyCallback(result);
   mRedirectCallback = nsnull;
   return true;
 }
 
-// Bug 621446 investigation
-#pragma GCC reset_options
-
 bool
 HttpChannelParent::RecvDocumentChannelCleanup()
 {
   // From now on only using mAssociatedContentSecurity.  Free everything else.
   mChannel = 0;          // Reclaim some memory sooner.
   mCacheDescriptor = 0;  // Else we'll block other channels reading same URI
   return true;
 }
@@ -583,24 +555,18 @@ HttpChannelParent::StartRedirect(PRUint3
 
   nsHttpChannel *httpChan = static_cast<nsHttpChannel *>(mChannel.get());
   nsHttpResponseHead *responseHead = httpChan->GetResponseHead();
   bool result = SendRedirect1Begin(newChannelId,
                                    IPC::URI(newURI),
                                    redirectFlags,
                                    responseHead ? *responseHead
                                                 : nsHttpResponseHead());
-  if (!result) {
-    // Bug 621446 investigation
-    mSentRedirect1BeginFailed = true;
+  if (!result)
     return NS_BINDING_ABORTED;
-  }
-
-  // Bug 621446 investigation
-  mSentRedirect1Begin = true;
 
   // Result is handled in RecvRedirect2Verify above
 
   mRedirectChannel = newChannel;
   mRedirectCallback = callback;
   return NS_OK;
 }
 
diff --git a/netwerk/protocol/http/HttpChannelParent.h 
b/netwerk/protocol/http/HttpChannelParent.h
--- a/netwerk/protocol/http/HttpChannelParent.h
+++ b/netwerk/protocol/http/HttpChannelParent.h
@@ -128,18 +128,14 @@ private:
   nsCOMPtr<nsIChannel> mRedirectChannel;
   nsCOMPtr<nsIAsyncVerifyRedirectCallback> mRedirectCallback;
 
   // state for combining OnStatus/OnProgress with OnDataAvailable
   // into one IPDL call to child.
   nsresult mStoredStatus;
   PRUint64 mStoredProgress;
   PRUint64 mStoredProgressMax;
-
-  bool mSentRedirect1Begin : 1;
-  bool mSentRedirect1BeginFailed : 1;
-  bool mReceivedRedirect2Verify : 1;
 };
 
 } // namespace net
 } // namespace mozilla
 
 #endif // mozilla_net_HttpChannelParent_h
++++++ mozilla-sle11.patch ++++++
Subject: Patches needed to build on SLE11/11.1
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=513422

diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp
--- a/xpcom/glue/SSE.cpp
+++ b/xpcom/glue/SSE.cpp
@@ -44,26 +44,77 @@ namespace {
 // SSE.h has parallel #ifs which declare MOZILLA_SSE_HAVE_CPUID_DETECTION.
 // We can't declare these functions in the header file, however, because
 // <intrin.h> conflicts with <windows.h> on MSVC 2005, and some files want to
 // include both SSE.h and <windows.h>.
 
 #ifdef HAVE_CPUID_H
 
 // cpuid.h is available on gcc 4.3 and higher on i386 and x86_64
-#include <cpuid.h>
+//#include <cpuid.h>
 
 enum CPUIDRegister { eax = 0, ebx = 1, ecx = 2, edx = 3 };
 
+#ifdef __i386__
+#define _my_cpuid(level, a, b, c, d)                    \
+  __asm__ ("xchg{l}\t{%%}ebx, %1\n\t"                   \
+           "cpuid\n\t"                                  \
+           "xchg{l}\t{%%}ebx, %1\n\t"                   \
+           : "=a" (a), "=r" (b), "=c" (c), "=d" (d)     \
+           : "0" (level))
+#else
+#define _my_cpuid(level, a, b, c, d)                    \
+  __asm__ ("cpuid\n\t"                                  \
+           : "=a" (a), "=b" (b), "=c" (c), "=d" (d)     \
+           : "0" (level))
+#endif
+
+static __inline unsigned int
+my_cpuid_max (unsigned int __ext, unsigned int *__sig)
+{
+  unsigned int __eax, __ebx, __ecx, __edx;
+
+#ifdef __i386__
+  __asm__ ("pushf{l|d}\n\t"
+           "pushf{l|d}\n\t"
+           "pop{l}\t%0\n\t"
+           "mov{l}\t{%0, %1|%1, %0}\n\t"
+           "xor{l}\t{%2, %0|%0, %2}\n\t"
+           "push{l}\t%0\n\t"
+           "popf{l|d}\n\t"
+           "pushf{l|d}\n\t"
+           "pop{l}\t%0\n\t"
+           "popf{l|d}\n\t"
+           : "=&r" (__eax), "=&r" (__ebx)
+           : "i" (0x00200000));
+
+  if (!((__eax ^ __ebx) & 0x00200000))
+    return 0;
+#endif
+
+  /* Host supports cpuid.  Return highest supported cpuid input value.  */
+  _my_cpuid (__ext, __eax, __ebx, __ecx, __edx);
+
+  if (__sig)
+    *__sig = __ebx;
+
+  return __eax;
+}
+
 static bool
 has_cpuid_bit(unsigned int level, CPUIDRegister reg, unsigned int bit)
 {
   unsigned int regs[4];
-  return __get_cpuid(level, &regs[0], &regs[1], &regs[2], &regs[3]) &&
-         (regs[reg] & bit);
+
+  unsigned int __ext = level & 0x80000000;
+  if (my_cpuid_max(__ext, 0) < level)
+    return false;
+
+  _my_cpuid(level, regs[0], regs[1], regs[2], regs[3]);
+  return !!(unsigned(regs[reg]) & bit);
 }
 
 #elif defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(_M_IX86) || 
defined(_M_AMD64))
 
 // MSVC 2005 or newer on x86-32 or x86-64
 #include <intrin.h>
 
 enum CPUIDRegister { eax = 0, ebx = 1, ecx = 2, edx = 3 };
++++++ seamonkey-2.8-source.tar.bz2 -> seamonkey-2.8.99-source.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/seamonkey/seamonkey-2.8-source.tar.bz2 
/work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey-2.8.99-source.tar.bz2 
differ: char 11, line 1

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to