[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdelibs/frameworks] /: Fix porting errors introduced by bf9a709
From:       Kevin Ottens <ervin+bluesystems () kde ! org>
Date:       2013-08-20 10:29:54
Message-ID: E1VBjCE-0008OS-3s () scm ! kde ! org
[Download RAW message or body]

Git commit b1d903e15b9c62558d67b0ceba0ca725921c79e1 by Kevin Ottens.
Committed on 20/08/2013 at 10:01.
Pushed by ervin into branch 'frameworks'.

Fix porting errors introduced by bf9a709

S_ISLNK is *not* equivalent to "& QT_STAT_LNK" (it's not even equivalent
to S_IFLNK in fact). This porting error was caught by our unit tests...

CCMAIL: agateau@kde.org

M  +2    -2    kio/kfile/kpropertiesdialog.cpp
M  +2    -2    kio/kio/krun.cpp
M  +2    -2    kio/tests/fileundomanagertest.cpp
M  +1    -1    kio/tests/kioslavetest.cpp
M  +1    -1    kio/tests/kiotesthelper.h
M  +9    -9    kioslave/file/file.cpp
M  +7    -7    kioslave/file/file_unix.cpp
M  +6    -6    staging/kio/src/core/kfileitem.cpp
M  +1    -1    staging/kio/src/core/udsentry.cpp
M  +1    -1    staging/kio/src/widgets/kurlcompletion.cpp
M  +1    -1    tier1/karchive/src/k7zip.cpp
M  +1    -1    tier1/karchive/src/kzip.cpp
M  +3    -3    tier1/kcoreaddons/src/lib/io/kdirwatch.cpp

http://commits.kde.org/kdelibs/b1d903e15b9c62558d67b0ceba0ca725921c79e1

diff --git a/kio/kfile/kpropertiesdialog.cpp b/kio/kfile/kpropertiesdialog.cpp
index baaeced..af8a251 100644
--- a/kio/kfile/kpropertiesdialog.cpp
+++ b/kio/kfile/kpropertiesdialog.cpp
@@ -896,7 +896,7 @@ KFilePropsPlugin::KFilePropsPlugin( KPropertiesDialog *_props )
         directory += ')';
     }
 
