summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kio/kio/kdirwatch.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/microkde/kio/kio/kdirwatch.cpp b/microkde/kio/kio/kdirwatch.cpp
index 98d24e0..1596d1f 100644
--- a/microkde/kio/kio/kdirwatch.cpp
+++ b/microkde/kio/kio/kdirwatch.cpp
@@ -574,49 +574,50 @@ void KDirWatchPrivate::addEntry(KDirWatch* instance, const QString& _path,
}
}
#endif
}
else {
(*it).addClient(instance);
kdDebug(7001) << "Added already watched Entry " << path
<< " (now " << (*it).clients() << " clients)"
<< QString(" [%1]").arg(instance->name()) << endl;
}
return;
}
// we have a new path to watch
struct stat stat_buf;
bool exists = (stat(QFile::encodeName(path), &stat_buf) == 0);
Entry newEntry;
m_mapEntries.insert( path, newEntry );
// the insert does a copy, so we have to use <e> now
Entry* e = &(m_mapEntries[path]);
if (exists) {
- e->isDir = S_ISDIR(stat_buf.st_mode);
+ QFileInfo fi ( path );
+ e->isDir = fi.isDir();
if (e->isDir && !isDir)
qWarning("KDirWatch: %s is a directory. Use addDir!", path.ascii());
else if (!e->isDir && isDir)
qWarning("KDirWatch: %s is a file. Use addFile!", path.ascii());
e->m_ctime = stat_buf.st_ctime;
e->m_status = Normal;
e->m_nlink = stat_buf.st_nlink;
}
else {
e->isDir = isDir;
e->m_ctime = invalid_ctime;
e->m_status = NonExistent;
e->m_nlink = 0;
}
e->path = path;
if (sub_entry)
e->m_entries.append(sub_entry);
else
e->addClient(instance);
kdDebug(7001) << "Added " << (e->isDir ? "Dir ":"File ") << path