summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-08-08 12:30:41 (UTC)
committer zautrix <zautrix>2004-08-08 12:30:41 (UTC)
commit75138e84a2271f8929478853151a6ed4a73fb2cc (patch) (unidiff)
tree804b3277bf2e4c4e371611677481803f527bf90e
parent4cc869512488b72304c7cbb5526c6f4cc957e677 (diff)
downloadkdepimpi-75138e84a2271f8929478853151a6ed4a73fb2cc.zip
kdepimpi-75138e84a2271f8929478853151a6ed4a73fb2cc.tar.gz
kdepimpi-75138e84a2271f8929478853151a6ed4a73fb2cc.tar.bz2
Fixed kdirwatch
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
@@ -566,65 +566,66 @@ void KDirWatchPrivate::addEntry(KDirWatch* instance, const QString& _path,
566 for(Entry* dep=e->m_entries.first();dep;dep=e->m_entries.next()) 566 for(Entry* dep=e->m_entries.first();dep;dep=e->m_entries.next())
567 if (!dep->isDir) { mask |= DN_MODIFY|DN_ATTRIB; break; } 567 if (!dep->isDir) { mask |= DN_MODIFY|DN_ATTRIB; break; }
568 if( fcntl(e->dn_fd, F_NOTIFY, mask) < 0) { // shouldn't happen 568 if( fcntl(e->dn_fd, F_NOTIFY, mask) < 0) { // shouldn't happen
569 ::close(e->dn_fd); 569 ::close(e->dn_fd);
570 e->m_mode = UnknownMode; 570 e->m_mode = UnknownMode;
571 fd_Entry.remove(e->dn_fd); 571 fd_Entry.remove(e->dn_fd);
572 e->dn_fd = 0; 572 e->dn_fd = 0;
573 useStat( e ); 573 useStat( e );
574 } 574 }
575 } 575 }
576#endif 576#endif
577 } 577 }
578 else { 578 else {
579 (*it).addClient(instance); 579 (*it).addClient(instance);
580 kdDebug(7001) << "Added already watched Entry " << path 580 kdDebug(7001) << "Added already watched Entry " << path
581 << " (now " << (*it).clients() << " clients)" 581 << " (now " << (*it).clients() << " clients)"
582 << QString(" [%1]").arg(instance->name()) << endl; 582 << QString(" [%1]").arg(instance->name()) << endl;
583 } 583 }
584 return; 584 return;
585 } 585 }
586 586
587 // we have a new path to watch 587 // we have a new path to watch
588 588
589 struct stat stat_buf; 589 struct stat stat_buf;
590 bool exists = (stat(QFile::encodeName(path), &stat_buf) == 0); 590 bool exists = (stat(QFile::encodeName(path), &stat_buf) == 0);
591 591
592 Entry newEntry; 592 Entry newEntry;
593 m_mapEntries.insert( path, newEntry ); 593 m_mapEntries.insert( path, newEntry );
594 // the insert does a copy, so we have to use <e> now 594 // the insert does a copy, so we have to use <e> now
595 Entry* e = &(m_mapEntries[path]); 595 Entry* e = &(m_mapEntries[path]);
596 596
597 if (exists) { 597 if (exists) {
598 e->isDir = S_ISDIR(stat_buf.st_mode); 598 QFileInfo fi ( path );
599 e->isDir = fi.isDir();
599 600
600 if (e->isDir && !isDir) 601 if (e->isDir && !isDir)
601 qWarning("KDirWatch: %s is a directory. Use addDir!", path.ascii()); 602 qWarning("KDirWatch: %s is a directory. Use addDir!", path.ascii());
602 else if (!e->isDir && isDir) 603 else if (!e->isDir && isDir)
603 qWarning("KDirWatch: %s is a file. Use addFile!", path.ascii()); 604 qWarning("KDirWatch: %s is a file. Use addFile!", path.ascii());
604 605
605 e->m_ctime = stat_buf.st_ctime; 606 e->m_ctime = stat_buf.st_ctime;
606 e->m_status = Normal; 607 e->m_status = Normal;
607 e->m_nlink = stat_buf.st_nlink; 608 e->m_nlink = stat_buf.st_nlink;
608 } 609 }
609 else { 610 else {
610 e->isDir = isDir; 611 e->isDir = isDir;
611 e->m_ctime = invalid_ctime; 612 e->m_ctime = invalid_ctime;
612 e->m_status = NonExistent; 613 e->m_status = NonExistent;
613 e->m_nlink = 0; 614 e->m_nlink = 0;
614 } 615 }
615 616
616 e->path = path; 617 e->path = path;
617 if (sub_entry) 618 if (sub_entry)
618 e->m_entries.append(sub_entry); 619 e->m_entries.append(sub_entry);
619 else 620 else
620 e->addClient(instance); 621 e->addClient(instance);
621 622
622 kdDebug(7001) << "Added " << (e->isDir ? "Dir ":"File ") << path 623 kdDebug(7001) << "Added " << (e->isDir ? "Dir ":"File ") << path
623 << (e->m_status == NonExistent ? " NotExisting" : "") 624 << (e->m_status == NonExistent ? " NotExisting" : "")
624 << (sub_entry ? QString(" for %1").arg(sub_entry->path) : QString("")) 625 << (sub_entry ? QString(" for %1").arg(sub_entry->path) : QString(""))
625 << (instance ? QString(" [%1]").arg(instance->name()) : QString("")) 626 << (instance ? QString(" [%1]").arg(instance->name()) : QString(""))
626 << endl; 627 << endl;
627 628
628 629
629 // now setup the notification method 630 // now setup the notification method
630 e->m_mode = UnknownMode; 631 e->m_mode = UnknownMode;