-    if (!isTrash && (bDesktopFile || (mode & QT_STAT_DIR))
+    if (!isTrash && (bDesktopFile || ((mode & QT_STAT_MASK) == QT_STAT_DIR))
         && !d->bMultiple // not implemented for multiple
         && enableIconButton()) // #56857
     {
@@ -1487,7 +1487,7 @@ void KFilePropsPlugin::applyIconChanges()
     if ( url.isLocalFile()) {
         QString path;
 
-        if (properties->item().mode() & QT_STAT_DIR)
+        if ((properties->item().mode() & QT_STAT_MASK) == QT_STAT_DIR)
         {
             path = url.toLocalFile() + QString::fromLatin1("/.directory");
             // don't call updateUrl because the other tabs (i.e. permissions)
diff --git a/kio/kio/krun.cpp b/kio/kio/krun.cpp
index f2076ca..044a8fe 100644
--- a/kio/kio/krun.cpp
+++ b/kio/kio/krun.cpp
@@ -1247,7 +1247,7 @@ void KRun::init()
 
 #if 0 // removed for KF5 (for portability). Reintroduce a bool or flag if useful.
     // Did we already get the information that it is a directory ?
-    if (d->m_mode & QT_STAT_DIR) {
+    if ((d->m_mode & QT_STAT_MASK) == QT_STAT_DIR) {
         mimeTypeDetermined("inode/directory");
         return;
     }
@@ -1416,7 +1416,7 @@ void KRun::slotStatResult(KJob * job)
 
         const KIO::UDSEntry entry = statJob->statResult();
         const mode_t mode = entry.numberValue(KIO::UDSEntry::UDS_FILE_TYPE);
-        if (mode & QT_STAT_DIR) {
+        if ((mode & QT_STAT_MASK) == QT_STAT_DIR) {
             d->m_bIsDirectory = true; // it's a dir
         }
         else {
diff --git a/kio/tests/fileundomanagertest.cpp b/kio/tests/fileundomanagertest.cpp
index 5e4286a..200448a 100644
--- a/kio/tests/fileundomanagertest.cpp
+++ b/kio/tests/fileundomanagertest.cpp
@@ -96,9 +96,9 @@ static void createTestSymlink( const QString& path )
         if ( !ok )
             qFatal("couldn't create symlink: %s", strerror(errno));
         QVERIFY( QT_LSTAT( QFile::encodeName( path ), &buf ) == 0 );
-        QVERIFY( buf.st_mode & QT_STAT_LNK );
+        QVERIFY( (buf.st_mode & QT_STAT_MASK) == QT_STAT_LNK );
     } else {
-        QVERIFY( buf.st_mode & QT_STAT_LNK );
+        QVERIFY( (buf.st_mode & QT_STAT_MASK) == QT_STAT_LNK );
     }
     qDebug( "symlink %s created", qPrintable( path ) );
     QVERIFY( QFileInfo( path ).isSymLink() );
diff --git a/kio/tests/kioslavetest.cpp b/kio/tests/kioslavetest.cpp
index f4433b8..4a02a57 100644
--- a/kio/tests/kioslavetest.cpp
+++ b/kio/tests/kioslavetest.cpp
@@ -362,7 +362,7 @@ void KioslaveTest::printUDSEntry( const KIO::UDSEntry & entry )
                 {
                     mode_t mode = (mode_t)entry.numberValue(*it);
                     qDebug() << "File Type : " << mode;
-                    if ( mode & QT_STAT_DIR )
+                    if ( (mode & QT_STAT_MASK) == QT_STAT_DIR )
                     {
                         qDebug() << "is a dir";
                     }
diff --git a/kio/tests/kiotesthelper.h b/kio/tests/kiotesthelper.h
index e75d3cc..3b208c7 100644
--- a/kio/tests/kiotesthelper.h
+++ b/kio/tests/kiotesthelper.h
@@ -81,7 +81,7 @@ static void createTestSymlink( const QString& path, const \
QByteArray& target = "  qFatal("couldn't create symlink: %s", strerror(errno));
     QT_STATBUF buf;
     QVERIFY( QT_LSTAT( QFile::encodeName( path ), &buf ) == 0 );
-    QVERIFY( buf.st_mode & QT_STAT_LNK );
+    QVERIFY( (buf.st_mode & QT_STAT_MASK) == QT_STAT_LNK );
     //qDebug( "symlink %s created", qPrintable( path ) );
     QVERIFY( QFileInfo( path ).isSymLink() );
 }
diff --git a/kioslave/file/file.cpp b/kioslave/file/file.cpp
index 60fc915..3c8ea7b 100644
--- a/kioslave/file/file.cpp
+++ b/kioslave/file/file.cpp
@@ -266,7 +266,7 @@ void FileProtocol::mkdir( const QUrl& url, int permissions )
         }
     }
 
-    if ( buff.st_mode & QT_STAT_DIR ) {
+    if ( (buff.st_mode & QT_STAT_MASK) == QT_STAT_DIR ) {
         // qDebug() << "ERR_DIR_ALREADY_EXIST";
         error(KIO::ERR_DIR_ALREADY_EXIST, path);
         return;
@@ -295,11 +295,11 @@ void FileProtocol::get( const QUrl& url )
         return;
     }
 
-    if ( buff.st_mode & QT_STAT_DIR ) {
+    if ( (buff.st_mode & QT_STAT_MASK) == QT_STAT_DIR ) {
         error(KIO::ERR_IS_DIRECTORY, path);
         return;
     }
-    if ( !( buff.st_mode & QT_STAT_REG ) ) {
+    if ( ( buff.st_mode & QT_STAT_MASK ) != QT_STAT_REG ) {
         error(KIO::ERR_CANNOT_OPEN_FOR_READING, path);
         return;
     }
@@ -392,11 +392,11 @@ void FileProtocol::open(const QUrl &url, QIODevice::OpenMode \
mode)  return;
     }
 
-    if ( buff.st_mode & QT_STAT_DIR ) {
+    if ( (buff.st_mode & QT_STAT_MASK) == QT_STAT_DIR ) {
         error(KIO::ERR_IS_DIRECTORY, openPath);
         return;
     }
-    if ( !( buff.st_mode & QT_STAT_REG ) ) {
+    if ( ( buff.st_mode & QT_STAT_MASK ) != QT_STAT_REG ) {
         error(KIO::ERR_CANNOT_OPEN_FOR_READING, openPath);
         return;
     }
@@ -513,7 +513,7 @@ void FileProtocol::put( const QUrl& url, int _mode, KIO::JobFlags \
_flags )  QT_STATBUF buff_part;
         bPartExists = (QT_LSTAT(QFile::encodeName(dest_part).constData(), \
&buff_part) != -1);  
-        if (bPartExists && !(_flags & KIO::Resume) && !(_flags & KIO::Overwrite) && \
buff_part.st_size > 0 && (buff_part.st_mode & QT_STAT_REG)) +        if (bPartExists \
&& !(_flags & KIO::Resume) && !(_flags & KIO::Overwrite) && buff_part.st_size > 0 && \
((buff_part.st_mode & QT_STAT_MASK) == QT_STAT_REG))  {
             // qDebug() << "calling canResume with" << \
KIO::number(buff_part.st_size);  
@@ -528,7 +528,7 @@ void FileProtocol::put( const QUrl& url, int _mode, KIO::JobFlags \
_flags )  
     if ( bOrigExists && !(_flags & KIO::Overwrite) && !(_flags & KIO::Resume))
     {
-        if (buff_orig.st_mode & QT_STAT_DIR)
+        if ((buff_orig.st_mode & QT_STAT_MASK) == QT_STAT_DIR)
             error( KIO::ERR_DIR_ALREADY_EXIST, dest_orig );
         else
             error( KIO::ERR_FILE_ALREADY_EXIST, dest_orig );
@@ -751,7 +751,7 @@ bool FileProtocol::createUDSEntry( const QString & filename, \
const QByteArray &  entry.insert( KIO::UDSEntry::UDS_INODE, buff.st_ino );
         }
 
-        if (buff.st_mode & QT_STAT_LNK) {
+        if ((buff.st_mode & QT_STAT_MASK) == QT_STAT_LNK) {
 
             char buffer2[ 1000 ];
             int n = readlink( path.data(), buffer2, 999 );
@@ -1211,7 +1211,7 @@ static void appendACLAtoms( const QByteArray & path, UDSEntry& \
entry, mode_t typ  
     acl_t acl = 0;
     acl_t defaultAcl = 0;
-    bool isDir = type & QT_STAT_DIR;
+    bool isDir = (type & QT_STAT_MASK) == QT_STAT_DIR;
     // do we have an acl for the file, and/or a default acl for the dir, if it is \
one?  acl = acl_get_file( path.data(), ACL_TYPE_ACCESS );
     /* Sadly libacl does not provided a means of checking for extended ACL and \
                default
diff --git a/kioslave/file/file_unix.cpp b/kioslave/file/file_unix.cpp
index 0a13399..f4bc812 100644
--- a/kioslave/file/file_unix.cpp
+++ b/kioslave/file/file_unix.cpp
@@ -85,7 +85,7 @@ void FileProtocol::copy( const QUrl &srcUrl, const QUrl &destUrl,
         return;
     }
 
-    if ( buff_src.st_mode & QT_STAT_DIR ) {
+    if ( (buff_src.st_mode & QT_STAT_MASK) == QT_STAT_DIR ) {
 	error(KIO::ERR_IS_DIRECTORY, src);
 	return;
     }
@@ -98,7 +98,7 @@ void FileProtocol::copy( const QUrl &srcUrl, const QUrl &destUrl,
     bool dest_exists = (QT_LSTAT(_dest.data(), &buff_dest) != -1);
     if ( dest_exists )
     {
-        if (buff_dest.st_mode & QT_STAT_DIR)
+        if ((buff_dest.st_mode & QT_STAT_MASK) == QT_STAT_DIR)
         {
            error(KIO::ERR_DIR_ALREADY_EXIST, dest);
            return;
@@ -119,7 +119,7 @@ void FileProtocol::copy( const QUrl &srcUrl, const QUrl &destUrl,
         // If the destination is a symlink and overwrite is TRUE,
         // remove the symlink first to prevent the scenario where
         // the symlink actually points to current source!
-        if ((_flags & KIO::Overwrite) && (buff_dest.st_mode & QT_STAT_LNK))
+        if ((_flags & KIO::Overwrite) && ((buff_dest.st_mode & QT_STAT_MASK) == \
QT_STAT_LNK))  {
             //qDebug() << "copy(): LINK DESTINATION";
             QFile::remove(dest);
@@ -388,8 +388,8 @@ void FileProtocol::listDir( const QUrl& url)
                 continue; // how can stat fail?
             }
             entry.insert(KIO::UDSEntry::UDS_FILE_TYPE,
-                          (st.st_mode & QT_STAT_DIR) ? S_IFDIR : S_IFREG );
-            const bool isSymLink = (st.st_mode & QT_STAT_LNK);
+                          ((st.st_mode & QT_STAT_MASK) == QT_STAT_DIR) ? S_IFDIR : \
S_IFREG ); +            const bool isSymLink = ((st.st_mode & QT_STAT_MASK) == \
QT_STAT_LNK);  #endif
             if (isSymLink) {
                 // for symlinks obey the UDSEntry contract and provide UDS_LINK_DEST
@@ -437,7 +437,7 @@ void FileProtocol::rename( const QUrl &srcUrl, const QUrl \
&destUrl,  bool dest_exists = (QT_LSTAT(_dest.data(), &buff_dest) != -1);
     if ( dest_exists )
     {
-        if (buff_dest.st_mode & QT_STAT_DIR)
+        if ((buff_dest.st_mode & QT_STAT_MASK) == QT_STAT_DIR)
         {
            error(KIO::ERR_DIR_ALREADY_EXIST, dest);
            return;
@@ -498,7 +498,7 @@ void FileProtocol::symlink( const QString &target, const QUrl \
&destUrl, KIO::Job  else
             {
                 QT_STATBUF buff_dest;
-                if (QT_LSTAT(QFile::encodeName(dest), &buff_dest) == 0 && \
(buff_dest.st_mode & QT_STAT_DIR)) +                if \
(QT_LSTAT(QFile::encodeName(dest), &buff_dest) == 0 && ((buff_dest.st_mode & \
QT_STAT_MASK) == QT_STAT_DIR))  error(KIO::ERR_DIR_ALREADY_EXIST, dest);
                 else
                     error(KIO::ERR_FILE_ALREADY_EXIST, dest);
diff --git a/staging/kio/src/core/kfileitem.cpp b/staging/kio/src/core/kfileitem.cpp
index 7331192..970dea8 100644
--- a/staging/kio/src/core/kfileitem.cpp
+++ b/staging/kio/src/core/kfileitem.cpp
@@ -468,7 +468,7 @@ QString KFileItemPrivate::parsePermissions(mode_t perm) const
     if (m_bLink)
         buffer[0] = 'l';
     else if (m_fileMode != KFileItem::Unknown) {
-        if (m_fileMode & QT_STAT_DIR)
+        if ((m_fileMode & QT_STAT_MASK) == QT_STAT_DIR)
             buffer[0] = 'd';
 #ifdef Q_OS_UNIX
         else if (S_ISSOCK(m_fileMode))
@@ -1022,7 +1022,7 @@ QStringList KFileItem::overlays() const
         names.append("emblem-symbolic-link");
     }
 
-    if ( !(d->m_fileMode & QT_STAT_DIR) // Locked dirs have a special icon, use the \
overlay for files only +    if ( ((d->m_fileMode & QT_STAT_MASK) != QT_STAT_DIR) // \
Locked dirs have a special icon, use the overlay for files only  && !isReadable()) {
         names.append("object-locked");
     }
@@ -1052,7 +1052,7 @@ QStringList KFileItem::overlays() const
     }
 
 #ifndef Q_OS_WIN
-    if( (d->m_fileMode & QT_STAT_DIR) && d->m_bIsLocalUrl)
+    if( ((d->m_fileMode & QT_STAT_MASK) == QT_STAT_DIR) && d->m_bIsLocalUrl)
     {
         if (KSambaShare::instance()->isDirectoryShared( d->m_url.toLocalFile() ) ||
             KNFSShare::instance()->isDirectoryShared( d->m_url.toLocalFile() ))
@@ -1165,7 +1165,7 @@ bool KFileItem::isDir() const
         //qDebug() << d << url() << "can't say -> false";
         return false; // can't say for sure, so no
     }
-    return d->m_fileMode & QT_STAT_DIR;
+    return (d->m_fileMode & QT_STAT_MASK) == QT_STAT_DIR;
 }
 
 bool KFileItem::isFile() const
@@ -1219,7 +1219,7 @@ QString KFileItem::getStatusBarInfo() const
     {
         text += i18n(" (Points to %1)", targetUrl().toDisplayString());
     }
-    else if ( d->m_fileMode & QT_STAT_REG )
+    else if ( (d->m_fileMode & QT_STAT_MASK) == QT_STAT_REG )
     {
         text += QString(" (%1, %2)").arg( comment, KIO::convertSize( size() ) );
     }
@@ -1654,7 +1654,7 @@ bool KFileItem::isRegularFile() const
     if (!d)
         return false;
 
-    return d->m_fileMode & QT_STAT_REG;
+    return (d->m_fileMode & QT_STAT_MASK) == QT_STAT_REG;
 }
 
 QDebug operator<<(QDebug stream, const KFileItem& item)
diff --git a/staging/kio/src/core/udsentry.cpp b/staging/kio/src/core/udsentry.cpp
index 86dce2a..dbfe202 100644
--- a/staging/kio/src/core/udsentry.cpp
+++ b/staging/kio/src/core/udsentry.cpp
@@ -82,7 +82,7 @@ long long UDSEntry::numberValue(uint field, long long defaultValue) \
const  
 bool UDSEntry::isDir() const
 {
-    return numberValue(UDS_FILE_TYPE) & QT_STAT_DIR;
+    return (numberValue(UDS_FILE_TYPE) & QT_STAT_MASK) == QT_STAT_DIR;
 }
 
 bool UDSEntry::isLink() const
diff --git a/staging/kio/src/widgets/kurlcompletion.cpp \
b/staging/kio/src/widgets/kurlcompletion.cpp index 596680a..80a4023 100644
--- a/staging/kio/src/widgets/kurlcompletion.cpp
+++ b/staging/kio/src/widgets/kurlcompletion.cpp
@@ -1316,7 +1316,7 @@ void KUrlCompletion::postProcessMatch(QString* pMatch) const
 
             QT_STATBUF sbuff;
             if (QT_STAT(file.constData(), &sbuff) == 0) {
-                if (sbuff.st_mode & QT_STAT_DIR)
+                if ((sbuff.st_mode & QT_STAT_MASK) == QT_STAT_DIR)
                     pMatch->append(QLatin1Char('/'));
             } else {
                 //qDebug() << "Could not stat file" << copy;
diff --git a/tier1/karchive/src/k7zip.cpp b/tier1/karchive/src/k7zip.cpp
index bb79cfb..7bd2f34 100644
--- a/tier1/karchive/src/k7zip.cpp
+++ b/tier1/karchive/src/k7zip.cpp
@@ -2636,7 +2636,7 @@ bool K7Zip::openArchive( QIODevice::OpenMode mode )
         bool symlink = false;
         if (fileInfo->attributes & FILE_ATTRIBUTE_UNIX_EXTENSION) {
             access = fileInfo->attributes >> 16;
-            if (access & QT_STAT_LNK) {
+            if ((access & QT_STAT_MASK) == QT_STAT_LNK) {
                 symlink = true;
             }
         } else {
diff --git a/tier1/karchive/src/kzip.cpp b/tier1/karchive/src/kzip.cpp
index f268c85..c678ed6 100644
--- a/tier1/karchive/src/kzip.cpp
+++ b/tier1/karchive/src/kzip.cpp
@@ -699,7 +699,7 @@ bool KZip::openArchive( QIODevice::OpenMode mode )
             else
             {
             QString symlink;
-        if (access & QT_STAT_LNK) {
+        if ((access & QT_STAT_MASK) == QT_STAT_LNK) {
             symlink = QFile::decodeName(pfi.guessed_symlink);
         }
                 QDateTime mtime = KArchivePrivate::time_tToDateTime(pfi.mtime);
diff --git a/tier1/kcoreaddons/src/lib/io/kdirwatch.cpp \
b/tier1/kcoreaddons/src/lib/io/kdirwatch.cpp index 95c4651..903883e 100644
--- a/tier1/kcoreaddons/src/lib/io/kdirwatch.cpp
+++ b/tier1/kcoreaddons/src/lib/io/kdirwatch.cpp
@@ -397,7 +397,7 @@ void KDirWatchPrivate::inotifyEventReceived()
               // so in that case we'll just take both kinds of clients and emit \
                Deleted.
               KDirWatch::WatchModes flag = KDirWatch::WatchSubDirs | \
                KDirWatch::WatchFiles;
               if (QT_STAT(QFile::encodeName(tpath).constData(), &stat_buf) == 0) {
-                bool isDir = stat_buf.st_mode & QT_STAT_DIR;
+                bool isDir = (stat_buf.st_mode & QT_STAT_MASK) == QT_STAT_DIR;
                 flag = isDir ? KDirWatch::WatchSubDirs : KDirWatch::WatchFiles;
               }
               int counter = 0;
@@ -815,11 +815,11 @@ void KDirWatchPrivate::addEntry(KDirWatch* instance, const \
QString& _path,  Entry* e = &(*newIt);
 
   if (exists) {
-    e->isDir = stat_buf.st_mode & QT_STAT_DIR;
+    e->isDir = (stat_buf.st_mode & QT_STAT_MASK) == QT_STAT_DIR;
 
     if (e->isDir && !isDir) {
       if (QT_LSTAT(QFile::encodeName(path).constData(), &stat_buf) == 0) {
-        if (stat_buf.st_mode & QT_STAT_LNK)
+        if ((stat_buf.st_mode & QT_STAT_MASK) == QT_STAT_LNK)
           // if it's a symlink, don't follow it
           e->isDir = false;
         else


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic